diff --git a/docs/content/doc/setup/full-docker-example.md b/docs/content/doc/setup/full-docker-example.md index b02ebe11fb..f7427ca204 100644 --- a/docs/content/doc/setup/full-docker-example.md +++ b/docs/content/doc/setup/full-docker-example.md @@ -15,11 +15,34 @@ It uses an nginx container or traefik on the host to proxy backend and frontend For all available configuration options, see [configuration]({{< ref "config.md">}}). -## Example with traefik +### Redis -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/). +To use redis, you'll need to add this to the config examples below: -### Without redis +{{< highlight yaml >}} +version: '3' + +services: + api: + image: vikunja/api + environment: + VIKUNJA_REDIS_ENABLED: 1 + VIKUNJA_REDIS_HOST: 'redis:6379' + VIKUNJA_CACHE_ENABLED: 1 + VIKUNJA_CACHE_TYPE: redis + redis: + image: redis +{{< /highlight >}} + +## Example with traefik 2 + +This example assumes [traefik](https://traefik.io) version 2 installed and configured to [use docker as a configuration provider](https://docs.traefik.io/providers/docker/). + +We also make a few assumtions here which you'll most likely need to adjust for your traefik setup: + +* Your domain is `vikunja.example.com` +* The entrypoint you want to make vikunja available from is called `https` +* The tls cert resolver is called `acme` {{< highlight yaml >}} version: '3' @@ -42,19 +65,17 @@ services: - 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" + - "traefik.http.routers.vikunja-api.rule=Host(`vikunja.example.com`) && PathPrefix(`/api/v1`)" + - "traefik.http.routers.vikunja-api.entrypoints=https" + - "traefik.http.routers.vikunja-api.tls.certResolver=acme" 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" + - "traefik.http.routers.vikunja-frontend.rule=Host(`vikunja.example.com`)" + - "traefik.http.routers.vikunja-frontend.entrypoints=https" + - "traefik.http.routers.vikunja-frontend.tls.certResolver=acme" networks: - web - default @@ -76,7 +97,9 @@ networks: external: true {{< /highlight >}} -### With redis +## Example with traefik 1 + +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/). {{< highlight yaml >}} version: '3' @@ -90,10 +113,6 @@ services: 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 volumes: - ./files:/app/vikunja/files networks: @@ -101,7 +120,6 @@ services: - default depends_on: - db - - redis restart: unless-stopped labels: - "traefik.docker.network=web" @@ -132,8 +150,6 @@ services: - ./db:/var/lib/mysql restart: unless-stopped command: --max-connections=1000 - redis: - image: redis networks: web: @@ -159,7 +175,7 @@ server { } {{< /highlight >}} -### Without redis +`docker-compose.yml` config: {{< highlight yaml >}} version: '3' @@ -196,48 +212,3 @@ services: - api - frontend {{< /highlight >}} - -### With redis - -{{< highlight yaml >}} -version: '3' - -services: - db: - image: mariadb:10 - environment: - MYSQL_ROOT_PASSWORD: supersecret - MYSQL_DATABASE: vikunja - volumes: - - ./db:/var/lib/mysql - redis: - image: redis - api: - image: vikunja/api - environment: - VIKUNJA_DATABASE_HOST: db - VIKUNJA_DATABASE_PASSWORD: supersecret - VIKUNJA_DATABASE_TYPE: mysql - VIKUNJA_DATABASE_USER: root - VIKUNJA_DATABASE_DATABASE: vikunja - VIKUNJA_REDIS_ENABLED: 1 - VIKUNJA_REDIS_HOST: 'redis:6379' - VIKUNJA_CACHE_ENABLED: 1 - VIKUNJA_CACHE_TYPE: redis - volumes: - - ./files:/app/vikunja/files - depends_on: - - db - - redis - frontend: - image: vikunja/frontend - proxy: - image: nginx - ports: - - 80:80 - volumes: - - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro - depends_on: - - api - - frontend -{{< /highlight >}} \ No newline at end of file