Simple, zero-downtime deployments without the complexity of traditional CI/CD pipelines.
📦 Single binary installation
✨ Simple YAML configuration
🔐 Automated SSL/TLS management
🐳 Registry-optional Docker deployment
🚀 Zero-downtime updates
🗄️ Database provisioning included
project:
name: my-project
domain: my-project.example.com
email: [email protected]
servers:
- host: my-project.example.com
port: 22
user: my-project
ssh_key: ~/.ssh/id_rsa
services:
- name: my-app
image: my-app:latest
port: 80
health_check:
path: /
interval: 10s
timeout: 5s
retries: 3
routes:
- path: /
strip_prefix: false
dependencies:
- name: postgres
image: postgres:16
volumes:
- postgres_data:/var/lib/postgresql/data
env:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_USER=${POSTGRES_USER:-postgres}
- POSTGRES_DB=${POSTGRES_DB:-app}
FTL is a deployment tool that uses SSH to manage Docker containers on remote servers. It's a single binary that handles deployment without requiring a container registry or CI/CD pipeline.
FTL executes Docker commands over SSH, handling image builds, container deployment, and infrastructure configuration. It manages Nginx routing, Let's Encrypt certificates, health checks, and database containers with persistent storage.
FTL is optimal for deployments to 1-5 servers where direct SSH access is available. Not suitable for distributed systems or multi-region deployments.