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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions