# project_alpha/config/deploy.yml
-weight: 500;">service: project-alpha
image: your_docker_username/project-alpha servers: web: - 192.168.1.100 # Your Server IP proxy: ssl: true host: project-alpha.com registry: # ... your -weight: 500;">docker registry credentials
# project_alpha/config/deploy.yml
-weight: 500;">service: project-alpha
image: your_docker_username/project-alpha servers: web: - 192.168.1.100 # Your Server IP proxy: ssl: true host: project-alpha.com registry: # ... your -weight: 500;">docker registry credentials
# project_alpha/config/deploy.yml
-weight: 500;">service: project-alpha
image: your_docker_username/project-alpha servers: web: - 192.168.1.100 # Your Server IP proxy: ssl: true host: project-alpha.com registry: # ... your -weight: 500;">docker registry credentials
kamal setup
kamal setup
kamal setup
# project_beta/config/deploy.yml
-weight: 500;">service: project-beta
image: your_docker_username/project-beta servers: web: - 192.168.1.100 # The EXACT SAME IP proxy: ssl: true host: project-beta.com
# project_beta/config/deploy.yml
-weight: 500;">service: project-beta
image: your_docker_username/project-beta servers: web: - 192.168.1.100 # The EXACT SAME IP proxy: ssl: true host: project-beta.com
# project_beta/config/deploy.yml
-weight: 500;">service: project-beta
image: your_docker_username/project-beta servers: web: - 192.168.1.100 # The EXACT SAME IP proxy: ssl: true host: project-beta.com
# project_alpha/config/deploy.yml
-weight: 500;">service: project-alpha # The Web server stays on Node 1
servers: web: - 192.168.1.100 # The Database moves to Node 2
accessories: db: image: postgres:15 host: 192.168.1.200 # Your NEW Server IP port: 5432 env: clear: POSTGRES_DB: project_alpha_prod POSTGRES_USER: admin secret: - POSTGRES_PASSWORD files: - db_data:/var/lib/postgresql/data
# project_alpha/config/deploy.yml
-weight: 500;">service: project-alpha # The Web server stays on Node 1
servers: web: - 192.168.1.100 # The Database moves to Node 2
accessories: db: image: postgres:15 host: 192.168.1.200 # Your NEW Server IP port: 5432 env: clear: POSTGRES_DB: project_alpha_prod POSTGRES_USER: admin secret: - POSTGRES_PASSWORD files: - db_data:/var/lib/postgresql/data
# project_alpha/config/deploy.yml
-weight: 500;">service: project-alpha # The Web server stays on Node 1
servers: web: - 192.168.1.100 # The Database moves to Node 2
accessories: db: image: postgres:15 host: 192.168.1.200 # Your NEW Server IP port: 5432 env: clear: POSTGRES_DB: project_alpha_prod POSTGRES_USER: admin secret: - POSTGRES_PASSWORD files: - db_data:/var/lib/postgresql/data - You can launch unlimited MVPs on a single cheap server.
- The proxy handles routing and SSL automatically.
- When an app gets traction, you just add another server IP to your deploy.yml and scale horizontally.