The server stack contains ingress, admin surfaces, notifications, the Smithflix wiki, the Monopoly proof-of-concept app, the runtime Astrophotography site, and the private DiamondEdge validation deployment.
/opt/stacks/server/compose.yamlnginx, organizr, watchtower, ntfy, wikijs, wikijs-db, authentik-postgresql, authentik-server, authentik-worker, monopoly, astro, diamondedgeserver_default/srv/docker/nginx/data/srv/docker/nginx/letsencrypt/srv/docker/organizr/config/srv/docker/ntfy/srv/docker/wikijs/data/srv/docker/wikijs-db/data/srv/docker/authentik/data/srv/docker/authentik/postgresql/srv/docker/astro/data/catalog.json/srv/docker/astro/data/srv/docker/astro/curated/srv/docker/astro/media/home/adam/astrophotography-site/home/adam/Pictures/srv/docker/diamondedge/home/adam/diamondedge/opt/stacks/server/.env80, 81, 443 -> NPM8081 -> Organizr9000 -> Authentik server8090 -> Wiki.js LAN endpoint8093 -> ntfy18080 -> Monopoly18081 -> Astrophotography Node/Astro runtime container (astro)18082 -> DiamondEdge loopback-only Node/Express runtime container (diamondedge)docker compose --env-file /opt/stacks/server/.env -f /opt/stacks/server/compose.yaml configdocker pscurl http://127.0.0.1:8090/curl -I http://127.0.0.1:9000/if/flow/initial-setup/curl http://127.0.0.1:18081/health.txtcurl http://127.0.0.1:18081/api/manage/inventorycurl http://127.0.0.1:18082/api/healthREQUIRE_COSTLY_API_AUTH=true plus the trusted proxy header/value contract are enabled, while the remaining public blocker is the final routed-domain validation path and broader outer-auth posturedocker compose --env-file /opt/stacks/server/.env -f /opt/stacks/server/compose.yaml build astro.docker compose --env-file /opt/stacks/server/.env -f /opt/stacks/server/compose.yaml up -d astro.docker compose --env-file /opt/stacks/server/.env -f /opt/stacks/server/compose.yaml build diamondedge.docker compose --env-file /opt/stacks/server/.env -f /opt/stacks/server/compose.yaml up -d diamondedge.2026-05-24