This guide walks you through deploying StaticSend on Coolify using GitHub Container Registry.
- Coolify instance running
- GitHub repository with StaticSend code
- Domain name (optional but recommended)
- Push your code to GitHub if not already done
- Enable GitHub Actions (should be automatic)
- Verify workflow runs successfully in Actions tab
- Check packages tab for published Docker images at
ghcr.io/yourusername/staticsend
- In Coolify dashboard, click "+ New Resource"
- Select "Public Repository"
- Enter your GitHub repository URL
- Choose "Dockerfile" as build pack
- Set branch to
main
- Name:
staticsend - Port:
8080 - Health Check Path:
/health - Health Check Port:
8080
Add these environment variables in Coolify:
JWT_SECRET_KEY=your-very-secure-random-string-change-this-immediately
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USERNAME=your-email@gmail.com
EMAIL_PASSWORD=your-app-specific-password
EMAIL_FROM=noreply@yourdomain.com
EMAIL_USE_TLS=true
TURNSTILE_PUBLIC_KEY=your-cloudflare-turnstile-public-key
TURNSTILE_SECRET_KEY=your-cloudflare-turnstile-secret-key
PORT=8080
DATABASE_PATH=/app/data/staticsend.db
REGISTRATION_ENABLED=true
- Go to "Storages" tab in your Coolify resource
- Click "+ Add Storage"
- Configure:
- Name:
staticsend-data - Mount Path:
/app/data - Host Path:
/var/lib/coolify/staticsend/data(or your preferred path)
- Name:
- Go to "Domains" tab
- Click "+ Add Domain"
- Enter your domain name
- Enable "Generate SSL Certificate"
- Configure DNS to point to your Coolify server
- Click "Deploy" button
- Monitor deployment logs
- Wait for health check to pass
- Access your application at the configured domain
curl https://yourdomain.com/health
# Should return: OK- Visit your domain
- Try registering a new account
- Create a test form
- Submit a test form submission
- Check email notifications
Once configured, Coolify will automatically:
- Watch for changes to
mainbranch - Pull new Docker images from GitHub Container Registry
- Deploy updates with zero downtime
- Run health checks before switching traffic
- Check build logs in Coolify
- Verify Dockerfile syntax
- Ensure all required files are in repository
- Verify port 8080 is exposed
- Check application startup logs
- Ensure
/healthendpoint is accessible
- Verify persistent storage is mounted to
/app/data - Check file permissions on host system
- Review migration logs in application logs
- Test SMTP credentials manually
- Check firewall rules for outbound SMTP
- Verify email service configuration
- Always use strong, unique JWT secret keys
- Use app-specific passwords for email accounts
- Keep Turnstile keys secure and domain-specific
- Regularly update Docker images for security patches
- Monitor application logs for suspicious activity
# On Coolify host
cp /var/lib/coolify/staticsend/data/staticsend.db /backup/location/Consider setting up automated backups of the /app/data directory using your preferred backup solution.