Compare commits
83 Commits
matomo
...
f647928d44
Author | SHA1 | Date | |
---|---|---|---|
f647928d44 | |||
d5e61d35a5 | |||
8f5fcec3a9 | |||
0798bab099 | |||
e8a022e7e3 | |||
c8c945ad64 | |||
ba29719ed1 | |||
f598c06029 | |||
de2a8eef46 | |||
6334a88085 | |||
e3dcc0efd5 | |||
264688abf8 | |||
669866b44e | |||
b54891ec38 | |||
b3dce58f7b | |||
0198c030e9 | |||
2281c4337c | |||
fd63036294 | |||
0af258dcae | |||
f78676d3ee | |||
4e32136c26 | |||
c68a73b55b | |||
4bf479d0e0 | |||
62334b2f85 | |||
250f015535 | |||
c631f47ae1 | |||
ea59336efb | |||
747d158f58 | |||
347ff1d19b | |||
c9ef1d34a1 | |||
ce43797716 | |||
cae7eafbe0 | |||
6026bb7709 | |||
912fe146af | |||
01060abda6 | |||
cfc0771bb5 | |||
add83cd745 | |||
efcd3891ba | |||
d8414788ef | |||
ec25f4b76f | |||
8da5cc41ed | |||
10337ac53c | |||
ec4ae3a8b8 | |||
5b6ce7cfcd | |||
7498f63974 | |||
3a7e863d0c | |||
62a5159232 | |||
9d3175df69 | |||
7939150137 | |||
db74e92291 | |||
8f1a45969d | |||
c4248a6f97 | |||
cfd8b5a2ce | |||
1cee679407 | |||
1f7e610297 | |||
1931adafa4 | |||
63246c442c | |||
a60026a672 | |||
47ce108eb6 | |||
a295e42fc5 | |||
768bf9b71d | |||
8e1cb72245 | |||
d951d0c8f5 | |||
30fd1db0a3 | |||
b8814b4391 | |||
361f9b7d69 | |||
903ba0283e | |||
7bc9788cd8 | |||
9cb520624f | |||
5d4d7ad7fb | |||
895623732f | |||
607e6c83c2 | |||
58e5685b4d | |||
0e1c155fbf | |||
cf44901c1d | |||
557d35b9bf | |||
af49fefe12 | |||
4f2ae331df | |||
dbe1cd0f0e | |||
ec62e7a14c | |||
248f2fc174 | |||
ca15dfeca1 | |||
fe99557d1b |
11
README.md
11
README.md
@ -8,21 +8,26 @@ Vous trouverez dans ce dépôt l'ensemble des services Open Source que RésiLien
|
||||
|
||||
- [Directus](./directus) : Permet d'administrer une base de données
|
||||
- [HedgeDoc](./hedgedoc) : Prise de note en Markdown collaborative en temps réel
|
||||
- [Matomo](./matomo) : Logiciel libre et open source de mesure de statistiques web
|
||||
- [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
|
||||
|
||||
### 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
|
||||
- [Gitea](./gitea) : Un service Git auto-hébergé très simple à installer et à utiliser. Il est similaire à GitHub, Bitbucket ou Gitlab.
|
||||
- [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.
|
||||
- [Grafana](./grafana) : Un outil de supervision simple et élégant
|
||||
- [MariaDB](./mariadb) : MariaDB est un système de gestion de base de données, un fork communautaire de MySQL
|
||||
- [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
|
||||
- [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 ?
|
||||
|
3
clickhouse/.env
Normal file
3
clickhouse/.env
Normal file
@ -0,0 +1,3 @@
|
||||
#CLICKHOUSE_VOLUME_NAME=
|
||||
#CLICKHOUSE_CONTAINER_NAME=
|
||||
#CLICKHOUSE_IMAGE=
|
16
clickhouse/README.md
Normal file
16
clickhouse/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# ClickHouse
|
||||
|
||||
> ClickHouse est un logiciel libre de base de données orientée colonnes (DBMS) pour le traitement analytique en ligne (OLAP).
|
||||
>
|
||||
> <cite>[Wikipédia][wikipedia]</cite>
|
||||
|
||||
## 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
|
19
clickhouse/docker-compose.yml
Normal file
19
clickhouse/docker-compose.yml
Normal file
@ -0,0 +1,19 @@
|
||||
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
|
@ -44,7 +44,9 @@ POSTGRES_VOLUME_NAME=directus-postgres
|
||||
#######
|
||||
# REDIS
|
||||
|
||||
#REDIS_IMAGE=
|
||||
#REDIS_CONTAINER_NAME=
|
||||
#REDIS_VOLUME_NAME=
|
||||
|
||||
#########
|
||||
# TRAEFIK
|
||||
|
@ -9,12 +9,10 @@ volumes:
|
||||
services:
|
||||
directus:
|
||||
container_name: ${DIRECTUS_CONTAINER_NAME:-directus}
|
||||
image: ${DIRECTUS_IMAGE:-directus/directus:9.5.1@sha256:c21099315f8720a12c65eea30b7450a96845ba17e9313e95a3fd23867b96c289}
|
||||
image: ${DIRECTUS_IMAGE:-directus/directus:9.8.0}
|
||||
restart: always
|
||||
volumes:
|
||||
- directus:/directus/uploads
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
@ -34,5 +32,7 @@ services:
|
||||
DB_USER: ${POSTGRES_USER:?err}
|
||||
DB_PASSWORD: ${POSTGRES_PASSWORD:?err}
|
||||
|
||||
TZ: ${TZ:-Europe/Paris}
|
||||
|
||||
PUID: ${DIRECTUS_PUID:-1000}
|
||||
PGID: ${DIRECTUS_PGID:-1000}
|
||||
|
@ -7,7 +7,7 @@ version: "3.8"
|
||||
services:
|
||||
drone-runner:
|
||||
container_name: ${DRONE_RUNNER_CONTAINER_NAME}
|
||||
image: ${DRONE_RUNNER_IMAGE:-drone/drone-runner-docker:1.8.0@sha256:70da970bb76a62567edbea1ac8002d9484664267f4cbb49fbd7c87a753d02260}
|
||||
image: ${DRONE_RUNNER_IMAGE:-drone/drone-runner-docker:1.8.0}
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
@ -9,7 +9,7 @@ volumes:
|
||||
services:
|
||||
drone-server:
|
||||
container_name: ${DRONE_SERVER_CONTAINER_NAME:-drone-server}
|
||||
image: ${DRONE_SERVER_IMAGE:-drone/drone:2.9.1@sha256:674e62c62cf41e06773c1b5e89687f1d514d49db6d1bb78678a5ef86927bc479}
|
||||
image: ${DRONE_SERVER_IMAGE:-drone/drone:2.11.1}
|
||||
restart: always
|
||||
environment:
|
||||
# https://docs.drone.io/server/reference/drone-rpc-secret/
|
||||
|
10
geoipupdate/.env
Normal file
10
geoipupdate/.env
Normal file
@ -0,0 +1,10 @@
|
||||
#GEOIPUPDATE_VOLUME_NAME=
|
||||
#GEOIPUPDATE_IMAGE=
|
||||
#GEOIPUPDATE_CONTAINER_NAME=
|
||||
|
||||
GEOIPUPDATE_ACCOUNT_ID=<change-me>
|
||||
GEOIPUPDATE_LICENSE_KEY=<change-me>
|
||||
#GEOIPUPDATE_EDITION_IDS=
|
||||
#GEOIPUPDATE_FREQUENCY=
|
||||
#GEOIPUPDATE_VERBOSE=
|
||||
#GEOIPUPDATE_DB_DIR=
|
14
geoipupdate/README.md
Normal file
14
geoipupdate/README.md
Normal file
@ -0,0 +1,14 @@
|
||||
# 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
|
22
geoipupdate/docker-compose.yml
Normal file
22
geoipupdate/docker-compose.yml
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
|
||||
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}
|
36
gitea/.env
36
gitea/.env
@ -1,26 +1,34 @@
|
||||
COMPOSE_FILE=../postgres/docker-compose.yml:./docker-compose.yml:./docker-compose.override.yml
|
||||
########
|
||||
# DOCKER
|
||||
|
||||
# APP
|
||||
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
|
||||
|
||||
GITEA_VOLUME_NAME=gitea
|
||||
GITEA_PROTOCOL=http
|
||||
GITEA_DOMAIN=gitea.lan
|
||||
|
||||
# APP CONFIG
|
||||
#######
|
||||
# GITEA
|
||||
# https://docs.gitea.io/en-us/install-with-docker/#environments-variables
|
||||
|
||||
DISABLE_SSH=true
|
||||
RUN_MODE=prod
|
||||
ROOT_URL=${GITEA_PROTOCOL}://${GITEA_DOMAIN}
|
||||
DISABLE_REGISTRATION=true
|
||||
DISABLE_GRAVATAR=true
|
||||
#INSTALL_LOCK=true
|
||||
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" <email@example.com>'
|
||||
GITEA__mailer__SMTP_ADDR=smtp.gitea.lan
|
||||
GITEA__mailer__SMTP_PORT=465
|
||||
GITEA__mailer__USER=gitea.lan
|
||||
GITEA__mailer__PASSWD=gitea.lan
|
||||
|
||||
# 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
|
||||
|
@ -4,9 +4,11 @@ services:
|
||||
gitea:
|
||||
environment:
|
||||
- GITEA__mailer__ENABLED=true
|
||||
- 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__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__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}
|
||||
|
@ -7,10 +7,8 @@ networks:
|
||||
services:
|
||||
gitea:
|
||||
labels:
|
||||
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'
|
||||
- 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
|
||||
|
@ -7,16 +7,22 @@ volumes:
|
||||
services:
|
||||
gitea:
|
||||
container_name: ${GITEA_CONTAINER_NAME:-gitea}
|
||||
image: ${GITEA_IMAGE:-gitea/gitea:1.16.1@sha256:bd36095359861e6970705a70d58ae0536f92f0d3f2d25c18ed663e94380c546a}
|
||||
image: ${GITEA_IMAGE:-gitea/gitea:1.18.4}
|
||||
restart: always
|
||||
environment:
|
||||
# - USER_UID=1000
|
||||
# - USER_GID=1000
|
||||
DB_TYPE: postgres
|
||||
DB_HOST: ${POSTGRES_CONTAINER_NAME:-postgres}:5432 # Default name is same as ../postgres/docker-compose.yml:8
|
||||
DB_NAME: ${POSTGRES_DB}
|
||||
DB_USER: ${POSTGRES_USER}
|
||||
DB_PASSWD: ${POSTGRES_PASSWORD}
|
||||
- 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}
|
||||
volumes:
|
||||
- gitea:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
|
@ -34,6 +34,10 @@ GF_INSTALL_PLUGINS=grafana-piechart-panel
|
||||
#######
|
||||
# REDIS
|
||||
|
||||
#REDIS_IMAGE=
|
||||
#REDIS_CONTAINER_NAME=
|
||||
#REDIS_VOLUME_NAME=
|
||||
|
||||
#GF_REMOTE_CACHE_CONNSTR=
|
||||
|
||||
#########
|
||||
|
@ -8,7 +8,7 @@ volumes:
|
||||
services:
|
||||
grafana:
|
||||
container_name: ${GRAFANA_CONTAINER_NAME:-grafana}
|
||||
image: ${GRAFANA_IMAGE:-grafana/grafana:8.3.6@sha256:5b71534e0a0329f243994a09340db6625b55a33ae218d71e34ec73f824ec1e48}
|
||||
image: ${GRAFANA_IMAGE:-grafana/grafana:8.4.6}
|
||||
restart: always
|
||||
volumes:
|
||||
- grafana:/var/lib/grafana
|
||||
|
@ -7,12 +7,12 @@ volumes:
|
||||
services:
|
||||
hedgedoc:
|
||||
container_name: ${HEDGEDOC_CONTAINER_NAME:-hedgedoc}
|
||||
image: ${HEDGEDOC_IMAGE:-linuxserver/hedgedoc:1.9.2-ls44@sha256:e3e0ec428e043104ec626a4c89e09baf61bc8939f8a28979bdadf3a4fa6f513f}
|
||||
image: ${HEDGEDOC_IMAGE:-linuxserver/hedgedoc:1.9.3-ls53}
|
||||
restart: always
|
||||
depends_on:
|
||||
- postgres
|
||||
volumes:
|
||||
- hedgedoc:/opt/hedgedoc/public/uploads
|
||||
- hedgedoc:/config/uploads
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
environment:
|
||||
|
26
listmonk/.env
Normal file
26
listmonk/.env
Normal file
@ -0,0 +1,26 @@
|
||||
########
|
||||
# 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
|
37
listmonk/README.md
Normal file
37
listmonk/README.md
Normal file
@ -0,0 +1,37 @@
|
||||
# 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
|
40
listmonk/docker-compose.yml
Normal file
40
listmonk/docker-compose.yml
Normal file
@ -0,0 +1,40 @@
|
||||
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}
|
@ -1,8 +0,0 @@
|
||||
#MARIADB_CONTAINER_NAME=
|
||||
#MARIADB_VOLUME_NAME=
|
||||
#MARIADB_IMAGE=
|
||||
MARIADB_ROOT_PASSWORD=replace-me
|
||||
MARIADB_USER=user-example
|
||||
MARIADB_PASSWORD=password-example
|
||||
MARIADB_DATABASE=mariadb-database-name-example
|
||||
#MARIADB_COMMAND=
|
@ -1,28 +0,0 @@
|
||||
# MariaDB
|
||||
|
||||
> MariaDB est un système de gestion de base de données édité sous licence GPL. Il s'agit d'un fork communautaire de MySQL
|
||||
>
|
||||
> <cite>[Wikipédia][wikipedia]</cite>
|
||||
|
||||
## Configuration
|
||||
|
||||
Les variables contenu dans `.env` permettent de changer :
|
||||
|
||||
- `MARIADB_IMAGE` : la version
|
||||
- `MARIADB_ROOT_PASSWORD` : le mot de passe _root_
|
||||
- `MARIADB_USER` : le nom d'utilisateur
|
||||
- `MARIADB_PASSWORD` : le mot de passe
|
||||
- `MARIADB_DATABASE` : le nom de la base de données
|
||||
- `MARIADB_CONTAINER_NAME` (par defaut _mariadb_) : le nom du conteneur
|
||||
- `MARIADB_VOLUME_NAME` (par defaut _mariadb_) : le nom du volume
|
||||
|
||||
## Liens
|
||||
|
||||
- [Site Officiel][site]
|
||||
- [Code source][source]
|
||||
- [Docker Hub][dockerhub]
|
||||
|
||||
[wikipedia]: https://fr.wikipedia.org/wiki/MariaDB
|
||||
[site]: https://mariadb.org/
|
||||
[source]: https://github.com/MariaDB/server
|
||||
[dockerhub]: https://hub.docker.com/_/mariadb/
|
@ -1,23 +0,0 @@
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
mariadb:
|
||||
name: ${MARIADB_VOLUME_NAME:-mariadb}
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
container_name: ${MARIADB_CONTAINER_NAME:-mariadb}
|
||||
image: ${MARIADB_IMAGE:-mariadb:10.7.1-focal}
|
||||
command: ${MARIADB_COMMAND}
|
||||
restart: always
|
||||
environment:
|
||||
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:?err}
|
||||
MARIADB_USER: ${MARIADB_USER:?err}
|
||||
MARIADB_PASSWORD: ${MARIADB_PASSWORD:?err}
|
||||
MARIADB_DATABASE: ${MARIADB_DATABASE:?err}
|
||||
PUID: ${MARIADB_PUID:-1000}
|
||||
PGID: ${MARIADB_PGID:-1000}
|
||||
volumes:
|
||||
- mariadb:/var/lib/mysql
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
35
matomo/.env
35
matomo/.env
@ -1,35 +0,0 @@
|
||||
########
|
||||
# DOCKER
|
||||
|
||||
#DOCKER_CONTEXT=
|
||||
#DOCKER_HOST=
|
||||
SERVICES_DIR=..
|
||||
COMPOSE_FILE=${SERVICES_DIR}/matomo/docker-compose.yml:${SERVICES_DIR}/matomo/docker-compose.local.yml:${SERVICES_DIR}/mariadb/docker-compose.yml
|
||||
#COMPOSE_PROJECT_NAME=
|
||||
|
||||
## APP
|
||||
|
||||
#MATOMO_DOMAIN=matomo.cool.life
|
||||
#MATOMO_CONTAINER_NAME=
|
||||
#MATOMO_VOLUME_NAME=
|
||||
#MATOMO_IMAGE=
|
||||
#PHP_MEMORY_LIMIT=
|
||||
|
||||
##########
|
||||
# MARIADB
|
||||
|
||||
#MARIADB_CONTAINER_NAME=
|
||||
#MARIADB_VOLUME_NAME=
|
||||
#MARIADB_IMAGE=
|
||||
MARIADB_ROOT_PASSWORD=replace-me
|
||||
MARIADB_USER=user-example
|
||||
MARIADB_PASSWORD=password-example
|
||||
MARIADB_DATABASE=mariadb-database-name-example
|
||||
MARIADB_COMMAND=--max-allowed-packet=64MB
|
||||
|
||||
#########
|
||||
# TRAEFIK
|
||||
|
||||
#TRAEFIK_NETWORK_NAME=
|
||||
#TRAEFIK_ROUTER_NAME= # Don't use char '.'
|
||||
#TRAEFIK_ENTRYPOINTS=
|
@ -1,22 +0,0 @@
|
||||
# Matomo
|
||||
|
||||
> Matomo, anciennement Piwik, est un logiciel libre et open source de mesure de statistiques web, conçu pour être une alternative libre à Google Analytics.
|
||||
>
|
||||
> <cite>[Wikipédia][wikipedia]</cite>
|
||||
|
||||
## Commande
|
||||
|
||||
```
|
||||
docker compose exec --user www-data matomo-fpm php console
|
||||
```
|
||||
|
||||
## Liens
|
||||
|
||||
- [Site Officiel][site]
|
||||
- [Code source][source]
|
||||
- [Docker Hub][dockerhub]
|
||||
|
||||
[wikipedia]: https://fr.wikipedia.org/wiki/Matomo_(logiciel)
|
||||
[site]: https://fr.matomo.org/
|
||||
[source]: https://github.com/matomo-org/matomo
|
||||
[dockerhub]: https://hub.docker.com/_/matomo/
|
@ -1,6 +0,0 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
matomo-web:
|
||||
ports:
|
||||
- ${LOCAL_PORT:-80}:80
|
@ -1,15 +0,0 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
|
||||
services:
|
||||
matomo-web:
|
||||
environment:
|
||||
TRUSTED_PROXIES: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-matomo}.rule=Host(`${MATOMO_DOMAIN:?err}`)
|
||||
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-matomo}.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
|
@ -1,42 +0,0 @@
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
matomo:
|
||||
name: ${MATOMO_VOLUME_NAME:-matomo}
|
||||
|
||||
services:
|
||||
matomo-fpm:
|
||||
container_name: ${MATOMO_CONTAINER_NAME:-matomo}-fpm
|
||||
image: ${MATOMO_IMAGE:-matomo:4.7.1-fpm-alpine}
|
||||
restart: always
|
||||
environment:
|
||||
MATOMO_DATABASE_HOST: ${MARIADB_CONTAINER_NAME:-mariadb}
|
||||
MATOMO_DATABASE_ADAPTER: mysql
|
||||
MATOMO_DATABASE_TABLES_PREFIX: matomo_
|
||||
MATOMO_DATABASE_USERNAME: ${MARIADB_USER:?err}
|
||||
MATOMO_DATABASE_PASSWORD: ${MARIADB_PASSWORD:?err}
|
||||
MATOMO_DATABASE_DBNAME: ${MARIADB_DATABASE:?err}
|
||||
PHP_MEMORY_LIMIT: ${PHP_MEMORY_LIMIT:-256M}
|
||||
PUID: ${MATOMO_PUID:-1000}
|
||||
PGID: ${MATOMO_PGID:-1000}
|
||||
depends_on:
|
||||
- mariadb
|
||||
volumes:
|
||||
- matomo:/var/www/html
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
||||
matomo-web:
|
||||
container_name: ${MATOMO_CONTAINER_NAME:-matomo}-web
|
||||
build: web
|
||||
restart: always
|
||||
environment:
|
||||
MATOMO_FPM_CONTAINER_NAME: ${MATOMO_CONTAINER_NAME:-matomo}-fpm
|
||||
PUID: ${MATOMO_PUID:-1000}
|
||||
PGID: ${MATOMO_PGID:-1000}
|
||||
depends_on:
|
||||
- matomo-fpm
|
||||
volumes:
|
||||
- matomo:/var/www/html
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
@ -1,3 +0,0 @@
|
||||
FROM nginx:1.21.6-alpine
|
||||
|
||||
COPY matomo.conf.template /etc/nginx/templates/default.conf.template
|
@ -1,70 +0,0 @@
|
||||
upstream php-handler {
|
||||
server ${MATOMO_FPM_CONTAINER_NAME}:9000;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name ${MATOMO_DOMAIN}
|
||||
|
||||
add_header Referrer-Policy origin always; # make sure outgoing links don't show the URL to the Matomo instance
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
add_header X-XSS-Protection "1; mode=block" always;
|
||||
root /var/www/html; # replace with path to your matomo instance
|
||||
index index.php;
|
||||
try_files $uri $uri/ =404;
|
||||
|
||||
## only allow accessing the following php files
|
||||
location ~ ^/(index|matomo|piwik|js/index|plugins/HeatmapSessionRecording/configs).php {
|
||||
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
|
||||
# Check that the PHP script exists before passing it
|
||||
try_files $fastcgi_script_name =404;
|
||||
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_param HTTP_PROXY ""; # prohibit httpoxy: https://httpoxy.org/
|
||||
fastcgi_pass php-handler;
|
||||
}
|
||||
|
||||
## deny access to all other .php files
|
||||
location ~* ^.+\.php$ {
|
||||
deny all;
|
||||
return 403;
|
||||
}
|
||||
|
||||
## disable all access to the following directories
|
||||
location ~ /(config|tmp|core|lang) {
|
||||
deny all;
|
||||
return 403; # replace with 404 to not show these directories exist
|
||||
}
|
||||
location ~ /\.ht {
|
||||
deny all;
|
||||
return 403;
|
||||
}
|
||||
|
||||
location ~ js/container_.*_preview\.js$ {
|
||||
expires off;
|
||||
add_header Cache-Control 'private, no-cache, no-store';
|
||||
}
|
||||
|
||||
location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ {
|
||||
allow all;
|
||||
## Cache images,CSS,JS and webfonts for an hour
|
||||
## Increasing the duration may improve the load-time, but may cause old files to show after an Matomo upgrade
|
||||
expires 1h;
|
||||
add_header Pragma public;
|
||||
add_header Cache-Control "public";
|
||||
}
|
||||
|
||||
location ~ /(libs|vendor|plugins|misc/user) {
|
||||
deny all;
|
||||
return 403;
|
||||
}
|
||||
|
||||
## properly display textfiles in root directory
|
||||
location ~/(.*\.md|LEGALNOTICE|LICENSE) {
|
||||
default_type text/plain;
|
||||
}
|
||||
}
|
@ -9,7 +9,7 @@ volumes:
|
||||
services:
|
||||
mobilizon:
|
||||
container_name: ${MOBILIZON_CONTAINER_NAME:-mobilizon}
|
||||
image: ${MOBILIZON_IMAGE:-framasoft/mobilizon:2.0.2@sha256:a703d399c35b3b685be7c154bf2ac74f5acd88d8c28dd42f05f68859d76edfd3}
|
||||
image: ${MOBILIZON_IMAGE:-framasoft/mobilizon:2.0.2}
|
||||
restart: always
|
||||
depends_on:
|
||||
- postgres
|
||||
|
@ -4,7 +4,7 @@
|
||||
#DOCKER_CONTEXT=
|
||||
#DOCKER_HOST=
|
||||
SERVICES_DIR=..
|
||||
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_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_PROJECT_NAME=
|
||||
|
||||
## APP
|
||||
@ -39,7 +39,9 @@ POSTGRES_VOLUME_NAME=nextcloud-postgres
|
||||
#######
|
||||
# REDIS
|
||||
|
||||
#REDIS_IMAGE=
|
||||
REDIS_CONTAINER_NAME=nextcloud-redis
|
||||
#REDIS_VOLUME_NAME=
|
||||
|
||||
#########
|
||||
# TRAEFIK
|
||||
|
@ -14,45 +14,78 @@ On peut trouver [la documentation ici][documentation] en anglais ou ici pour la
|
||||
|
||||
## Aide
|
||||
|
||||
Exemple de commande :
|
||||
Commande pour se connecter à un serveur :
|
||||
|
||||
```sh
|
||||
docker exec --user www-data -it nextcloud bash
|
||||
. .env
|
||||
docker exec --user www-data -it ${NEXTCLOUD_CONTAINER_NAME}-fpm ash
|
||||
```
|
||||
|
||||
docker-compose exec --user www-data nextcloud php occ db:add-missing-primary-keys
|
||||
Pour mettre un site en maintenance :
|
||||
|
||||
```sh
|
||||
. .env
|
||||
docker exec --user www-data -it ${NEXTCLOUD_CONTAINER_NAME}-fpm php occ maintenance:mode --on
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
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.
|
||||
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)
|
||||
|
||||
Voici les modifications que j'effectue :
|
||||
### Création d'un groupe
|
||||
|
||||
```
|
||||
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,
|
||||
export NC_GROUP=com-en-aubrac
|
||||
php occ group:add $NC_GROUP
|
||||
```
|
||||
|
||||
Ajout de imagemagick :
|
||||
```
|
||||
docker-compose exec nextcloud-fpm apk add --no-cache imagemagick
|
||||
```
|
||||
|
||||
ou
|
||||
### Création d'un utilisateur
|
||||
|
||||
```
|
||||
ssh <server>
|
||||
docker exec nextcloud-fpm apk add --no-cache 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
|
||||
```
|
||||
|
||||
### Quota
|
||||
|
||||
Pour bien comprendre les quotas dans Nextcloud : https://docs.nextcloud.com/server/latest/user_manual/en/files/quota.html
|
||||
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
## PHP-FPM: remédier à server reached pm.max_children
|
||||
|
21
nextcloud/docker-compose.config.yml
Normal file
21
nextcloud/docker-compose.config.yml
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
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
|
@ -3,11 +3,15 @@ version: "3.8"
|
||||
services:
|
||||
nextcloud-fpm:
|
||||
environment:
|
||||
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}
|
||||
&smtp-configuration
|
||||
SMTP_HOST: ${NC_mail_smtphost:?err}
|
||||
SMTP_SECURE: ${NC_mail_smtpsecure:-ssl}
|
||||
SMTP_AUTHTYPE: ${NC_mail_smtpauthtype:-LOGIN}
|
||||
SMTP_NAME: ${NC_mail_smtpname:?err}
|
||||
SMTP_PASSWORD: ${NC_mail_smtppassword:?err}
|
||||
MAIL_FROM_ADDRESS: ${NC_mail_from_address:?err}
|
||||
MAIL_DOMAIN: ${NC_mail_domain:?err}
|
||||
|
||||
nextcloud-cron:
|
||||
environment:
|
||||
<<: *smtp-configuration
|
||||
|
@ -7,7 +7,7 @@ volumes:
|
||||
services:
|
||||
nextcloud-fpm:
|
||||
container_name: ${NEXTCLOUD_CONTAINER_NAME:-nextcloud}-fpm
|
||||
image: ${NEXTCLOUD_IMAGE:-nextcloud:23.0.0-fpm-alpine@sha256:b02448c82a7fec3d1d0aacbeab466707929a9acbe7c069db4dca14166878ceb1}
|
||||
image: ${NEXTCLOUD_IMAGE:-nextcloud:25.0.2-fpm-alpine}
|
||||
restart: always
|
||||
depends_on:
|
||||
- postgres
|
||||
@ -17,6 +17,7 @@ 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}
|
||||
@ -32,7 +33,7 @@ services:
|
||||
|
||||
nextcloud-web:
|
||||
container_name: ${NEXTCLOUD_CONTAINER_NAME:-nextcloud}-web
|
||||
build: web
|
||||
build: ${SERVICES_DIR}/nextcloud/web
|
||||
restart: always
|
||||
environment:
|
||||
NEXTCLOUD_FPM_CONTAINER_NAME: ${NEXTCLOUD_CONTAINER_NAME:-nextcloud}-fpm
|
||||
@ -46,15 +47,14 @@ services:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
||||
nextcloud-cron:
|
||||
image: ${NEXTCLOUD_IMAGE:-nextcloud:22.2.3-fpm-alpine}
|
||||
image: ${NEXTCLOUD_IMAGE:-nextcloud:25.0.2-fpm-alpine}
|
||||
container_name: ${NEXTCLOUD_CONTAINER_NAME:-nextcloud}-cron
|
||||
restart: always
|
||||
depends_on:
|
||||
- nextcloud-web
|
||||
entrypoint: /cron.sh
|
||||
environment:
|
||||
PUID: ${NEXTCLOUD_PUID:-1000}
|
||||
PGID: ${NEXTCLOUD_PGID:-1000}
|
||||
<<: *fpm-configuration
|
||||
volumes:
|
||||
- nextcloud:/var/www/html
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
|
@ -1,49 +0,0 @@
|
||||
#!/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
|
@ -1,3 +1,3 @@
|
||||
FROM nginx:1.21.5-alpine
|
||||
FROM nginx:1.23.3-alpine
|
||||
|
||||
COPY nextcloud.conf.template /etc/nginx/templates/default.conf.template
|
||||
|
71
plausible/.env
Normal file
71
plausible/.env
Normal file
@ -0,0 +1,71 @@
|
||||
########
|
||||
# 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=
|
15
plausible/README.md
Normal file
15
plausible/README.md
Normal file
@ -0,0 +1,15 @@
|
||||
# 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
|
14
plausible/clickhouse-config.xml
Normal file
14
plausible/clickhouse-config.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<yandex>
|
||||
<logger>
|
||||
<level>warning</level>
|
||||
<console>true</console>
|
||||
</logger>
|
||||
|
||||
<!-- Stop all the unnecessary logging -->
|
||||
<query_thread_log remove="remove"/>
|
||||
<query_log remove="remove"/>
|
||||
<text_log remove="remove"/>
|
||||
<trace_log remove="remove"/>
|
||||
<metric_log remove="remove"/>
|
||||
<asynchronous_metric_log remove="remove"/>
|
||||
</yandex>
|
8
plausible/clickhouse-user-config.xml
Normal file
8
plausible/clickhouse-user-config.xml
Normal file
@ -0,0 +1,8 @@
|
||||
<yandex>
|
||||
<profiles>
|
||||
<default>
|
||||
<log_queries>0</log_queries>
|
||||
<log_query_threads>0</log_query_threads>
|
||||
</default>
|
||||
</profiles>
|
||||
</yandex>
|
7
plausible/docker-compose.clickhouse.yml
Normal file
7
plausible/docker-compose.clickhouse.yml
Normal file
@ -0,0 +1,7 @@
|
||||
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
|
10
plausible/docker-compose.geoip.yml
Normal file
10
plausible/docker-compose.geoip.yml
Normal file
@ -0,0 +1,10 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
plausible:
|
||||
depends_on:
|
||||
- geoipupdate
|
||||
environment:
|
||||
- GEOLITE2_COUNTRY_DB=/geoip/GeoLite2-Country.mmdb
|
||||
volumes:
|
||||
- geoipupdate:/geoip:ro
|
7
plausible/docker-compose.google.yml
Normal file
7
plausible/docker-compose.google.yml
Normal file
@ -0,0 +1,7 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
plausible:
|
||||
environment:
|
||||
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:?err}
|
||||
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:?err}
|
6
plausible/docker-compose.local.yml
Normal file
6
plausible/docker-compose.local.yml
Normal file
@ -0,0 +1,6 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
plausible:
|
||||
ports:
|
||||
- ${LOCAL_PORT:-8000}:8000
|
12
plausible/docker-compose.smtp.yml
Normal file
12
plausible/docker-compose.smtp.yml
Normal file
@ -0,0 +1,12 @@
|
||||
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}
|
13
plausible/docker-compose.traefik.yml
Normal file
13
plausible/docker-compose.traefik.yml
Normal file
@ -0,0 +1,13 @@
|
||||
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}
|
31
plausible/docker-compose.yml
Normal file
31
plausible/docker-compose.yml
Normal file
@ -0,0 +1,31 @@
|
||||
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
|
@ -1,3 +1,7 @@
|
||||
#POSTGRES_VOLUME_NAME=
|
||||
#POSTGRES_CONTAINER_NAME=
|
||||
#POSTGRES_IMAGE=
|
||||
|
||||
POSTGRES_USER=user-example
|
||||
POSTGRES_PASSWORD=password-example
|
||||
POSTGRES_DB=postgres-database-name-example
|
||||
|
@ -7,7 +7,7 @@ volumes:
|
||||
services:
|
||||
postgres:
|
||||
container_name: ${POSTGRES_CONTAINER_NAME:-postgres}
|
||||
image: ${POSTGRES_IMAGE:-postgres:14.2-alpine@sha256:536bc3ad5d53f1b84db958be04013024aae70449c931943ad0a55c56c28f68b3}
|
||||
image: ${POSTGRES_IMAGE:-postgres:14.2-alpine}
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:?err}
|
||||
|
@ -12,7 +12,7 @@ services:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
PROMETHEUS_IMAGE: ${PROMETHEUS_IMAGE:-prom/prometheus:v2.33.3@sha256:20c90b9a99b12b4349150e347811cc44dccdb05c291d385320be63dc12cce73b}
|
||||
PROMETHEUS_IMAGE: ${PROMETHEUS_IMAGE:-prom/prometheus:v2.34.0}
|
||||
volumes:
|
||||
- prometheus:/prometheus
|
||||
restart: always
|
||||
|
@ -1,13 +1,18 @@
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
redis:
|
||||
name: ${REDIS_VOLUME_NAME:-redis}
|
||||
|
||||
services:
|
||||
redis:
|
||||
image: ${REDIS_IMAGE:-redis:6.2.6-alpine@sha256:4bed291aa5efb9f0d77b76ff7d4ab71eee410962965d052552db1fb80576431d}
|
||||
image: ${REDIS_IMAGE:-redis:6.2.6-alpine}
|
||||
container_name: ${REDIS_CONTAINER_NAME:-redis}
|
||||
restart: always
|
||||
environment:
|
||||
PUID: ${REDIS_PUID:-1000}
|
||||
PGID: ${REDIS_PGID:-1000}
|
||||
volumes:
|
||||
- redis:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
@ -36,6 +36,12 @@ 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 :
|
||||
|
@ -7,7 +7,7 @@ volumes:
|
||||
services:
|
||||
registry:
|
||||
container_name: ${REGISTRY_CONTAINER_NAME}
|
||||
image: ${REGISTRY_IMAGE:-registry:2.8.0@sha256:c26590bcf53822a542e78fab5c88e1dfbcdee91c1882f4656b7db7b542d91d97}
|
||||
image: ${REGISTRY_IMAGE:-registry:2.8.1}
|
||||
restart: always
|
||||
environment:
|
||||
REGISTRY_AUTH: htpasswd
|
||||
|
@ -11,7 +11,7 @@ networks:
|
||||
services:
|
||||
traefik:
|
||||
container_name: ${TRAEFIK_CONTAINER_NAME:-traefik}
|
||||
image: ${TRAEFIK_IMAGE:-traefik:v2.6.0@sha256:b22bd53ef626cf3667390c3e3651936b08f9c0c9107e3a6faf02e6dc06b3e0c0}
|
||||
image: ${TRAEFIK_IMAGE:-traefik:v2.6.3}
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
@ -30,7 +30,6 @@ 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}
|
||||
|
||||
|
20
uptimekuma/.env
Normal file
20
uptimekuma/.env
Normal file
@ -0,0 +1,20 @@
|
||||
########
|
||||
# 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=
|
22
uptimekuma/README.md
Normal file
22
uptimekuma/README.md
Normal file
@ -0,0 +1,22 @@
|
||||
# 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/
|
8
uptimekuma/docker-compose.local.yml
Normal file
8
uptimekuma/docker-compose.local.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
uptimekuma:
|
||||
ports:
|
||||
- 3001:3001
|
15
uptimekuma/docker-compose.traefik.yml
Normal file
15
uptimekuma/docker-compose.traefik.yml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
|
||||
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}
|
17
uptimekuma/docker-compose.yml
Normal file
17
uptimekuma/docker-compose.yml
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
|
||||
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
|
46
vaultwarden/.env
Normal file
46
vaultwarden/.env
Normal file
@ -0,0 +1,46 @@
|
||||
########
|
||||
# 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=
|
21
vaultwarden/README.md
Normal file
21
vaultwarden/README.md
Normal file
@ -0,0 +1,21 @@
|
||||
# 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
|
10
vaultwarden/docker-compose.postgres.yml
Normal file
10
vaultwarden/docker-compose.postgres.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
vaultwarden:
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_CONTAINER_NAME}:5432/${POSTGRES_DB}
|
15
vaultwarden/docker-compose.smtp.yml
Normal file
15
vaultwarden/docker-compose.smtp.yml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
|
||||
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}
|
15
vaultwarden/docker-compose.traefik.yml
Normal file
15
vaultwarden/docker-compose.traefik.yml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
|
||||
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}
|
23
vaultwarden/docker-compose.yml
Normal file
23
vaultwarden/docker-compose.yml
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
|
||||
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
|
86
vikunja/.env
Normal file
86
vikunja/.env
Normal file
@ -0,0 +1,86 @@
|
||||
########
|
||||
# DOCKER
|
||||
|
||||
#DOCKER_CONTEXT=
|
||||
#DOCKER_HOST=
|
||||
SERVICES_DIR=..
|
||||
COMPOSE_FILE=${SERVICES_DIR}/vikunja/docker-compose.yml:${SERVICES_DIR}/vikunja/docker-compose.local.yml:${SERVICES_DIR}/vikunja/docker-compose.postgres.yml:${SERVICES_DIR}/postgres/docker-compose.yml
|
||||
#COMPOSE_PROJECT_NAME=
|
||||
|
||||
## APP
|
||||
|
||||
#VIKUNJA_API_IMAGE=
|
||||
#VIKUNJA_FRONTEND_IMAGE=
|
||||
VIKUNJA_CONTAINER_NAME=vikunja
|
||||
VIKUNJA_VOLUME_NAME=vikunja
|
||||
|
||||
VIKUNJA_DOMAIN=vikunja.example.org
|
||||
VIKUNJA_SERVICE_FRONTENDURL=https://vikunja.example.org/
|
||||
|
||||
VIKUNJA_SERVICE_JWTSECRET=change-me
|
||||
#VIKUNJA_SERVICE_JWTTTL=259200
|
||||
#VIKUNJA_SERVICE_JWTTTLLONG=2592000
|
||||
#VIKUNJA_SERVICE_MAXITEMSPERPAGE=50
|
||||
#VIKUNJA_SERVICE_ENABLECALDAV=true
|
||||
#VIKUNJA_SERVICE_ENABLELINKSHARING=true
|
||||
#VIKUNJA_SERVICE_ENABLEREGISTRATION=true
|
||||
#VIKUNJA_SERVICE_ENABLETASKATTACHMENTS=true
|
||||
#VIKUNJA_SERVICE_TIMEZONE=GMT
|
||||
#VIKUNJA_SERVICE_ENABLETASKCOMMENTS=true
|
||||
#VIKUNJA_SERVICE_ENABLETOTP=true
|
||||
#VIKUNJA_SERVICE_ENABLEEMAILREMINDERS=true
|
||||
#VIKUNJA_SERVICE_ENABLEUSERDELETION=true
|
||||
#VIKUNJA_FILES_BASEPATH=./files
|
||||
#VIKUNJA_FILES_MAXSIZE=20MB
|
||||
|
||||
##########
|
||||
# POSTGRES
|
||||
|
||||
#POSTGRES_IMAGE=
|
||||
POSTGRES_CONTAINER_NAME=vikunja-postgres-example
|
||||
POSTGRES_DB=vikunja-postgres-database-example
|
||||
POSTGRES_USER=vikunja-postgres-user-example
|
||||
POSTGRES_PASSWORD=vikunja-postgres-password-example
|
||||
POSTGRES_VOLUME_NAME=vikunja-postgres-example
|
||||
|
||||
#VIKUNJA_DATABASE_TYPE=postgres
|
||||
#VIKUNJA_DATABASE_MAXOPENCONNECTIONS=100
|
||||
#VIKUNJA_DATABASE_MAXIDLECONNECTIONS=50
|
||||
#VIKUNJA_DATABASE_MAXCONNECTIONLIFETIME=10000
|
||||
#VIKUNJA_DATABASE_SSLMODE=disable
|
||||
|
||||
######
|
||||
# SMTP
|
||||
|
||||
#VIKUNJA_MAILER_ENABLED=true
|
||||
#VIKUNJA_MAILER_SKIPTLSVERIFY=false
|
||||
#VIKUNJA_MAILER_QUEUELENGTH=100
|
||||
#VIKUNJA_MAILER_QUEUETIMEOUT=30
|
||||
#VIKUNJA_MAILER_FORCESSL=false
|
||||
|
||||
VIKUNJA_MAILER_HOST=
|
||||
#VIKUNJA_MAILER_PORT=465
|
||||
VIKUNJA_MAILER_USERNAME=
|
||||
VIKUNJA_MAILER_PASSWORD=
|
||||
VIKUNJA_MAILER_FROMEMAIL=
|
||||
|
||||
############
|
||||
# PROMETHEUS
|
||||
|
||||
#VIKUNJA_METRICS_ENABLED=false
|
||||
#VIKUNJA_METRICS_USERNAME=
|
||||
#VIKUNJA_METRICS_PASSWORD=
|
||||
|
||||
#######
|
||||
# REDIS
|
||||
|
||||
#REDIS_IMAGE=
|
||||
REDIS_CONTAINER_NAME=vikunja-redis
|
||||
REDIS_VOLUME_NAME=vikunja-redis
|
||||
|
||||
#########
|
||||
# TRAEFIK
|
||||
|
||||
#TRAEFIK_NETWORK_NAME=traefik
|
||||
#TRAEFIK_ROUTER_NAME=vikunja
|
||||
#TRAEFIK_ENTRYPOINTS=web
|
12
vikunja/README.md
Normal file
12
vikunja/README.md
Normal file
@ -0,0 +1,12 @@
|
||||
# Vikunja
|
||||
|
||||
> Vikunja est une application auto-hébergeable (facilement installable avec Yunohost) de gestion de tâches, utilisable depuis son navigateur ou un client desktop. Bien que jeune, l'application offre déjà de nombreuses fonctionnalités.
|
||||
>
|
||||
> <cite>[Framalibre](https://framalibre.org/content/vikunja)</cite>
|
||||
|
||||
## Liens
|
||||
|
||||
- [Site officiel](https://vikunja.io/)
|
||||
- [Code source](https://kolaente.dev/vikunja/)
|
||||
- [Docker Hub](https://hub.docker.com/u/vikunja)
|
||||
- [Forum](https://community.vikunja.io/)
|
11
vikunja/docker-compose.local.yml
Normal file
11
vikunja/docker-compose.local.yml
Normal file
@ -0,0 +1,11 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
vikunja_api:
|
||||
ports:
|
||||
- 3456:3456
|
||||
vikunja_frontend:
|
||||
ports:
|
||||
- ${LOCAL_PORT:-80}:80
|
||||
environment:
|
||||
VIKUNJA_API_URL: http://localhost:3456/api/v1
|
17
vikunja/docker-compose.logs.yml
Normal file
17
vikunja/docker-compose.logs.yml
Normal file
@ -0,0 +1,17 @@
|
||||
version: "3.8"
|
||||
|
||||
# https://vikunja.io/docs/config-options/#log
|
||||
|
||||
services:
|
||||
vikunja_api:
|
||||
environment:
|
||||
# VIKUNJA_LOG_PATH
|
||||
VIKUNJA_LOG_ENABLED: ${VIKUNJA_LOG_ENABLED:-true}
|
||||
VIKUNJA_LOG_STANDARD: ${VIKUNJA_LOG_STANDARD:-stdout}
|
||||
VIKUNJA_LOG_LEVEL: ${VIKUNJA_LOG_LEVEL:-INFO} # Possible values (case-insensitive) are CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG.
|
||||
VIKUNJA_LOG_DATABASE: ${VIKUNJA_LOG_DATABASE:-off} # Possible values are stdout, stderr, file or off to disable database
|
||||
VIKUNJA_LOG_DATABASELEVEL: ${VIKUNJA_LOG_DATABASELEVEL:-WARNING} # Possible values (case-insensitive) are CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG
|
||||
VIKUNJA_LOG_HTTP: ${VIKUNJA_LOG_HTTP:-stdout} # Possible values are stdout, stderr, file or off to disable http logging.
|
||||
VIKUNJA_LOG_ECHO: ${VIKUNJA_LOG_ECHO:-off} # Possible values are stdout, stderr, file or off to disable standard logging.
|
||||
VIKUNJA_LOG_EVENTS: ${VIKUNJA_LOG_EVENTS:-stdout} # Possible values are stdout, stderr, file or off to disable events logging.
|
||||
VIKUNJA_LOG_EVENTSLEVEL: ${VIKUNJA_LOG_EVENTSLEVEL:-INFO} # Possible values (case-insensitive) are ERROR, INFO, DEBUG.
|
19
vikunja/docker-compose.postgres.yml
Normal file
19
vikunja/docker-compose.postgres.yml
Normal file
@ -0,0 +1,19 @@
|
||||
version: "3.8"
|
||||
|
||||
# https://vikunja.io/docs/config-options/#database
|
||||
|
||||
services:
|
||||
vikunja_api:
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
VIKUNJA_DATABASE_TYPE: ${VIKUNJA_DATABASE_TYPE:-postgres}
|
||||
VIKUNJA_DATABASE_MAXOPENCONNECTIONS: ${VIKUNJA_DATABASE_MAXOPENCONNECTIONS:-100}
|
||||
VIKUNJA_DATABASE_MAXIDLECONNECTIONS: ${VIKUNJA_DATABASE_MAXIDLECONNECTIONS:-50}
|
||||
VIKUNJA_DATABASE_MAXCONNECTIONLIFETIME: ${VIKUNJA_DATABASE_MAXCONNECTIONLIFETIME:-10000}
|
||||
VIKUNJA_DATABASE_SSLMODE: ${VIKUNJA_DATABASE_SSLMODE:-disable}
|
||||
|
||||
VIKUNJA_DATABASE_HOST: ${POSTGRES_CONTAINER_NAME:-postgres}:5432 # Default name is same as ../postgres/docker-compose.yml:8
|
||||
VIKUNJA_DATABASE_DATABASE: ${POSTGRES_DB:?err}
|
||||
VIKUNJA_DATABASE_USER: ${POSTGRES_USER:?err}
|
||||
VIKUNJA_DATABASE_PASSWORD: ${POSTGRES_PASSWORD:?err}
|
10
vikunja/docker-compose.prometheus.yml
Normal file
10
vikunja/docker-compose.prometheus.yml
Normal file
@ -0,0 +1,10 @@
|
||||
version: "3.8"
|
||||
|
||||
# https://vikunja.io/docs/config-options/#metrics
|
||||
|
||||
services:
|
||||
vikunja_api:
|
||||
environment:
|
||||
VIKUNJA_METRICS_ENABLED: ${VIKUNJA_METRICS_ENABLED-:false}
|
||||
VIKUNJA_METRICS_USERNAME: ${VIKUNJA_METRICS_USERNAME}
|
||||
VIKUNJA_METRICS_PASSWORD: ${VIKUNJA_METRICS_PASSWORD}
|
16
vikunja/docker-compose.redis.yml
Normal file
16
vikunja/docker-compose.redis.yml
Normal file
@ -0,0 +1,16 @@
|
||||
version: "3.8"
|
||||
|
||||
# https://vikunja.io/docs/config-options/#redis
|
||||
|
||||
services:
|
||||
vikunja_api:
|
||||
depends_on:
|
||||
- redis
|
||||
environment:
|
||||
VIKUNJA_CACHE_ENABLED: 'true'
|
||||
VIKUNJA_CACHE_TYPE: redis
|
||||
VIKUNJA_REDIS_ENABLED: 'true'
|
||||
|
||||
VIKUNJA_REDIS_HOST: ${REDIS_CONTAINER_NAME:-redis}:6379 # It's default port because we don't have yet configuration for redis port
|
||||
#VIKUNJA_REDIS_PASSWORD: ${VIKUNJA_REDIS_PASSWORD} # We don't have yet configuration for redis with password
|
||||
VIKUNJA_REDIS_DB: 0 # It's default becouse we don't have yet configuration for redis database name
|
18
vikunja/docker-compose.smtp.yml
Normal file
18
vikunja/docker-compose.smtp.yml
Normal file
@ -0,0 +1,18 @@
|
||||
version: "3.8"
|
||||
|
||||
# https://vikunja.io/docs/config-options/#mailer
|
||||
|
||||
services:
|
||||
vikunja_api:
|
||||
environment:
|
||||
VIKUNJA_MAILER_ENABLED: ${VIKUNJA_MAILER_ENABLED:-true}
|
||||
VIKUNJA_MAILER_SKIPTLSVERIFY: ${VIKUNJA_MAILER_SKIPTLSVERIFY:-false}
|
||||
VIKUNJA_MAILER_QUEUELENGTH: ${VIKUNJA_MAILER_QUEUELENGTH:-100}
|
||||
VIKUNJA_MAILER_QUEUETIMEOUT: ${VIKUNJA_MAILER_QUEUETIMEOUT:-30}
|
||||
VIKUNJA_MAILER_FORCESSL: ${VIKUNJA_MAILER_FORCESSL:-false}
|
||||
|
||||
VIKUNJA_MAILER_HOST: ${VIKUNJA_MAILER_HOST:?err}
|
||||
VIKUNJA_MAILER_PORT: ${VIKUNJA_MAILER_PORT:-587}
|
||||
VIKUNJA_MAILER_USERNAME: ${VIKUNJA_MAILER_USERNAME:?err}
|
||||
VIKUNJA_MAILER_PASSWORD: ${VIKUNJA_MAILER_PASSWORD:?err}
|
||||
VIKUNJA_MAILER_FROMEMAIL: ${VIKUNJA_MAILER_FROMEMAIL:?err}
|
21
vikunja/docker-compose.traefik.yml
Normal file
21
vikunja/docker-compose.traefik.yml
Normal file
@ -0,0 +1,21 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
|
||||
# https://vikunja.io/docs/full-docker-example/#example-with-traefik-2
|
||||
|
||||
services:
|
||||
vikunja_api:
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vikunja}-api.rule=Host(`${VIKUNJA_DOMAIN:?err}`) && PathPrefix(`/api/v1`, `/dav/`, `/.well-known/`)
|
||||
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vikunja}-api.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
|
||||
vikunja_frontend:
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vikunja}-frontend.rule=Host(`${VIKUNJA_DOMAIN:?err}`)
|
||||
- traefik.http.routers.${TRAEFIK_ROUTER_NAME:-vikunja}-frontend.entrypoints=${TRAEFIK_ENTRYPOINTS:-web}
|
45
vikunja/docker-compose.yml
Normal file
45
vikunja/docker-compose.yml
Normal file
@ -0,0 +1,45 @@
|
||||
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
|
@ -3,7 +3,7 @@ version: '3.8'
|
||||
services:
|
||||
watchtower:
|
||||
container_name: ${WATCHTOWER_CONTAINER_NAME}
|
||||
image: ${WATCHTOWER_IMAGE:-containrrr/watchtower:1.4.0@sha256:bbf9794a691b59ed2ed3089fec53844f14ada249ee5e372ff0e595b73f4e9ab3}
|
||||
image: ${WATCHTOWER_IMAGE:-containrrr/watchtower:1.4.0}
|
||||
restart: always
|
||||
command: -i 60 --label-enable --cleanup --debug
|
||||
# --debug
|
||||
|
Reference in New Issue
Block a user