mirror of
https://github.com/PAPAMICA/docker-compose-collection.git
synced 2026-01-18 16:27:25 +01:00
98 lines
3.1 KiB
YAML
98 lines
3.1 KiB
YAML
# Maintainer: Mickael "PAPAMICA" Asseline
|
|
# Update: 2022-06-27
|
|
|
|
#& type: 3
|
|
#& title: Vikunja
|
|
#& description: The to-do app to organize your life.
|
|
#& note: Website: <a href='https://vikunja.io/' target='_blank' rel='noopener'>Vikunja.io</a>
|
|
#& categories: SelfHosted, PAPAMICA
|
|
#& platform: linux
|
|
#& logo: https://img.papamica.com/logo/vikunja.png
|
|
|
|
#% SERVICE: Name of the service (No spaces or points) [vikunja]
|
|
#% DATA_LOCATION: Data localization (Example: /apps/service) [/_data/apps]
|
|
#% URL: Service URL (Example: service.papamica.fr or service.com)
|
|
#% NETWORK: Your Traefik network (Example: proxy) [proxy]
|
|
#% DB_USER: Database user (No spaces or points) [vikunja]
|
|
#% DB_PASSWORD: Database user password
|
|
#% DB_ROOT: Database root password
|
|
|
|
# Work with Portainer
|
|
version: '3'
|
|
|
|
services:
|
|
api:
|
|
image: vikunja/api
|
|
container_name: $SERVICE-api
|
|
environment:
|
|
VIKUNJA_DATABASE_HOST: $SERVICE-db
|
|
VIKUNJA_DATABASE_PASSWORD: $DB_PASSWORD
|
|
VIKUNJA_DATABASE_TYPE: mysql
|
|
VIKUNJA_DATABASE_USER: $DB_USER
|
|
VIKUNJA_DATABASE_DATABASE: $SERVICE
|
|
volumes:
|
|
- $DATA_LOCATION/$SERVICE/data:/app/vikunja/files
|
|
networks:
|
|
- default
|
|
depends_on:
|
|
- db
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: netstat -tln | grep 3456
|
|
interval: 1m
|
|
timeout: 30s
|
|
retries: 3
|
|
labels:
|
|
- "autoupdate=monitor" # https://github.com/PAPAMICA/container-updater
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.$SERVICE-api.entrypoints=https"
|
|
- "traefik.http.routers.$SERVICE-api.rule=Host(`$URL`) && PathPrefix(`/api/v1`, `/dav/`, `/.well-known/`)"
|
|
- "traefik.http.routers.$SERVICE-api.tls=true"
|
|
- "traefik.http.routers.$SERVICE-api.tls.certresolver=http"
|
|
- "traefik.docker.network=$NETWORK"
|
|
|
|
frontend:
|
|
image: vikunja/frontend
|
|
container_name: $SERVICE
|
|
labels:
|
|
- "autoupdate=monitor" # https://github.com/PAPAMICA/container-updater
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.$SERVICE.entrypoints=https"
|
|
- "traefik.http.routers.$SERVICE.rule=Host(`$URL`)"
|
|
- "traefik.http.routers.$SERVICE.tls=true"
|
|
- "traefik.http.routers.$SERVICE.tls.certresolver=http"
|
|
- "traefik.docker.network=$NETWORK"
|
|
networks:
|
|
- default
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: curl --fail http://localhost:80 || exit 1
|
|
interval: 1m
|
|
timeout: 30s
|
|
retries: 3
|
|
|
|
db:
|
|
image: mariadb:10
|
|
container_name: $SERVICE-db
|
|
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=1000
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: $DB_ROOT
|
|
MYSQL_USER: $DB_USER
|
|
MYSQL_PASSWORD: $DB_PASSWORD
|
|
MYSQL_DATABASE: $SERVICE
|
|
volumes:
|
|
- $DATA_LOCATION/$SERVICE/db:/var/lib/mysql
|
|
restart: unless-stopped
|
|
labels:
|
|
- "autoupdate=monitor" # https://github.com/PAPAMICA/container-updater
|
|
healthcheck:
|
|
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
|
|
timeout: 20s
|
|
retries: 10
|
|
networks:
|
|
- default
|
|
|
|
networks:
|
|
default:
|
|
external:
|
|
name: $NETWORK |