Deploy Docker Containers
to Your VPS
Push your code. DeployWise detects your Dockerfile or docker-compose.yml, builds the image on your server, and runs it with automatic port mapping, health checks, and SSL. No Docker Hub required.
How it works
Push your code
Push to GitHub. DeployWise detects a Dockerfile or docker-compose.yml in your repository root automatically.
Build on your server
DeployWise SSHs into your VPS, pulls the latest code, and runs docker build. No external registries needed — everything stays on your server.
Live in seconds
Your container starts with the correct port mapping, environment variables, and Nginx reverse proxy. SSL is configured automatically.
What DeployWise handles
Everything between your git push and a running production container — automated.
Dockerfile detection
DeployWise scans your repo for Dockerfile, Dockerfile.prod, or docker-compose.yml and picks the right build strategy automatically.
docker-compose support
Multi-service stacks just work. Define your app, database, and cache in docker-compose.yml and DeployWise orchestrates the entire stack.
Port mapping
Expose the correct port from your container to the host. DeployWise reads EXPOSE directives or your compose ports and configures Nginx accordingly.
Health checks
Define health check endpoints in your Dockerfile or compose file. DeployWise monitors container health and restarts unhealthy containers automatically.
Auto-restart
Containers are configured with restart: unless-stopped by default. If your container crashes at 3 AM, it comes back up without intervention.
Zero-downtime deploys
New containers start alongside the old one. Traffic switches over only after the new container passes health checks. No dropped requests.
docker-compose.yml support
Drop a docker-compose.yml in your repo and DeployWise handles the rest. Here's an example for a Next.js app with a PostgreSQL database:
version: "3.8"
services:
app:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://user:pass@db:5432/myapp
- NODE_ENV=production
depends_on:
db:
condition: service_healthy
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
interval: 30s
timeout: 5s
retries: 3
db:
image: postgres:16-alpine
volumes:
- pgdata:/var/lib/postgresql/data
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pass
- POSTGRES_DB=myapp
healthcheck:
test: ["CMD-SHELL", "pg_isready -U user"]
interval: 10s
timeout: 5s
retries: 5
volumes:
pgdata:Why not Docker Hub + manual SSH?
You could push to Docker Hub and SSH in to pull and restart. But that means writing scripts, managing secrets, and debugging at 2 AM. Here's what you get with DeployWise instead:
| Feature | Manual SSH | DeployWise |
|---|---|---|
| Push-to-deploy | ||
| Automatic SSL | ||
| Nginx reverse proxy | ||
| Health check monitoring | ||
| Rollback to previous version | ||
| Zero-downtime deploys | ||
| Environment variable management | ||
| Deployment logs and history | ||
| Docker Hub account required | ||
| Custom shell scripts |
Supported configurations
DeployWise works with any Docker-based project. Here are the most common setups:
Dockerfile
Single-service apps. DeployWise runs docker build, maps your exposed port, and starts the container with auto-restart.
docker-compose.yml
Multi-service stacks. Define your app, database, cache, and any other service. DeployWise runs docker compose up -d.
Multi-stage builds
Production-optimized images. Use multi-stage Dockerfiles to keep final images small and build dependencies out of the runtime.
Deploy your Docker app today
Sign in with GitHub, add your VPS, and deploy any Docker-based project in minutes. Free forever, open source.