Operations

Start, stop, update, and troubleshoot Password Pusher Pro Self-Hosted with Docker Compose—tags, logs, shell, and Rails console.

This article applies to: Pro Self-Hosted (Docker Compose)

Quick reference for day-to-day tasks. Run all commands from the directory that contains your docker-compose.yml (the folder created by your install). The application service is named pwpush-pro in the default compose files.


Start, stop, restart

Task Command
Start (detached) docker compose up -d
Stop (keeps containers) docker compose stop
Stop & remove containers docker compose down
Restart app only docker compose restart pwpush-pro
Status docker compose ps

After up -d, allow a short time for the app to boot before hitting the URL. If the container exits, check logs first.


Docker image tags (latest vs stable)

Compose files from install typically reference registry/...:latest. Tags work the same way as on the OSS image family:

Tag Use
latest Most recently published release. Good for staying current; run updates on your schedule.
stable When published for your image, points at a proven release—prefer for production if you want fewer moving targets.
Version pin (e.g. v1.2.3) Maximum predictability; you choose when to bump.

Version list: We’re still working on a way to publicly list Self-Hosted Pro image tags/releases. Until then, latest (and stable when published) remain the practical options for most installs.

To switch tags, edit the image: line in docker-compose.yml, then docker compose pull and docker compose up -d (see below).


Update the application

  1. Backup — Especially before major upgrades. See Backups.
  2. Pull new images
    docker compose pull
    
  3. Recreate containers
    docker compose up -d
    

    Compose recreates only what changed. Migrations run on boot as needed.

  4. Verify
    docker compose ps
    docker compose logs --tail=50 pwpush-pro
    

If you use a pinned tag, change the tag in docker-compose.yml first, then pull + up -d.

Air-gapped hosts cannot docker compose pull. Transfer new image tarballs from a connected machine, docker load, then docker compose up -d. See Air-gapped / offline.

Downtime: up -d may briefly replace the app container. Plan a maintenance window if you require zero downtime.


Logs

Task Command
App log (last lines) docker compose logs --tail=100 pwpush-pro
Follow app log docker compose logs -f pwpush-pro
All services docker compose logs
Enterprise only — Postgres docker compose logs postgres

Boot code and startup errors usually appear in pwpush-pro logs right after up or restart.


Shell inside the container

Interactive shell in the app container:

docker compose exec pwpush-pro bash

If bash is unavailable, use sh:

docker compose exec pwpush-pro sh

Use this for one-off file inspection or debugging. Prefer docker compose exec pwpush-pro <command> for single commands so you don’t leave a shell open.


Rails console

Open a Rails console inside the running app container:

docker compose exec pwpush-pro bin/rails console

Same pattern works for runner (non-interactive):

docker compose exec pwpush-pro bin/rails runner "puts Rails.version"

For general console usage and safety, see Application console.