TIDE/flake.nix
Yisroel Baum 4ac2323a2a
add mailpit to dev shell and process-compose
Mailpit listens on 1025 (smtp) and 8025 (web ui). Backend now
depends on it as a healthy dep so dev signups can flush their
confirmation emails to mailpit instead of /dev/null.
2026-05-06 23:21:25 +03:00

53 lines
1.7 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOs/nixpkgs/nixos-unstable";
utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, utils }:
utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
in {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
onefetch
php
phpPackages.composer
phpPackages.php-codesniffer
vscode-langservers-extracted
sqlite
nodejs
nixfmt-rfc-style
nixfmt-tree
cypress
yaml-language-server
typescript
postgresql
process-compose
mailpit
];
shellHook = ''
# Anchor PGDATA to the repo root so subshells in subdirs
# (e.g. backend/) reuse the same cluster instead of seeding
# a stray .postgres there.
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
export PGDATA="$REPO_ROOT/.postgres"
export PGHOST="$PGDATA"
export PGUSER="postgres"
export PGDATABASE="postgres"
if [ ! -d "$PGDATA" ]; then
echo "[pg] initializing cluster at $PGDATA"
initdb --auth=trust --username=postgres --no-locale --encoding=UTF8 >/dev/null
{
echo "listen_addresses = '127.0.0.1'"
echo "unix_socket_directories = '$PGDATA'"
} >> "$PGDATA/postgresql.conf"
fi
echo "[dev] run 'process-compose up' to start postgres + backend + vite"
'';
};
});
}