Skip to content

Transfer container images directly to your VPS without a registry. slipp handles runtime detection (Docker/Podman) automatically.

Transfer a local image to your VPS:

Terminal window
slipp image push myapp:latest

This:

  1. Exports the image locally
  2. Streams it over SSH
  3. Loads it on the VPS
Terminal window
slipp image push myapp:v1.2.3 --name myapp:latest

Useful for promoting versions without rebuilding.

Terminal window
slipp image push myapp:latest --host myproject

View images on your VPS:

Terminal window
slipp images list

Output:

image size created
myapp:latest 245MB 2 hours ago
myapp:v1.2.3 245MB 3 days ago
postgres:15 379MB 2 weeks ago
Terminal window
slipp images list --filter "myapp*"
  1. Build locally

    Terminal window
    docker build -t myapp:v1.2.3 .
    # or
    podman build -t myapp:v1.2.3 .
  2. Push to VPS

    Terminal window
    slipp image push myapp:v1.2.3
  3. Update deployment

    Edit your compose or vars file to use the new tag.

  4. Redeploy

    Terminal window
    slipp deploy

slipp automatically detects the container runtime:

LocationDetection
LocalChecks if image exists in Podman, then Docker
RemoteReads from slipp.yaml or detects from playbook

For pulling images from registries on your VPS:

Terminal window
slipp bootstrap registry ghcr --user myuser

Uses GITHUB_TOKEN env var or prompts for token.

Terminal window
slipp bootstrap registry dockerhub --user myuser

Uses DOCKER_TOKEN env var or prompts for token.

Push local changes without CI/CD:

Terminal window
# Build with changes
docker build -t myapp:dev .
# Push and restart
slipp image push myapp:dev
slipp exec "docker compose restart myapp"

Keep multiple versions, rollback by tag:

Terminal window
slipp images list --filter "myapp*"
# Shows: myapp:v1.2.3, myapp:v1.2.2, myapp:v1.2.1
# Update compose to use v1.2.2
slipp deploy

No registry needed - direct SSH transfer:

Terminal window
slipp image push myapp:latest --host isolated-server