@ish86/provision-vps
v1.0.0
Published
One-command VPS provisioning: Docker + Nginx + SSL + auto-deploy. Zero config.
Maintainers
Readme
provision-vps
One command to provision a fresh Linux VPS with everything you need to deploy web apps:
- Docker + Docker Compose plugin
- Nginx (reverse proxy to your app)
- SSL via Certbot (auto-renewing)
- UFW firewall (SSH + HTTP + HTTPS only)
- Deploy user with SSH access
- GitHub Actions auto-deploy on
git push main
Usage
DOMAIN=example.com [email protected] bash -c "$(curl -fsSL https://raw.githubusercontent.com/ish86/provision-vps/main/provision.sh)"Variables
| Variable | Required | Default | Description |
|-------------|----------|-----------|---------------------------|
| DOMAIN | Yes | — | Your domain name |
| EMAIL | Yes | — | For Let's Encrypt / SSL |
| GITHUB_REPO | No | — | Auto-deploy on push |
| DEPLOY_USER | No | deploy | System user for deploys |
| APP_DIR | No | /opt/app | Application directory |
After provisioning
- Place your app's
docker-compose.ymlinAPP_DIR(/opt/app) - Your app should listen on port 3000 (or edit the nginx config)
- Push to
main→ auto-deploys to your VPS
What it does
apt update/upgrade → Docker → Docker Compose → Nginx → UFW → Certbot SSL → Nginx config → GitHub Actions → DoneWhy
Provisioning a VPS manually takes 30+ minutes and 20 commands. This does it in one command, repeatable, every time.
