Updating PiVPN Web is a straightforward process: stop and remove the running container, pull the latest image from Docker Hub, and start a new container with the same configuration. Because the application is fully stateless at the image level (all runtime state lives in the SQLite database), no application data is lost during an update as long as the database file is persisted on the host.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/AZhur771/pivpn-web/llms.txt
Use this file to discover all available pages before exploring further.
Updating with docker run
Run the following commands in order to update a container that was started withdocker run:
Updating with Docker Compose
If you are using Docker Compose, updating is a two-command operation:docker compose pull fetches the latest image for every service defined in your docker-compose.yml. docker compose up -d recreates any containers whose image has changed, leaving containers with unchanged images untouched.
To persist the database when using Compose, create the database file on the host first, then add a volume mount to your docker-compose.yml:
Image tags and version pinning
Docker Hub images for PiVPN Web are published with semver tags (e.g.andrew771/pivpn-web:1.1.2) automatically by the GitHub Actions workflow whenever a new version tag is pushed. The latest tag always points to the most recent release.
| Tag | Behaviour |
|---|---|
andrew771/pivpn-web / andrew771/pivpn-web:latest | Always pulls the most recent release. Easiest to keep up to date. |
andrew771/pivpn-web:1.1.2 | Pinned to a specific release. Update by changing the tag explicitly. |
Checking the currently running version
To see the image metadata for the running container, including the version label applied by the build pipeline:docker/metadata-action step in the CI workflow.