Quick Start
Deploy your Symfony app in 5 minutes
Prerequisites
- A Symfony project
- Docker installed locally
- A VPS with SSH access (for production deployment)
Step 1: Initialize Your Project
Navigate to your Symfony project and run:
cd my-symfony-app
frankendeploy init
You can also specify your production domain directly:
frankendeploy init --domain my-app.com
FrankenDeploy will:
- Detect your PHP version
- Identify required extensions
- Find your database configuration
- Detect your asset build system
This creates a frankendeploy.yaml configuration file.
Step 2: Generate Docker Files
frankendeploy build
This generates:
Dockerfile- Multi-stage build with FrankenPHPdocker-compose.yaml- Development environmentdocker-compose.prod.yaml- Production template.dockerignore- Optimized ignore patterns
Step 3: Start Local Development
frankendeploy dev up
Your app is now running at http://localhost:8000
Other dev commands:
frankendeploy dev logs # View logs
frankendeploy dev down # Stop environment
frankendeploy dev restart # Restart
Step 4: Configure a Server
Add your VPS to FrankenDeploy:
frankendeploy server add production deploy@your-vps.com
FrankenDeploy will automatically test the SSH connection and find the right key.
Options:
--port 2222- Custom SSH port (default: 22)--key ~/.ssh/id_rsa- SSH private key path (auto-detected if not specified)--skip-test- Skip SSH connection test
Then set up the server (installs Docker, Caddy, etc.):
frankendeploy server setup production --email admin@example.com
The --email is required for Let’s Encrypt SSL certificates.
Step 5: Configure Environment Variables
Set your production secrets for this application (run from your project directory):
frankendeploy env set production DATABASE_URL="postgresql://user:pass@host/db"
frankendeploy env set production APP_SECRET="your-secret-key"
Or push a local .env.prod file:
frankendeploy env push production .env.prod
Step 6: Deploy
frankendeploy deploy production --remote-build
The --remote-build flag builds the Docker image directly on the server (recommended for Apple Silicon Macs).
That’s it! Your Symfony app is now live with:
- FrankenPHP worker mode for performance
- Automatic HTTPS via Caddy
- Health checks and rollback support
Common Operations
View Production Logs
frankendeploy logs production
Execute Commands
frankendeploy exec production php bin/console cache:clear
Open Shell
frankendeploy shell production
Rollback
frankendeploy rollback production
Update Environment Variables (Zero Downtime)
Update an environment variable for your application and apply it immediately:
frankendeploy env set production NEW_VAR=value --reload
Next Steps
- Environment Variables - Managing secrets and configuration
- Configuration Guide - Customize your setup
- Deployment Guide - Advanced deployment options