First Deployment
A complete guide from zero to deployed application, including VPS setup.
Prerequisites
Section titled “Prerequisites”- A VPS with Ubuntu/Debian (fresh install recommended)
- SSH access as root
- A domain pointing to your VPS
- slipp installed locally
VPS Setup
Section titled “VPS Setup”-
SSH to your VPS as root
Terminal window ssh root@your-server-ip -
Update system packages
Terminal window apt update && apt upgrade -y -
Install required packages
Terminal window apt install -y python3 python3-pip docker.io docker-compose-v2systemctl enable --now docker -
Create slipp service account
From your local machine:
Terminal window slipp bootstrap account your-server-ipThis creates a
slippuser with:- SSH key access (copied from root)
- Passwordless sudo
- Verified connectivity
Generate Deployment
Section titled “Generate Deployment”-
Navigate to your project
Terminal window cd your-project -
Run launch
Terminal window slipp launch --name myapp -
Answer the prompts
- Host IP: Your VPS IP address
- SSH User:
slipp(created by bootstrap) - Domain: Your domain (e.g.,
app.example.com)
-
Review generated files
Directoryinventory/
- hosts
Directoryhost_vars/
Directorymyserver/
- vars.yml
- vault.yml
Directorygroup_vars/
- all.yml
Directoryroles/
Directorymyapp/
Directorytasks/
- …
Directorytemplates/
- …
- playbook.yml
- slipp.yaml
- Dockerfile
Configure Secrets
Section titled “Configure Secrets”-
Generate secrets for vault references
Terminal window slipp secrets sync inventory/host_vars/myserver/vars.yml -
Encrypt the vault
Terminal window ansible-vault encrypt inventory/host_vars/myserver/vault.ymlChoose a strong password and save it securely.
Deploy
Section titled “Deploy”-
Install Ansible roles (if requirements.yml exists)
Terminal window ansible-galaxy install -r requirements.yml -
Run deployment
Terminal window slipp deployEnter your vault password when prompted.
-
Verify deployment
Terminal window slipp psYou should see your service running:
name project host state uptimemyapp myapp myserver running 1m
Verify
Section titled “Verify”Check logs
Section titled “Check logs”slipp logs myapp -fTest the application
Section titled “Test the application”Open https://your-domain.com in a browser.
Debug issues
Section titled “Debug issues”# Check container statusslipp exec "docker ps -a"
# Check container logs directlyslipp exec "docker logs myapp"
# SSH for deeper debuggingslipp sshCommon Issues
Section titled “Common Issues”What’s Next?
Section titled “What’s Next?”Now that your app is deployed:
- Local Development - Develop locally with remote infrastructure
- Secrets Management - Manage sensitive configuration
- Container Images - Push images without a registry
Redeployment
Section titled “Redeployment”After making changes:
# Redeploy everythingslipp deploy
# Use tag preset for specific changesslipp deploy restartCreate tag presets for common operations:
slipp tags add restart --tags restartslipp tags add update --tags update-app