Skip to content

Production Environment

Public Summary

Production uses Nginx as the public entrypoint, proxies API and routing services internally, and relies on Certbot for TLS certificate automation.

Internal Details

Current Runtime Topology

Deployment Path

  • Release tag triggers test + VPS deploy workflow.
  • VPS checks out release tag and rebuilds production compose services.
  • Frontend release version is injected into apps/client/.env during deploy.

docs.obrok.net Target

Recommended production model for docs:

  1. Build VitePress static output from apps/docs/.vitepress/dist.
  2. Serve through dedicated Nginx server_name docs.obrok.net.
  3. Use static try_files suitable for VitePress, not SPA index fallback.

Source Anchors

PathRelevance
docker-compose.prod.ymlProduction service topology
apps/nginx/nginx.confReverse proxy, SSL, static serving
.github/workflows/deploy.ymlRelease-triggered deployment
init-ssl.shFirst-time SSL bootstrap

Risks and Trade-offs

  • App and docs on same VPS is operationally simple but increases blast radius during host-level incidents.

Student Obrok engineering documentation.