Docker Container
Image Usage
The preferred way to start WireGuard Portal as Docker container is to use Docker Compose.
A sample docker-compose.yml:
version: '3.6'
services:
wg-portal:
image: wgportal/wg-portal:v2
restart: unless-stopped
cap_add:
- NET_ADMIN
network_mode: "host"
ports:
- "8888:8888"
volumes:
- /etc/wireguard:/etc/wireguard
- ./data:/app/data
- ./config:/app/config
By default, the webserver is listening on port 8888.
Volumes for /app/data
and /app/config
should be used ensure data persistence across container restarts.
Image Versioning
All images are hosted on Docker Hub at https://hub.docker.com/r/wgportal/wg-portal. There are three types of tags in the repository:
Semantic versioned tags
For example, 1.0.19
.
These are official releases of WireGuard Portal. They correspond to the GitHub tags that we make, and you can see the release notes for them here: https://github.com/h44z/wg-portal/releases.
Once these tags show up in this repository, they will never change.
For production deployments of WireGuard Portal, we strongly recommend using one of these tags, e.g. wgportal/wg-portal:1.0.19, instead of the latest or canary tags.
If you only want to stay at the same major or major+minor version, use either v[MAJOR]
or [MAJOR].[MINOR]
tags. For example v1
or 1.0
.
Version 1 is currently stable, version 2 is in development.
latest
This is the most recent build to master! It changes a lot and is very unstable.
We recommend that you don't use it except for development purposes.
Branch tags
For each commit in the master and the stable branch, a corresponding Docker image is build. These images use the master
or stable
tags.
Configuration
You can configure WireGuard Portal using a yaml configuration file. The filepath of the yaml configuration file defaults to /app/config/config.yml
. It is possible to override the configuration filepath using the environment variable WG_PORTAL_CONFIG.
By default, WireGuard Portal uses a SQLite database. The database is stored in /app/data/sqlite.db
.
You should mount those directories as a volume: - /app/data - /app/config
Configuration Options
All available YAML configuration options are available here.
A very basic example:
core:
admin_user: test@wg-portal.local
admin_password: secret
web:
external_url: http://localhost:8888
request_logging: true