Skip to content

A complete guide from zero to deployed application, including VPS setup.

  • A VPS with Ubuntu/Debian (fresh install recommended)
  • SSH access as root
  • A domain pointing to your VPS
  • slipp installed locally
  1. SSH to your VPS as root

    Terminal window
    ssh root@your-server-ip
  2. Update system packages

    Terminal window
    apt update && apt upgrade -y
  3. Install required packages

    Terminal window
    apt install -y python3 python3-pip docker.io docker-compose-v2
    systemctl enable --now docker
  4. Create slipp service account

    From your local machine:

    Terminal window
    slipp bootstrap account your-server-ip

    This creates a slipp user with:

    • SSH key access (copied from root)
    • Passwordless sudo
    • Verified connectivity
  1. Navigate to your project

    Terminal window
    cd your-project
  2. Run launch

    Terminal window
    slipp launch --name myapp
  3. Answer the prompts

    • Host IP: Your VPS IP address
    • SSH User: slipp (created by bootstrap)
    • Domain: Your domain (e.g., app.example.com)
  4. 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
  1. Generate secrets for vault references

    Terminal window
    slipp secrets sync inventory/host_vars/myserver/vars.yml
  2. Encrypt the vault

    Terminal window
    ansible-vault encrypt inventory/host_vars/myserver/vault.yml

    Choose a strong password and save it securely.

  1. Install Ansible roles (if requirements.yml exists)

    Terminal window
    ansible-galaxy install -r requirements.yml
  2. Run deployment

    Terminal window
    slipp deploy

    Enter your vault password when prompted.

  3. Verify deployment

    Terminal window
    slipp ps

    You should see your service running:

    name project host state uptime
    myapp myapp myserver running 1m
Terminal window
slipp logs myapp -f

Open https://your-domain.com in a browser.

Terminal window
# Check container status
slipp exec "docker ps -a"
# Check container logs directly
slipp exec "docker logs myapp"
# SSH for deeper debugging
slipp ssh

Now that your app is deployed:

After making changes:

Terminal window
# Redeploy everything
slipp deploy
# Use tag preset for specific changes
slipp deploy restart

Create tag presets for common operations:

Terminal window
slipp tags add restart --tags restart
slipp tags add update --tags update-app