🐳 Self Hosting with Docker¶
The Phantom API backend can be deployed using Docker for consistent and portable execution across different environments.
Features¶
- Containerized Backend: Complete backend API in a Docker container
- Persistent Storage: SQLite database persisted via Docker volumes
- Production Ready: Optimized multi-stage build for security and performance
- Multi-service Support: Backend, admin interface, and database
- Port Configuration: Configurable port mapping (default: 3000)
- Health Monitoring: Built-in health checks and logging
Docker Configuration¶
- Image publiée:
docker.io/salnika/phantom-api.dev:latest
- Base Image:
node:22-alpine
(pour build custom, voir Dockerfile) - Multi-stage Build: Optimisé pour la production avec build séparé (si build local)
- Sécurité: Exécution utilisateur non-root
- Volume Mapping:
/app/data
pour la persistance SQLite - Health Checks: Monitoring intégré
- Variables d'environnement: Configurables via
.env
Quick Start¶
Prerequisites¶
1. Environment Setup¶
⚠️ Critical: Update these values in .env
:
- JWT_SECRET
- Must be at least 32 characters
- ADMIN_EMAIL
- Your admin email
- ADMIN_PASSWORD
- Secure password
2. Build and Start¶
3. Verify Deployment¶
- Backend API: http://localhost:3000
- Admin Interface: http://localhost:3000/admin
- Health Check: http://localhost:3000/health
- API Documentation: http://localhost:3000/api/docs (if enabled)
Environment Configuration¶
Required Variables¶
Optional Variables¶
Environment-Specific Settings¶
Container Management¶
Basic Operations¶
Advanced Operations¶
Data Persistence¶
Database Management¶
Volume Management¶
Production Deployment¶
Security Checklist¶
- Changed
JWT_SECRET
to secure random string (32+ chars) - Updated
ADMIN_EMAIL
andADMIN_PASSWORD
- Reviewed
CORS_ORIGIN
for production domains - Set
NODE_ENV=production
- Configured HTTPS reverse proxy
- Set up automated backups
- Configured log rotation
- Verified health checks are passing
- Tested admin interface access
- Confirmed API endpoints respond correctly
- Validated database persistence
- Set up monitoring alerts
- Documented rollback procedures
Resource Configuration¶
Troubleshooting¶
Common Issues¶
Container won't start:
Permission denied:
Database connection failed:
API not responding: