From a blank VPS to a production-ready pip0 instance with SSL — ~30 minutes.
Prerequisites
pip0| Setting | Value |
|---|---|
| Location | Pick closest to you |
| Image | Ubuntu 24.04 |
| Type | Shared CPU → CX22 (2 vCPU, 4 GB RAM) |
| Networking | Public IPv4 ✅ |
| SSH keys | Add your public key (recommended) |
| Name | pip0-server |
In Hetzner Console → Firewalls → Create Firewall:
| Direction | Protocol | Port | Source |
|---|---|---|---|
| Inbound | TCP | 22 | Your IP (SSH) |
| Inbound | TCP | 80 | Any (HTTP — for Certbot) |
| Inbound | TCP | 443 | Any (HTTPS) |
| Inbound | TCP | 8080 | Any (pip0 — until SSL is set up) |
Apply the firewall to your pip0-server.
ssh root@YOUR_SERVER_IP
apt-get update && apt-get upgrade -y
curl -fsSL https://get.docker.com | sh
Verify:
docker --version docker compose version
In your DNS provider, add an A record:
| Name | Type | Value |
|---|---|---|
| pip0.yourdomain.com | A | YOUR_SERVER_IP |
http://YOUR_SERVER_IP:8080 instead, but HTTPS is required for webhooks from external services (Stripe, WhatsApp, etc.) to work reliably.On your local machine, go to pip0.ai/setup and complete the wizard:
http://pip0.yourdomain.comhttp://YOUR_SERVER_IPpip0-setup.zipTransfer the ZIP to your server:
scp pip0-setup.zip root@YOUR_SERVER_IP:/root/
On the server:
cd /root unzip pip0-setup.zip cd pip0-setup
Log in to the pip0 registry:
docker login registry.pip0.ai # Username: your purchase email # Password: your license key
Start pip0:
docker compose up -d
docker compose logs -f pip0Once started, open:
http://YOUR_SERVER_IP:8080/sign-up
Create your admin account. This triggers the piece filter — your selected integrations are applied after sign-up.
Skip this section if using IP-only access.
Install nginx and Certbot
apt-get install -y nginx certbot python3-certbot-nginx
Create nginx config
cat > /etc/nginx/sites-available/pip0 << 'EOF'
server {
listen 80;
server_name pip0.yourdomain.com;
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
proxy_read_timeout 300s;
proxy_connect_timeout 300s;
}
}
EOFEnable the site
ln -s /etc/nginx/sites-available/pip0 /etc/nginx/sites-enabled/ nginx -t systemctl reload nginx
Issue SSL certificate
certbot --nginx -d pip0.yourdomain.com
Update pip0 environment
cd /root/pip0-setup sed -i 's|AP_FRONTEND_URL=.*|AP_FRONTEND_URL=https://pip0.yourdomain.com|' .env
AP_INTERNAL_URL — it must stay as http://localhost:3000. This is the internal engine callback URL, unrelated to your public domain.docker compose down && docker compose up -d
Your instance is now live at https://pip0.yourdomain.com.
restart: unless-stopped is already set in the generated docker-compose.yml — no extra configuration needed. pip0 restarts automatically after a server reboot.
Troubleshooting
pip0 not loading after docker compose up -d
Wait 2–5 minutes for first boot. Check logs: docker compose logs -f pip0
502 Bad Gateway from nginx
pip0 is still starting. Run docker compose ps — all 3 containers (pip0, postgres, redis) must be Up.
Piece filter not applied after sign-up
Check logs for [post-install] Platform row found. Running SQL... — if absent, wait a moment after sign-up and check again.
docker login fails
Use your license key (UUID from welcome email) as the password — not your pip0.ai account password.
Lost your .env file
Re-run the wizard at pip0.ai/setup. ⚠ New secrets will be generated — back up your DB first: docker compose exec postgres pg_dump -U postgres postgres > backup.sql
Maintenance
Update pip0:
cd /root/pip0-setup docker compose pull docker compose down && docker compose up -d
Back up your database:
docker compose exec postgres pg_dump -U postgres postgres > pip0-backup-$(date +%Y%m%d).sql
View logs:
docker compose logs -f pip0
Need help getting set up?
📅 Book a free 20-min onboarding call