This repository has been archived on 2023-05-19. You can view files and clone it, but cannot push or open issues or pull requests.
skylab-ansible/resources/docker-compose/vikunja.yaml.j2

109 lines
2.3 KiB
Plaintext
Raw Normal View History

---
version: "{{ skylab_compose_version }}"
networks:
vikunja:
name: vikunja
driver: overlay
ipam:
driver: default
config:
- subnet: {{ app.networks.ext }}
volumes:
{% for key, value in app.volumes.items() %}
vikunja-{{ key }}:
name: datastore{{ value }}
driver: glusterfs
{% endfor %}
services:
database:
image: mariadb:{{ app.versions.database }}
hostname: database
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
networks:
- vikunja
volumes:
- type: volume
source: vikunja-database
target: /var/lib/mysql
read_only: false
environment:
MYSQL_RANDOM_ROOT_PASSWORD: "true"
MYSQL_USER: vikunja
MYSQL_PASSWORD: {{ app.settings.database_password }}
MYSQL_DATABASE: vikunja
deploy:
replicas: 1
cache:
image: redis:{{ app.versions.cache }}
hostname: cache
networks:
- vikunja
deploy:
replicas: 1
proxy:
image: nginx:{{ app.versions.proxy }}
hostname: proxy
networks:
- vikunja
ports:
- published: {{ app.ports.80 }}
target: 80
protocol: tcp
mode: ingress
volumes:
- type: volume
source: vikunja-nginx
target: /etc/nginx/conf.d
read_only: true
deploy:
replicas: 1
api:
image: vikunja/api:{{ app.versions.api }}
hostname: api
networks:
- vikunja
depends_on:
- database
- cache
volumes:
- type: volume
source: vikunja-files
target: /app/vikunja/files
read_only: false
environment:
VIKUNJA_DATABASE_HOST: database
VIKUNJA_DATABASE_PASSWORD: {{ app.settings.database_password }}
VIKUNJA_DATABASE_TYPE: mysql
VIKUNJA_DATABASE_USER: vikunja
VIKUNJA_DATABASE_DATABASE: vikunja
VIKUNJA_REDIS_ENABLED: "1"
VIKUNJA_REDIS_HOST: cache:6379
VIKUNJA_CACHE_ENABLED: "1"
VIKUNJA_CACHE_TYPE: redis
VIKUNJA_FILES_MAXSIZE: 50MB
deploy:
replicas: 1
web:
image: vikunja/frontend:{{ app.versions.web }}
hostname: web
networks:
- vikunja
depends_on:
- database
- cache
- proxy
environment:
VIKUNJA_API_URL: https://{{ app.domain }}/api/v1
deploy:
replicas: 1