From 9d51c33038d7d31864f0f554439a73b0090611d9 Mon Sep 17 00:00:00 2001 From: Simon C Date: Fri, 15 Apr 2022 14:54:08 +0200 Subject: [PATCH] feat(Vikunja): Add new service --- vikunja/.env | 44 +++++++++++++++++++++++++++ vikunja/docker-compose.local.yml | 11 +++++++ vikunja/docker-compose.postgres.yml | 19 ++++++++++++ vikunja/docker-compose.prometheus.yml | 10 ++++++ vikunja/docker-compose.redis.yml | 14 +++++++++ vikunja/docker-compose.smtp.yml | 18 +++++++++++ vikunja/docker-compose.traefik.yml | 17 +++++++++++ vikunja/docker-compose.yml | 42 +++++++++++++++++++++++++ 8 files changed, 175 insertions(+) create mode 100644 vikunja/.env create mode 100644 vikunja/docker-compose.local.yml create mode 100644 vikunja/docker-compose.postgres.yml create mode 100644 vikunja/docker-compose.prometheus.yml create mode 100644 vikunja/docker-compose.redis.yml create mode 100644 vikunja/docker-compose.smtp.yml create mode 100644 vikunja/docker-compose.traefik.yml create mode 100644 vikunja/docker-compose.yml diff --git a/vikunja/.env b/vikunja/.env new file mode 100644 index 0000000..bd3f8a4 --- /dev/null +++ b/vikunja/.env @@ -0,0 +1,44 @@ +######## +# 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 + + +#SMTP_HOST=mail.test.org +#SMTP_SECURE= +#SMTP_PORT= +#SMTP_AUTHTYPE= +#SMTP_NAME=test@test.org +#SMTP_PASSWORD=blablablabla +#MAIL_FROM_ADDRESS=no-reply +#MAIL_DOMAIN=test.org + +########## +# POSTGRES + +POSTGRES_USER=user-example +POSTGRES_PASSWORD=password-example +POSTGRES_DB=postgres-database-name-example +POSTGRES_CONTAINER_NAME=nextcloud-postgres +POSTGRES_VOLUME_NAME=nextcloud-postgres +#POSTGRES_IMAGE= + +####### +# REDIS + +#REDIS_IMAGE= +#REDIS_CONTAINER_NAME=nextcloud-redis +#REDIS_VOLUME_NAME= + +######### +# TRAEFIK + +#TRAEFIK_NETWORK_NAME= +#TRAEFIK_ROUTER_NAME= # Don't use char '.' +#TRAEFIK_ENTRYPOINTS= diff --git a/vikunja/docker-compose.local.yml b/vikunja/docker-compose.local.yml new file mode 100644 index 0000000..dbfbc28 --- /dev/null +++ b/vikunja/docker-compose.local.yml @@ -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 \ No newline at end of file diff --git a/vikunja/docker-compose.postgres.yml b/vikunja/docker-compose.postgres.yml new file mode 100644 index 0000000..4193043 --- /dev/null +++ b/vikunja/docker-compose.postgres.yml @@ -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} diff --git a/vikunja/docker-compose.prometheus.yml b/vikunja/docker-compose.prometheus.yml new file mode 100644 index 0000000..219ce35 --- /dev/null +++ b/vikunja/docker-compose.prometheus.yml @@ -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} diff --git a/vikunja/docker-compose.redis.yml b/vikunja/docker-compose.redis.yml new file mode 100644 index 0000000..480db28 --- /dev/null +++ b/vikunja/docker-compose.redis.yml @@ -0,0 +1,14 @@ +version: "3.8" + +# https://vikunja.io/docs/config-options/#redis + +services: + vikunja_api: + environment: + VIKUNJA_CACHE_ENABLED: 'true' + VIKUNJA_CACHE_TYPE: redis + VIKUNJA_REDIS_ENABLED: 'true' + + VIKUNJA_REDIS_HOST: ${REDIS_CONTAINER_NAME:-redis}:6379 + VIKUNJA_REDIS_PASSWORD: ${VIKUNJA_REDIS_PASSWORD} + VIKUNJA_REDIS_DB: 0 diff --git a/vikunja/docker-compose.smtp.yml b/vikunja/docker-compose.smtp.yml new file mode 100644 index 0000000..09eed03 --- /dev/null +++ b/vikunja/docker-compose.smtp.yml @@ -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:?err} + VIKUNJA_MAILER_USERNAME: ${VIKUNJA_MAILER_USERNAME:?err} + VIKUNJA_MAILER_PASSWORD: ${VIKUNJA_MAILER_PASSWORD:?err} + VIKUNJA_MAILER_FROMEMAIL: ${VIKUNJA_MAILER_FROMEMAIL:?err} diff --git a/vikunja/docker-compose.traefik.yml b/vikunja/docker-compose.traefik.yml new file mode 100644 index 0000000..eeec05c --- /dev/null +++ b/vikunja/docker-compose.traefik.yml @@ -0,0 +1,17 @@ +version: "3.8" + +# https://vikunja.io/docs/full-docker-example/#example-with-traefik-2 + +services: + vikunja_api: + labels: + - "traefik.enable=true" + - "traefik.http.routers.vikunja-api.rule=Host(`vikunja.example.com`) && PathPrefix(`/api/v1`, `/dav/`, `/.well-known/`)" + - "traefik.http.routers.vikunja-api.entrypoints=https" + - "traefik.http.routers.vikunja-api.tls.certResolver=acme" + vikunja_frontend: + labels: + - "traefik.enable=true" + - "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" \ No newline at end of file diff --git a/vikunja/docker-compose.yml b/vikunja/docker-compose.yml new file mode 100644 index 0000000..8153522 --- /dev/null +++ b/vikunja/docker-compose.yml @@ -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_DOMAIN:?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}