Skip to content

Issue 28: Hetzner VPS Deployment Setup #28

@laraibg786

Description

@laraibg786

Goal

Provision a Hetzner Cloud VPS instance, configure networking, install dependencies, set up PostgreSQL, and deploy the FastAPI application using Terraform for IaC and Docker Compose for app orchestration.

Requirements

Functional

  • Provision Hetzner Cloud CPX11 VPS (2 CPU, 4GB RAM, 40GB NVMe, Ubuntu 22.04).
  • Configure firewall rules (SSH from allowed IPs, HTTP/HTTPS public).
  • Install PostgreSQL 15 with automated backups to Hetzner storage volume.
  • Configure Nginx as reverse proxy with SSL via Let's Encrypt/Certbot.
  • Deploy FastAPI app, Streamlit dashboard, and Nginx via Docker Compose.

Technical

  • IaC: Terraform configuration in infra/terraform/.
  • Docker Compose: Production docker-compose.prod.yml.
  • Secrets: Managed via environment variables (no secrets in code).
  • Monitoring: Systemd logs for all services.

Acceptance Criteria

  • terraform apply provisions VPS and networking.
  • docker-compose up starts all services.
  • GET /health returns 200 from public URL.
  • SSL certificate is valid.
  • PostgreSQL backups run on schedule.

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions