Flake to setup a local env for atproto development
8
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add mailhog

+29 -4
+12 -4
flake.nix
··· 12 12 did-plc-server = pkgs.callPackage ./packages/did-method-plc.nix { }; 13 13 caddy-proxy = pkgs.callPackage ./packages/caddy.nix { }; 14 14 pds = pkgs.callPackage ./packages/pds.nix { }; 15 + mailhog = pkgs.callPackage ./packages/mailhog.nix { }; 15 16 in 16 17 { 17 18 packages.${system} = { ··· 21 22 caddy-proxy = caddy-proxy; 22 23 23 24 pds = pds; 25 + 26 + mailhog = mailhog; 24 27 25 28 # Script to generate certificates on host 26 29 generate-certs = pkgs.writeShellScriptBin "generate-certs" '' ··· 56 59 curl 57 60 bluesky-pds 58 61 openssl 62 + mailhog 59 63 ]; 60 64 61 65 shellHook = '' ··· 65 69 echo " nix run .#caddy-proxy - Start Caddy with full config" 66 70 echo " nix run .#did-plc-server - Start DID PLC server" 67 71 echo " nix run .#pds - Start Bluesky PDS server" 72 + echo " nix run .#mailhog - Start MailHog email server" 68 73 echo "" 69 74 echo "Services:" 70 75 echo " Bluesky PDS: https://pds.example.org:8443 (proxied from port 3000)" 71 76 echo " DID PLC: https://plc.example.org:8444 (proxied from port 2582)" 77 + echo " MailHog: http://localhost:8025 (SMTP on port 1025)" 72 78 echo "" 73 79 echo "Environment variables:" 74 80 echo " BLUESKY_PDS_PORT=3000 - Port for Bluesky PDS (default: 3000)" ··· 78 84 echo " 127.0.0.1 pds.example.org" 79 85 echo " 127.0.0.1 plc.example.org" 80 86 echo " 2. Run 'nix run .#generate-certs' to create certificates" 81 - echo " 3. Run 'nix run .#did-plc-server' in one terminal (if needed)" 82 - echo " 4. Run 'nix run .#pds' in another terminal" 83 - echo " 5. Run 'nix run .#caddy-proxy' in another terminal" 84 - echo " 6. Access services at:" 87 + echo " 3. Run 'nix run .#mailhog' in one terminal" 88 + echo " 4. Run 'nix run .#did-plc-server' in another terminal (if needed)" 89 + echo " 5. Run 'nix run .#pds' in another terminal" 90 + echo " 6. Run 'nix run .#caddy-proxy' in another terminal" 91 + echo " 7. Access services at:" 85 92 echo " - Bluesky PDS: https://pds.example.org:8443" 86 93 echo " - DID PLC: https://plc.example.org:8444" 94 + echo " - MailHog: http://localhost:8025" 87 95 ''; 88 96 }; 89 97 };
+13
packages/mailhog.nix
··· 1 + { pkgs }: 2 + 3 + pkgs.writeShellScriptBin "mailhog" '' 4 + set -e 5 + 6 + echo "Starting MailHog..." 7 + echo "Web interface: http://localhost:8025" 8 + echo "SMTP server: localhost:1025" 9 + echo "Press Ctrl+C to stop" 10 + echo "" 11 + 12 + ${pkgs.mailhog}/bin/MailHog 13 + ''
+4
packages/pds.nix
··· 43 43 # Enable development mode 44 44 export PDS_DEV_MODE="true" 45 45 46 + # Configure SMTP for MailHog 47 + export PDS_EMAIL_SMTP_URL="smtp://localhost:1025" 48 + export PDS_EMAIL_FROM_ADDRESS="noreply@pds.example.org" 49 + 46 50 ${pkgs.bluesky-pds}/bin/pds 47 51 ''