Update docs with a traefik configuration
This commit is contained in:
parent
6045f4a426
commit
843c1e5193
1 changed files with 126 additions and 1 deletions
|
@ -11,7 +11,132 @@ menu:
|
||||||
# Full docker example
|
# Full docker example
|
||||||
|
|
||||||
This docker compose configuration will run Vikunja with backend and frontend with a mariadb as database.
|
This docker compose configuration will run Vikunja with backend and frontend with a mariadb as database.
|
||||||
It uses an nginx container to proxy backend and frontend into a single port.
|
It uses an nginx container or traefik on the host to proxy backend and frontend into a single port.
|
||||||
|
|
||||||
|
For all available configuration options, see [configuration]({{< ref "config.md">}}).
|
||||||
|
|
||||||
|
## Example with traefik
|
||||||
|
|
||||||
|
This example assumes [traefik](https://traefik.io) in version 1 installed and configured to [use docker as a configuration provider](https://docs.traefik.io/v1.7/configuration/backends/docker/).
|
||||||
|
|
||||||
|
### Without redis
|
||||||
|
|
||||||
|
{{< highlight yaml >}}
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
api:
|
||||||
|
image: vikunja/api
|
||||||
|
environment:
|
||||||
|
VIKUNJA_DATABASE_HOST: db
|
||||||
|
VIKUNJA_DATABASE_PASSWORD: supersecret
|
||||||
|
VIKUNJA_DATABASE_TYPE: mysql
|
||||||
|
VIKUNJA_DATABASE_USER: vikunja
|
||||||
|
VIKUNJA_DATABASE_DATABASE: vikunja
|
||||||
|
networks:
|
||||||
|
- web
|
||||||
|
- default
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.docker.network=web"
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.frontend.rule=Host:vikunja.example.com;PathPrefix:/api/v1"
|
||||||
|
- "traefik.port=3456"
|
||||||
|
- "traefik.protocol=http"
|
||||||
|
frontend:
|
||||||
|
image: vikunja/frontend
|
||||||
|
labels:
|
||||||
|
- "traefik.docker.network=web"
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.frontend.rule=Host:vikunja.example.com;PathPrefix:/"
|
||||||
|
- "traefik.port=80"
|
||||||
|
- "traefik.protocol=http"
|
||||||
|
networks:
|
||||||
|
- web
|
||||||
|
- default
|
||||||
|
restart: unless-stopped
|
||||||
|
db:
|
||||||
|
image: mariadb:10
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: supersupersecret
|
||||||
|
MYSQL_USER: vikunja
|
||||||
|
MYSQL_PASSWORD: supersecret
|
||||||
|
MYSQL_DATABASE: vikunja
|
||||||
|
volumes:
|
||||||
|
- ./db:/var/lib/mysql
|
||||||
|
restart: unless-stopped
|
||||||
|
command: --max-connections=1000
|
||||||
|
|
||||||
|
networks:
|
||||||
|
web:
|
||||||
|
external: true
|
||||||
|
{{< /highlight >}}
|
||||||
|
|
||||||
|
### Without redis
|
||||||
|
|
||||||
|
{{< highlight yaml >}}
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
api:
|
||||||
|
image: vikunja/api
|
||||||
|
environment:
|
||||||
|
VIKUNJA_DATABASE_HOST: db
|
||||||
|
VIKUNJA_DATABASE_PASSWORD: supersecret
|
||||||
|
VIKUNJA_DATABASE_TYPE: mysql
|
||||||
|
VIKUNJA_DATABASE_USER: vikunja
|
||||||
|
VIKUNJA_DATABASE_DATABASE: vikunja
|
||||||
|
VIKUNJA_REDIS_ENABLED: 1
|
||||||
|
VIKUNJA_REDIS_HOST: 'redis:6379'
|
||||||
|
VIKUNJA_CACHE_ENABLED: 1
|
||||||
|
VIKUNJA_CACHE_TYPE: redis
|
||||||
|
networks:
|
||||||
|
- web
|
||||||
|
- default
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- "traefik.docker.network=web"
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.frontend.rule=Host:vikunja.example.com;PathPrefix:/api/v1"
|
||||||
|
- "traefik.port=3456"
|
||||||
|
- "traefik.protocol=http"
|
||||||
|
frontend:
|
||||||
|
image: vikunja/frontend
|
||||||
|
labels:
|
||||||
|
- "traefik.docker.network=web"
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.frontend.rule=Host:vikunja.example.com;PathPrefix:/"
|
||||||
|
- "traefik.port=80"
|
||||||
|
- "traefik.protocol=http"
|
||||||
|
networks:
|
||||||
|
- web
|
||||||
|
- default
|
||||||
|
restart: unless-stopped
|
||||||
|
db:
|
||||||
|
image: mariadb:10
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: supersupersecret
|
||||||
|
MYSQL_USER: vikunja
|
||||||
|
MYSQL_PASSWORD: supersecret
|
||||||
|
MYSQL_DATABASE: vikunja
|
||||||
|
volumes:
|
||||||
|
- ./db:/var/lib/mysql
|
||||||
|
restart: unless-stopped
|
||||||
|
command: --max-connections=1000
|
||||||
|
redis:
|
||||||
|
image: redis
|
||||||
|
|
||||||
|
networks:
|
||||||
|
web:
|
||||||
|
external: true
|
||||||
|
{{< /highlight >}}
|
||||||
|
|
||||||
|
## Example with nginx as proxy
|
||||||
|
|
||||||
You'll need to save this nginx configuration on your host under `nginx.conf`
|
You'll need to save this nginx configuration on your host under `nginx.conf`
|
||||||
(or elsewhere, but then you'd need to adjust the proxy mount at the bottom of the compose file):
|
(or elsewhere, but then you'd need to adjust the proxy mount at the bottom of the compose file):
|
||||||
|
|
Loading…
Reference in a new issue