feat(Vikunja): Add new service

This commit is contained in:
Simon 2022-04-15 14:54:08 +02:00
parent d8414788ef
commit efcd3891ba
11 changed files with 254 additions and 1 deletions

View File

@ -10,7 +10,8 @@ Vous trouverez dans ce dépôt l'ensemble des services Open Source que RésiLien
- [HedgeDoc](./hedgedoc) : Prise de note en Markdown collaborative en temps réel
- [Mobilizon](./mobilizon): Permet l'organisation d'évènements et de gestion de groupes
- [Nextcloud](./nextcloud) : Site d'hébergement de fichiers et une plateforme de collaboration
- [Plausible](./plausible) : Plausible est une plateforme d'analyse Web légère et open source.
- [Plausible](./plausible) : Plausible est une plateforme d'analyse Web légère et open source
- [Vikunja](./vikunja) : L'application pour organiser sa vie
### Pour les devs / ops

86
vikunja/.env Normal file
View File

@ -0,0 +1,86 @@
########
# DOCKER
#DOCKER_CONTEXT=
#DOCKER_HOST=
SERVICES_DIR=..
COMPOSE_FILE=${SERVICES_DIR}/vikunja/docker-compose.yml:${SERVICES_DIR}/vikunja/docker-compose.local.yml:${SERVICES_DIR}/vikunja/docker-compose.postgres.yml:${SERVICES_DIR}/postgres/docker-compose.yml
#COMPOSE_PROJECT_NAME=
## APP
#VIKUNJA_API_IMAGE=
#VIKUNJA_FRONTEND_IMAGE=
VIKUNJA_CONTAINER_NAME=vikunja
VIKUNJA_VOLUME_NAME=vikunja
VIKUNJA_DOMAIN=vikunja.example.org
VIKUNJA_SERVICE_FRONTENDURL=https://vikunja.example.org/
VIKUNJA_SERVICE_JWTSECRET=change-me
#VIKUNJA_SERVICE_JWTTTL=259200
#VIKUNJA_SERVICE_JWTTTLLONG=2592000
#VIKUNJA_SERVICE_MAXITEMSPERPAGE=50
#VIKUNJA_SERVICE_ENABLECALDAV=true
#VIKUNJA_SERVICE_ENABLELINKSHARING=true
#VIKUNJA_SERVICE_ENABLEREGISTRATION=true
#VIKUNJA_SERVICE_ENABLETASKATTACHMENTS=true
#VIKUNJA_SERVICE_TIMEZONE=GMT
#VIKUNJA_SERVICE_ENABLETASKCOMMENTS=true
#VIKUNJA_SERVICE_ENABLETOTP=true
#VIKUNJA_SERVICE_ENABLEEMAILREMINDERS=true
#VIKUNJA_SERVICE_ENABLEUSERDELETION=true
#VIKUNJA_FILES_BASEPATH=./files
#VIKUNJA_FILES_MAXSIZE=20MB
##########
# POSTGRES
#POSTGRES_IMAGE=
POSTGRES_CONTAINER_NAME=vikunja-postgres-example
POSTGRES_DB=vikunja-postgres-database-example
POSTGRES_USER=vikunja-postgres-user-example
POSTGRES_PASSWORD=vikunja-postgres-password-example
POSTGRES_VOLUME_NAME=vikunja-postgres-example
#VIKUNJA_DATABASE_TYPE=postgres
#VIKUNJA_DATABASE_MAXOPENCONNECTIONS=100
#VIKUNJA_DATABASE_MAXIDLECONNECTIONS=50
#VIKUNJA_DATABASE_MAXCONNECTIONLIFETIME=10000
#VIKUNJA_DATABASE_SSLMODE=disable
######
# SMTP
#VIKUNJA_MAILER_ENABLED=true
#VIKUNJA_MAILER_SKIPTLSVERIFY=false
#VIKUNJA_MAILER_QUEUELENGTH=100
#VIKUNJA_MAILER_QUEUETIMEOUT=30
#VIKUNJA_MAILER_FORCESSL=false
VIKUNJA_MAILER_HOST=
#VIKUNJA_MAILER_PORT=465
VIKUNJA_MAILER_USERNAME=
VIKUNJA_MAILER_PASSWORD=
VIKUNJA_MAILER_FROMEMAIL=
############
# PROMETHEUS
#VIKUNJA_METRICS_ENABLED=false
#VIKUNJA_METRICS_USERNAME=
#VIKUNJA_METRICS_PASSWORD=
#######
# REDIS
#REDIS_IMAGE=
REDIS_CONTAINER_NAME=vikunja-redis
REDIS_VOLUME_NAME=vikunja-redis
#########
# TRAEFIK
#TRAEFIK_NETWORK_NAME=traefik
#TRAEFIK_ROUTER_NAME=vikunja
#TRAEFIK_ENTRYPOINTS=web

12
vikunja/README.md Normal file
View File

@ -0,0 +1,12 @@
# Vikunja
> Vikunja est une application auto-hébergeable (facilement installable avec Yunohost) de gestion de tâches, utilisable depuis son navigateur ou un client desktop. Bien que jeune, l'application offre déjà de nombreuses fonctionnalités.
>
> <cite>[Framalibre](https://framalibre.org/content/vikunja)</cite>
## Liens
- [Site officiel](https://vikunja.io/)
- [Code source](https://kolaente.dev/vikunja/)
- [Docker Hub](https://hub.docker.com/u/vikunja)
- [Forum](https://community.vikunja.io/)

View File

@ -0,0 +1,11 @@
version: "3.8"
services:
vikunja_api:
ports:
- 3456:3456
vikunja_frontend:
ports:
- ${LOCAL_PORT:-80}:80
environment:
VIKUNJA_API_URL: http://localhost:3456/api/v1

View File

@ -0,0 +1,17 @@
version: "3.8"
# https://vikunja.io/docs/config-options/#log
services:
vikunja_api:
environment:
# VIKUNJA_LOG_PATH
VIKUNJA_LOG_ENABLED: ${VIKUNJA_LOG_ENABLED:-true}
VIKUNJA_LOG_STANDARD: ${VIKUNJA_LOG_STANDARD:-stdout}
VIKUNJA_LOG_LEVEL: ${VIKUNJA_LOG_LEVEL:-INFO} # Possible values (case-insensitive) are CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG.
VIKUNJA_LOG_DATABASE: ${VIKUNJA_LOG_DATABASE:-off} # Possible values are stdout, stderr, file or off to disable database
VIKUNJA_LOG_DATABASELEVEL: ${VIKUNJA_LOG_DATABASELEVEL:-WARNING} # Possible values (case-insensitive) are CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG
VIKUNJA_LOG_HTTP: ${VIKUNJA_LOG_HTTP:-stdout} # Possible values are stdout, stderr, file or off to disable http logging.
VIKUNJA_LOG_ECHO: ${VIKUNJA_LOG_ECHO:-off} # Possible values are stdout, stderr, file or off to disable standard logging.
VIKUNJA_LOG_EVENTS: ${VIKUNJA_LOG_EVENTS:-stdout} # Possible values are stdout, stderr, file or off to disable events logging.
VIKUNJA_LOG_EVENTSLEVEL: ${VIKUNJA_LOG_EVENTSLEVEL:-INFO} # Possible values (case-insensitive) are ERROR, INFO, DEBUG.

View File

@ -0,0 +1,19 @@
version: "3.8"
# https://vikunja.io/docs/config-options/#database
services:
vikunja_api:
depends_on:
- postgres
environment:
VIKUNJA_DATABASE_TYPE: ${VIKUNJA_DATABASE_TYPE:-postgres}
VIKUNJA_DATABASE_MAXOPENCONNECTIONS: ${VIKUNJA_DATABASE_MAXOPENCONNECTIONS:-100}
VIKUNJA_DATABASE_MAXIDLECONNECTIONS: ${VIKUNJA_DATABASE_MAXIDLECONNECTIONS:-50}
VIKUNJA_DATABASE_MAXCONNECTIONLIFETIME: ${VIKUNJA_DATABASE_MAXCONNECTIONLIFETIME:-10000}
VIKUNJA_DATABASE_SSLMODE: ${VIKUNJA_DATABASE_SSLMODE:-disable}
VIKUNJA_DATABASE_HOST: ${POSTGRES_CONTAINER_NAME:-postgres}:5432 # Default name is same as ../postgres/docker-compose.yml:8
VIKUNJA_DATABASE_DATABASE: ${POSTGRES_DB:?err}
VIKUNJA_DATABASE_USER: ${POSTGRES_USER:?err}
VIKUNJA_DATABASE_PASSWORD: ${POSTGRES_PASSWORD:?err}

View File

@ -0,0 +1,10 @@
version: "3.8"
# https://vikunja.io/docs/config-options/#metrics
services:
vikunja_api:
environment:
VIKUNJA_METRICS_ENABLED: ${VIKUNJA_METRICS_ENABLED-:false}
VIKUNJA_METRICS_USERNAME: ${VIKUNJA_METRICS_USERNAME}
VIKUNJA_METRICS_PASSWORD: ${VIKUNJA_METRICS_PASSWORD}

View File

@ -0,0 +1,16 @@
version: "3.8"
# https://vikunja.io/docs/config-options/#redis
services:
vikunja_api:
depends_on:
- redis
environment:
VIKUNJA_CACHE_ENABLED: 'true'
VIKUNJA_CACHE_TYPE: redis
VIKUNJA_REDIS_ENABLED: 'true'
VIKUNJA_REDIS_HOST: ${REDIS_CONTAINER_NAME:-redis}:6379 # It's default port because we don't have yet configuration for redis port
#VIKUNJA_REDIS_PASSWORD: ${VIKUNJA_REDIS_PASSWORD} # We don't have yet configuration for redis with password
VIKUNJA_REDIS_DB: 0 # It's default becouse we don't have yet configuration for redis database name

View File

@ -0,0 +1,18 @@
version: "3.8"
# https://vikunja.io/docs/config-options/#mailer
services:
vikunja_api:
environment:
VIKUNJA_MAILER_ENABLED: ${VIKUNJA_MAILER_ENABLED:-true}
VIKUNJA_MAILER_SKIPTLSVERIFY: ${VIKUNJA_MAILER_SKIPTLSVERIFY:-false}
VIKUNJA_MAILER_QUEUELENGTH: ${VIKUNJA_MAILER_QUEUELENGTH:-100}
VIKUNJA_MAILER_QUEUETIMEOUT: ${VIKUNJA_MAILER_QUEUETIMEOUT:-30}
VIKUNJA_MAILER_FORCESSL: ${VIKUNJA_MAILER_FORCESSL:-false}
VIKUNJA_MAILER_HOST: ${VIKUNJA_MAILER_HOST:?err}
VIKUNJA_MAILER_PORT: ${VIKUNJA_MAILER_PORT:-587}
VIKUNJA_MAILER_USERNAME: ${VIKUNJA_MAILER_USERNAME:?err}
VIKUNJA_MAILER_PASSWORD: ${VIKUNJA_MAILER_PASSWORD:?err}
VIKUNJA_MAILER_FROMEMAIL: ${VIKUNJA_MAILER_FROMEMAIL:?err}

View File

@ -0,0 +1,21 @@
version: "3.8"
networks:
default:
name: ${TRAEFIK_NETWORK_NAME:-traefik}
# https://vikunja.io/docs/full-docker-example/#example-with-traefik-2
services:
vikunja_api:
labels:
- traefik.enable=true
- traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vikunja}-api.rule=Host(`${VIKUNJA_DOMAIN:?err}`) && PathPrefix(`/api/v1`, `/dav/`, `/.well-known/`)
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vikunja}-api.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
vikunja_frontend:
labels:
- traefik.enable=true
- traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vikunja}-frontend.rule=Host(`${VIKUNJA_DOMAIN:?err}`)
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vikunja}-frontend.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}

View File

@ -0,0 +1,42 @@
version: "3.8"
# https://vikunja.io/docs/config-options
# https://vikunja.io/docs/full-docker-example/
volumes:
vikunja:
name: ${VIKUNJA_VOLUME_NAME:-vikunja}
services:
vikunja_api:
container_name: ${VIKUNJA_CONTAINER_NAME:-vikunja}_api
image: ${VIKUNJA_API_IMAGE:-vikunja/api:0.18.1}
restart: always
environment:
VIKUNJA_SERVICE_JWTSECRET: ${VIKUNJA_SERVICE_JWTSECRET}
VIKUNJA_SERVICE_JWTTTL: ${VIKUNJA_SERVICE_JWTTTL:-259200}
VIKUNJA_SERVICE_JWTTTLLONG: ${VIKUNJA_SERVICE_JWTTTLLONG:-2592000}
VIKUNJA_SERVICE_FRONTENDURL: ${VIKUNJA_SERVICE_FRONTENDURL:?err}
VIKUNJA_SERVICE_MAXITEMSPERPAGE: ${VIKUNJA_SERVICE_MAXITEMSPERPAGE:-50}
VIKUNJA_SERVICE_ENABLECALDAV: ${VIKUNJA_SERVICE_ENABLECALDAV:-true}
VIKUNJA_SERVICE_ENABLELINKSHARING: ${VIKUNJA_SERVICE_ENABLELINKSHARING:-true}
VIKUNJA_SERVICE_ENABLEREGISTRATION: ${VIKUNJA_SERVICE_ENABLEREGISTRATION:-true}
VIKUNJA_SERVICE_ENABLETASKATTACHMENTS: ${VIKUNJA_SERVICE_ENABLETASKATTACHMENTS:-true}
VIKUNJA_SERVICE_TIMEZONE: ${VIKUNJA_SERVICE_TIMEZONE:-GMT}
VIKUNJA_SERVICE_ENABLETASKCOMMENTS: ${VIKUNJA_SERVICE_ENABLETASKCOMMENTS:-true}
VIKUNJA_SERVICE_ENABLETOTP: ${VIKUNJA_SERVICE_ENABLETOTP:-true}
VIKUNJA_SERVICE_ENABLEEMAILREMINDERS: ${VIKUNJA_SERVICE_ENABLEEMAILREMINDERS:-true}
VIKUNJA_SERVICE_ENABLEUSERDELETION: ${VIKUNJA_SERVICE_ENABLEUSERDELETION:-true}
VIKUNJA_FILES_BASEPATH: ${VIKUNJA_FILES_BASEPATH:-./files}
VIKUNJA_FILES_MAXSIZE: ${VIKUNJA_FILES_MAXSIZE:-20MB}
PUID: ${VIKUNJA_PUID:-1000}
PGID: ${VIKUNJA_PGID:-1000}
volumes:
- vikunja:/app/vikunja/files
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
vikunja_frontend:
container_name: ${VIKUNJA_CONTAINER_NAME:-vikunja}_frontend
image: ${VIKUNJA_FRONTEND_IMAGE:-vikunja/frontend:0.18.2}