diff --git a/README.md b/README.md
index 065f41f..716004e 100644
--- a/README.md
+++ b/README.md
@@ -6,28 +6,19 @@ Vous trouverez dans ce dépôt l'ensemble des services Open Source que RésiLien
### Pour les utilisateurs
-- [Directus](./directus) : Permet d'administrer une base de données
- [HedgeDoc](./hedgedoc) : Prise de note en Markdown collaborative en temps réel
-- [listmonk](./listmonk) : Gestionnaire de listes de diffusion et de newsletter
-- [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
-- [Vaultwarden](./vaultwarden) : Gestionnaire de mot de passe compatible avec Bitwarden
-- [Vikunja](./vikunja) : L'application pour organiser sa vie
+- [Directus](./directus) : Permet d'administrer une base de données
### Pour les devs / ops
-- [ClickHouse](./clickhouse) : Un logiciel libre de base de données orientée colonnes pour le traitement analytique en ligne
-- [Drone](./drone) : Un service d'intégration continue
-- [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.
+- [Drone](./drone) ⏸️ `en pause` : Un service d'intégration continue
+- [Gitea](./gitea) : Un service Git auto-hébergé très simple à installer et à utiliser. Il est similaire à GitHub, Bitbucket ou Gitlab.
- [Grafana](./grafana) : Un outil de supervision simple et élégant
- [PostgreSQL](./postgres) : PostgreSQL est un système de gestion de base de données relationnelle et objet.
- [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
-- [Registry Docker](./registry) : Une application qui permet de distribuer des images Docker
+- [Docker Registry](./registry) : Une application qui permet de distribuer des images Docker
- [Traefik](./traefik) : Traefik, un reverse-proxy pour vos conteneurs
-- [Uptime Kuma](./uptimekuma) : outil de surveillance de site ou service WEB
- [Watchtower](./watchtower) : Automatiser la mise à jour d'image docker
## Comment ça marche ?
diff --git a/clickhouse/.env b/clickhouse/.env
deleted file mode 100644
index f3216ca..0000000
--- a/clickhouse/.env
+++ /dev/null
@@ -1,3 +0,0 @@
-#CLICKHOUSE_VOLUME_NAME=
-#CLICKHOUSE_CONTAINER_NAME=
-#CLICKHOUSE_IMAGE=
diff --git a/clickhouse/README.md b/clickhouse/README.md
deleted file mode 100644
index 54182f5..0000000
--- a/clickhouse/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# ClickHouse
-
-> ClickHouse est un logiciel libre de base de données orientée colonnes (DBMS) pour le traitement analytique en ligne (OLAP).
->
-> [Wikipédia][wikipedia]
-
-## Liens
-
-- [Site Officiel][site]
-- [Code source][source]
-- [Docker Hub][dockerhub]
-
-[wikipedia]: https://fr.wikipedia.org/wiki/ClickHouse
-[site]: https://clickhouse.com/
-[source]: https://github.com/ClickHouse/ClickHouse
-[dockerhub]: https://hub.docker.com/r/clickhouse/clickhouse-server
diff --git a/clickhouse/docker-compose.yml b/clickhouse/docker-compose.yml
deleted file mode 100644
index f22b192..0000000
--- a/clickhouse/docker-compose.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: "3.8"
-
-volumes:
- clickhouse:
- name: ${CLICKHOUSE_VOLUME_NAME:-clickhouse}
-
-services:
- clickhouse:
- container_name: ${CLICKHOUSE_CONTAINER_NAME:-clickhouse}
- image: ${CLICKHOUSE_IMAGE:-clickhouse/clickhouse-server:22.2.2.1-alpine}
- restart: always
- volumes:
- - clickhouse:/var/lib/clickhouse
- - /etc/timezone:/etc/timezone:ro
- - /etc/localtime:/etc/localtime:ro
- ulimits:
- nofile:
- soft: 262144
- hard: 262144
diff --git a/directus/.env b/directus/.env
index b97bdd4..b9c3c90 100644
--- a/directus/.env
+++ b/directus/.env
@@ -4,7 +4,7 @@
#DOCKER_CONTEXT=
#DOCKER_HOST=
SERVICES_DIR=..
-COMPOSE_FILE=${SERVICES_DIR}/directus/docker-compose.yml:${SERVICES_DIR}/directus/docker-compose.traefik.yml:${SERVICES_DIR}/directus/docker-compose.smtp.yml:${SERVICES_DIR}/postgres/docker-compose.yml:${SERVICES_DIR}/redis/docker-compose.yml
+COMPOSE_FILE=./docker-compose.yml:${SERVICES_DIR}/postgres/docker-compose.yml:${SERVICES_DIR}/redis/docker-compose.yml:${SERVICES_DIR}/traefik/docker-compose.network.yml
#COMPOSE_PROJECT_NAME=
##########
@@ -12,22 +12,11 @@ COMPOSE_FILE=${SERVICES_DIR}/directus/docker-compose.yml:${SERVICES_DIR}/directu
#
# see https://github.com/directus/directus/blob/main/api/example.env
-DIRECTUS_CONTAINER_NAME=directus_cool_life
DIRECTUS_DOMAIN=directus.cool.life
-DIRECTUS_PUBLIC_URL=https://${DIRECTUS_DOMAIN}
DIRECTUS_KEY=255d861b-5ea1-5996-9aa3-922530ec40b1
DIRECTUS_SECRET=6116487b-cda1-52c2-b5b5-c8022c45e263
DIRECTUS_ADMIN_EMAIL=admin@example.com
DIRECTUS_ADMIN_PASSWORD=d1r3ctu5
-
-EMAIL_FROM=no-reply@${DIRECTUS_DOMAIN}
-EMAIL_SMTP_HOST=mail.example.org
-#EMAIL_SMTP_PORT=
-EMAIL_SMTP_USER=user
-EMAIL_SMTP_PASSWORD=password
-#EMAIL_SMTP_SECURE=
-#EMAIL_SMTP_IGNORE_TLS=
-
# DIRECTUS_PUID=
# DIRECTUS_PGID=
@@ -39,18 +28,3 @@ POSTGRES_PASSWORD=password-example
POSTGRES_DB=postgres-database-name-example
POSTGRES_CONTAINER_NAME=directus-postgres
POSTGRES_VOLUME_NAME=directus-postgres
-#POSTGRES_IMAGE=
-
-#######
-# REDIS
-
-#REDIS_IMAGE=
-#REDIS_CONTAINER_NAME=
-#REDIS_VOLUME_NAME=
-
-#########
-# TRAEFIK
-
-#TRAEFIK_NETWORK_NAME=
-#TRAEFIK_ROUTER_NAME= # Don't use char '.'
-#TRAEFIK_ENTRYPOINTS=
diff --git a/directus/docker-compose.redis.yml b/directus/docker-compose.redis.yml
deleted file mode 100644
index f71501e..0000000
--- a/directus/docker-compose.redis.yml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-
-version: "3.8"
-
-services:
- directus:
- environment:
- CACHE_ENABLED: 'true'
- CACHE_STORE: 'redis'
- CACHE_REDIS: 'redis://${REDIS_CONTAINER_NAME:-redis}:6379'
diff --git a/directus/docker-compose.smtp.yml b/directus/docker-compose.smtp.yml
deleted file mode 100644
index 825e198..0000000
--- a/directus/docker-compose.smtp.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-services:
- directus:
- environment:
- EMAIL_TRANSPORT: smtp
- EMAIL_FROM: ${EMAIL_FROM:?err}
- EMAIL_SMTP_HOST: ${EMAIL_SMTP_HOST}
- EMAIL_SMTP_PORT: ${EMAIL_SMTP_PORT:-465}
- EMAIL_SMTP_USER: ${EMAIL_SMTP_USER:?err}
- EMAIL_SMTP_PASSWORD: ${EMAIL_SMTP_PASSWORD:?err}
- EMAIL_SMTP_SECURE: ${EMAIL_SMTP_SECURE:-true}
- EMAIL_SMTP_IGNORE_TLS: ${EMAIL_SMTP_IGNORE_TLS:-false}
diff --git a/directus/docker-compose.traefik.yml b/directus/docker-compose.traefik.yml
deleted file mode 100644
index c199f12..0000000
--- a/directus/docker-compose.traefik.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-networks:
- default:
- name: ${TRAEFIK_NETWORK_NAME:-traefik}
-
-services:
- directus:
- labels:
- - traefik.enable=true
- - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-directus}.rule=Host(`${DIRECTUS_DOMAIN:?err}`)
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-directus}.entrypoints=web
diff --git a/directus/docker-compose.yml b/directus/docker-compose.yml
index 1422d1d..8da67b2 100644
--- a/directus/docker-compose.yml
+++ b/directus/docker-compose.yml
@@ -1,5 +1,4 @@
---
-
version: "3.8"
volumes:
@@ -9,10 +8,12 @@ volumes:
services:
directus:
container_name: ${DIRECTUS_CONTAINER_NAME:-directus}
- image: ${DIRECTUS_IMAGE:-directus/directus:9.8.0}
+ image: ${DIRECTUS_IMAGE:-directus/directus:9.0.0-rc.95}
restart: always
volumes:
- directus:/directus/uploads
+ - /etc/timezone:/etc/timezone:ro
+ - /etc/localtime:/etc/localtime:ro
depends_on:
- postgres
- redis
@@ -26,13 +27,20 @@ services:
PUBLIC_URL: ${DIRECTUS_PUBLIC_URL:?err}
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}
DB_PORT: '5432'
DB_DATABASE: ${POSTGRES_DB:?err}
DB_USER: ${POSTGRES_USER:?err}
DB_PASSWORD: ${POSTGRES_PASSWORD:?err}
- TZ: ${TZ:-Europe/Paris}
+ CACHE_ENABLED: 'true'
+ CACHE_STORE: 'redis'
+ CACHE_REDIS: 'redis://${REDIS_CONTAINER_NAME:-redis}:6379'
PUID: ${DIRECTUS_PUID:-1000}
PGID: ${DIRECTUS_PGID:-1000}
+ labels:
+ - traefik.enable=true
+ - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
+ - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-directus}.rule=Host(`${DIRECTUS_DOMAIN:?err}`)
+ - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-directus}.entrypoints=web
diff --git a/drone/.env b/drone/.env
new file mode 100644
index 0000000..a698659
--- /dev/null
+++ b/drone/.env
@@ -0,0 +1,37 @@
+## DOCKER
+
+COMPOSE_FILE=./docker-compose.yml:./docker-compose.gitea.yml:./docker-compose.traefik.yml
+TRAEFIK_NETWORK_NAME=kifeart
+
+
+## DRONE SERVER
+
+# https://hub.docker.com/r/drone/drone/tags
+DRONE_SERVER_IMAGE=drone/drone:1.7.0
+
+DRONE_SERVER_VOLUME_NAME=drone-server
+DRONE_SERVER_CONTAINER_NAME=drone-server
+
+# https://docs.drone.io/server/reference/
+DRONE_GIT_ALWAYS_AUTH=true
+DRONE_RPC_SECRET=9VjG2Dj34Kdo2JYvn5iVxd7JjT5
+DRONE_SERVER_HOST=ci.cool.life
+DRONE_SERVER_PROTO=https
+
+# https://docs.drone.io/server/provider/gitea/
+DRONE_GITEA_SERVER=gitea.cool.life
+DRONE_GITEA_CLIENT_ID=UI76T78G-HDZ8-7CSD-6SDZ-YUIDG8Z7DSQ8
+DRONE_GITEA_CLIENT_SECRET=y9ruXnEqluXjKUcfs5yIFlH83yb1OpP32NCf0h5YJwg=
+
+
+
+## DRONE RUNNER
+
+# https://hub.docker.com/r/drone/drone-runner-docker/tags
+DRONE_RUNNER_IMAGE=drone/drone-runner-docker:1.3.0
+DRONE_RUNNER_CONTAINER_NAME=drone-runner
+DRONE_RUNNER_CAPACITY=2
+DRONE_RUNNER_HOST=ci-runner.cool.life
+DRONE_RUNNER_NAME=ci-runner.cool.life
+DRONE_RUNNER_UI_USERNAME=kosssi
+DRONE_RUNNER_UI_PASSWORD=$not$a$password
diff --git a/drone/README.md b/drone/README.md
index b1f2662..6b84604 100644
--- a/drone/README.md
+++ b/drone/README.md
@@ -4,22 +4,6 @@
>
> [Codeflow][article]
-## Documentation
-
-Drone est un logiciel d'intégration continue léger. Il est utilisé comme plate-forme de test et/ou de livraison automatisée.
-
-Le service est basé sur 2 briques :
-- le coté serveur qui prend en compte les demande de l'extérieur avec une interface (_[server](./server)_)
-- le coté exécution des tâches (_[runner](./runner)_).
-
-### Génération de clé
-
-Dans la documentation officielle, il est conseillé de générer les clés avec la commande :
-
-```
-openssl rand -hex 16
-```
-
## Liens
- [Site internet][site]
diff --git a/drone/docker-compose.gitea.yml b/drone/docker-compose.gitea.yml
new file mode 100644
index 0000000..4c4a925
--- /dev/null
+++ b/drone/docker-compose.gitea.yml
@@ -0,0 +1,10 @@
+version: "3.8"
+
+# https://docs.drone.io/server/provider/gitea/
+
+services:
+ drone-server:
+ environment:
+ DRONE_GITEA_SERVER: ${DRONE_GITEA_SERVER}
+ DRONE_GITEA_CLIENT_ID: ${DRONE_GITEA_CLIENT_ID}
+ DRONE_GITEA_CLIENT_SECRET: ${DRONE_GITEA_CLIENT_SECRET}
diff --git a/drone/docker-compose.traefik.yml b/drone/docker-compose.traefik.yml
new file mode 100644
index 0000000..5a03918
--- /dev/null
+++ b/drone/docker-compose.traefik.yml
@@ -0,0 +1,22 @@
+version: "3.8"
+
+networks:
+ default:
+ name: ${TRAEFIK_NETWORK_NAME}
+
+services:
+ drone-server:
+ labels:
+ traefik.enable: 'true'
+ traefik.docker.network: ${TRAEFIK_NETWORK_NAME}
+
+ traefik.http.routers.drone-server.rule: 'Host(`${DRONE_SERVER_HOST}`)'
+ traefik.http.routers.drone-server.entrypoints: 'web'
+
+ drone-runner:
+ labels:
+ traefik.enable: 'true'
+ traefik.docker.network: ${TRAEFIK_NETWORK_NAME}
+
+ traefik.http.routers.drone-runner.rule: 'Host(`${DRONE_RUNNER_HOST}`)'
+ traefik.http.routers.drone-runner.entrypoints: 'web'
diff --git a/drone/docker-compose.yml b/drone/docker-compose.yml
new file mode 100644
index 0000000..78bd9b6
--- /dev/null
+++ b/drone/docker-compose.yml
@@ -0,0 +1,41 @@
+version: "3.8"
+
+volumes:
+ drone-server:
+ name: ${DRONE_SERVER_VOLUME_NAME}
+
+services:
+ drone-server:
+ container_name: ${DRONE_SERVER_CONTAINER_NAME}
+ image: ${DRONE_SERVER_IMAGE}
+ restart: always
+ environment:
+ DRONE_GIT_ALWAYS_AUTH: ${DRONE_GIT_ALWAYS_AUTH}
+ DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
+ DRONE_SERVER_HOST: ${DRONE_SERVER_HOST}
+ DRONE_SERVER_PROTO: ${DRONE_SERVER_PROTO}
+ DRONE_LOGS_DEBUG: 'true'
+ volumes:
+ - drone-server:/data
+ - /etc/timezone:/etc/timezone:ro
+ - /etc/localtime:/etc/localtime:ro
+
+ drone-runner:
+ container_name: ${DRONE_RUNNER_CONTAINER_NAME}
+ image: ${DRONE_RUNNER_IMAGE}
+ restart: always
+ depends_on:
+ - drone-server
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ - /etc/timezone:/etc/timezone:ro
+ - /etc/localtime:/etc/localtime:ro
+ environment:
+ DRONE_RPC_PROTO: http
+ DRONE_RPC_HOST: ${DRONE_SERVER_CONTAINER_NAME}
+ DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
+ DRONE_RUNNER_CAPACITY: ${DRONE_RUNNER_CAPACITY}
+ DRONE_RUNNER_NAME: ${DRONE_RUNNER_NAME}
+ DRONE_UI_USERNAME: ${DRONE_RUNNER_UI_USERNAME}
+ DRONE_UI_PASSWORD: ${DRONE_RUNNER_UI_PASSWORD}
+ DRONE_DEBUG: 'true'
diff --git a/drone/runner/.env b/drone/runner/.env
deleted file mode 100644
index 5d5dbf0..0000000
--- a/drone/runner/.env
+++ /dev/null
@@ -1,36 +0,0 @@
-########
-# DOCKER
-
-#DOCKER_CONTEXT=
-#DOCKER_HOST=
-SERVICES_DIR=../..
-COMPOSE_FILE=${SERVICES_DIR}/drone/runner/docker-compose.yml:${SERVICES_DIR}/drone/runner/docker-compose.traefik.yml:${SERVICES_DIR}/drone/runner/docker-compose.dashboard.yml
-#COMPOSE_PROJECT_NAME=
-
-
-## DRONE RUNNER
-#https://docs.drone.io/runner/docker/configuration/reference/
-
-### Docker
-# https://hub.docker.com/r/drone/drone-runner-docker/tags
-DRONE_RUNNER_IMAGE=drone/drone-runner-docker:1.8.0
-DRONE_RUNNER_CONTAINER_NAME=drone-server
-
-### Drone
-# https://docs.drone.io/runner/docker/installation/linux/
-DRONE_RPC_HOST=drone.cool.life
-DRONE_RPC_PROTO=https
-DRONE_RPC_SECRET=change-me
-DRONE_RUNNER_HOST=ci-runner.cool.life
-DRONE_RUNNER_CAPACITY=2
-DRONE_RUNNER_NAME=drone-runner
-DRONE_UI_USERNAME=resilien
-DRONE_UI_PASSWORD=change-me
-DRONE_UI_DISABLE=false
-
-#########
-# TRAEFIK
-
-#TRAEFIK_NETWORK_NAME=
-#TRAEFIK_ROUTER_NAME= # Don't use char '.'
-#TRAEFIK_ENTRYPOINTS=
diff --git a/drone/runner/README.md b/drone/runner/README.md
deleted file mode 100644
index 6f41ef4..0000000
--- a/drone/runner/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Drone CI Runner
-
-Il existe plusieurs _runner_ nous parlerons ici que du _runner_ Docker.
-
-## Installation
-
-L'installation de la partie _runner_ a été coupée en plusieurs fichiers dont les noms sont assez explicites. De nombreux liens vers la documentation officielle ont été mis dans les fichiers _Docker Compose_.
-
-Il est possible de mettre en place une interface utilisateur pour visualiser les logs, les tâches exécutées. C'est pratique pour débugger.
-
-Le coté multiplatforme permet d'avoir plusieurs _runner_ sur des architectures différentes selon là où on les déploie.
diff --git a/drone/runner/docker-compose.dashboard.yml b/drone/runner/docker-compose.dashboard.yml
deleted file mode 100644
index 4448db6..0000000
--- a/drone/runner/docker-compose.dashboard.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-# https://docs.drone.io/runner/docker/configuration/dashboard/
-
-services:
- drone-runner:
- environment:
- # https://docs.drone.io/runner/docker/configuration/reference/drone-ui-username/
- DRONE_UI_USERNAME: ${DRONE_UI_USERNAME:?err}
- # https://docs.drone.io/runner/docker/configuration/reference/drone-ui-password/
- DRONE_UI_PASSWORD: ${DRONE_UI_PASSWORD:?err}
- # https://docs.drone.io/runner/docker/configuration/reference/drone-ui-disable/
- DRONE_UI_DISABLE: ${DRONE_UI_DISABLE:-false}
diff --git a/drone/runner/docker-compose.local.yml b/drone/runner/docker-compose.local.yml
deleted file mode 100644
index 59c143a..0000000
--- a/drone/runner/docker-compose.local.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-
-version: "3.8"
-
-services:
- drone-runner:
- ports:
- - "3000:3000"
diff --git a/drone/runner/docker-compose.logging.yml b/drone/runner/docker-compose.logging.yml
deleted file mode 100644
index 0d717ae..0000000
--- a/drone/runner/docker-compose.logging.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-# https://docs.drone.io/runner/docker/configuration/logging/
-
-services:
- drone-runner:
- environment:
- # https://docs.drone.io/runner/docker/configuration/reference/drone-debug/
- DRONE_DEBUG: ${DRONE_DEBUG:-false}
- # https://docs.drone.io/runner/docker/configuration/reference/drone-rpc-dump-http/
- DRONE_RPC_DUMP_HTTP: ${DRONE_RPC_DUMP_HTTP:-false}
- # https://docs.drone.io/runner/docker/configuration/reference/drone-rpc-dump-http-body/
- DRONE_RPC_DUMP_HTTP_BODY: ${DRONE_RPC_DUMP_HTTP_BODY-:false}
diff --git a/drone/runner/docker-compose.traefik.yml b/drone/runner/docker-compose.traefik.yml
deleted file mode 100644
index 175112c..0000000
--- a/drone/runner/docker-compose.traefik.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-networks:
- default:
- name: ${TRAEFIK_NETWORK_NAME}
-
-services:
- drone-runner:
- labels:
- - traefik.enable=true
- - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-drone-runner}.rule=Host(`${DRONE_RUNNER_HOST:?err}`)
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-drone-runner}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
diff --git a/drone/runner/docker-compose.yml b/drone/runner/docker-compose.yml
deleted file mode 100644
index fcfd73b..0000000
--- a/drone/runner/docker-compose.yml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-
-version: "3.8"
-
-# https://docs.drone.io/runner/docker/installation/linux/
-
-services:
- drone-runner:
- container_name: ${DRONE_RUNNER_CONTAINER_NAME}
- image: ${DRONE_RUNNER_IMAGE:-drone/drone-runner-docker:1.8.0}
- restart: always
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock
- - /etc/timezone:/etc/timezone:ro
- - /etc/localtime:/etc/localtime:ro
- environment:
- # https://docs.drone.io/runner/docker/configuration/reference/drone-rpc-host/
- DRONE_RPC_HOST: ${DRONE_RPC_HOST:?err}
- # https://docs.drone.io/runner/docker/configuration/reference/drone-rpc-proto/
- DRONE_RPC_PROTO: ${DRONE_RPC_PROTO:-https}
- # https://docs.drone.io/runner/docker/configuration/reference/drone-rpc-secret/
- DRONE_RPC_SECRET: ${DRONE_RPC_SECRET:?err}
- # https://docs.drone.io/runner/docker/configuration/reference/drone-runner-capacity/
- DRONE_RUNNER_CAPACITY: ${DRONE_RUNNER_CAPACITY:-2}
- # https://docs.drone.io/runner/docker/configuration/reference/drone-runner-name/
- DRONE_RUNNER_NAME: ${DRONE_RUNNER_NAME}
diff --git a/drone/server/.env b/drone/server/.env
deleted file mode 100644
index bd84bb6..0000000
--- a/drone/server/.env
+++ /dev/null
@@ -1,65 +0,0 @@
-########
-# DOCKER
-
-#DOCKER_CONTEXT=
-#DOCKER_HOST=
-SERVICES_DIR=../..
-COMPOSE_FILE=${SERVICES_DIR}/drone/server/docker-compose.yml:${SERVICES_DIR}/drone/server/docker-compose.user.yml:${SERVICES_DIR}/drone/server/docker-compose.traefik.yml:${SERVICES_DIR}/drone/server/docker-compose.postgres.yml:${SERVICES_DIR}/drone/server/docker-compose.header.yml:${SERVICES_DIR}/drone/server/docker-compose.gitea.yml:${SERVICES_DIR}/drone/server/docker-compose.cookie.yml:${SERVICES_DIR}/postgres/docker-compose.yml
-#COMPOSE_PROJECT_NAME=
-
-
-## DRONE SERVER
-# https://docs.drone.io/server/reference/
-
-### Docker
-# https://hub.docker.com/r/drone/drone/tags
-DRONE_SERVER_IMAGE=drone/drone:2.8.0
-DRONE_SERVER_VOLUME_NAME=drone-server
-DRONE_SERVER_CONTAINER_NAME=drone-server
-
-### Drone
-
-DRONE_RPC_SECRET=change-me
-DRONE_SERVER_HOST=ci.cool.life
-DRONE_SERVER_PROTO=https
-
-### User
-DRONE_ADMIN_USER=resilien
-DRONE_ADMIN_TOKEN=change-me
-DRONE_USER_FILTER=resilien
-DRONE_REGISTRATION_CLOSED=true
-
-### Gitea
-# https://docs.drone.io/server/provider/gitea/
-#DRONE_GIT_ALWAYS_AUTH=
-DRONE_GITEA_SERVER=gitea.cool.life
-DRONE_GITEA_CLIENT_ID=UI76T78G-HDZ8-7CSD-6SDZ-YUIDG8Z7DSQ8
-DRONE_GITEA_CLIENT_SECRET=change-me
-
-## Header
-# https://docs.drone.io/server/headers/
-#DRONE_HTTP_SSL_REDIRECT=
-#DRONE_HTTP_SSL_TEMPORARY_REDIRECT=
-#DRONE_HTTP_SSL_HOST=
-#DRONE_HTTP_STS_SECONDS=
-
-### Cookie
-# https://docs.drone.io/server/cookie/
-DRONE_COOKIE_SECRET=change-me
-#DRONE_COOKIE_TIMEOUT=720h
-
-### POSTGRES
-# https://docs.drone.io/server/storage/encryption/
-DRONE_DATABASE_SECRET=change-me
-POSTGRES_USER=user
-POSTGRES_PASSWORD=password
-POSTGRES_VOLUME_NAME=postgres
-POSTGRES_CONTAINER_NAME=postgres
-POSTGRES_DB=drone
-
-#########
-# TRAEFIK
-
-#TRAEFIK_NETWORK_NAME=
-#TRAEFIK_ROUTER_NAME= # Don't use char '.'
-#TRAEFIK_ENTRYPOINTS=
diff --git a/drone/server/README.md b/drone/server/README.md
deleted file mode 100644
index fc748b6..0000000
--- a/drone/server/README.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Drone CI Server
-
-## Installation
-
-L'installation de la partie serveur a été coupée en plusieurs fichiers dont les noms sont assez explicites. De nombreux liens vers la documentation officielle ont été mis dans les fichiers _Docker Compose_.
-
-## Configuration
-
-Une fois un Drone installé il faut le configurer avec l'utilisation du CLI.
-
-### Installation du CLI
-
-Voir la [documentation officielle](https://docs.drone.io/cli/install/#install-on-linux).
-
-### Configuration du CLI en local
-
-Il faut :
-- l'url de l'instance (`DRONE_SERVER_HOST`)
-- le protocol de l'instance (`DRONE_SERVER_PROTO`)
-- le token de l'administrateur (`DRONE_ADMIN_TOKEN`)
-
-```
-export DRONE_SERVER=${DRONE_SERVER_PROTO}://${DRONE_SERVER_HOST}
-export DRONE_TOKEN=${DRONE_ADMIN_TOKEN}
-```
-
-[Documentation officielle](https://docs.drone.io/cli/configure/)
-
-### Les utilisateurs
-
-Il faut ajouter les utilisateurs non admin :
-
-```
-drone user add kosssi
-drone user add killian
-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}`
-
-[Documentation officielle](https://docs.drone.io/cli/user/drone-user-add/)
diff --git a/drone/server/docker-compose.cookie.yml b/drone/server/docker-compose.cookie.yml
deleted file mode 100644
index 99736ba..0000000
--- a/drone/server/docker-compose.cookie.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-
-version: "3.8"
-
-# https://docs.drone.io/server/cookie/
-
-services:
- drone-server:
- environment:
- # https://docs.drone.io/server/reference/drone-cookie-secret/
- DRONE_COOKIE_SECRET: ${DRONE_COOKIE_SECRET:?err}
- # https://docs.drone.io/server/reference/drone-cookie-timeout/
- DRONE_COOKIE_TIMEOUT: ${DRONE_COOKIE_TIMEOUT:-720h} # Default value 30 days
diff --git a/drone/server/docker-compose.gitea.yml b/drone/server/docker-compose.gitea.yml
deleted file mode 100644
index 9ca4760..0000000
--- a/drone/server/docker-compose.gitea.yml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-
-version: "3.8"
-
-# https://docs.drone.io/server/provider/gitea/
-
-services:
- drone-server:
- environment:
- # https://docs.drone.io/server/reference/drone-git-always-auth/
- DRONE_GIT_ALWAYS_AUTH: ${DRONE_GIT_ALWAYS_AUTH:-true}
- # https://docs.drone.io/server/reference/drone-gitea-server/
- DRONE_GITEA_SERVER: ${DRONE_GITEA_SERVER:?err}
- # https://docs.drone.io/server/reference/drone-gitea-client-id/
- DRONE_GITEA_CLIENT_ID: ${DRONE_GITEA_CLIENT_ID:?err}
- # https://docs.drone.io/server/reference/drone-gitea-client-secret/
- DRONE_GITEA_CLIENT_SECRET: ${DRONE_GITEA_CLIENT_SECRET:?err}
diff --git a/drone/server/docker-compose.header.yml b/drone/server/docker-compose.header.yml
deleted file mode 100644
index 3607c71..0000000
--- a/drone/server/docker-compose.header.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-
-version: "3.8"
-
-# https://docs.drone.io/server/headers/
-
-services:
- drone-server:
- environment:
- DRONE_HTTP_SSL_REDIRECT: ${DRONE_HTTP_SSL_REDIRECT:-true}
- DRONE_HTTP_SSL_TEMPORARY_REDIRECT: ${DRONE_HTTP_SSL_TEMPORARY_REDIRECT:-true}
- DRONE_HTTP_SSL_HOST: ${DRONE_SERVER_HOST}
- DRONE_HTTP_STS_SECONDS: ${DRONE_HTTP_STS_SECONDS:-315360000}
diff --git a/drone/server/docker-compose.local.yml b/drone/server/docker-compose.local.yml
deleted file mode 100644
index 06436db..0000000
--- a/drone/server/docker-compose.local.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-
-version: "3.8"
-
-services:
- drone-server:
- ports:
- - "3000:3000"
diff --git a/drone/server/docker-compose.logging.yml b/drone/server/docker-compose.logging.yml
deleted file mode 100644
index 62cc675..0000000
--- a/drone/server/docker-compose.logging.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-
-version: "3.8"
-
-# https://docs.drone.io/server/logging/
-
-services:
- drone-server:
- environment:
- # https://docs.drone.io/server/reference/drone-logs-debug/
- DRONE_LOGS_DEBUG: ${DRONE_LOGS_DEBUG:-true}
- # https://docs.drone.io/server/reference/drone-logs-text/
- DRONE_LOGS_TEXT: ${DRONE_LOGS_TEXT:-true}
- # https://docs.drone.io/server/reference/drone-logs-pretty/
- DRONE_LOGS_PRETTY: ${DRONE_LOGS_PRETTY:-true}
- # https://docs.drone.io/server/reference/drone-logs-color/
- DRONE_LOGS_COLOR: ${DRONE_LOGS_COLOR:-true}
- # https://docs.drone.io/server/reference/drone-logs-trace/
- DRONE_LOGS_TRACE: ${DRONE_LOGS_TRACE:-false}
diff --git a/drone/server/docker-compose.postgres.yml b/drone/server/docker-compose.postgres.yml
deleted file mode 100644
index c7e2be2..0000000
--- a/drone/server/docker-compose.postgres.yml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-
-version: "3.8"
-
-# https://docs.drone.io/server/storage/database/
-# https://docs.drone.io/server/storage/encryption/
-
-services:
- drone-server:
- environment:
- # https://docs.drone.io/server/reference/drone-database-secret/
- DRONE_DATABASE_SECRET: ${DRONE_DATABASE_SECRET}
- # https://docs.drone.io/server/reference/drone-database-driver/
- DRONE_DATABASE_DRIVER: postgres
- # https://docs.drone.io/server/reference/drone-database-datasource/
- DRONE_DATABASE_DATASOURCE: postgres://${POSTGRES_USER:?err}:${POSTGRES_PASSWORD:?err}@${POSTGRES_CONTAINER_NAME:-postgres}:5432/${POSTGRES_DB:?err}?sslmode=disable
diff --git a/drone/server/docker-compose.traefik.yml b/drone/server/docker-compose.traefik.yml
deleted file mode 100644
index 47dc794..0000000
--- a/drone/server/docker-compose.traefik.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-networks:
- default:
- name: ${TRAEFIK_NETWORK_NAME}
-
-services:
- drone-server:
- labels:
- - traefik.enable=true
- - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-drone-server}.rule=Host(`${DRONE_SERVER_HOST:?err}`)
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-drone-server}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
diff --git a/drone/server/docker-compose.user.yml b/drone/server/docker-compose.user.yml
deleted file mode 100644
index c4244e2..0000000
--- a/drone/server/docker-compose.user.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-# https://docs.drone.io/server/user/registration/
-
-services:
- drone-server:
- environment:
- # https://docs.drone.io/server/reference/drone-user-create/
- DRONE_USER_CREATE: username:${DRONE_ADMIN_USER:?err},machine:false,admin:true,token:${DRONE_ADMIN_TOKEN:?err}
- # https://docs.drone.io/server/reference/drone-user-filter/
- DRONE_USER_FILTER: ${DRONE_USER_FILTER:?err}
- # https://docs.drone.io/server/reference/drone-registration-closed/
- DRONE_REGISTRATION_CLOSED: ${DRONE_REGISTRATION_CLOSED:-true}
diff --git a/drone/server/docker-compose.yml b/drone/server/docker-compose.yml
deleted file mode 100644
index ae49725..0000000
--- a/drone/server/docker-compose.yml
+++ /dev/null
@@ -1,24 +0,0 @@
----
-
-version: "3.8"
-
-volumes:
- drone-server:
- name: ${DRONE_SERVER_VOLUME_NAME:-drone-server}
-
-services:
- drone-server:
- container_name: ${DRONE_SERVER_CONTAINER_NAME:-drone-server}
- image: ${DRONE_SERVER_IMAGE:-drone/drone:2.11.1}
- restart: always
- environment:
- # https://docs.drone.io/server/reference/drone-rpc-secret/
- DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
- # https://docs.drone.io/server/reference/drone-server-host/
- DRONE_SERVER_HOST: ${DRONE_SERVER_HOST}
- # https://docs.drone.io/server/reference/drone-server-proto/
- DRONE_SERVER_PROTO: ${DRONE_SERVER_PROTO:-https}
- volumes:
- - drone-server:/data
- - /etc/timezone:/etc/timezone:ro
- - /etc/localtime:/etc/localtime:ro
diff --git a/examples/README.md b/examples/README.md
index 4853c00..6979a90 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -14,4 +14,4 @@ Si nous allons dans le dossier `traefik.cool.life` par example, il est possible
Si vous gérez des serveurs à distance, il est possible d'utiliser la variable `DOCKER_HOST` dans votre fichier `.env` pour expliquer que le service doit s’exécuter sur ce serveur.
-> RésiLien utilise maintenant ce système avec une génération automatique des fichiers .env à l'aide d'Ansible, nous permettant de facilement déployer un nouveau service, de le déplacer de serveur
+> Résilien utilise maintenant ce système avec une génération automatique des fichiers .env à l'aide d'Ansible, nous permettant de facilement déployer un nouveau service, de le déplacer de serveur
diff --git a/geoip/.env b/geoip/.env
deleted file mode 100644
index 608b262..0000000
--- a/geoip/.env
+++ /dev/null
@@ -1,9 +0,0 @@
-#GEOIP_VOLUME_NAME=
-#GEOIP_IMAGE=
-#GEOIP_CONTAINER_NAME=
-
-#GEOIP_EDITION_IDS=
-GEOIP_LICENSE_KEY=blablabla
-#GEOIP_DOWNLOAD_PATH=
-#GEOIP_SCHEDULE=
-#GEOIP_LOG_LEVEL=
diff --git a/geoip/docker-compose.yml b/geoip/docker-compose.yml
deleted file mode 100644
index a9b25bb..0000000
--- a/geoip/docker-compose.yml
+++ /dev/null
@@ -1,22 +0,0 @@
----
-
-version: "3.8"
-
-volumes:
- geoip:
- name: ${GEOIP_VOLUME_NAME:-geoip}
-
-services:
- geoip:
- image: ${GEOIP_IMAGE:-crazymax/geoip-updater:latest}
- container_name: ${GEOIP_CONTAINER_NAME:-geoip-updater}
- restart: always
- volumes:
- - geoip:${GEOIP_DOWNLOAD_PATH:-/data}
- environment:
- EDITION_IDS: ${GEOIP_EDITION_IDS:-GeoLite2-City}
- LICENSE_KEY: ${GEOIP_LICENSE_KEY:-err}
- DOWNLOAD_PATH: ${GEOIP_DOWNLOAD_PATH:-/data}
- SCHEDULE: ${GEOIP_SCHEDULE:-0 0 * * 0} # Every Sunday
- LOG_LEVEL: ${GEOIP_LOG_LEVEL:-info}
- LOG_JSON: ${GEOIP_LOG_JSON:-false}
diff --git a/geoipupdate/.env b/geoipupdate/.env
deleted file mode 100644
index 78546bd..0000000
--- a/geoipupdate/.env
+++ /dev/null
@@ -1,10 +0,0 @@
-#GEOIPUPDATE_VOLUME_NAME=
-#GEOIPUPDATE_IMAGE=
-#GEOIPUPDATE_CONTAINER_NAME=
-
-GEOIPUPDATE_ACCOUNT_ID=
-GEOIPUPDATE_LICENSE_KEY=
-#GEOIPUPDATE_EDITION_IDS=
-#GEOIPUPDATE_FREQUENCY=
-#GEOIPUPDATE_VERBOSE=
-#GEOIPUPDATE_DB_DIR=
diff --git a/geoipupdate/README.md b/geoipupdate/README.md
deleted file mode 100644
index 7efc7fc..0000000
--- a/geoipupdate/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# HedgeDoc
-
-> Permet de télécharger la base de données GeoIP2 permettant de localiser les IPs
-
-## Liens
-
-- [Site officiel][website]
-- [Github][github]
-- [L'image Docker de LinuxServer][docker]
-
-[website]: https://www.maxmind.com/en/home
-[docker]: https://hub.docker.com/r/maxmindinc/geoipupdate
-[github]: https://github.com/maxmind/geoipupdate
-[documentation]: https://dev.maxmind.com/geoip/updating-databases
diff --git a/geoipupdate/docker-compose.yml b/geoipupdate/docker-compose.yml
deleted file mode 100644
index 9e83d1e..0000000
--- a/geoipupdate/docker-compose.yml
+++ /dev/null
@@ -1,22 +0,0 @@
----
-
-version: "3.8"
-
-volumes:
- geoipupdate:
- name: ${GEOIPUPDATE_VOLUME_NAME:-geoipupdate}
-
-services:
- geoipupdate:
- image: ${GEOIPUPDATE_IMAGE:-maxmindinc/geoipupdate:v4.9.0}
- container_name: ${GEOIPUPDATE_CONTAINER_NAME:-geoip-updater}
- restart: always
- volumes:
- - geoipupdate:${GEOIPUPDATE_DB_DIR:-/usr/share/GeoIP}
- environment:
- GEOIPUPDATE_ACCOUNT_ID: ${GEOIPUPDATE_ACCOUNT_ID:?err}
- GEOIPUPDATE_LICENSE_KEY: ${GEOIPUPDATE_LICENSE_KEY:?err}
- GEOIPUPDATE_EDITION_IDS: ${GEOIPUPDATE_EDITION_IDS:-GeoLite2-City}
- GEOIPUPDATE_FREQUENCY: ${GEOIPUPDATE_FREQUENCY:-72}
- GEOIPUPDATE_VERBOSE: ${GEOIPUPDATE_VERBOSE:-false}
- GEOIPUPDATE_DB_DIR: ${GEOIPUPDATE_DB_DIR:-/usr/share/GeoIP}
diff --git a/gitea/.env b/gitea/.env
index 2b34046..3db8400 100644
--- a/gitea/.env
+++ b/gitea/.env
@@ -1,34 +1,26 @@
-########
-# DOCKER
+COMPOSE_FILE=../postgres/docker-compose.yml:./docker-compose.yml:./docker-compose.override.yml
-SERVICES_DIR=".."
-COMPOSE_FILE=${SERVICES_DIR}/gitea/docker-compose.yml:${SERVICES_DIR}/gitea/docker-compose.traefik.yml:${SERVICES_DIR}/gitea/docker-compose.smtp.yml:${SERVICES_DIR}/gitea/docker-compose.metrics.yml:${SERVICES_DIR}/postgres/docker-compose.yml
-COMPOSE_PROJECT_NAME=$GITEA_DOMAIN
+# APP
-#######
-# GITEA
+GITEA_VOLUME_NAME=gitea
+GITEA_PROTOCOL=http
+GITEA_DOMAIN=gitea.lan
+
+# APP CONFIG
# https://docs.gitea.io/en-us/install-with-docker/#environments-variables
-GITEA_DOMAIN=gitea.lan
-GITEA_VOLUME_NAME=gitea
-GITEA_IMAGE=gitea/gitea:1.18.4
-GITEA_PROTOCOL=http
-GITEA_SECRET_KEY=kt5UdK0m9lI9MDyhVOFEB5jk7VwFynDyaxcUjEJUpWJBrC6FyH4dkUDKLYEa7hGn
-GITEA_INTERNAL_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE2NzY5NzkxMzZ9.Iopu6DBUhglmNPzEyYylfmTmEUpYLHYEsNrm50GoBkU
-
-# SMTP
-
-GITEA__mailer__FROM='"Name" '
-GITEA__mailer__SMTP_ADDR=smtp.gitea.lan
-GITEA__mailer__SMTP_PORT=465
-GITEA__mailer__USER=gitea.lan
-GITEA__mailer__PASSWD=gitea.lan
+DISABLE_SSH=true
+RUN_MODE=prod
+ROOT_URL=${GITEA_PROTOCOL}://${GITEA_DOMAIN}
+DISABLE_REGISTRATION=true
+DISABLE_GRAVATAR=true
+#INSTALL_LOCK=true
# DATABASE
+# Voir la description ../postgres/README.md
POSTGRES_USER=user-example
POSTGRES_PASSWORD=password-example
POSTGRES_DB=postgres-database-name-example
POSTGRES_CONTAINER_NAME=gitea-postgres
POSTGRES_VOLUME_NAME=gitea-postgres
-POSTGRES_IMAGE=postgres:15.2-alpine
diff --git a/gitea/README.md b/gitea/README.md
index 18021d5..3d33e51 100644
--- a/gitea/README.md
+++ b/gitea/README.md
@@ -4,7 +4,7 @@
>
> [Documentation][documentation]
-Il est possible de configurer l'intégralité du service à l'aide de variable d'environnement voir [la documentation officielle](https://docs.gitea.io/en-us/install-with-docker/#managing-deployments-with-environment-variables).
+Il est possible de configurer l'intégralité du service à l'aide de variable d'environnement voir [la documentation officiel](https://docs.gitea.io/en-us/install-with-docker/#managing-deployments-with-environment-variables).
## Commandes
diff --git a/gitea/docker-compose.smtp.yml b/gitea/docker-compose.smtp.yml
index af25854..fa37a1a 100644
--- a/gitea/docker-compose.smtp.yml
+++ b/gitea/docker-compose.smtp.yml
@@ -4,11 +4,9 @@ services:
gitea:
environment:
- GITEA__mailer__ENABLED=true
- - GITEA__mailer__PROTOCOL=${GITEA__mailer__PROTOCOL:-smtp}
- - GITEA__mailer__SMTP_ADDR=${GITEA__mailer__SMTP_ADDR:?GITEA__mailer__SMTP_ADDR not set}
- - GITEA__mailer__SMTP_PORT=${GITEA__mailer__SMTP_PORT:?GITEA__mailer__SMTP_PORT not set}
-
+ - GITEA__mailer__FROM=${GITEA__mailer__FROM:?GITEA__mailer__FROM not set}
+ - GITEA__mailer__MAILER_TYPE=smtp
+ - GITEA__mailer__HOST=${GITEA__mailer__HOST:?GITEA__mailer__HOST not set}
+ - GITEA__mailer__IS_TLS_ENABLED=true
- GITEA__mailer__USER=${GITEA__mailer__USER:?GITEA__mailer__USER not set}
- GITEA__mailer__PASSWD="""${GITEA__mailer__PASSWD:?GITEA__mailer__PASSWD not set}"""
-
- - GITEA__mailer__FROM=${GITEA__mailer__FROM:?GITEA__mailer__FROM not set}
diff --git a/gitea/docker-compose.traefik.yml b/gitea/docker-compose.traefik.yml
index f3a5562..b4b8447 100644
--- a/gitea/docker-compose.traefik.yml
+++ b/gitea/docker-compose.traefik.yml
@@ -7,8 +7,10 @@ networks:
services:
gitea:
labels:
- - traefik.enable=true
- - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-gitea}.rule=Host(`${GITEA_DOMAIN:?err}`)
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-gitea}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
- - traefik.http.services.${TRAEFIK_ROUTER_NAME:-gitea}.loadbalancer.server.port=3000
+ traefik.enable: 'true'
+ traefik.docker.network: ${TRAEFIK_NETWORK_NAME:-traefik}
+
+ traefik.http.routers.gitea.rule: 'Host(`${GITEA_DOMAIN:?err}`)'
+ traefik.http.routers.gitea.entrypoints: 'web'
+
+ traefik.http.services.gitea.loadbalancer.server.port: '3000'
diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml
index f30608b..255d520 100644
--- a/gitea/docker-compose.yml
+++ b/gitea/docker-compose.yml
@@ -7,22 +7,16 @@ volumes:
services:
gitea:
container_name: ${GITEA_CONTAINER_NAME:-gitea}
- image: ${GITEA_IMAGE:-gitea/gitea:1.18.4}
+ image: ${GITEA_IMAGE:-gitea/gitea:1.15.5}
restart: always
environment:
- - USER_UID=${GITEA_UID:-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
- # docker run -it --rm gitea/gitea:1 gitea generate secret SECRET_KEY
- - GITEA__security__SECRET_KEY=${GITEA_SECRET_KEY}
- # docker run -it --rm gitea/gitea:1 gitea generate secret INTERNAL_TOKEN
- - GITEA__security__INTERNAL_TOKEN=${GITEA_INTERNAL_TOKEN}
+ # - USER_UID=1000
+ # - USER_GID=1000
+ DB_TYPE: postgres
+ DB_HOST: postgres:5432
+ DB_NAME: ${POSTGRES_DB}
+ DB_USER: ${POSTGRES_USER}
+ DB_PASSWD: ${POSTGRES_PASSWORD}
volumes:
- gitea:/data
- /etc/timezone:/etc/timezone:ro
diff --git a/grafana/.env b/grafana/.env
index 866aef5..a7ee3e6 100644
--- a/grafana/.env
+++ b/grafana/.env
@@ -34,10 +34,6 @@ GF_INSTALL_PLUGINS=grafana-piechart-panel
#######
# REDIS
-#REDIS_IMAGE=
-#REDIS_CONTAINER_NAME=
-#REDIS_VOLUME_NAME=
-
#GF_REMOTE_CACHE_CONNSTR=
#########
diff --git a/grafana/README.md b/grafana/README.md
index 8692bac..974bba8 100644
--- a/grafana/README.md
+++ b/grafana/README.md
@@ -6,7 +6,7 @@
## 🔧 Configuration
-La configuration du service ce base sur la documentation officielle, plusieurs pages sont intéressantes à lire :
+La configuration du service ce base sur la documentation officiel plusieurs pages sont intéressante à lire :
- [Lancer l'image Docker de Grafana](https://grafana.com/docs/grafana/latest/installation/docker/)
- [Configuration l'image Docker Grafana](https://grafana.com/docs/grafana/latest/administration/configure-docker/)
- [Surcharger la configuration à l'aide des variables d'environment](https://grafana.com/docs/grafana/latest/administration/configuration/#override-configuration-with-environment-variables)
diff --git a/grafana/docker-compose.postgres.yml b/grafana/docker-compose.postgres.yml
index 2958291..b9fc41c 100644
--- a/grafana/docker-compose.postgres.yml
+++ b/grafana/docker-compose.postgres.yml
@@ -5,7 +5,7 @@ services:
environment:
# https://grafana.com/docs/grafana/latest/administration/configuration/#database
GF_DATABASE_TYPE: postgres
- GF_DATABASE_HOST: ${POSTGRES_CONTAINER_NAME:-postgres} # Default name is same as ../postgres/docker-compose.yml:8
+ GF_DATABASE_HOST: postgres # Name is same as ../postgres/docker-compose.yml:8
GF_DATABASE_NAME: ${POSTGRES_DB:?err}
GF_DATABASE_USER: ${POSTGRES_USER:?err}
GF_DATABASE_PASSWORD: ${POSTGRES_PASSWORD:?err}
diff --git a/grafana/docker-compose.yml b/grafana/docker-compose.yml
index 88aa1f9..00ab896 100644
--- a/grafana/docker-compose.yml
+++ b/grafana/docker-compose.yml
@@ -8,13 +8,13 @@ volumes:
services:
grafana:
container_name: ${GRAFANA_CONTAINER_NAME:-grafana}
- image: ${GRAFANA_IMAGE:-grafana/grafana:8.4.6}
+ image: ${GRAFANA_IMAGE:-grafana/grafana:8.3.2}
restart: always
volumes:
- grafana:/var/lib/grafana
environment:
- GF_ANALYTICS_CHECK_FOR_UPDATES: ${GF_ANALYTICS_CHECK_FOR_UPDATES:-false}
- GF_ANALYTICS_REPORTING_ENABLED: ${GF_ANALYTICS_REPORTING_ENABLED:-false}
+ GF_ANALYTICS_CHECK_FOR_UPDATES: ${$GF_ANALYTICS_CHECK_FOR_UPDATES:-false}
+ GF_ANALYTICS_REPORTING_ENABLED: ${$GF_ANALYTICS_REPORTING_ENABLED:-false}
GF_INSTALL_PLUGINS: ${GF_INSTALL_PLUGINS}
GF_SECURITY_ADMIN_USER: ${GF_SECURITY_ADMIN_USER:?err}
GF_SECURITY_ADMIN_PASSWORD: ${GF_SECURITY_ADMIN_PASSWORD:?err}
diff --git a/hedgedoc/README.md b/hedgedoc/README.md
index d89e9b1..16c7803 100644
--- a/hedgedoc/README.md
+++ b/hedgedoc/README.md
@@ -21,23 +21,6 @@ Lancer le service :
docker-compose up -d
```
-## Debug
-
-### Se connecter à la base de données
-
-```shell
-. .env
-docker exec -it $POSTGRES_CONTAINER_NAME psql $POSTGRES_DB -U $POSTGRES_USER
-```
-
-### Traitement des notes vides
-
-```
-SELECT count(*) FROM public."Notes" WHERE content = '';
-SELECT * FROM public."Notes" WHERE content = '';
-DELETE FROM public."Notes" WHERE content = '';
-```
-
## Liens
- [Site officiel][website]
diff --git a/hedgedoc/docker-compose.yml b/hedgedoc/docker-compose.yml
index 204d0a2..d92a571 100644
--- a/hedgedoc/docker-compose.yml
+++ b/hedgedoc/docker-compose.yml
@@ -7,17 +7,17 @@ volumes:
services:
hedgedoc:
container_name: ${HEDGEDOC_CONTAINER_NAME:-hedgedoc}
- image: ${HEDGEDOC_IMAGE:-linuxserver/hedgedoc:1.9.3-ls53}
+ image: ${HEDGEDOC_IMAGE:-linuxserver/hedgedoc:1.9.0-ls31}
restart: always
depends_on:
- postgres
volumes:
- - hedgedoc:/config/uploads
+ - hedgedoc:/opt/hedgedoc/public/uploads
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
# https://docs.hedgedoc.org/configuration/
- CMD_DB_URL: postgres://${POSTGRES_USER:?err}:${POSTGRES_PASSWORD:?err}@${POSTGRES_CONTAINER_NAME:-postgres}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:?err}
+ CMD_DB_URL: postgres://${POSTGRES_USER:?err}:${POSTGRES_PASSWORD:?err}@${POSTGRES_CONTAINER_NAME}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:?err}
CMD_DOMAIN: ${HEDGEDOC_DOMAIN:?err}
CMD_SESSION_SECRET: ${CMD_SESSION_SECRET:?err}
NODE_ENV: ${NODE_ENV:-development} # `production` or `development`
diff --git a/listmonk/.env b/listmonk/.env
deleted file mode 100644
index 0dea747..0000000
--- a/listmonk/.env
+++ /dev/null
@@ -1,26 +0,0 @@
-########
-# DOCKER
-
-#DOCKER_CONTEXT=
-#DOCKER_HOST=
-SERVICES_DIR=..
-COMPOSE_FILE=${SERVICES_DIR}/listmonk/docker-compose.yml:${SERVICES_DIR}/postgres/docker-compose.yml
-#COMPOSE_PROJECT_NAME=
-
-## APP
-
-LISTMONK_DOMAIN=localhost
-LISTMONK_ADMIN_USERNAME=
-LISTMONK_ADMIN_PASSWORD=
-#LISTMONK_CONTAINER_NAME=listmonk
-#LISTMONK_VOLUME_NAME=listmonk
-#LISTMONK_IMAGE=listmonk/listmonk:v2.3.0
-
-## POSTGRES
-
-#POSTGRES_VOLUME_NAME=
-#POSTGRES_CONTAINER_NAME=
-#POSTGRES_IMAGE=
-POSTGRES_USER=listmonk
-POSTGRES_PASSWORD=listmonk
-POSTGRES_DB=listmonk
diff --git a/listmonk/README.md b/listmonk/README.md
deleted file mode 100644
index 50c403a..0000000
--- a/listmonk/README.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# listmonk
-
-> Gestionnaire de listes de diffusion et de newsletter
-
-## Documentation
-
-listmonk ne gère actuellement pas le multicompte.
-
-Pour utiliser avec une configuration avec les variables d'environnements il faut la commande suivante :
-
-```
-command: [sh, -c, "./listmonk --config ''"]
-```
-
-Pour l'installation il faut lancer la commande suivante pour initialiser la base de donnée :
-
-```
-command: [sh, -c, "yes | ./listmonk --install --config '' && ./listmonk --config ''"]
-```
-
-Pour faire les mise à jour et ainsi migrer la base de donnée :
-
-```
-command: [sh, -c, "yes | ./listmonk --upgrade --config '' && ./listmonk --config ''"]
-```
-
-## Liens
-
-- [Site Officiel][site]
-- [Documentation][documentation]
-- [Code source][source]
-- [Docker Hub][dockerhub]
-
-[site]: https://listmonk.app/
-[source]: https://github.com/knadh/listmonk
-[documentation]: https://listmonk.app/docs/
-[dockerhub]: https://hub.docker.com/r/listmonk/listmonk
diff --git a/listmonk/docker-compose.yml b/listmonk/docker-compose.yml
deleted file mode 100644
index 9732d9a..0000000
--- a/listmonk/docker-compose.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-version: "3.8"
-
-networks:
- default:
- name: ${TRAEFIK_NETWORK_NAME:-traefik}
-
-volumes:
- listmonk:
- name: ${LISTMONK_VOLUME_NAME:-listmonk}
-
-services:
- listmonk:
- container_name: ${LISTMONK_CONTAINER_NAME:-listmonk}
- image: ${LISTMONK_IMAGE:-listmonk/listmonk:v2.3.0}
- restart: always
- #command: [sh, -c, "yes | ./listmonk --install --config '' && ./listmonk --config ''"]
- #command: [sh, -c, "yes | ./listmonk --upgrade --config '' && ./listmonk --config ''"]
- command: [sh, -c, "./listmonk --config ''"]
- depends_on:
- - postgres
- environment:
- LISTMONK_app__address: 0.0.0.0:9000
- LISTMONK_app__admin_username: ${LISTMONK_ADMIN_USERNAME:?err}
- LISTMONK_app__admin_password: ${LISTMONK_ADMIN_PASSWORD:?err}
- LISTMONK_db__host: ${POSTGRES_CONTAINER_NAME:?err}
- LISTMONK_db__port: 5432
- LISTMONK_db__user: ${POSTGRES_USER:?err}
- LISTMONK_db__password: ${POSTGRES_PASSWORD:?err}
- LISTMONK_db__database: ${POSTGRES_DB:?err}
- LISTMONK_db__ssl_mode: disable
- TZ: Europe/Paris
- volumes:
- - /etc/timezone:/etc/timezone:ro
- - /etc/localtime:/etc/localtime:ro
- - listmonk:/listmonk/uploads
- labels:
- - traefik.enable=true
- - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-listmonk}.rule=Host(`${LISTMONK_DOMAIN:?err}`)
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-listmonk}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
diff --git a/mobilizon/.env b/mobilizon/.env
deleted file mode 100644
index fadbbf9..0000000
--- a/mobilizon/.env
+++ /dev/null
@@ -1,63 +0,0 @@
-########
-# DOCKER
-
-#DOCKER_CONTEXT=
-#DOCKER_HOST=
-SERVICES_DIR=..
-COMPOSE_FILE=${SERVICES_DIR}/mobilizon/docker-compose.yml:${SERVICES_DIR}/mobilizon/docker-compose.local.yml:${SERVICES_DIR}/postgres/docker-compose.yml:${SERVICES_DIR}/geoip/docker-compose.yml
-#COMPOSE_PROJECT_NAME=
-
-############
-## MOBILIZON
-
-MOBILIZON_INSTANCE_NAME="RésiLien - Mobilizon"
-MOBILIZON_DOMAIN=mobilizon.lan
-#MOBILIZON_INSTANCE_PORT=4000
-MOBILIZON_INSTANCE_EMAIL=no-reply@mobilizon.lan
-
-MOBILIZON_REPLY_EMAIL=contact@mobilizon.lan
-MOBILIZON_ADMIN_EMAIL=admin@mobilizon.lan
-MOBILIZON_INSTANCE_REGISTRATIONS_OPEN=true
-
-MOBILIZON_INSTANCE_SECRET_KEY_BASE=changethis
-MOBILIZON_INSTANCE_SECRET_KEY=changethis
-
-MOBILIZON_SMTP_SERVER=localhost
-MOBILIZON_SMTP_HOSTNAME=localhost
-MOBILIZON_SMTP_PORT=25
-MOBILIZON_SMTP_SSL=false
-MOBILIZON_SMTP_USERNAME=noreply@mobilizon.lan
-MOBILIZON_SMTP_PASSWORD=password
-
-#MOBILIZON_PUID=
-#MOBILIZON_PGID=
-
-#######
-# GEOIP
-
-#GEOIP_VOLUME_NAME=
-#GEOIP_IMAGE=
-#GEOIP_CONTAINER_NAME=
-
-#GEOIP_EDITION_IDS=
-GEOIP_LICENSE_KEY=
-#GEOIP_DOWNLOAD_PATH=
-#GEOIP_SCHEDULE=
-#GEOIP_LOG_LEVEL=
-
-##########
-# POSTGRES
-
-POSTGRES_USER=mobilizon_user
-POSTGRES_PASSWORD=mobilizon_password
-POSTGRES_DB=mobilizon_db
-#POSTGRES_CONTAINER_NAME=mobilizon_postgres
-#POSTGRES_VOLUME_NAME=mobilizon_postgres
-POSTGRES_IMAGE=kartoza/postgis:14-3.1
-
-#########
-# TRAEFIK
-
-#TRAEFIK_NETWORK_NAME=
-#TRAEFIK_ROUTER_NAME= # Don't use char '.'
-#TRAEFIK_ENTRYPOINTS=
diff --git a/mobilizon/README.md b/mobilizon/README.md
deleted file mode 100644
index 9614c9a..0000000
--- a/mobilizon/README.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Mobilizon
-
-> Mobilizon est un logiciel libre d'organisation d'évènements et de gestion de groupes (Meet-up) lancé en octobre 2020 par Framasoft pour proposer une alternative libre aux plateformes des GAFAM (Facebook, Meetup.com, EventBrite).
->
-> -- [Wikipedia](https://fr.wikipedia.org/wiki/Mobilizon)
-
-On peut retrouver la documentation sur le [site officiel](https://docs.joinmobilizon.org/fr/).
-
-## Configuration
-
-Mobilizon utilise de la géolocalisation pour les évènements et du coup il faut :
-- une base de données spécifique _[PostGIS](https://fr.wikipedia.org/wiki/PostGIS)_ qui se base sur _Postgres_. Actuellement la configuration de l'image Docker Postgres est compatible il faut donc juste changer le nom de l'image et utiliser [kartoza/postgis](https://hub.docker.com/r/kartoza/postgis) à la place.
-- un fichier GeoLite2 et pour cela il faut créer une clé pour accéder au service en ligne de [maxmind](https://www.maxmind.com), on utilise ensuite l'image docker [geoip-updater](https://crazymax.dev/geoip-updater/install/docker/) de crazymax pour automatiser le téléchargement et la mise à jour du fichier.
-
-## Liens
-
-- 🌐 [Site website](https://joinmobilizon.org)
-- 🔢 [voir les instances](https://instances.joinmobilizon.org/instances)
-- 💻 Source officiel :
- - [le logiciel](https://framagit.org/framasoft/mobilizon)
- - [l'image _Docker_](https://framagit.org/framasoft/joinmobilizon/docker)
-- 📜 [Documentation](https://docs.joinmobilizon.org)
-- 🐳 [Docker Hub](https://hub.docker.com/r/framasoft/mobilizon)
diff --git a/mobilizon/docker-compose.local.yml b/mobilizon/docker-compose.local.yml
deleted file mode 100644
index 4cd53ce..0000000
--- a/mobilizon/docker-compose.local.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-
-version: "3.8"
-
-services:
- mobilizon:
- ports:
- - "${MOBILIZON_INSTANCE_PORT:-4000}:${MOBILIZON_PORT:-4000}"
diff --git a/mobilizon/docker-compose.traefik.yml b/mobilizon/docker-compose.traefik.yml
deleted file mode 100644
index a37a013..0000000
--- a/mobilizon/docker-compose.traefik.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-networks:
- default:
- name: ${TRAEFIK_NETWORK_NAME:-traefik}
-
-services:
- mobilizon:
- labels:
- - traefik.enable=true
- - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-mobilizon}.rule=Host(`${MOBILIZON_DOMAIN:?err}`)
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-mobilizon}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
diff --git a/mobilizon/docker-compose.yml b/mobilizon/docker-compose.yml
deleted file mode 100644
index 7a29ec5..0000000
--- a/mobilizon/docker-compose.yml
+++ /dev/null
@@ -1,47 +0,0 @@
----
-
-version: "3.8"
-
-volumes:
- mobilizon:
- name: ${MOBILIZON_VOLUME_NAME:-mobilizon}
-
-services:
- mobilizon:
- container_name: ${MOBILIZON_CONTAINER_NAME:-mobilizon}
- image: ${MOBILIZON_IMAGE:-framasoft/mobilizon:2.0.2}
- restart: always
- depends_on:
- - postgres
- - geoip
- volumes:
- - mobilizon:/var/lib/mobilizon/uploads
- # - ${PWD}/config.exs:/etc/mobilizon/config.exs:ro
- - geoip:/var/lib/mobilizon/geo_db
- environment:
- MOBILIZON_INSTANCE_NAME: ${MOBILIZON_INSTANCE_NAME}
- MOBILIZON_INSTANCE_HOST: ${MOBILIZON_DOMAIN}
- MOBILIZON_INSTANCE_PORT: ${MOBILIZON_INSTANCE_PORT:-4000}
- MOBILIZON_INSTANCE_EMAIL: ${MOBILIZON_INSTANCE_EMAIL}
-
- MOBILIZON_REPLY_EMAIL: ${MOBILIZON_REPLY_EMAIL}
- MOBILIZON_ADMIN_EMAIL: ${MOBILIZON_ADMIN_EMAIL}
- MOBILIZON_INSTANCE_REGISTRATIONS_OPEN: ${MOBILIZON_INSTANCE_REGISTRATIONS_OPEN:-false}
-
- MOBILIZON_DATABASE_USERNAME: ${POSTGRES_USER}
- MOBILIZON_DATABASE_PASSWORD: ${POSTGRES_PASSWORD}
- MOBILIZON_DATABASE_DBNAME: ${POSTGRES_DB}
- MOBILIZON_DATABASE_HOST: ${POSTGRES_CONTAINER_NAME:-postgres} # Default name is same as ../postgres/docker-compose.yml:8
-
- MOBILIZON_INSTANCE_SECRET_KEY_BASE: ${MOBILIZON_INSTANCE_SECRET_KEY_BASE:?err}
- MOBILIZON_INSTANCE_SECRET_KEY: ${MOBILIZON_INSTANCE_SECRET_KEY:?err}
-
- MOBILIZON_SMTP_SERVER: ${MOBILIZON_SMTP_SERVER:?err}
- MOBILIZON_SMTP_HOSTNAME: ${MOBILIZON_SMTP_HOSTNAME:?err}
- MOBILIZON_SMTP_PORT: ${MOBILIZON_SMTP_PORT:?err}
- MOBILIZON_SMTP_SSL: ${MOBILIZON_SMTP_SSL:?err}
- MOBILIZON_SMTP_USERNAME: ${MOBILIZON_SMTP_USERNAME:?err}
- MOBILIZON_SMTP_PASSWORD: ${MOBILIZON_SMTP_PASSWORD:?err}
-
- PUID: ${MOBILIZON_PUID:-1000}
- PGID: ${MOBILIZON_PGID:-1000}
diff --git a/nextcloud/.env b/nextcloud/.env
index 15a8d09..fd8e2e1 100644
--- a/nextcloud/.env
+++ b/nextcloud/.env
@@ -4,7 +4,7 @@
#DOCKER_CONTEXT=
#DOCKER_HOST=
SERVICES_DIR=..
-COMPOSE_FILE=${SERVICES_DIR}/nextcloud/docker-compose.yml:${SERVICES_DIR}/nextcloud/docker-compose.config.yml:${SERVICES_DIR}/nextcloud/docker-compose.local.yml:${SERVICES_DIR}/postgres/docker-compose.yml:${SERVICES_DIR}/redis/docker-compose.yml
+COMPOSE_FILE=${SERVICES_DIR}/nextcloud/docker-compose.yml:${SERVICES_DIR}/nextcloud/docker-compose.local.yml:${SERVICES_DIR}/postgres/docker-compose.yml:${SERVICES_DIR}/redis/docker-compose.yml
#COMPOSE_PROJECT_NAME=
## APP
@@ -39,9 +39,7 @@ POSTGRES_VOLUME_NAME=nextcloud-postgres
#######
# REDIS
-#REDIS_IMAGE=
REDIS_CONTAINER_NAME=nextcloud-redis
-#REDIS_VOLUME_NAME=
#########
# TRAEFIK
diff --git a/nextcloud/README.md b/nextcloud/README.md
index 0aca8d8..2f04a15 100644
--- a/nextcloud/README.md
+++ b/nextcloud/README.md
@@ -14,78 +14,45 @@ On peut trouver [la documentation ici][documentation] en anglais ou ici pour la
## Aide
-Commande pour se connecter à un serveur :
+Exemple de commande :
```sh
-. .env
-docker exec --user www-data -it ${NEXTCLOUD_CONTAINER_NAME}-fpm ash
-```
+docker exec --user www-data -it nextcloud bash
-Pour mettre un site en maintenance :
-
-```sh
-. .env
-docker exec --user www-data -it ${NEXTCLOUD_CONTAINER_NAME}-fpm php occ maintenance:mode --on
+docker-compose exec --user www-data nextcloud php occ db:add-missing-primary-keys
```
## Configuration
-Il est possible de configurer certaines parties avec des variables d'environnement :
-- Soit les variables sont spécifique à l'image Docker
-- soit avec des variables du type `NC_` + clé (exemple : NC_default_phone_region=FR)
+Il est possible de configurer certaines parties avec des variables d'environnement, mais ce n'est pas le cas de l'ensemble de la configuration.
-### Création d'un groupe
+Voici les modifications que j'effectue :
```
-export NC_GROUP=com-en-aubrac
-php occ group:add $NC_GROUP
+docker-compose exec --user www-data nextcloud-fpm ash
+vi config/config.php
+```
+Ajout de la configuration suivante :
+```
+ 'default_language' => 'fr',
+ 'default_locale' => 'fr_FR',
+ 'default_phone_region' => 'FR',
+ 'defaultapp' => 'files',
+ 'preview_max_x' => 2048,
+ 'preview_max_y' => 2048,
+ 'jpeg_quality' => 60,
```
-### Création d'un utilisateur
-
+Ajout de imagemagick :
```
-# La variable OC_PASS est spécifique pour l'utilisation de --password-from-env
-export OC_PASS=unmotdepasse!
-
-export NC_USER=simon
-export NC_NAME=Simon
-export NC_MAIL=simon@example.org
-export NC_QUOTA="180 GB"
-
-php occ user:add --password-from-env --display-name=$NC_NAME --group="$NC_GROUP" $NC_USER
-php occ user:setting $NC_USER settings email $NC_MAIL
+docker-compose exec nextcloud-fpm apk add --no-cache imagemagick
```
-### Quota
-
-Pour bien comprendre les quotas dans Nextcloud : https://docs.nextcloud.com/server/latest/user_manual/en/files/quota.html
+ou
```
-export NC_USER=simon
-export NC_QUOTA="10 GB"
-php occ user:setting $NC_USER files quota "$NC_QUOTA"
-```
-
-### imagemagick
-
-> Le module php-imagick n’a aucun support SVG dans cette instance. Pour une meilleure compatibilité, il est recommandé de l’installer.
-
-Pour résoudre ce problème il faut ajouter le paquet `imagemagick`
-
-```
-. .env
-docker exec -it ${NEXTCLOUD_CONTAINER_NAME}-fpm apk add --no-cache imagemagick
-```
-
-## Application
-
-Suppression d'application :
-
-```
-php occ app:disable dashboard
-php occ app:disable photos
-php occ app:disable weather_status
-php occ app:disable user_status
+ssh
+docker exec nextcloud-fpm apk add --no-cache imagemagick
```
## PHP-FPM: remédier à server reached pm.max_children
diff --git a/nextcloud/docker-compose.config.yml b/nextcloud/docker-compose.config.yml
deleted file mode 100644
index f7491ce..0000000
--- a/nextcloud/docker-compose.config.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-version: "3.8"
-
-services:
- nextcloud-fpm:
- environment:
- &nextcloud-configuration
- NC_trashbin_retention_obligation: ${NC_trashbin_retention_obligation:-auto, 30}
- NC_force_language: ${NC_force_language:-fr}
- NC_default_locale: ${NC_default_locale:-fr_FR}
- NC_force_locale: ${NC_force_locale:-fr_FR}
- NC_default_language: ${NC_default_language:-fr}
- NC_default_phone_region: ${NC_default_phone_region:-FR}
- NC_defaultapp: ${NC_defaultapp:-files}
- NC_preview_max_x: ${NC_preview_max_x:-2048}
- NC_preview_max_y: ${NC_preview_max_y:-2048}
- NC_jpeg_quality: ${NC_jpeg_quality:-60}
-
- nextcloud-cron:
- environment:
- <<: *nextcloud-configuration
diff --git a/nextcloud/docker-compose.smtp.yml b/nextcloud/docker-compose.smtp.yml
index 60136d8..b8a880f 100644
--- a/nextcloud/docker-compose.smtp.yml
+++ b/nextcloud/docker-compose.smtp.yml
@@ -3,16 +3,11 @@ version: "3.8"
services:
nextcloud-fpm:
environment:
- &smtp-configuration
- NC_mail_smtphost: ${NC_mail_smtphost:?err} # The hostname of the SMTP server.
- NC_mail_smtpsecure: ${NC_mail_smtpsecure:-ssl} # Set to ssl to use SSL, or tls to use STARTTLS.
- NC_mail_smtpport: ${NC_mail_smtpport:-465}
- NC_mail_smtpauthtype: ${NC_mail_smtpauthtype:-LOGIN}
- NC_mail_smtpname: ${NC_mail_smtpname:?err}
- NC_mail_smtppassword: ${NC_mail_smtppassword:?err}
- NC_mail_from_address: ${NC_mail_from_address:?err}
- NC_mail_domain: ${NC_mail_domain:?err}
-
- nextcloud-cron:
- environment:
- <<: *smtp-configuration
+ SMTP_HOST: ${SMTP_HOST?err} # The hostname of the SMTP server.
+ SMTP_SECURE: ${SMTP_SECURE:-ssl} # Set to ssl to use SSL, or tls to use STARTTLS.
+ SMTP_PORT: ${SMTP_PORT:-465}
+ SMTP_AUTHTYPE: ${SMTP_AUTHTYPE:-LOGIN}
+ SMTP_NAME: ${SMTP_NAME?err}
+ SMTP_PASSWORD: ${SMTP_PASSWORD?err}
+ MAIL_FROM_ADDRESS: ${MAIL_FROM_ADDRESS}
+ MAIL_DOMAIN: ${MAIL_DOMAIN}
diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml
index 351eb38..5b87ade 100644
--- a/nextcloud/docker-compose.yml
+++ b/nextcloud/docker-compose.yml
@@ -7,7 +7,7 @@ volumes:
services:
nextcloud-fpm:
container_name: ${NEXTCLOUD_CONTAINER_NAME:-nextcloud}-fpm
- image: ${NEXTCLOUD_IMAGE:-nextcloud:25.0.2-fpm-alpine}
+ image: ${NEXTCLOUD_IMAGE:-nextcloud:22.2.3-fpm-alpine}
restart: always
depends_on:
- postgres
@@ -17,26 +17,24 @@ services:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- &fpm-configuration
NEXTCLOUD_TRUSTED_DOMAINS: ${NEXTCLOUD_TRUSTED_DOMAINS?err}
NEXTCLOUD_ADMIN_USER: ${NEXTCLOUD_ADMIN_USER?err}
NEXTCLOUD_ADMIN_PASSWORD: ${NEXTCLOUD_ADMIN_PASSWORD?err}
OVERWRITEPROTOCOL: ${OVERWRITEPROTOCOL:-https}
PHP_UPLOAD_LIMIT: ${PHP_UPLOAD_LIMIT:-512M}
- POSTGRES_HOST: ${POSTGRES_CONTAINER_NAME:-postgres} # Default name is same as ../postgres/docker-compose.yml:8
+ POSTGRES_HOST: postgres # 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
+ REDIS_HOST: redis # Name is same as ../redis/docker-compose.yml:4
PUID: ${NEXTCLOUD_PUID:-1000}
PGID: ${NEXTCLOUD_PGID:-1000}
nextcloud-web:
container_name: ${NEXTCLOUD_CONTAINER_NAME:-nextcloud}-web
- build: ${SERVICES_DIR}/nextcloud/web
+ build: web
restart: always
environment:
- NEXTCLOUD_FPM_CONTAINER_NAME: ${NEXTCLOUD_CONTAINER_NAME:-nextcloud}-fpm
PUID: ${NEXTCLOUD_PUID:-1000}
PGID: ${NEXTCLOUD_PGID:-1000}
depends_on:
@@ -47,14 +45,15 @@ services:
- /etc/localtime:/etc/localtime:ro
nextcloud-cron:
- image: ${NEXTCLOUD_IMAGE:-nextcloud:25.0.2-fpm-alpine}
+ image: ${NEXTCLOUD_IMAGE:-nextcloud:22.2.3-fpm-alpine}
container_name: ${NEXTCLOUD_CONTAINER_NAME:-nextcloud}-cron
restart: always
depends_on:
- nextcloud-web
entrypoint: /cron.sh
environment:
- <<: *fpm-configuration
+ PUID: ${NEXTCLOUD_PUID:-1000}
+ PGID: ${NEXTCLOUD_PGID:-1000}
volumes:
- nextcloud:/var/www/html
- /etc/timezone:/etc/timezone:ro
diff --git a/nextcloud/run b/nextcloud/run
new file mode 100755
index 0000000..a98ccba
--- /dev/null
+++ b/nextcloud/run
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+set -eu
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+. $DIR/../help.sh
+. $DIR/../postgres/run --only-source
+
+nextcloud_help() {
+ echo "./run backup : Lancement de la sauvegarde de Nextcloud"
+ echo "./run restore : Restauration de la sauvegarde de Nextcloud"
+}
+
+nextcloud_backup() {
+ script_env
+ BACKUP_DATE_DEFAULT=`date +%Y%m%d_%H%M%S`
+ BACKUP_DATE=${BACKUP_DATE:-$BACKUP_DATE_DEFAULT}
+ backup_folder_create
+
+ POSTGRES_BACKUP_FILE=backups/${BACKUP_DATE}_${NEXTCLOUD_DOMAIN}_postgres.sql
+ docker-compose exec --user www-data nextcloud php occ maintenance:mode --on
+ postgres_backup
+
+ docker run -it --rm -v $HOME/backups/${NEXTCLOUD_DOMAIN}:/backup --volumes-from nextcloud alpine:3.12.3 ash -c "cd /var/www/html && tar cvf /backup/${BACKUP_DATE}_${NEXTCLOUD_DOMAIN}_files.tar ."
+ docker-compose exec --user www-data nextcloud php occ maintenance:mode --off
+}
+
+nextcloud_restore() {
+ script_env
+
+ postgres_restore
+ docker run -it --rm -v $HOME/backups/${NEXTCLOUD_DOMAIN}:/backup -v nextcloud:/var/www/html alpine:3.12.3 ash -c "cd /var/www/html && tar xvf /backup/${BACKUP_DATE}_${NEXTCLOUD_DOMAIN}_files.tar --strip 1"
+}
+
+if [ $# -ge 1 ]; then
+ if [ "${1}" == "backup" ]; then
+ script_start
+ nextcloud_backup
+ script_end
+ elif [ "${1}" == "restore" ]; then
+ script_start
+ nextcloud_restore
+ script_end
+ elif [ "${1}" != "--only-source" ]; then
+ nextcloud_help
+ fi
+else
+ nextcloud_help
+fi
diff --git a/nextcloud/web/Dockerfile b/nextcloud/web/Dockerfile
index 345321a..64dc53c 100644
--- a/nextcloud/web/Dockerfile
+++ b/nextcloud/web/Dockerfile
@@ -1,3 +1,3 @@
-FROM nginx:1.23.3-alpine
+FROM nginx:1.21.4-alpine
-COPY nextcloud.conf.template /etc/nginx/templates/default.conf.template
+COPY nginx.conf /etc/nginx/nginx.conf
diff --git a/nextcloud/web/nextcloud.conf.template b/nextcloud/web/nextcloud.conf.template
deleted file mode 100644
index ca15645..0000000
--- a/nextcloud/web/nextcloud.conf.template
+++ /dev/null
@@ -1,145 +0,0 @@
-upstream php-handler {
- server ${NEXTCLOUD_FPM_CONTAINER_NAME}:9000;
-}
-
-server {
- listen 80;
-
- # Add headers to serve security related headers
- # 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;
-
- # Remove X-Powered-By, which is an information leak
- 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;
- fastcgi_buffers 64 4K;
-
- # Enable gzip but do not remove ETag headers
- gzip on;
- gzip_vary on;
- gzip_comp_level 4;
- gzip_min_length 256;
- 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;
-
- # Uncomment if your server is build with the ngx_pagespeed module
- # This module is currently not supported.
- #pagespeed off;
-
- location / {
- rewrite ^ /index.php;
- }
-
- location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
- deny all;
- }
- location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
- deny all;
- }
-
- location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
- fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
- set $path_info $fastcgi_path_info;
- try_files $fastcgi_script_name =404;
- include fastcgi_params;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_param PATH_INFO $path_info;
- # fastcgi_param HTTPS on;
-
- # Avoid sending the security headers twice
- fastcgi_param modHeadersAvailable true;
-
- # Enable pretty urls
- fastcgi_param front_controller_active true;
- fastcgi_pass php-handler;
- fastcgi_intercept_errors on;
- fastcgi_request_buffering off;
- }
-
- location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
- try_files $uri/ =404;
- 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;
- add_header Cache-Control "public, max-age=15778463";
- # Add headers to serve security related headers (It is intended to
- # 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
- access_log off;
- }
-
- location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap|mp4|webm)$ {
- try_files $uri /index.php$request_uri;
- # Optional: Don't log access to other assets
- access_log off;
- }
-}
diff --git a/nextcloud/web/nginx.conf b/nextcloud/web/nginx.conf
new file mode 100644
index 0000000..b076ed2
--- /dev/null
+++ b/nextcloud/web/nginx.conf
@@ -0,0 +1,174 @@
+worker_processes auto;
+
+error_log /var/log/nginx/error.log warn;
+pid /var/run/nginx.pid;
+
+
+events {
+ worker_connections 1024;
+}
+
+
+http {
+ include /etc/nginx/mime.types;
+ default_type application/octet-stream;
+
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for"';
+
+ access_log /var/log/nginx/access.log main;
+
+ sendfile on;
+ #tcp_nopush on;
+
+ keepalive_timeout 65;
+
+ #gzip on;
+
+ upstream php-handler {
+ server nextcloud-fpm:9000;
+ }
+
+ server {
+ listen 80;
+
+ # Add headers to serve security related headers
+ # 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;
+
+ # Remove X-Powered-By, which is an information leak
+ 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;
+ fastcgi_buffers 64 4K;
+
+ # Enable gzip but do not remove ETag headers
+ gzip on;
+ gzip_vary on;
+ gzip_comp_level 4;
+ gzip_min_length 256;
+ 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;
+
+ # Uncomment if your server is build with the ngx_pagespeed module
+ # This module is currently not supported.
+ #pagespeed off;
+
+ location / {
+ rewrite ^ /index.php;
+ }
+
+ location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
+ deny all;
+ }
+ location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
+ deny all;
+ }
+
+ location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
+ fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
+ set $path_info $fastcgi_path_info;
+ try_files $fastcgi_script_name =404;
+ include fastcgi_params;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ fastcgi_param PATH_INFO $path_info;
+ # fastcgi_param HTTPS on;
+
+ # Avoid sending the security headers twice
+ fastcgi_param modHeadersAvailable true;
+
+ # Enable pretty urls
+ fastcgi_param front_controller_active true;
+ fastcgi_pass php-handler;
+ fastcgi_intercept_errors on;
+ fastcgi_request_buffering off;
+ }
+
+ location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
+ try_files $uri/ =404;
+ 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;
+ add_header Cache-Control "public, max-age=15778463";
+ # Add headers to serve security related headers (It is intended to
+ # 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
+ access_log off;
+ }
+
+ location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap|mp4|webm)$ {
+ try_files $uri /index.php$request_uri;
+ # Optional: Don't log access to other assets
+ access_log off;
+ }
+ }
+}
diff --git a/plausible/.env b/plausible/.env
deleted file mode 100644
index 80eebb8..0000000
--- a/plausible/.env
+++ /dev/null
@@ -1,71 +0,0 @@
-########
-# DOCKER
-
-#DOCKER_CONTEXT=
-#DOCKER_HOST=
-SERVICES_DIR=..
-COMPOSE_FILE=${SERVICES_DIR}/plausible/docker-compose.yml:${SERVICES_DIR}/plausible/docker-compose.clickhouse.yml:${SERVICES_DIR}/plausible/docker-compose.local.yml:${SERVICES_DIR}/postgres/docker-compose.yml:${SERVICES_DIR}/clickhouse/docker-compose.yml
-#COMPOSE_PROJECT_NAME=
-
-## APP
-
-PLAUSIBLE_DOMAIN=localhost
-BASE_URL=http://${PLAUSIBLE_DOMAIN}:8000
-#PLAUSIBLE_CONTAINER_NAME=plausible
-#PLAUSIBLE_VOLUME_NAME=plausible
-#PLAUSIBLE_IMAGE=plausible/analytics:v1.4.4
-
-ADMIN_USER_NAME=example
-ADMIN_USER_EMAIL=email@example.org
-ADMIN_USER_PWD=change-me
-SECRET_KEY_BASE=AFnMQwN54ovHIqCQQGFZX5gUFpgpxasCEnzQwQsyfZLPRbiwzDYAqYDJQlQM8SbmicVJr97axXaSCfXD9zSEQQ==
-#DISABLE_AUTH=
-#DISABLE_REGISTRATION=
-
-## POSTGRES
-
-#POSTGRES_VOLUME_NAME=
-#POSTGRES_CONTAINER_NAME=
-#POSTGRES_IMAGE=
-POSTGRES_USER=user-example
-POSTGRES_PASSWORD=password-example
-POSTGRES_DB=plausible_dev
-
-## CLICKHOUSE
-
-#CLICKHOUSE_VOLUME_NAME=
-#CLICKHOUSE_CONTAINER_NAME=
-#CLICKHOUSE_IMAGE=
-
-## SMTP
-
-#MAILER_EMAIL=
-#SMTP_HOST_ADDR=
-#SMTP_HOST_PORT=
-#SMTP_USER_NAME=
-#SMTP_USER_PWD=
-#SMTP_HOST_SSL_ENABLED=
-#SMTP_RETRIES=
-
-## GOOGLE SEARCH CONSOLE
-
-#GOOGLE_CLIENT_ID=
-#GOOGLE_CLIENT_SECRET=
-
-## GEOIPUPDATE
-
-#GEOIPUPDATE_VOLUME_NAME=
-#GEOIPUPDATE_IMAGE=
-#GEOIPUPDATE_CONTAINER_NAME=
-#GEOIPUPDATE_ACCOUNT_ID=
-#GEOIPUPDATE_LICENSE_KEY=
-#GEOIPUPDATE_EDITION_IDS=GeoLite2-Country
-#GEOIPUPDATE_FREQUENCY=
-#GEOIPUPDATE_VERBOSE=
-#GEOIPUPDATE_DB_DIR=
-
-## TRAEFIK
-
-#TRAEFIK_NETWORK_NAME=
-#TRAEFIK_ROUTER_NAME=
-#TRAEFIK_ENTRYPOINTS=
diff --git a/plausible/README.md b/plausible/README.md
deleted file mode 100644
index 30e97e1..0000000
--- a/plausible/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Plausible
-
-> Plausible est une plateforme d'analyse Web légère et open source.
-
-## Liens
-
-- [Site Officiel][site]
-- [Documentation][documentation]
-- [Code source][source]
-- [Docker Hub][dockerhub]
-
-[site]: https://plausible.io/
-[source]: https://github.com/plausible/analytics
-[documentation]: https://plausible.io/docs
-[dockerhub]: https://hub.docker.com/r/plausible/analytics
diff --git a/plausible/clickhouse-config.xml b/plausible/clickhouse-config.xml
deleted file mode 100644
index ddd5f1c..0000000
--- a/plausible/clickhouse-config.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- warning
- true
-
-
-
-
-
-
-
-
-
-
diff --git a/plausible/clickhouse-user-config.xml b/plausible/clickhouse-user-config.xml
deleted file mode 100644
index f795286..0000000
--- a/plausible/clickhouse-user-config.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- 0
- 0
-
-
-
diff --git a/plausible/docker-compose.clickhouse.yml b/plausible/docker-compose.clickhouse.yml
deleted file mode 100644
index 443d044..0000000
--- a/plausible/docker-compose.clickhouse.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-version: "3.8"
-
-services:
- clickhouse:
- volumes:
- - ./clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- - ./clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
diff --git a/plausible/docker-compose.geoip.yml b/plausible/docker-compose.geoip.yml
deleted file mode 100644
index 6c9fe71..0000000
--- a/plausible/docker-compose.geoip.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-version: "3.8"
-
-services:
- plausible:
- depends_on:
- - geoipupdate
- environment:
- - GEOLITE2_COUNTRY_DB=/geoip/GeoLite2-Country.mmdb
- volumes:
- - geoipupdate:/geoip:ro
diff --git a/plausible/docker-compose.google.yml b/plausible/docker-compose.google.yml
deleted file mode 100644
index dfb4c6c..0000000
--- a/plausible/docker-compose.google.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-version: "3.8"
-
-services:
- plausible:
- environment:
- GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:?err}
- GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:?err}
diff --git a/plausible/docker-compose.local.yml b/plausible/docker-compose.local.yml
deleted file mode 100644
index f1ceb7f..0000000
--- a/plausible/docker-compose.local.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-version: "3.8"
-
-services:
- plausible:
- ports:
- - ${LOCAL_PORT:-8000}:8000
diff --git a/plausible/docker-compose.smtp.yml b/plausible/docker-compose.smtp.yml
deleted file mode 100644
index fc0dea5..0000000
--- a/plausible/docker-compose.smtp.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: "3.8"
-
-services:
- plausible:
- environment:
- MAILER_EMAIL: ${MAILER_EMAIL:-hello@plausible.local}
- SMTP_HOST_ADDR: ${SMTP_HOST_ADDR:-localhost}
- SMTP_HOST_PORT: ${SMTP_HOST_PORT:-25}
- SMTP_USER_NAME: ${SMTP_USER_NAME}
- SMTP_USER_PWD: ${SMTP_USER_PWD}
- SMTP_HOST_SSL_ENABLED: ${SMTP_HOST_SSL_ENABLED:-false}
- SMTP_RETRIES: ${SMTP_RETRIES:-2}
diff --git a/plausible/docker-compose.traefik.yml b/plausible/docker-compose.traefik.yml
deleted file mode 100644
index 04cd7b6..0000000
--- a/plausible/docker-compose.traefik.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-version: "3.8"
-
-networks:
- default:
- name: ${TRAEFIK_NETWORK_NAME:-traefik}
-
-services:
- plausible:
- labels:
- - traefik.enable=true
- - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-plausible}.rule=Host(`${PLAUSIBLE_DOMAIN:?err}`)
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-plausible}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
diff --git a/plausible/docker-compose.yml b/plausible/docker-compose.yml
deleted file mode 100644
index 1834df3..0000000
--- a/plausible/docker-compose.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-version: "3.8"
-
-volumes:
- plausible:
- name: ${PLAUSIBLE_VOLUME_NAME:-plausible}
-
-services:
- plausible:
- container_name: ${PLAUSIBLE_CONTAINER_NAME:-plausible}
- image: ${PLAUSIBLE_IMAGE:-plausible/analytics:v1.4.4}
- restart: always
- command: ${PLAUSIBLE_DOCKER_COMMAND:-sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh db init-admin && /entrypoint.sh run"}
- depends_on:
- - clickhouse
- - postgres
- environment:
- ADMIN_USER_NAME: ${ADMIN_USER_NAME:?err}
- ADMIN_USER_EMAIL: ${ADMIN_USER_EMAIL:?err}
- ADMIN_USER_PWD: ${ADMIN_USER_PWD:?err}
- BASE_URL: ${BASE_URL}
- SECRET_KEY_BASE: ${SECRET_KEY_BASE:?err}
- DISABLE_AUTH: ${DISABLE_AUTH:-false}
- DISABLE_REGISTRATION: ${DISABLE_REGISTRATION:-false}
- DATABASE_URL: postgres://${POSTGRES_USER:?err}:${POSTGRES_PASSWORD:?err}@${POSTGRES_CONTAINER_NAME:-postgres}:5432/${POSTGRES_DB:?err}
- CLICKHOUSE_DATABASE_URL: http://${CLICKHOUSE_CONTAINER_NAME:-clickhouse}:8123/${CLICKHOUSE_CONTAINER_NAME:-clickhouse}
- SITE_LIMIT: ${SITE_LIMIT:-3}
- SELFHOST: ${SELFHOST:-true}
- LOG_LEVEL: ${LOG_LEVEL:-warn}
- volumes:
- - /etc/timezone:/etc/timezone:ro
- - /etc/localtime:/etc/localtime:ro
diff --git a/postgres/.env b/postgres/.env
index 1b5f33e..74b5f0e 100644
--- a/postgres/.env
+++ b/postgres/.env
@@ -1,7 +1,3 @@
-#POSTGRES_VOLUME_NAME=
-#POSTGRES_CONTAINER_NAME=
-#POSTGRES_IMAGE=
-
POSTGRES_USER=user-example
POSTGRES_PASSWORD=password-example
POSTGRES_DB=postgres-database-name-example
diff --git a/postgres/docker-compose.yml b/postgres/docker-compose.yml
index 44e7d0a..95f5c69 100644
--- a/postgres/docker-compose.yml
+++ b/postgres/docker-compose.yml
@@ -7,7 +7,7 @@ volumes:
services:
postgres:
container_name: ${POSTGRES_CONTAINER_NAME:-postgres}
- image: ${POSTGRES_IMAGE:-postgres:14.2-alpine}
+ image: ${POSTGRES_IMAGE:-postgres:14.1-alpine}
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER:?err}
diff --git a/prometheus/.env b/prometheus/.env
deleted file mode 100644
index 803d12c..0000000
--- a/prometheus/.env
+++ /dev/null
@@ -1,21 +0,0 @@
-########
-# DOCKER
-
-#DOCKER_CONTEXT=
-#DOCKER_HOST=
-SERVICES_DIR=..
-COMPOSE_FILE=${SERVICES_DIR}/prometheus/docker-compose.yml:${SERVICES_DIR}/prometheus/docker-compose.traefik.yml
-#COMPOSE_PROJECT_NAME=
-
-############
-# PROMETHEUS
-
-#PROMETHEUS_IMAGE=
-PROMETHEUS_DOMAIN=prometheus.cool.life
-
-#########
-# TRAEFIK
-
-#TRAEFIK_NETWORK_NAME=
-#TRAEFIK_ROUTER_NAME=
-#TRAEFIK_ENTRYPOINTS=
diff --git a/prometheus/Dockerfile b/prometheus/Dockerfile
deleted file mode 100644
index 159f2ac..0000000
--- a/prometheus/Dockerfile
+++ /dev/null
@@ -1,3 +0,0 @@
-ARG PROMETHEUS_IMAGE
-FROM $PROMETHEUS_IMAGE
-ADD prometheus.yml /etc/prometheus/
diff --git a/prometheus/README.md b/prometheus/README.md
deleted file mode 100644
index caca743..0000000
--- a/prometheus/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Prometheus
-
-> Prometheus est un logiciel libre de surveillance informatique et générateur d'alertes. Il enregistre des métriques en temps réel dans une base de données de séries temporelles (avec une capacité d'acquisition élevée) en se basant sur le contenu de point d'entrée exposé à l'aide du protocole HTTP.
->
-> -- [Wikipédia](https://fr.wikipedia.org/wiki/Prometheus_(logiciel))
-
-## 🔧 Configuration
-
-Pour configurer le service il faut ajouter un fichier prometheus.yml décrivant votre configuration. Vous retrouverz toutes les informations sur la page de [documentation officielle](https://prometheus.io/docs/prometheus/latest/configuration/configuration/).
-
-## 🔗 Liens
-
-- [Site officiel](https://prometheus.io/)
-- [La documentation](https://prometheus.io/docs/)
-- [Github](https://github.com/prometheus/prometheus)
-- [L'image Docker sur Docker Hub](https://hub.docker.com/r/prom/prometheus)
diff --git a/prometheus/docker-compose.traefik.yml b/prometheus/docker-compose.traefik.yml
deleted file mode 100644
index 5f3fe21..0000000
--- a/prometheus/docker-compose.traefik.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-networks:
- default:
- name: ${TRAEFIK_NETWORK_NAME:-traefik}
-
-services:
- prometheus:
- labels:
- - traefik.enable=true
- - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-prometheus}.rule=Host(`${PROMETHEUS_DOMAIN:?err}`)
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-prometheus}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
diff --git a/prometheus/docker-compose.yml b/prometheus/docker-compose.yml
deleted file mode 100644
index b97b1e3..0000000
--- a/prometheus/docker-compose.yml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-
-version: '3.8'
-
-volumes:
- prometheus:
- name: ${PROMETHEUS_VOLUME_NAME:-prometheus}
-
-services:
- prometheus:
- container_name: ${PROMETHEUS_CONTAINER_NAME:-prometheus}
- build:
- context: .
- args:
- PROMETHEUS_IMAGE: ${PROMETHEUS_IMAGE:-prom/prometheus:v2.34.0}
- volumes:
- - prometheus:/prometheus
- restart: always
diff --git a/prometheus/node-exporter/docker-compose.yml b/prometheus/node-exporter/docker-compose.yml
new file mode 100644
index 0000000..9a2b46e
--- /dev/null
+++ b/prometheus/node-exporter/docker-compose.yml
@@ -0,0 +1,16 @@
+---
+version: '3.8'
+
+services:
+ node_exporter:
+ image: ${NODE_EXPORTER_IMAGE:-quay.io/prometheus/node-exporter:v1.2.0}
+ container_name: node_exporter
+ command:
+ - '--path.rootfs=/host --collector.textfile.directory=/host/var/lib/node_exporter/textfile_collector'
+ network_mode: host
+ pid: host
+ restart: unless-stopped
+ expose:
+ - 9100
+ volumes:
+ - '/:/host:ro,rslave'
diff --git a/redis/docker-compose.yml b/redis/docker-compose.yml
index cb0bd58..35755cd 100644
--- a/redis/docker-compose.yml
+++ b/redis/docker-compose.yml
@@ -1,9 +1,5 @@
version: "3.8"
-volumes:
- redis:
- name: ${REDIS_VOLUME_NAME:-redis}
-
services:
redis:
image: ${REDIS_IMAGE:-redis:6.2.6-alpine}
@@ -13,6 +9,5 @@ services:
PUID: ${REDIS_PUID:-1000}
PGID: ${REDIS_PGID:-1000}
volumes:
- - redis:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
diff --git a/registry/.env b/registry/.env
index 6771d73..ac4869e 100644
--- a/registry/.env
+++ b/registry/.env
@@ -5,7 +5,7 @@ TRAEFIK_NETWORK_NAME=kifeart
## REGISTRY
-#REGISTRY_IMAGE=
+REGISTRY_IMAGE=registry:2.7.1
REGISTRY_CUSTOM_IMAGE=custom/registry
REGISTRY_DOMAIN=registry.cool.life
REGISTRY_VOLUME_NAME=registry
diff --git a/registry/README.md b/registry/README.md
index 56deffa..a644b38 100644
--- a/registry/README.md
+++ b/registry/README.md
@@ -36,12 +36,6 @@ Pour se connecter :
docker login https://$REGISTRY_DOMAIN
```
-## Nettoyer le registre
-
-```sh
-docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml --delete-untagged=true
-```
-
## Aide
Pour connaître les images du registry :
diff --git a/registry/docker-compose.yml b/registry/docker-compose.yml
index fd228a9..c987491 100644
--- a/registry/docker-compose.yml
+++ b/registry/docker-compose.yml
@@ -7,7 +7,7 @@ volumes:
services:
registry:
container_name: ${REGISTRY_CONTAINER_NAME}
- image: ${REGISTRY_IMAGE:-registry:2.8.1}
+ image: ${REGISTRY_IMAGE}
restart: always
environment:
REGISTRY_AUTH: htpasswd
diff --git a/traefik/docker-compose.yml b/traefik/docker-compose.yml
index f030402..ad8c22c 100644
--- a/traefik/docker-compose.yml
+++ b/traefik/docker-compose.yml
@@ -11,7 +11,7 @@ networks:
services:
traefik:
container_name: ${TRAEFIK_CONTAINER_NAME:-traefik}
- image: ${TRAEFIK_IMAGE:-traefik:v2.6.3}
+ image: ${TRAEFIK_IMAGE:-traefik:v2.5.4}
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
@@ -30,6 +30,7 @@ services:
- --log.level=${TRAEFIK_LOG_LEVEL:-INFO}
- --global.sendanonymoususage=${TRAEFIK_GLOBAL_SENDANONYMOUSUSAGE:-false}
- --global.checknewversion=${TRAEFIK_GLOBAL_CHECKNEWVERSION:-false}
+ - --pilot.dashboard=${TRAEFIK_PILOT_DASHBOARD:-false}
- --metrics.prometheus=${TRAEFIK_METRICS_PROMETHEUS:-true}
- --accesslog=${TRAEFIK_ACCESSLOG:-false}
diff --git a/uptimekuma/.env b/uptimekuma/.env
deleted file mode 100644
index a67d401..0000000
--- a/uptimekuma/.env
+++ /dev/null
@@ -1,20 +0,0 @@
-########
-# DOCKER
-
-SERVICES_DIR=".."
-COMPOSE_FILE=${SERVICES_DIR}/uptimekuma/docker-compose.yml:${SERVICES_DIR}/uptimekuma/docker-compose.local.yml
-# COMPOSE_PROJECT_NAME=
-
-## APP
-
-# UPTIMEKUMA_DOMAIN={{ UPTIMEKUMA_DOMAIN }}
-UPTIMEKUMA_CONTAINER_NAME=uptimekuma
-UPTIMEKUMA_VOLUME_NAME=uptimekuma
-# UPTIMEKUMA_IMAGE=
-
-#########
-# TRAEFIK
-
-# TRAEFIK_NETWORK_NAME=
-# TRAEFIK_ROUTER_NAME=
-# TRAEFIK_ENTRYPOINTS=
diff --git a/uptimekuma/README.md b/uptimekuma/README.md
deleted file mode 100644
index 0505ee5..0000000
--- a/uptimekuma/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Uptime Kuma
-
-> Uptime Kuma est un service pour surveiller des applications et services auto-hébergés. Il surveille le fonctionnement de services à travers des sondes HTTP(S), TCP, Ping, enregistrement DNS… sans limites.
-
-## Information
-
-- L'ensemble des variables d'environnement se trouve [ici](https://github.com/louislam/uptime-kuma/wiki/Environment-Variables)
-- Actuellement Uptime Kuma support seulement sqlite3, [une PR](https://github.com/louislam/uptime-kuma/pull/1139) est en court pour le support de MySQL à suivre.
-- Il y aurait des problèmes de DNS avec l'image Docker Alpine et [le support ne sera plus la dans la v2](https://github.com/louislam/uptime-kuma/pull/2085) donc on prend la version debian un peu plus lourde.
-- Pour l'instant [il n'est pas possible d'avoir plusieurs comptes](https://github.com/louislam/uptime-kuma/issues/128)
-
-## Liens
-
-- [Site Officiel][site]
-- [Documentation][documentation]
-- [Code source][source]
-- [Docker Hub][dockerhub]
-
-[site]: https://uptime.kuma.pet/
-[source]: https://github.com/louislam/uptime-kuma
-[documentation]: https://github.com/louislam/uptime-kuma/wiki
-[dockerhub]: https://hub.docker.com/r/louislam/uptime-kuma/
\ No newline at end of file
diff --git a/uptimekuma/docker-compose.local.yml b/uptimekuma/docker-compose.local.yml
deleted file mode 100644
index 7a90473..0000000
--- a/uptimekuma/docker-compose.local.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-
-version: "3.8"
-
-services:
- uptimekuma:
- ports:
- - 3001:3001
diff --git a/uptimekuma/docker-compose.traefik.yml b/uptimekuma/docker-compose.traefik.yml
deleted file mode 100644
index ff7d31c..0000000
--- a/uptimekuma/docker-compose.traefik.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-networks:
- default:
- name: ${TRAEFIK_NETWORK_NAME:-traefik}
-
-services:
- uptimekuma:
- labels:
- - traefik.enable=true
- - traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-uptimekuma}.rule=Host(`${UPTIMEKUMA_DOMAIN:?err}`)
- - traefik.http.routers.${TRAEFIK_ROUTER_NAME:-uptimekuma}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
diff --git a/uptimekuma/docker-compose.yml b/uptimekuma/docker-compose.yml
deleted file mode 100644
index 8a087de..0000000
--- a/uptimekuma/docker-compose.yml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-
-version: "3.8"
-
-volumes:
- uptimekuma:
- name: ${UPTIMEKUMA_VOLUME_NAME:-uptimekuma}
-
-services:
- uptimekuma:
- container_name: ${UPTIMEKUMA_CONTAINER_NAME:-uptimekuma}
- image: ${UPTIMEKUMA_IMAGE:-louislam/uptime-kuma:1.18.5}
- restart: always
- volumes:
- - uptimekuma:/app/data
- - /etc/timezone:/etc/timezone:ro
- - /etc/localtime:/etc/localtime:ro
diff --git a/vaultwarden/.env b/vaultwarden/.env
deleted file mode 100644
index 0c01add..0000000
--- a/vaultwarden/.env
+++ /dev/null
@@ -1,46 +0,0 @@
-########
-# DOCKER
-
-SERVICES_DIR=".."
-COMPOSE_FILE=${SERVICES_DIR}/vaultwarden/docker-compose.yml
-#COMPOSE_PROJECT_NAME=
-
-## APP
-
-#VAULTWARDEN_IMAGE=
-#VAULTWARDEN_VOLUME_NAME=
-VAULTWARDEN_DOMAIN=vaultwarden.local
-
-#VAULTWARDEN_LOG_LEVEL=
-#VAULTWARDEN_SIGNUPS_ALLOWED=false
-VAULTWARDEN_ADMIN_TOKEN="mytoken"
-#VAULTWARDEN_INVITATION_ORG_NAME="RésiLien"
-
-##########
-# POSTGRES
-
-#POSTGRES_IMAGE=
-#POSTGRES_CONTAINER_NAME=
-#POSTGRES_DB=
-#POSTGRES_USER=
-#POSTGRES_PASSWORD=
-#POSTGRES_VOLUME_NAME=
-
-######
-# SMTP
-
-#VAULTWARDEN_SMTP_HOST=
-#VAULTWARDEN_SMTP_FROM=
-#VAULTWARDEN_SMTP_FROM_NAME=
-#VAULTWARDEN_SMTP_SECURITY=
-#VAULTWARDEN_SMTP_PORT=
-#VAULTWARDEN_SMTP_USERNAME=
-#VAULTWARDEN_SMTP_PASSWORD=
-#VAULTWARDEN_SMTP_AUTH_MECHANISM=
-
-#########
-# TRAEFIK
-
-#TRAEFIK_NETWORK_NAME=
-#TRAEFIK_ROUTER_NAME=
-#TRAEFIK_ENTRYPOINTS=
diff --git a/vaultwarden/README.md b/vaultwarden/README.md
deleted file mode 100644
index b799a9d..0000000
--- a/vaultwarden/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Vaultwarden
-
-> Gestionnaire de mot de passe compatible avec Bitwarden mais écrit en Rust pour être plus sobre en ressource système.
-
-## Configuration
-
-Toutes les variables de configuration du service sont disponibles à [cette adresse](https://github.com/dani-garcia/vaultwarden/blob/main/.env.template).
-
-## Clients
-
-[Les clients de Bitwarden](https://bitwarden.com/#download) sont compatibles avec le serveur.
-
-## Liens
-
-- [Documentation][documentation]
-- [Code source][source]
-- [Docker Hub][dockerhub]
-
-[source]: https://github.com/dani-garcia/vaultwarden
-[documentation]: https://github.com/dani-garcia/vaultwarden/wiki
-[dockerhub]: https://hub.docker.com/r/vaultwarden/server
\ No newline at end of file
diff --git a/vaultwarden/docker-compose.postgres.yml b/vaultwarden/docker-compose.postgres.yml
deleted file mode 100644
index 58e2bf7..0000000
--- a/vaultwarden/docker-compose.postgres.yml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-
-version: "3.8"
-
-services:
- vaultwarden:
- depends_on:
- - postgres
- environment:
- DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_CONTAINER_NAME}:5432/${POSTGRES_DB}
diff --git a/vaultwarden/docker-compose.smtp.yml b/vaultwarden/docker-compose.smtp.yml
deleted file mode 100644
index 21ca579..0000000
--- a/vaultwarden/docker-compose.smtp.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-services:
- vaultwarden:
- environment:
- SMTP_HOST: ${VAULTWARDEN_SMTP_HOST:?err}
- SMTP_FROM: ${VAULTWARDEN_SMTP_FROM:?err}
- SMTP_FROM_NAME: ${VAULTWARDEN_SMTP_FROM_NAME:?err}
- SMTP_SECURITY: ${VAULTWARDEN_SMTP_SECURITY:?err}
- SMTP_PORT: ${VAULTWARDEN_SMTP_PORT:?err}
- SMTP_USERNAME: ${VAULTWARDEN_SMTP_USERNAME:?err}
- SMTP_PASSWORD: ${VAULTWARDEN_SMTP_PASSWORD:?err}
- SMTP_AUTH_MECHANISM: ${VAULTWARDEN_SMTP_AUTH_MECHANISM:?err}
diff --git a/vaultwarden/docker-compose.traefik.yml b/vaultwarden/docker-compose.traefik.yml
deleted file mode 100644
index e191542..0000000
--- a/vaultwarden/docker-compose.traefik.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-
-version: "3.8"
-
-networks:
- default:
- name: ${TRAEFIK_NETWORK_NAME:-traefik}
-
-services:
- vaultwarden:
- labels:
- - traefik.enable=true
- - 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}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
\ No newline at end of file
diff --git a/vaultwarden/docker-compose.yml b/vaultwarden/docker-compose.yml
deleted file mode 100644
index 97553ca..0000000
--- a/vaultwarden/docker-compose.yml
+++ /dev/null
@@ -1,23 +0,0 @@
----
-
-version: "3.8"
-
-volumes:
- vaultwarden:
- name: ${VAULTWARDEN_VOLUME_NAME:-vaultwarden}
-
-services:
- vaultwarden:
- image: ${VAULTWARDEN_IMAGE:-vaultwarden/server:1.27.0-alpine}
- container_name: ${VAULTWARDEN_CONTAINER_NAME:-vaultwarden}
- restart: always
- environment:
- ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN:?err}
- DOMAIN: https://${VAULTWARDEN_DOMAIN:?err}
- INVITATION_ORG_NAME: ${VAULTWARDEN_INVITATION_ORG_NAME:-Vaultwarden}
- LOG_LEVEL: ${VAULTWARDEN_LOG_LEVEL:-Info}
- SIGNUPS_ALLOWED: ${VAULTWARDEN_SIGNUPS_ALLOWED:-true}
- volumes:
- - vaultwarden:/data
- - /etc/timezone:/etc/timezone:ro
- - /etc/localtime:/etc/localtime:ro
diff --git a/vikunja/.env b/vikunja/.env
deleted file mode 100644
index 62a1d6f..0000000
--- a/vikunja/.env
+++ /dev/null
@@ -1,86 +0,0 @@
-########
-# 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
diff --git a/vikunja/README.md b/vikunja/README.md
deleted file mode 100644
index 708a150..0000000
--- a/vikunja/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# 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.
->
-> [Framalibre](https://framalibre.org/content/vikunja)
-
-## 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/)
diff --git a/vikunja/docker-compose.local.yml b/vikunja/docker-compose.local.yml
deleted file mode 100644
index dbfbc28..0000000
--- a/vikunja/docker-compose.local.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-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.logs.yml b/vikunja/docker-compose.logs.yml
deleted file mode 100644
index ec74292..0000000
--- a/vikunja/docker-compose.logs.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-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.
diff --git a/vikunja/docker-compose.postgres.yml b/vikunja/docker-compose.postgres.yml
deleted file mode 100644
index 4193043..0000000
--- a/vikunja/docker-compose.postgres.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-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
deleted file mode 100644
index 219ce35..0000000
--- a/vikunja/docker-compose.prometheus.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-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
deleted file mode 100644
index 72289d6..0000000
--- a/vikunja/docker-compose.redis.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-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
diff --git a/vikunja/docker-compose.smtp.yml b/vikunja/docker-compose.smtp.yml
deleted file mode 100644
index c9f98c2..0000000
--- a/vikunja/docker-compose.smtp.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-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}
diff --git a/vikunja/docker-compose.traefik.yml b/vikunja/docker-compose.traefik.yml
deleted file mode 100644
index eabf6d1..0000000
--- a/vikunja/docker-compose.traefik.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-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}
diff --git a/vikunja/docker-compose.yml b/vikunja/docker-compose.yml
deleted file mode 100644
index ac99c02..0000000
--- a/vikunja/docker-compose.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-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}
- restart: always
- depends_on:
- - vikunja_api
diff --git a/watchtower/.env b/watchtower/.env
index 722e5d5..a00e64d 100644
--- a/watchtower/.env
+++ b/watchtower/.env
@@ -1,5 +1,5 @@
WATCHTOWER_CONTAINER_NAME=watchtower
-#WATCHTOWER_IMAGE=
+WATCHTOWER_IMAGE=containrrr/watchtower:1.0.3
REGISTRY_DOMAIN=registry.cool.life
REGISTRY_USER=kosssi
REGISTRY_PASSWORD=z91PjNYpswd4ai5YoMCw58VoygJSZev7qNJ0cAlPmPBD5pVz9O
diff --git a/watchtower/docker-compose.yml b/watchtower/docker-compose.yml
index ed51860..52ee210 100644
--- a/watchtower/docker-compose.yml
+++ b/watchtower/docker-compose.yml
@@ -3,7 +3,7 @@ version: '3.8'
services:
watchtower:
container_name: ${WATCHTOWER_CONTAINER_NAME}
- image: ${WATCHTOWER_IMAGE:-containrrr/watchtower:1.4.0}
+ image: ${WATCHTOWER_IMAGE}
restart: always
command: -i 60 --label-enable --cleanup --debug
# --debug