Deploy Wrapp0r using Docker containers.
# From the project root
cd docker
# Copy environment config
cp .env.example .env
# Build images
docker compose build
# Start containers
docker compose up -dAccess the app at http://localhost
| Container | Image | Port | Description |
|---|---|---|---|
| wrapp0r-web | wrapp0r/web:latest | 80 | Nginx serving React frontend |
| wrapp0r-server | wrapp0r/server:latest | 3001 | Node.js API + video rendering |
The web container proxies /api/* requests to the server.
Edit .env or pass variables inline:
# Use custom ports
WEB_PORT=8080 SERVER_PORT=3002 docker compose up -d
# Set CORS for production
CORS_ORIGIN=https://your-domain.com docker compose up -dAvailable variables:
| Variable | Default | Description |
|---|---|---|
| WEB_PORT | 80 | Frontend port |
| SERVER_PORT | 3001 | API port |
| CORS_ORIGIN | * | Allowed CORS origins |
# Build images
docker compose build
# Build without cache (fresh build)
docker compose build --no-cache
# Start containers
docker compose up -d
# View logs
docker compose logs -f
# View specific service logs
docker compose logs -f server
# Check container status
docker compose ps
# Stop containers
docker compose down
# Stop and remove volumes
docker compose down -vBoth containers have health checks:
# Check container health
docker compose ps
# Manual health checks
curl http://localhost/health # Web
curl http://localhost:3001/api/health # ServerFor production, use the production compose file:
docker compose -f docker-compose.prod.yml up -dProduction features:
- Resource limits (CPU/memory)
- Log rotation
- Automatic restart
- HTTPS port exposure (443)
| Service | Memory | Notes |
|---|---|---|
| web | 256MB | Static file serving |
| server | 2-4GB | Video rendering needs memory |
- Obtain SSL certificates
- Mount in web container
- Update
nginx.confwith SSL config
# Use different ports
SERVER_PORT=3002 docker compose up -d- Ensure server has at least 2GB RAM
- Check Chromium:
docker exec wrapp0r-server chromium --version
# Check logs
docker compose logs server
docker compose logs webdocker compose build --no-cache
docker compose up -ddocker/
├── DOCKER.md # This file
├── .env.example # Environment template
├── docker-compose.yml # Development config
├── docker-compose.prod.yml# Production config
├── Dockerfile.web # Frontend image
├── Dockerfile.server # API server image
└── nginx.conf # Nginx configuration