109 lines
2.3 KiB
Django/Jinja
109 lines
2.3 KiB
Django/Jinja
---
|
|
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
|