68 Commits

Author SHA1 Message Date
34117da151 Merge pull request 'feat(Vaultwarden): Add new org groups feature' (#84) from vaultwarden into main
## Détails

- Ajout de la [fonctionnalité de groupes dans les organisations](https://bitwarden.com/help/about-groups/)
- C'est une fonctionnalité que [Vaultwarden présente comme beta](90f7e5ff80/.env.template (L443-L448))

Reviewed-on: #84
2025-06-11 22:07:37 +02:00
eb43a163a6 feat(Vaultwarden): Add new org groups feature 2025-06-11 22:07:02 +02:00
bbf61dc0f0 Merge pull request 'feat(LLDAP): Utilisation de la nouvelle variable plus généric' (#83) from lldap into main
Reviewed-on: #83
2024-10-17 14:14:35 +02:00
a5b7aca9b7 feat(LLDAP): Utilisation de la nouvelle variable plus généric 2024-10-17 14:13:47 +02:00
1f9bd5ea4b Merge pull request 'feat(Vaultwarden): Change domain variable' (#82) from vaultwarden_domain into main
Reviewed-on: #82
2024-10-01 10:51:14 +02:00
e2931630c6 feat(Vaultwarden): Change domain variable 2024-10-01 10:49:32 +02:00
a0300d20d6 Merge pull request 'feat(Vaultwarden): Remove experimental configuration' (#80) from vaultwarden into main
Reviewed-on: #80
2024-08-02 16:52:54 +02:00
d9653fc215 feat(Vaultwarden): Remove experimental configuration 2024-08-02 16:52:33 +02:00
15a13f1eff Merge pull request 'vaultwarden' (#79) from vaultwarden into main
## Détails

- Ajout d'une redirection automatique du trafic HTTP
- Ajout de documentation pour la traduction des mails
- Ajout des variables pour la configuration du service ainsi que du SSO

## Pourquoi

- Pour faciliter son intégration sur un serveur qui fait office de _entrypoint_
- Pour avoir des mails envoyé en Français
- Pour faciliter le déploiement de Vaultwarden

Reviewed-on: #79
2024-08-01 16:17:30 +02:00
b2509bfd67 feat(Vaultwarden): Ajout de la configuration SSO 2024-08-01 16:13:57 +02:00
78300c3bf4 feat(Vaultwarden): Ajout de variable de configuration du service 2024-08-01 16:13:57 +02:00
2630301d58 feat(Vaultwarden): Ajout de documentation pour la traduction des mails 2024-08-01 16:13:57 +02:00
3f2a4b78fb feat(Vaultwarden): Ajout d'une configuration de Traefik pour redirection automatique HTTP 2024-08-01 16:13:57 +02:00
342d7bfa58 Merge pull request 'Mise à jour de SignaturePDF' (#78) from signaturepdf into main
## Détails

- Ajout des dernière variables par défaut
- Ajout d'une redirection HTTP vers HTTPS

## Pourquoi

- Pour changer les variables si besoin
- Pour pouvoir mettre en place la redirection facilement

Reviewed-on: #78
2024-07-31 10:49:27 +02:00
fad68813ae feat(SignaturePDF): Add Traefik redirection 2024-07-31 10:48:05 +02:00
f4d72bff12 feat(SignaturePDF): Add default variable for # Installation variable 2024-07-31 10:48:05 +02:00
532c0a9c7b feat(SignaturePDF): Add default language variable 2024-07-31 10:48:05 +02:00
e24754bc44 feat(SignaturePDF): Add Traefik entrypoints variable 2024-07-31 10:48:05 +02:00
b770dfd525 Merge pull request 'feat(Nextcloud): Update default value of SMTP' (#76) from fix_nextcloud_smtp into main
Reviewed-on: #76
2024-03-29 17:38:54 +01:00
ec039c4474 feat(Nextcloud): Update default value of SMTP 2024-03-29 17:38:38 +01:00
16a583e326 Merge pull request 'feat(Docker Compose): Remove obsolete version variable' (#75) from docker_compose_version into main
Reviewed-on: #75
2024-03-25 14:36:04 +01:00
4f3c112404 feat(Docker Compose): Remove obsolete version variable
see: https://github.com/docker/compose/issues/11628
2024-03-25 14:35:05 +01:00
bbd45d8f3f Merge pull request 'feat(Drone Server): Add external parameter for network' (#74) from drone into main
Reviewed-on: #74
2024-03-25 14:19:52 +01:00
68820ec859 feat(Drone Server): Add external parameter for network 2024-03-25 14:19:17 +01:00
9b8591caee Merge pull request 'nextcloud' (#73) from nextcloud into main
Reviewed-on: #73
2024-02-05 14:28:41 +01:00
4c2ebac4e7 chore(Nextcloud): Upgrade nginx 2024-02-05 14:27:45 +01:00
b516600e50 feat(Nextcloud): Update nginx template
https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
2024-02-05 14:27:45 +01:00
c579565849 Merge pull request 'feat(Nextcloud): Split redis & postgres configuration' (#72) from nextcloud into main
Reviewed-on: #72
2023-10-05 14:13:47 +02:00
a26e291396 feat(Nextcloud): Split redis & postgres configuration 2023-10-03 22:22:02 +02:00
6441551318 Merge pull request 'feat(Vikunja): Add all default variables' (#71) from vikunja into main
Reviewed-on: #71
2023-10-03 14:54:12 +02:00
d88b1829f1 feat(Vikunja): Add all default variables 2023-10-03 14:53:59 +02:00
6047ad6050 Merge pull request 'vikunja' (#70) from vikunja into main
## Détails

- Mise à jour de la valeur par défaut du langage sinon ça ne fonctionne pas
- Séparation des variables légales dans un fichier

Reviewed-on: #70
2023-10-03 14:19:16 +02:00
11f89a1c8c feat(Vikunja): Split configuration 2023-10-03 14:17:35 +02:00
847bc2b014 fix(Vikunja): Fix default language 2023-10-03 14:17:35 +02:00
2111829feb Merge pull request 'fix(Vikunja): Add default values' (#69) from vikunja into main
Reviewed-on: #69
2023-10-03 10:50:09 +02:00
06d35b9c9a fix(Vikunja): Add default values 2023-10-03 10:49:56 +02:00
2ceca1c76a Merge pull request 'vikunja' (#68) from vikunja into main
## Détails

- Mise à jour de vikunja
- Ajout de variable de configuration

Reviewed-on: #68
2023-10-03 10:12:55 +02:00
225015a5c9 feat(Vikunja): Add more configuration 2023-10-03 10:11:55 +02:00
ab822795ad chore(Vikunja): Upgrade to 0.21.0
https://vikunja.io/blog/2023/07/whats-new-in-vikunja-0.21.0/
2023-10-03 10:11:55 +02:00
f944ef4fe3 Merge pull request 'gitea' (#67) from gitea into main
## Détails

- Crétion d'un fichier spécifique pour la configuration de Postgres pour la configuration du projet Gitea
- Mise à jour de la version de Gitea

## Pourquoi

- Pour permettre d'initialiser un projet Gitea sans base de données et en utilisant SQLite

Reviewed-on: #67
2023-09-28 12:02:13 +02:00
b047319556 chore(Gitea): Upgrade default version to 1.20.4 2023-09-28 12:00:00 +02:00
9078d9d04f feat(Gitea): Split Postgres configuration 2023-09-28 11:59:08 +02:00
0a99b3402c Merge pull request 'feat(Traefik): Upgrade and disable dashboard ad' (#66) from traefik into main
Voir [la nouvelle version ](https://github.com/traefik/traefik/releases/tag/v2.10.4)et surtout [ce _commit_](https://github.com/traefik/traefik/pull/10008).

Reviewed-on: #66
2023-09-27 15:19:18 +02:00
6d5884343e feat(Traefik): Upgrade and disable dashboard ad 2023-09-27 15:17:40 +02:00
8162c6a81a Merge pull request 'feat(Directus): Add DIRECTUS_ prefix like others variables' (#65) from directus_cors into main
## Détails

- Ajout du préfixe `DIRECTUS_`

## Pourquoi

- Pour garder une cohérence dans le nommage des variables

Reviewed-on: #65
2023-07-18 16:34:06 +02:00
b803eedf8c feat(Directus): Add DIRECTUS_ prefix like others variables 2023-07-18 16:32:30 +02:00
61680c6e6e Merge pull request 'feat(Directus): Add CORS_ORIGIN variable' (#64) from directus_cors into main
## Détails

- Ajout de la variable `CORS_ORIGIN`

## Pourquoi

- Pour permettre de spécifier les URLs

Reviewed-on: #64
2023-07-18 16:29:14 +02:00
353c1bd812 feat(Directus): Add CORS_ORIGIN variable 2023-07-18 16:27:39 +02:00
c5d761d229 Merge pull request 'feat(Directus): Add CORS_ENABLED variable' (#63) from directus_cors into main
## Détails

- Ajout de la variable pour configurer les [CORS](https://developer.mozilla.org/fr/docs/Web/http/CORS) de Directus

## Pourquoi

- Pour permettre à un site WEB d’interroger directement l'API de Directus

Reviewed-on: #63
2023-07-18 16:21:36 +02:00
72621b893d feat(Directus): Add CORS_ENABLED variable 2023-07-18 16:17:40 +02:00
fe0d4d6224 Merge pull request 'fix(lldap): variables name' (#62) from fix_lldap into main
## Détails

- Changement de nom de variables

## Pourquoi

- Pour être plus cohérent

Reviewed-on: #62
2023-07-17 17:57:38 +02:00
b5ea07c70a fix(lldap): variables name 2023-07-17 17:56:24 +02:00
0b41480815 Merge pull request 'fix(Docker): Network should be external with docker compose 2.20.0' (#61) from fix_networks into main
## Détails

- Ajout du paramètre permettant d'expliciter que le réseau Docker est externe

## Pourquoi

Pour être compatible avec la dernière version de Docker Compose

Reviewed-on: #61
2023-07-17 12:34:44 +02:00
0e06b651e8 fix(Docker): Network should be external with docker compose 2.20.0 2023-07-17 12:33:30 +02:00
d7206c92de Merge pull request 'feat(LLDAP): Add new service' (#60) from lldap into main
## Détails

- Ajout du service [LLDAP](https://github.com/lldap/lldap)

## Pourquoi

- Pour permettre une gestion simplifiée des utilisateurs des services de RésiLien

Reviewed-on: #60
2023-07-05 15:57:31 +02:00
06f1e2910f feat(LLDAP): Add new service 2023-07-05 15:56:32 +02:00
2667aa22dd Merge pull request 'signaturepdf' (#59) from signaturepdf into main
## Détails

- Ajout de l'image par défaut
- Ajout du paramètre _`restart`_

## Pourquoi

- Pour être transparent sur notre image
- Pour que le serveur redémarre automatique lors d'une coupure

Reviewed-on: #59
2023-06-12 16:57:57 +02:00
b7862e8fe5 feat(Signaturepdf): Add restart parameter 2023-06-12 16:54:08 +02:00
980ced43c4 feat(Signaturepdf): Add default image 2023-06-12 16:53:38 +02:00
45c731e31e Merge pull request 'feat(Signaturepdf): Add new service' (#58) from signaturepdf into main
## Détails

- Ajout du service de manipulation de fichier PDF

## Pourquoi

- C'est un service qui m’intéresse pour signer les documents de mes associations

Reviewed-on: #58
2023-06-05 10:32:31 +02:00
573cd5a462 feat(Signaturepdf): Add new service 2023-06-05 10:31:11 +02:00
47d0a7eaa2 Merge pull request 'docs' (#57) from docs into main
## Détails

- Ajout de documentation

## Pourquoi

- Pour garder des traces de mes recherches

Reviewed-on: #57
2023-06-05 10:09:16 +02:00
692a26ddff docs(Redis): Add documentation 2023-06-05 10:06:49 +02:00
e2d0a53db4 docs(Drone): Add documentation 2023-06-05 10:06:49 +02:00
53ebc3f591 Merge pull request 'fix(Nextcloud): Trusted proxies is for fpm not web container' (#56) from nextcloud into main
## Détails

- Fix le problème de configuration des reverses proxies

## Pourquoi

C'était une configuration que nous devions faire à la main alors que la configuration devait fonctionner. En recherchant un peu je me suis rendu compte que nous donnions le nom du reverse proxie au mauvais contenaire.

Reviewed-on: #56
2023-05-23 11:59:19 +02:00
982c1322bc fix(Nextcloud): Trusted proxies is for fpm not web container 2023-05-23 11:56:12 +02:00
0483e4325e Merge pull request 'fix(Nextcloud): Add variable to configure SMTP' (#55) from gitea into main
## Détails

- Ajout de variable d'environnement pour configurer le SMTP des Nextcloud

## Pourquoi

- La configuration ne fonctionnait plus depuis [ce commit](b3dce58f7b).

Reviewed-on: #55
2023-05-10 22:03:07 +02:00
745d69aade fix(Nextcloud): Add variable to configure SMTP 2023-05-10 22:02:28 +02:00
97 changed files with 590 additions and 239 deletions

View File

@ -11,6 +11,7 @@ Vous trouverez dans ce dépôt l'ensemble des services Open Source que RésiLien
- [listmonk](./listmonk) : Gestionnaire de listes de diffusion et de newsletter - [listmonk](./listmonk) : Gestionnaire de listes de diffusion et de newsletter
- [Mobilizon](./mobilizon): Permet l'organisation d'évènements et de gestion de groupes - [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 - [Nextcloud](./nextcloud) : Site d'hébergement de fichiers et une plateforme de collaboration
- [signaturepdf](./signaturepdf) : Logiciel WEB libre permettant de modifier un fichier PDF facilement
- [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
- [Vaultwarden](./vaultwarden) : Gestionnaire de mot de passe compatible avec Bitwarden - [Vaultwarden](./vaultwarden) : Gestionnaire de mot de passe compatible avec Bitwarden
- [Vikunja](./vikunja) : L'application pour organiser sa vie - [Vikunja](./vikunja) : L'application pour organiser sa vie
@ -22,6 +23,7 @@ Vous trouverez dans ce dépôt l'ensemble des services Open Source que RésiLien
- [GeoIP Update](./geoipupdate) : Permet de télécharger la base de données GeoIP2 permettant de localiser les IPs - [GeoIP Update](./geoipupdate) : Permet de télécharger la base de données GeoIP2 permettant de localiser les IPs
- [Gitea](./gitea) : Un service Git très simple à installer et à utiliser. Il est similaire à GitHub, Bitbucket ou Gitlab. - [Gitea](./gitea) : Un service Git très simple à installer et à utiliser. Il est similaire à GitHub, Bitbucket ou Gitlab.
- [Grafana](./grafana) : Un outil de supervision simple et élégant - [Grafana](./grafana) : Un outil de supervision simple et élégant
- [LLDAP](./lldap): Implémentation légère de LDAP pour l'authentification
- [PostgreSQL](./postgres) : PostgreSQL est un système de gestion de base de données relationnelle et objet. - [PostgreSQL](./postgres) : PostgreSQL est un système de gestion de base de données relationnelle et objet.
- [Prometheus](./prometheus) : Un logiciel de surveillance informatique - [Prometheus](./prometheus) : Un logiciel de surveillance informatique
- [Redis](./redis) : Système de gestion de base de données clé-valeur extensible, très hautes performances - [Redis](./redis) : Système de gestion de base de données clé-valeur extensible, très hautes performances

View File

@ -1,4 +1,4 @@
version: "3.8" ---
volumes: volumes:
clickhouse: clickhouse:

View File

@ -6,6 +6,8 @@
[De nombreuses variables d'environnement][documentation] peuvent être précisé pour configurer Directus. [De nombreuses variables d'environnement][documentation] peuvent être précisé pour configurer Directus.
- `CORS_ORIGIN` à comme valeur par défaut `false` et peut prendre `true` pour accepter toutes les connexions, mais il est préférable de spécifier directement les sites comme ceci `array:https://example.com,https://staging.example.com`.
## Liens ## Liens
- [Site officiel][website] - [Site officiel][website]

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
services: services:
directus: directus:
environment: environment:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
services: services:
directus: directus:
environment: environment:

View File

@ -1,10 +1,9 @@
--- ---
version: "3.8"
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services: services:
directus: directus:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
volumes: volumes:
directus: directus:
name: ${DIRECTUS_VOLUME_NAME:-directus} name: ${DIRECTUS_VOLUME_NAME:-directus}
@ -24,6 +22,8 @@ services:
ADMIN_EMAIL: ${DIRECTUS_ADMIN_EMAIL:?err} ADMIN_EMAIL: ${DIRECTUS_ADMIN_EMAIL:?err}
ADMIN_PASSWORD: ${DIRECTUS_ADMIN_PASSWORD:?err} ADMIN_PASSWORD: ${DIRECTUS_ADMIN_PASSWORD:?err}
PUBLIC_URL: ${DIRECTUS_PUBLIC_URL:?err} PUBLIC_URL: ${DIRECTUS_PUBLIC_URL:?err}
CORS_ENABLED: ${DIRECTUS_CORS_ENABLED:-false}
CORS_ORIGIN: ${DIRECTUS_CORS_ORIGIN:-false}
DB_CLIENT: 'pg' DB_CLIENT: 'pg'
DB_HOST: ${POSTGRES_CONTAINER_NAME:-postgres} # Default name is same as ../postgres/docker-compose.yml:8 DB_HOST: ${POSTGRES_CONTAINER_NAME:-postgres} # Default name is same as ../postgres/docker-compose.yml:8

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
# https://docs.drone.io/runner/docker/configuration/dashboard/ # https://docs.drone.io/runner/docker/configuration/dashboard/
services: services:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
services: services:
drone-runner: drone-runner:
ports: ports:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
# https://docs.drone.io/runner/docker/configuration/logging/ # https://docs.drone.io/runner/docker/configuration/logging/
services: services:

View File

@ -1,10 +1,9 @@
--- ---
version: "3.8"
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME} name: ${TRAEFIK_NETWORK_NAME}
external: true
services: services:
drone-runner: drone-runner:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
# https://docs.drone.io/runner/docker/installation/linux/ # https://docs.drone.io/runner/docker/installation/linux/
services: services:

View File

@ -33,9 +33,10 @@ Il faut ajouter les utilisateurs non admin :
``` ```
drone user add kosssi drone user add kosssi
drone user add killian drone user add killian
export PROMETHEUS_TOKEN=`openssl rand -hex 16`
drone user add prometheus --machine --token=${PROMETHEUS_TOKEN} drone user add prometheus --machine --token=${PROMETHEUS_TOKEN}
``` ```
En n'oubliant pas au moment de l'installation d'identifier précisément les utilisateurs ayant le droit d'exécuter Drone avec la variable `DRONE_USER_FILTER=kosssi,killian,prometheus,${DRONE_ADMIN_USER}` En n'oubliant pas au moment de l'installation d'identifier précisément les utilisateurs ayant le droit d'exécuter Drone avec la variable `DRONE_USER_FILTER=kosssi,killian,prometheus,${DRONE_ADMIN_USER}`
[Documentation officielle](https://docs.drone.io/cli/user/drone-user-add/) [Documentation officielle](https://docs.drone.io/server/user/machine/#create-accounts) [cli](https://docs.drone.io/cli/user/drone-user-add/)

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
# https://docs.drone.io/server/cookie/ # https://docs.drone.io/server/cookie/
services: services:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
# https://docs.drone.io/server/provider/gitea/ # https://docs.drone.io/server/provider/gitea/
services: services:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
# https://docs.drone.io/server/headers/ # https://docs.drone.io/server/headers/
services: services:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
services: services:
drone-server: drone-server:
ports: ports:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
# https://docs.drone.io/server/logging/ # https://docs.drone.io/server/logging/
services: services:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
# https://docs.drone.io/server/storage/database/ # https://docs.drone.io/server/storage/database/
# https://docs.drone.io/server/storage/encryption/ # https://docs.drone.io/server/storage/encryption/

View File

@ -1,10 +1,9 @@
--- ---
version: "3.8"
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME} name: ${TRAEFIK_NETWORK_NAME}
external: true
services: services:
drone-server: drone-server:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
# https://docs.drone.io/server/user/registration/ # https://docs.drone.io/server/user/registration/
services: services:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
volumes: volumes:
drone-server: drone-server:
name: ${DRONE_SERVER_VOLUME_NAME:-drone-server} name: ${DRONE_SERVER_VOLUME_NAME:-drone-server}

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
volumes: volumes:
geoip: geoip:
name: ${GEOIP_VOLUME_NAME:-geoip} name: ${GEOIP_VOLUME_NAME:-geoip}

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
volumes: volumes:
geoipupdate: geoipupdate:
name: ${GEOIPUPDATE_VOLUME_NAME:-geoipupdate} name: ${GEOIPUPDATE_VOLUME_NAME:-geoipupdate}

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
gitea: gitea:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
gitea: gitea:

View File

@ -0,0 +1,12 @@
---
services:
gitea:
environment:
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=${POSTGRES_CONTAINER_NAME:-postgres}:5432
- GITEA__database__NAME=${POSTGRES_DB}
- GITEA__database__USER=${POSTGRES_USER}
- GITEA__database__PASSWD=${POSTGRES_PASSWORD}
depends_on:
- postgres

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
gitea: gitea:

View File

@ -1,8 +1,9 @@
version: "3.8" ---
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services: services:
gitea: gitea:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
volumes: volumes:
gitea: gitea:
@ -7,17 +7,11 @@ volumes:
services: services:
gitea: gitea:
container_name: ${GITEA_CONTAINER_NAME:-gitea} container_name: ${GITEA_CONTAINER_NAME:-gitea}
image: ${GITEA_IMAGE:-gitea/gitea:1.18.4} image: ${GITEA_IMAGE:-gitea/gitea:1.20.4}
restart: always restart: always
environment: environment:
- USER_UID=${GITEA_UID:-1000} - USER_UID=${GITEA_UID:-1000}
- USER_GID=${GITEA_GID:-1000} - USER_GID=${GITEA_GID:-1000}
# Database
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=${POSTGRES_CONTAINER_NAME:-postgres}:5432
- GITEA__database__NAME=${POSTGRES_DB}
- GITEA__database__USER=${POSTGRES_USER}
- GITEA__database__PASSWD=${POSTGRES_PASSWORD}
# Security # Security
# docker run -it --rm gitea/gitea:1 gitea generate secret SECRET_KEY # docker run -it --rm gitea/gitea:1 gitea generate secret SECRET_KEY
- GITEA__security__SECRET_KEY=${GITEA_SECRET_KEY} - GITEA__security__SECRET_KEY=${GITEA_SECRET_KEY}
@ -27,5 +21,3 @@ services:
- gitea:/data - gitea:/data
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
depends_on:
- postgres

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
grafana: grafana:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
grafana: grafana:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
grafana: grafana:

View File

@ -1,8 +1,9 @@
version: "3.8" ---
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services: services:
grafana: grafana:

View File

@ -1,5 +1,4 @@
--- ---
version: "3.8"
volumes: volumes:
grafana: grafana:

View File

@ -1,8 +1,9 @@
version: "3.8" ---
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services: services:
hedgedoc: hedgedoc:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
volumes: volumes:
hedgedoc: hedgedoc:

View File

@ -1,8 +1,9 @@
version: "3.8" ---
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
volumes: volumes:
listmonk: listmonk:

50
lldap/.env Normal file
View File

@ -0,0 +1,50 @@
########
# DOCKER
SERVICES_DIR=..
COMPOSE_FILE=${SERVICES_DIR}/lldap/docker-compose.yml:${SERVICES_DIR}/lldap/docker-compose.local.yml:${SERVICES_DIR}/postgres/docker-compose.yml
#COMPOSE_PROJECT_NAME=
#######
# LLDAP
SERVICE_DOMAIN=lldap.cool.life
LLDAP_VOLUME_NAME=lldap_cool_life
LLDAP_CONTAINER_NAME=lldap_cool_life
LLDAP_IMAGE=nitnelave/lldap:v0.4.3
LLDAP_JWT_SECRET="6IeP8UUbEkQXrkUNbnu1sGpcZOu29wUTWh3uiEgMorI="
LLDAP_VERBOSE=true
LLDAP_LDAP_BASE_DN="dc=cool,dc=life"
LLDAP_LDAP_USER_DN="myuser"
LLDAP_LDAP_USER_EMAIL="admin@cool.life"
LLDAP_LDAP_USER_PASS="mon-mot-de-passe"
# LLDAP_TEST_EMAIL_TO=
# LLDAP_SMTP_OPTIONS__ENABLE_PASSWORD_RESET=
# LLDAP_SMTP_OPTIONS__SERVER=
# LLDAP_SMTP_OPTIONS__PORT=
# LLDAP_SMTP_OPTIONS__SMTP_ENCRYPTION=
# LLDAP_SMTP_OPTIONS__USER=
# LLDAP_SMTP_OPTIONS__PASSWORD=
# LLDAP_SMTP_OPTIONS__FROM=
# LLDAP_SMTP_OPTIONS__REPLY_TO=
##########
# POSTGRES
POSTGRES_USER=user-example
POSTGRES_PASSWORD=password-example
POSTGRES_DB=postgres-database-name-example
POSTGRES_CONTAINER_NAME=lldap-postgres
POSTGRES_VOLUME_NAME=lldap-postgres
#POSTGRES_IMAGE=
#########
# TRAEFIK
#TRAEFIK_NETWORK_NAME=
#TRAEFIK_ROUTER_NAME= # Don't use char '.'
#TRAEFIK_ENTRYPOINTS=

27
lldap/README.md Normal file
View File

@ -0,0 +1,27 @@
# LLDAP
> Implémentation légère de LDAP pour l'authentification :
> Ce projet est un serveur d'authentification léger (écrit en rust) qui fournit une interface LDAP simplifiée pour l'authentification. Il s'intègre avec de nombreux backends, de KeyCloak à [Authelia](https://github.com/lldap/lldap/blob/main/example_configs/authelia_config.yml) en passant par Nextcloud et plus encore !
## Documentation
- Le fichier [`lldap_config.docker_template.toml`](https://github.com/lldap/lldap/blob/main/lldap_config.docker_template.toml) contient toute la configuration possible de l'outil.
- De base le projet utilise SQLite, mais on peut utiliser Postgres voir le fichier [`docker-compose.postgres.yml`](./docker-compose.postgres.yml)
- Le projet n'est pas [traduit](https://github.com/lldap/lldap/issues/20) actuellement
- Lors du lancement du service une clé est généré aléatoirement dans le fichier `private_key` du dossier `/data` du container, ce fichier est important il faut donc le sauvegarder puisque les mots de passe sont chiffrés en base avec.
## Configuration
La configuration a été séparée en 5 fichiers :
- [`docker-compose.yml`](./docker-compose.yml) contient la configuration de base
- [`docker-compose.local.yml`](./docker-compose.local.yml) permettant de tester le service sans Traefik
- [`docker-compose.smtp.yml`](./docker-compose.smtp.yml) correspondant à la configuration du service SMTP
- [`docker-compose.postgres.yml`](./docker-compose.postgres.yml) pour configurer le service Postgres
- [`docker-compose.traefik.yml`](./docker-compose.traefik.yml) pour configurer automatiquement Traefik
## Liens
- [Code source](https://github.com/lldap/lldap)
- [Docker Hub](https://hub.docker.com/r/nitnelave/lldap)
- [Documentation](https://github.com/lldap/lldap/blob/main/lldap_config.docker_template.toml)

View File

@ -0,0 +1,11 @@
---
services:
lldap:
ports:
# For LDAP
- "3890:3890"
# For LDAPS (LDAP Over SSL), enable port if LLDAP_LDAPS_OPTIONS__ENABLED set true, look env below
- "6360:6360"
# For the web front-end
- "17170:17170"

View File

@ -0,0 +1,6 @@
---
services:
lldap:
environment:
- LLDAP_DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_CONTAINER_NAME}/${POSTGRES_DB}

View File

@ -0,0 +1,14 @@
---
services:
lldap:
environment:
- LLDAP_TEST_EMAIL_TO=${LLDAP_TEST_EMAIL_TO}
- LLDAP_SMTP_OPTIONS__ENABLE_PASSWORD_RESET=${LLDAP_SMTP_OPTIONS__ENABLE_PASSWORD_RESET}
- LLDAP_SMTP_OPTIONS__SERVER=${LLDAP_SMTP_OPTIONS__SERVER}
- LLDAP_SMTP_OPTIONS__PORT=${LLDAP_SMTP_OPTIONS__PORT}
- LLDAP_SMTP_OPTIONS__SMTP_ENCRYPTION=${LLDAP_SMTP_OPTIONS__SMTP_ENCRYPTION}
- LLDAP_SMTP_OPTIONS__USER=${LLDAP_SMTP_OPTIONS__USER}
- LLDAP_SMTP_OPTIONS__PASSWORD=${LLDAP_SMTP_OPTIONS__PASSWORD}
- LLDAP_SMTP_OPTIONS__FROM=${LLDAP_SMTP_OPTIONS__FROM}
- LLDAP_SMTP_OPTIONS__REPLY_TO=${LLDAP_SMTP_OPTIONS__REPLY_TO}

View File

@ -0,0 +1,22 @@
---
networks:
default:
name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services:
lldap:
labels:
- traefik.enable=true
- traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-lldap}.rule=Host(`${SERVICE_DOMAIN:?err}`)
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-lldap}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
# - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-lldap}.tls.certResolver=letsencrypt
- traefik.http.services.${TRAEFIK_ROUTER_NAME:-lldap}.loadbalancer.server.port=17170
- traefik.http.services.${TRAEFIK_ROUTER_NAME:-lldap}.loadbalancer.server.scheme=http
# https://github.com/lldap/lldap/issues/247#issuecomment-1489962511
# - traefik.tcp.routers.${TRAEFIK_ROUTER_NAME:-lldap}.rule=HostSNI(`${SERVICE_DOMAIN:?err}`)
# - traefik.tcp.routers.${TRAEFIK_ROUTER_NAME:-lldap}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
# - traefik.tcp.services.${TRAEFIK_ROUTER_NAME:-lldap}.loadbalancer.server.port=3890

24
lldap/docker-compose.yml Normal file
View File

@ -0,0 +1,24 @@
---
volumes:
lldap:
name: ${LLDAP_VOLUME_NAME:-lldap}
services:
lldap:
container_name: ${LLDAP_CONTAINER_NAME:-lldap}
image: ${LLDAP_IMAGE:-nitnelave/lldap:v0.4.3}
restart: always
volumes:
- "lldap:/data"
environment:
- TZ=${TIMEZONE:-Europe/Paris}
- LLDAP_VERBOSE=${LLDAP_VERBOSE:-false}
- LLDAP_JWT_SECRET=${LLDAP_JWT_SECRET:?err}
- LLDAP_HTTP_URL=https://${SERVICE_DOMAIN:?err}
- LLDAP_LDAP_BASE_DN=${LLDAP_LDAP_BASE_DN:?err}
- LLDAP_LDAP_USER_DN=${LLDAP_LDAP_USER_DN:?err}
- LLDAP_LDAP_USER_EMAIL=${LLDAP_LDAP_USER_EMAIL:?err}
- LLDAP_LDAP_USER_PASS=${LLDAP_LDAP_USER_PASS:?err}

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
services: services:
mobilizon: mobilizon:
ports: ports:

View File

@ -1,10 +1,9 @@
--- ---
version: "3.8"
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services: services:
mobilizon: mobilizon:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
volumes: volumes:
mobilizon: mobilizon:
name: ${MOBILIZON_VOLUME_NAME:-mobilizon} name: ${MOBILIZON_VOLUME_NAME:-mobilizon}

View File

@ -1,5 +1,4 @@
--- ---
version: "3.8"
services: services:
nextcloud-fpm: nextcloud-fpm:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
nextcloud-web: nextcloud-web:

View File

@ -0,0 +1,16 @@
---
services:
nextcloud-fpm:
depends_on:
- postgres
environment:
&postgres-configuration
POSTGRES_HOST: ${POSTGRES_CONTAINER_NAME:-postgres} # Default name is same as ../postgres/docker-compose.yml:8
POSTGRES_USER: ${POSTGRES_USER:?err}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?err}
POSTGRES_DB: ${POSTGRES_DB:?err}
nextcloud-cron:
environment:
<<: *postgres-configuration

View File

@ -0,0 +1,13 @@
---
services:
nextcloud-fpm:
depends_on:
- redis
environment:
&redis-configuration
REDIS_HOST: ${REDIS_CONTAINER_NAME:-redis} # Default name is same as ../redis/docker-compose.yml:4
nextcloud-cron:
environment:
<<: *redis-configuration

View File

@ -1,17 +1,17 @@
version: "3.8" ---
services: services:
nextcloud-fpm: nextcloud-fpm:
environment: environment:
&smtp-configuration &smtp-configuration
NC_mail_smtphost: ${NC_mail_smtphost:?err} # The hostname of the SMTP server. SMTP_HOST: ${SMTP_HOST:?err}
NC_mail_smtpsecure: ${NC_mail_smtpsecure:-ssl} # Set to ssl to use SSL, or tls to use STARTTLS. SMTP_SECURE: ${SMTP_SECURE:-}
NC_mail_smtpport: ${NC_mail_smtpport:-465} SMTP_PORT: ${SMTP_PORT:-587}
NC_mail_smtpauthtype: ${NC_mail_smtpauthtype:-LOGIN} SMTP_AUTHTYPE: ${SMTP_AUTHTYPE:-LOGIN}
NC_mail_smtpname: ${NC_mail_smtpname:?err} SMTP_NAME: ${SMTP_NAME:?err}
NC_mail_smtppassword: ${NC_mail_smtppassword:?err} SMTP_PASSWORD: ${SMTP_PASSWORD:?err}
NC_mail_from_address: ${NC_mail_from_address:?err} MAIL_FROM_ADDRESS: ${MAIL_FROM_ADDRESS:?err}
NC_mail_domain: ${NC_mail_domain:?err} MAIL_DOMAIN: ${MAIL_DOMAIN:?err}
nextcloud-cron: nextcloud-cron:
environment: environment:

View File

@ -1,13 +1,15 @@
version: "3.8" ---
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services: services:
nextcloud-web: nextcloud-fpm:
environment: environment:
TRUSTED_PROXIES: ${TRAEFIK_NETWORK_NAME:-traefik} TRUSTED_PROXIES: ${TRAEFIK_NETWORK_NAME:-traefik}
nextcloud-web:
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik} - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}

View File

@ -1,4 +1,4 @@
version: "3.8" ---
volumes: volumes:
nextcloud: nextcloud:
@ -9,9 +9,6 @@ services:
container_name: ${NEXTCLOUD_CONTAINER_NAME:-nextcloud}-fpm container_name: ${NEXTCLOUD_CONTAINER_NAME:-nextcloud}-fpm
image: ${NEXTCLOUD_IMAGE:-nextcloud:25.0.2-fpm-alpine} image: ${NEXTCLOUD_IMAGE:-nextcloud:25.0.2-fpm-alpine}
restart: always restart: always
depends_on:
- postgres
- redis
volumes: volumes:
- nextcloud:/var/www/html - nextcloud:/var/www/html
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
@ -23,11 +20,6 @@ services:
NEXTCLOUD_ADMIN_PASSWORD: ${NEXTCLOUD_ADMIN_PASSWORD?err} NEXTCLOUD_ADMIN_PASSWORD: ${NEXTCLOUD_ADMIN_PASSWORD?err}
OVERWRITEPROTOCOL: ${OVERWRITEPROTOCOL:-https} OVERWRITEPROTOCOL: ${OVERWRITEPROTOCOL:-https}
PHP_UPLOAD_LIMIT: ${PHP_UPLOAD_LIMIT:-512M} PHP_UPLOAD_LIMIT: ${PHP_UPLOAD_LIMIT:-512M}
POSTGRES_HOST: ${POSTGRES_CONTAINER_NAME:-postgres} # Default name is same as ../postgres/docker-compose.yml:8
POSTGRES_USER: ${POSTGRES_USER:?err}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?err}
POSTGRES_DB: ${POSTGRES_DB:?err}
REDIS_HOST: ${REDIS_CONTAINER_NAME:-redis} # Default name is same as ../redis/docker-compose.yml:4
PUID: ${NEXTCLOUD_PUID:-1000} PUID: ${NEXTCLOUD_PUID:-1000}
PGID: ${NEXTCLOUD_PGID:-1000} PGID: ${NEXTCLOUD_PGID:-1000}

View File

@ -1,3 +1,3 @@
FROM nginx:1.23.3-alpine FROM nginx:1.25.3-alpine
COPY nextcloud.conf.template /etc/nginx/templates/default.conf.template COPY nextcloud.conf.template /etc/nginx/templates/default.conf.template

View File

@ -2,64 +2,32 @@ upstream php-handler {
server ${NEXTCLOUD_FPM_CONTAINER_NAME}:9000; server ${NEXTCLOUD_FPM_CONTAINER_NAME}:9000;
} }
# Set the `immutable` cache control options only for assets with a cache busting `v` argument
map $arg_v $asset_immutable {
"" "";
default "immutable";
}
server { server {
listen 80; listen 80;
# Add headers to serve security related headers # Path to the root of your installation
# Before enabling Strict-Transport-Security headers please read into this root /var/www/html;
# topic first.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; # Prevent nginx HTTP Server Detection
# server_tokens off;
# HSTS settings
# WARNING: Only add the preload option once you read about # WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option # the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped # will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list # in all major browsers and getting removed from this list
# could take several months. # could take several months.
add_header Referrer-Policy "no-referrer" always; #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;
# Remove X-Powered-By, which is an information leak # set max upload size and increase upload timeout:
fastcgi_hide_header X-Powered-By;
# Path to the root of your installation
root /var/www/html;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
# The following rule is only needed for the Social app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/webfinger /public.php?service=webfinger last;
location = /.well-known/carddav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
# location /nginx_status {
# stub_status;
# allow 192.168.1.0/24; #only allow requests from local network
# deny all; #deny all other hosts
# }
# set max upload size
client_max_body_size 10G; client_max_body_size 10G;
client_body_timeout 300s;
fastcgi_buffers 64 4K; fastcgi_buffers 64 4K;
# Enable gzip but do not remove ETag headers # Enable gzip but do not remove ETag headers
@ -68,78 +36,137 @@ server {
gzip_comp_level 4; gzip_comp_level 4;
gzip_min_length 256; gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
# Uncomment if your server is build with the ngx_pagespeed module # Pagespeed is not supported by Nextcloud, so if your server is built
# This module is currently not supported. # with the `ngx_pagespeed` module, uncomment this line to disable it.
#pagespeed off; #pagespeed off;
location / { # The settings allows you to optimize the HTTP2 bandwidth.
rewrite ^ /index.php; # See https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/
# for tuning hints
client_body_buffer_size 512k;
# HTTP response headers borrowed from Nextcloud `.htaccess`
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
add_header X-XSS-Protection "1; mode=block" always;
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
# Add .mjs as a file extension for javascript
# Either include it in the default mime.types list
# or include you can include that list explicitly and add the file extension
# only for Nextcloud like below:
include mime.types;
types {
text/javascript js mjs;
} }
location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ { # Specify how to handle directories -- specifying `/index.php$request_uri`
deny all; # here as the fallback means that Nginx always exhibits the desired behaviour
} # when a client requests a path that corresponds to a directory that exists
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) { # on the server. In particular, if that directory contains an index.php file,
deny all; # that file is correctly served; if it doesn't, then the request is passed to
# the front-end controller. This consistent behaviour means that we don't need
# to specify custom rules for certain paths (e.g. images and other assets,
# `/updater`, `/ocs-provider`), and thus
# `try_files $uri $uri/ /index.php$request_uri`
# always provides the desired behaviour.
index index.php index.html /index.php$request_uri;
# Rule borrowed from `.htaccess` to handle Microsoft DAV clients
location = / {
if ( $http_user_agent ~ ^DavClnt ) {
return 302 /remote.php/webdav/$is_args$args;
}
} }
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) { location = /robots.txt {
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$; allow all;
log_not_found off;
access_log off;
}
# Make a regex exception for `/.well-known` so that clients can still
# access it despite the existence of the regex rule
# `location ~ /(\.|autotest|...)` which would otherwise handle requests
# for `/.well-known`.
location ^~ /.well-known {
# The rules in this block are an adaptation of the rules
# in `.htaccess` that concern `/.well-known`.
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
# Let Nextcloud's API for `/.well-known` URIs handle all other
# requests by passing them to the front-end controller.
return 301 /index.php$request_uri;
}
# Rules borrowed from `.htaccess` to hide certain paths from clients
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; }
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; }
# Ensure this block, which passes PHP files to the PHP process, is above the blocks
# which handle static assets (as seen below). If this block is not declared first,
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
# to the URI, resulting in a HTTP 500 error response.
location ~ \.php(?:$|/) {
# Required for legacy support
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info; set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404; try_files $fastcgi_script_name =404;
include fastcgi_params; include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info; fastcgi_param PATH_INFO $path_info;
# fastcgi_param HTTPS on; fastcgi_param HTTPS on;
# Avoid sending the security headers twice fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; # Enable pretty urls
# Enable pretty urls
fastcgi_param front_controller_active true;
fastcgi_pass php-handler; fastcgi_pass php-handler;
fastcgi_intercept_errors on; fastcgi_intercept_errors on;
fastcgi_request_buffering off; fastcgi_request_buffering off;
fastcgi_max_temp_file_size 0;
} }
location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) { # Serve static files
try_files $uri/ =404; location ~ \.(?:css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite|map|ogg|flac)$ {
index index.php;
}
# Adding the cache control header for js, css and map files
# Make sure it is BELOW the PHP block
location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri; try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463"; add_header Cache-Control "public, max-age=15778463, $asset_immutable";
# Add headers to serve security related headers (It is intended to access_log off; # Optional: Don't log access to assets
# have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into
# this topic first.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;
# Optional: Don't log access to assets location ~ \.wasm$ {
access_log off; default_type application/wasm;
}
} }
location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap|mp4|webm)$ { location ~ \.woff2?$ {
try_files $uri /index.php$request_uri; try_files $uri /index.php$request_uri;
# Optional: Don't log access to other assets expires 7d; # Cache-Control policy borrowed from `.htaccess`
access_log off; access_log off; # Optional: Don't log access to assets
}
# Rule borrowed from `.htaccess`
location /remote {
return 301 /remote.php$request_uri;
}
location / {
try_files $uri $uri/ /index.php$request_uri;
} }
} }

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
clickhouse: clickhouse:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
plausible: plausible:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
plausible: plausible:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
plausible: plausible:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
plausible: plausible:

View File

@ -1,8 +1,9 @@
version: "3.8" ---
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services: services:
plausible: plausible:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
volumes: volumes:
plausible: plausible:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
volumes: volumes:
postgres: postgres:

View File

@ -1,10 +1,9 @@
--- ---
version: "3.8"
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services: services:
prometheus: prometheus:

6
redis/README.md Normal file
View File

@ -0,0 +1,6 @@
# Redis
## Information
- Port par défaut : 6379
- La configuration de mot de passe : https://github.com/docker-library/redis/issues/46

View File

@ -1,4 +1,4 @@
version: "3.8" ---
volumes: volumes:
redis: redis:

View File

@ -3,6 +3,7 @@ version: '3.8'
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME} name: ${TRAEFIK_NETWORK_NAME}
external: true
services: services:
registry: registry:

30
signaturepdf/.env Normal file
View File

@ -0,0 +1,30 @@
########
# DOCKER
#DOCKER_CONTEXT=
#DOCKER_HOST=
SERVICES_DIR=..
COMPOSE_FILE=${SERVICES_DIR}/signaturepdf/docker-compose.yml:${SERVICES_DIR}/signaturepdf/docker-compose.traefik.yml
#COMPOSE_PROJECT_NAME=
#SIGNATUREPDF_VOLUME_NAME=
#SIGNATUREPDF_CONTAINER_NAME=
#SIGNATUREPDF_IMAGE=
##############
# SIGNATUREPDF
SIGNATUREPDF_DOMAIN=pdf.cool.life
UPLOAD_MAX_FILESIZE=24M
POST_MAX_SIZE=24M
MAX_FILE_UPLOADS=201
PDF_STORAGE_PATH=/data
DISABLE_ORGANIZATION=false
PDF_DEMO_LINK=true
#########
# TRAEFIK
#TRAEFIK_NETWORK_NAME=
#TRAEFIK_ROUTER_NAME=
#TRAEFIK_ENTRYPOINTS=

19
signaturepdf/README.md Normal file
View File

@ -0,0 +1,19 @@
# Signature de PDF
Logiciel WEB libre permettant de modifier un fichier PDF facilement.
## Information
Le service n'a pas d'image Docker officiel. Actuellement l'image a été construite et poussé sur Hub de Docker par Simon :
```
git clone git@github.com:24eme/signaturepdf.git
cd signaturepdf
docker build -t simonc/signaturepdf:latest .
docker push simonc/signaturepdf:latest
```
## 🔗 Liens
- [Github](https://github.com/24eme/signaturepdf)
- [L'image Docker sur Docker Hub](https://hub.docker.com/r/simonc/signaturepdf)

View File

@ -0,0 +1,11 @@
---
services:
signaturepdf:
labels:
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-signaturepdf}.tls.certResolver=letsencrypt
# redirect HTTP to HTTPS
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-signaturepdf}_http.rule=Host(`${SIGNATUREPDF_DOMAIN:?err}`)
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-signaturepdf}_http.entrypoints=web
- traefik.http.middlewares.${TRAEFIK_ROUTER_NAME:-signaturepdf}_redirect_https.redirectscheme.scheme=https
- traefik.http.middlewares.${TRAEFIK_ROUTER_NAME:-signaturepdf}_redirect_https.redirectscheme.permanent=true
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-signaturepdf}_http.middlewares=${TRAEFIK_ROUTER_NAME:-signaturepdf}_redirect_https

View File

@ -0,0 +1,14 @@
---
networks:
default:
name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services:
signaturepdf:
labels:
- traefik.enable=true
- traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-signaturepdf}.rule=Host(`${SIGNATUREPDF_DOMAIN:?err}`)
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-signaturepdf}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}

View File

@ -0,0 +1,23 @@
---
volumes:
signaturepdf:
name: ${SIGNATUREPDF_VOLUME_NAME:-signaturepdf}
services:
signaturepdf:
container_name: ${SIGNATUREPDF_CONTAINER_NAME:-signaturepdf}
image: ${SIGNATUREPDF_IMAGE:-simonc/signaturepdf:latest}
volumes:
- signaturepdf:/data
restart: always
environment:
SERVERNAME: ${SIGNATUREPDF_DOMAIN}
UPLOAD_MAX_FILESIZE: ${UPLOAD_MAX_FILESIZE}
POST_MAX_SIZE: ${POST_MAX_SIZE}
MAX_FILE_UPLOADS: ${MAX_FILE_UPLOADS}
PDF_STORAGE_PATH: ${PDF_STORAGE_PATH}
DISABLE_ORGANIZATION: ${DISABLE_ORGANIZATION}
PDF_DEMO_LINK: ${PDF_DEMO_LINK}
DEFAULT_LANGUAGE: ${DEFAULT_LANGUAGE:-fr_FR.UTF-8}
PDF_STORAGE_ENCRYPTION: ${PDF_STORAGE_ENCRYPTION:-true}

View File

@ -1,4 +1,4 @@
version: "3.8" ---
networks: networks:
default: default:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
traefik: traefik:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
traefik: traefik:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
networks: networks:
default: default:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
volumes: volumes:
traefik: traefik:
@ -11,7 +11,7 @@ networks:
services: services:
traefik: traefik:
container_name: ${TRAEFIK_CONTAINER_NAME:-traefik} container_name: ${TRAEFIK_CONTAINER_NAME:-traefik}
image: ${TRAEFIK_IMAGE:-traefik:v2.6.3} image: ${TRAEFIK_IMAGE:-traefik:v2.10.4}
restart: always restart: always
volumes: volumes:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
@ -27,6 +27,7 @@ services:
- traefik - traefik
command: command:
- --api.insecure=${TRAEFIK_API_INSECURE:-true} - --api.insecure=${TRAEFIK_API_INSECURE:-true}
- --api.disabledashboardad=${TRAEFIK_API_DISABLEDASHBOARDAD:-true}
- --log.level=${TRAEFIK_LOG_LEVEL:-INFO} - --log.level=${TRAEFIK_LOG_LEVEL:-INFO}
- --global.sendanonymoususage=${TRAEFIK_GLOBAL_SENDANONYMOUSUSAGE:-false} - --global.sendanonymoususage=${TRAEFIK_GLOBAL_SENDANONYMOUSUSAGE:-false}
- --global.checknewversion=${TRAEFIK_GLOBAL_CHECKNEWVERSION:-false} - --global.checknewversion=${TRAEFIK_GLOBAL_CHECKNEWVERSION:-false}

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
services: services:
uptimekuma: uptimekuma:
ports: ports:

View File

@ -1,10 +1,9 @@
--- ---
version: "3.8"
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services: services:
uptimekuma: uptimekuma:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
volumes: volumes:
uptimekuma: uptimekuma:
name: ${UPTIMEKUMA_VOLUME_NAME:-uptimekuma} name: ${UPTIMEKUMA_VOLUME_NAME:-uptimekuma}

View File

@ -9,7 +9,7 @@ COMPOSE_FILE=${SERVICES_DIR}/vaultwarden/docker-compose.yml
#VAULTWARDEN_IMAGE= #VAULTWARDEN_IMAGE=
#VAULTWARDEN_VOLUME_NAME= #VAULTWARDEN_VOLUME_NAME=
VAULTWARDEN_DOMAIN=vaultwarden.local SERVICE_DOMAIN=vaultwarden.local
#VAULTWARDEN_LOG_LEVEL= #VAULTWARDEN_LOG_LEVEL=
#VAULTWARDEN_SIGNUPS_ALLOWED=false #VAULTWARDEN_SIGNUPS_ALLOWED=false

View File

@ -10,6 +10,20 @@ Toutes les variables de configuration du service sont disponibles à [cette adre
[Les clients de Bitwarden](https://bitwarden.com/#download) sont compatibles avec le serveur. [Les clients de Bitwarden](https://bitwarden.com/#download) sont compatibles avec le serveur.
## Ajout des mails en Français
Il est possible de [traduire les mails](https://github.com/dani-garcia/vaultwarden/wiki/Translating-the-email-templates).
```
. .env
cd /var/lib/docker/volumes/${VAULTWARDEN_VOLUME_NAME}/_data/
mkdir templates && cd templates
wget https://github.com/YoanSimco/vaultwarden-lang-fr/archive/refs/heads/main.zip
unzip main.zip
mv vaultwarden-lang-fr/email .
rm vaultwarden-lang-fr-main/ main.zip -rf
```
## Liens ## Liens
- [Documentation][documentation] - [Documentation][documentation]

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
services: services:
vaultwarden: vaultwarden:
depends_on: depends_on:

View File

@ -1,7 +1,5 @@
--- ---
version: "3.8"
services: services:
vaultwarden: vaultwarden:
environment: environment:

View File

@ -0,0 +1,25 @@
---
services:
vaultwarden:
environment:
SSO_ENABLED: ${SSO_ENABLED:-true}
SSO_ONLY: ${SSO_ONLY:-true}
SSO_SIGNUPS_MATCH_EMAIL: ${SSO_SIGNUPS_MATCH_EMAIL:-true}
SSO_AUTHORITY: ${SSO_AUTHORITY}
SSO_SCOPES: ${SSO_SCOPES:-email groups profile offline_access}
SSO_AUTHORIZE_EXTRA_PARAMS: ${SSO_AUTHORIZE_EXTRA_PARAMS:-}
SSO_PKCE: ${SSO_PKCE:-false}
SSO_CLIENT_ID: ${SSO_CLIENT_ID}
SSO_CLIENT_SECRET: ${SSO_CLIENT_SECRET}
# SSO_MASTER_PASSWORD_POLICY: ${SSO_MASTER_PASSWORD_POLICY:-}
SSO_AUTH_ONLY_NOT_SESSION: ${SSO_AUTH_ONLY_NOT_SESSION:-false}
SSO_CLIENT_CACHE_EXPIRATION: ${SSO_CLIENT_CACHE_EXPIRATION:-0}
SSO_DEBUG_TOKENS: ${SSO_DEBUG_TOKENS:-false}
SSO_FRONTEND: ${SSO_FRONTEND:-override}
# SSO_EXPERIMENTAL_NO_MASTER_PWD: ${SSO_EXPERIMENTAL_NO_MASTER_PWD:-false}
SSO_ROLES_ENABLED: ${SSO_ROLES_ENABLED:-false}
SSO_ROLES_DEFAULT_TO_USER: ${SSO_ROLES_DEFAULT_TO_USER:-false}
SSO_ORGANIZATIONS_INVITE: ${SSO_ORGANIZATIONS_INVITE:-false}

View File

@ -0,0 +1,12 @@
---
services:
vaultwarden:
labels:
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vaultwarden}.tls.certResolver=letsencrypt
# redirect HTTP to HTTPS
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vaultwarden}_http.rule=Host(`${SERVICE_DOMAIN:?err}`)
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vaultwarden}_http.entrypoints=web
- traefik.http.middlewares.${TRAEFIK_ROUTER_NAME:-vaultwarden}_redirect_https.redirectscheme.scheme=https
- traefik.http.middlewares.${TRAEFIK_ROUTER_NAME:-vaultwarden}_redirect_https.redirectscheme.permanent=true
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vaultwarden}_http.middlewares=${TRAEFIK_ROUTER_NAME:-vaultwarden}_redirect_https

View File

@ -1,15 +1,14 @@
--- ---
version: "3.8"
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
services: services:
vaultwarden: vaultwarden:
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik} - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vaultwarden}.rule=Host(`${VAULTWARDEN_DOMAIN:?err}`) - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vaultwarden}.rule=Host(`${SERVICE_DOMAIN:?err}`)
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vaultwarden}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web} - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vaultwarden}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}

View File

@ -1,22 +1,26 @@
--- ---
version: "3.8"
volumes: volumes:
vaultwarden: vaultwarden:
name: ${VAULTWARDEN_VOLUME_NAME:-vaultwarden} name: ${VAULTWARDEN_VOLUME_NAME:-vaultwarden}
services: services:
vaultwarden: vaultwarden:
image: ${VAULTWARDEN_IMAGE:-vaultwarden/server:1.27.0-alpine} image: ${VAULTWARDEN_IMAGE:-vaultwarden/server:1.34.1-alpine}
container_name: ${VAULTWARDEN_CONTAINER_NAME:-vaultwarden} container_name: ${VAULTWARDEN_CONTAINER_NAME:-vaultwarden}
restart: always restart: always
environment: environment:
ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN:?err} ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN:?err}
DOMAIN: https://${VAULTWARDEN_DOMAIN:?err} DOMAIN: https://${SERVICE_DOMAIN:?err}
SENDS_ALLOWED: ${SENDS_ALLOWED:-true}
TRASH_AUTO_DELETE_DAYS: ${TRASH_AUTO_DELETE_DAYS:-}
DISABLE_ICON_DOWNLOAD: ${DISABLE_ICON_DOWNLOAD:-false}
SIGNUPS_ALLOWED: ${VAULTWARDEN_SIGNUPS_ALLOWED:-true}
SIGNUPS_VERIFY: ${SIGNUPS_VERIFY:-false}
SIGNUPS_DOMAINS_WHITELIST: ${SIGNUPS_DOMAINS_WHITELIST:-}
INVITATION_ORG_NAME: ${VAULTWARDEN_INVITATION_ORG_NAME:-Vaultwarden} INVITATION_ORG_NAME: ${VAULTWARDEN_INVITATION_ORG_NAME:-Vaultwarden}
LOG_LEVEL: ${VAULTWARDEN_LOG_LEVEL:-Info} LOG_LEVEL: ${VAULTWARDEN_LOG_LEVEL:-Info}
SIGNUPS_ALLOWED: ${VAULTWARDEN_SIGNUPS_ALLOWED:-true} ORG_GROUPS_ENABLED: ${VAULTWARDEN_ORG_GROUPS_ENABLED:-false}
volumes: volumes:
- vaultwarden:/data - vaultwarden:/data
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro

View File

@ -0,0 +1,9 @@
---
version: "3.8"
services:
vikunja_api:
environment:
VIKUNJA_LEGAL_IMPRINTURL: ${VIKUNJA_LEGAL_IMPRINTURL}
VIKUNJA_LEGAL_PRIVACYURL: ${VIKUNJA_LEGAL_PRIVACYURL}

View File

@ -1,4 +1,4 @@
version: "3.8" ---
services: services:
vikunja_api: vikunja_api:

View File

@ -1,4 +1,4 @@
version: "3.8" ---
# https://vikunja.io/docs/config-options/#metrics # https://vikunja.io/docs/config-options/#metrics

View File

@ -1,4 +1,4 @@
version: "3.8" ---
# https://vikunja.io/docs/config-options/#redis # https://vikunja.io/docs/config-options/#redis

View File

@ -1,4 +1,4 @@
version: "3.8" ---
# https://vikunja.io/docs/config-options/#mailer # https://vikunja.io/docs/config-options/#mailer

View File

@ -1,8 +1,9 @@
version: "3.8" ---
networks: networks:
default: default:
name: ${TRAEFIK_NETWORK_NAME:-traefik} name: ${TRAEFIK_NETWORK_NAME:-traefik}
external: true
# https://vikunja.io/docs/full-docker-example/#example-with-traefik-2 # https://vikunja.io/docs/full-docker-example/#example-with-traefik-2

View File

@ -1,4 +1,4 @@
version: "3.8" ---
# https://vikunja.io/docs/config-options # https://vikunja.io/docs/config-options
# https://vikunja.io/docs/full-docker-example/ # https://vikunja.io/docs/full-docker-example/
@ -10,13 +10,30 @@ volumes:
services: services:
vikunja_api: vikunja_api:
container_name: ${VIKUNJA_CONTAINER_NAME:-vikunja}_api container_name: ${VIKUNJA_CONTAINER_NAME:-vikunja}_api
image: ${VIKUNJA_API_IMAGE:-vikunja/api:0.18.1} image: ${VIKUNJA_API_IMAGE:-vikunja/api:0.21.0}
restart: always restart: always
environment: environment:
VIKUNJA_DATABASE_PATH: ${VIKUNJA_DATABASE_PATH:-./vikunja.db}
VIKUNJA_DEFAULTSETTINGS_AVATAR_PROVIDER: ${VIKUNJA_DEFAULTSETTINGS_AVATAR_PROVIDER:-initials}
VIKUNJA_DEFAULTSETTINGS_AVATAR_FILE_ID: ${VIKUNJA_DEFAULTSETTINGS_AVATAR_FILE_ID:-0}
VIKUNJA_DEFAULTSETTINGS_EMAIL_REMINDERS_ENABLED: ${VIKUNJA_DEFAULTSETTINGS_EMAIL_REMINDERS_ENABLED:-false}
VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_NAME: ${VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_NAME:-true}
VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_EMAIL: ${VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_EMAIL:-true}
VIKUNJA_DEFAULTSETTINGS_OVERDUE_TASKS_REMINDERS_ENABLED: ${VIKUNJA_DEFAULTSETTINGS_OVERDUE_TASKS_REMINDERS_ENABLED:-false}
VIKUNJA_DEFAULTSETTINGS_OVERDUE_TASKS_REMINDERS_TIME: ${VIKUNJA_DEFAULTSETTINGS_OVERDUE_TASKS_REMINDERS_TIME:-9:00}
VIKUNJA_DEFAULTSETTINGS_DEFAULT_PROJECT_ID: ${VIKUNJA_DEFAULTSETTINGS_DEFAULT_PROJECT_ID:-0}
VIKUNJA_DEFAULTSETTINGS_WEEK_START: ${VIKUNJA_DEFAULTSETTINGS_WEEK_START:-1}
VIKUNJA_DEFAULTSETTINGS_LANGUAGE: ${VIKUNJA_DEFAULTSETTINGS_LANGUAGE:-fr-FR}
VIKUNJA_DEFAULTSETTINGS_TIMEZONE: ${VIKUNJA_DEFAULTSETTINGS_TIMEZONE:-Europe/Paris}
VIKUNJA_FILES_BASEPATH: ${VIKUNJA_FILES_BASEPATH:-./files}
VIKUNJA_FILES_MAXSIZE: ${VIKUNJA_FILES_MAXSIZE:-20MB}
VIKUNJA_SERVICE_JWTSECRET: ${VIKUNJA_SERVICE_JWTSECRET} VIKUNJA_SERVICE_JWTSECRET: ${VIKUNJA_SERVICE_JWTSECRET}
VIKUNJA_SERVICE_JWTTTL: ${VIKUNJA_SERVICE_JWTTTL:-259200} VIKUNJA_SERVICE_JWTTTL: ${VIKUNJA_SERVICE_JWTTTL:-259200}
VIKUNJA_SERVICE_JWTTTLLONG: ${VIKUNJA_SERVICE_JWTTTLLONG:-2592000} VIKUNJA_SERVICE_JWTTTLLONG: ${VIKUNJA_SERVICE_JWTTTLLONG:-2592000}
VIKUNJA_SERVICE_FRONTENDURL: ${VIKUNJA_SERVICE_FRONTENDURL:?err} VIKUNJA_SERVICE_FRONTENDURL: ${VIKUNJA_SERVICE_FRONTENDURL:?err}
VIKUNJA_SERVICE_MAXITEMSPERPAGE: ${VIKUNJA_SERVICE_MAXITEMSPERPAGE:-50} VIKUNJA_SERVICE_MAXITEMSPERPAGE: ${VIKUNJA_SERVICE_MAXITEMSPERPAGE:-50}
VIKUNJA_SERVICE_ENABLECALDAV: ${VIKUNJA_SERVICE_ENABLECALDAV:-true} VIKUNJA_SERVICE_ENABLECALDAV: ${VIKUNJA_SERVICE_ENABLECALDAV:-true}
@ -28,18 +45,17 @@ services:
VIKUNJA_SERVICE_ENABLETOTP: ${VIKUNJA_SERVICE_ENABLETOTP:-true} VIKUNJA_SERVICE_ENABLETOTP: ${VIKUNJA_SERVICE_ENABLETOTP:-true}
VIKUNJA_SERVICE_ENABLEEMAILREMINDERS: ${VIKUNJA_SERVICE_ENABLEEMAILREMINDERS:-true} VIKUNJA_SERVICE_ENABLEEMAILREMINDERS: ${VIKUNJA_SERVICE_ENABLEEMAILREMINDERS:-true}
VIKUNJA_SERVICE_ENABLEUSERDELETION: ${VIKUNJA_SERVICE_ENABLEUSERDELETION:-true} VIKUNJA_SERVICE_ENABLEUSERDELETION: ${VIKUNJA_SERVICE_ENABLEUSERDELETION:-true}
VIKUNJA_SERVICE_ROOTPATH: ${VIKUNJA_SERVICE_ROOTPATH:-/app/vikunja/}
VIKUNJA_FILES_BASEPATH: ${VIKUNJA_FILES_BASEPATH:-./files}
VIKUNJA_FILES_MAXSIZE: ${VIKUNJA_FILES_MAXSIZE:-20MB}
PUID: ${VIKUNJA_PUID:-1000} PUID: ${VIKUNJA_PUID:-1000}
PGID: ${VIKUNJA_PGID:-1000} PGID: ${VIKUNJA_PGID:-1000}
volumes: volumes:
- vikunja:/app/vikunja/files - vikunja:${VIKUNJA_VOLUME_PATH:-/app/vikunja/files}
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
vikunja_frontend: vikunja_frontend:
container_name: ${VIKUNJA_CONTAINER_NAME:-vikunja}_frontend container_name: ${VIKUNJA_CONTAINER_NAME:-vikunja}_frontend
image: ${VIKUNJA_FRONTEND_IMAGE:-vikunja/frontend:0.18.2} image: ${VIKUNJA_FRONTEND_IMAGE:-vikunja/frontend:0.21.0}
restart: always restart: always
depends_on: depends_on:
- vikunja_api - vikunja_api