83 Commits

Author SHA1 Message Date
745d69aade fix(Nextcloud): Add variable to configure SMTP 2023-05-10 22:02:28 +02:00
d5e61d35a5 Merge pull request 'feat(Gitea): Update configuration' (#54) from gitea into main
Reviewed-on: https://git.weko.io/resilien/services/pulls/54
2023-02-21 12:44:50 +01:00
8f5fcec3a9 feat(Gitea): Update configuration 2023-02-21 12:44:23 +01:00
0798bab099 Merge pull request 'feat(Gitea): Upgrade to 1.19 and update configuration' (#53) from gitea into main
Reviewed-on: https://git.weko.io/resilien/services/pulls/53
2023-02-21 11:58:40 +01:00
e8a022e7e3 feat(Gitea): Upgrade to 1.19 and update configuration 2023-02-21 11:58:06 +01:00
c8c945ad64 Merge pull request 'feat(Traefik): Pilot is deprecated' (#52) from traefik into main
Reviewed-on: https://git.weko.io/resilien/services/pulls/52
2023-02-02 16:51:23 +01:00
ba29719ed1 feat(Traefik): Pilot is deprecated
https://traefik.io/blog/announcing-traefik-proxy-2-8/
2023-02-02 16:51:07 +01:00
f598c06029 Merge pull request 'feat(Vikunja): Restart container & explicite dependency' (#51) from nextcloud into main
Reviewed-on: https://git.weko.io/resilien/services/pulls/51
2023-02-02 13:02:45 +01:00
de2a8eef46 feat(Vikunja): Restart container & explicite dependency 2023-02-02 12:59:09 +01:00
6334a88085 Merge pull request 'Mise à jour de Nextcloud' (#50) from nextcloud into main
## Détails

1. Modification de la syntaxe d'erreur coté SMTP `?err` -> `:?err`
2. Ajout des variables de configuration dans le conteneur cron
3. Fix le chemin du dossier pour construire l'image Docker web
4. Ajout de variables d'envionnement pour surcharger la configuration de `config.php`
5. Modification des variables SMTP pour utiliser plutôt les variables d'environnement plutôt que le script d'installation
6. Mise à jour de Nginx
7. Modification de la documentation en fonction des changements
8. Mise à jour de Nextcloud

## Pourquoi

1. Les variables SMTP ne doivent pas être vide
2. Le conteneur cron doit avoir la même configuration que fpm
3. Il y avait un problème de build lorsque l'on ajoutait un fichier docker-compose.yml à coté du dossier contenant le fichier `.env`
4. Pour pouvoir surcharger correctement la configuration et ne pas seulement les configurer à l'installation
5. La même raison que 4
6. Pour être à jour
7. Pour être à jour
8. Pour être à jour

Reviewed-on: https://git.weko.io/resilien/services/pulls/50
2023-01-03 22:27:02 +01:00
e3dcc0efd5 chore(Nextcloud): Upgrade to 25.0.2
https://nextcloud.com/changelog/#25-0-2
2023-01-03 22:15:37 +01:00
264688abf8 feat(Nextcloud): Remove run script 2023-01-03 22:11:02 +01:00
669866b44e docs(Nextcloud): Add environment variables documentation 2023-01-03 22:10:29 +01:00
b54891ec38 chore(Nginx): Upgrade to 1.23.3 2023-01-03 22:01:55 +01:00
b3dce58f7b feat(Nextcloud): Update SMTP environment variables 2023-01-03 21:47:02 +01:00
0198c030e9 feat(Nextcloud): Add environment variables to configure server 2023-01-03 21:36:36 +01:00
2281c4337c feat(Nextcloud): Update web folder path with generic SERVICES_DIR 2023-01-03 21:09:37 +01:00
fd63036294 feat(Nextcloud): Add all configuration on cron container 2023-01-03 21:08:48 +01:00
0af258dcae feat(Nextcloud): SMTP configuration should not be empty 2023-01-03 21:08:06 +01:00
f78676d3ee Merge pull request 'fix(Vaultwarden): Update image variable name' (#49) from vaultwarden into main
## Détails

Fix le nom de la variable de l'image de Vaultwarden

## Pourquoi

Pour être cohérent

Reviewed-on: https://git.weko.io/resilien/services/pulls/49
2022-12-31 15:29:33 +01:00
4e32136c26 fix(Vaultwarden): Update image variable name 2022-12-31 15:28:35 +01:00
c68a73b55b Merge pull request 'feat(Vaultwarden): Ajout de la variable pour configurer le nom du service' (#48) from vaultwarden into main
## Détails

- Ajout de la variable pour le nom du conteneur
- Déplace la dépendance à postgres dans le fichier spécifique postgres

## Pourquoi

- Pour être facilement configurable

Reviewed-on: https://git.weko.io/resilien/services/pulls/48
2022-12-31 15:25:34 +01:00
4bf479d0e0 feat(Vaultwarden): Move postgres dependency on postgres file 2022-12-31 15:24:38 +01:00
62334b2f85 feat(Vaultwarden): Ajout de la variable pour configurer le nom du service 2022-12-31 15:22:38 +01:00
250f015535 Merge pull request 'feat(Vaultwarden): Add timezone information' (#47) from vaultwarden into main
## Détails

Ajout de la timezone du serveur dans le contenaire même si c'est une image Alpine qui ne prend pas en compte la valeur sauf en installant le package _tzdata_.

## Pourquoi

Pour avoir l'heure du serveur

Reviewed-on: https://git.weko.io/resilien/services/pulls/47
2022-12-31 15:20:02 +01:00
c631f47ae1 feat(Vaultwarden): Add timezone information 2022-12-31 15:17:51 +01:00
ea59336efb Merge pull request 'feat(Vaultwarden): Add new service' (#46) from vaultwarden into main
## Détails
un serveur compatible Bitwarden mais écrit en Rust pour économiser des ressources système

## Pourquoi

Actuellement j'utilisais Nextcloud Password mais son évolution est lente et la comunnauté trop petite pour faire comfiance à son développement. Ainsi nous pourrons proposer se service à d'autres personnes.

Reviewed-on: https://git.weko.io/resilien/services/pulls/46
2022-12-31 14:55:45 +01:00
747d158f58 feat(Vaultwarden): Add new service 2022-12-31 14:55:18 +01:00
347ff1d19b Merge pull request 'feat(Uptime Kuma): Add documentation and default .env' (#45) from uptime-kuma into main
## Détails

- Ajout de documentation pour Uptime Kuma
- Ajout d'un fichier d'environnement par defaut

## Pourquoi

- Pour renseigner qu'il n'est actuellement pas possible de créer des comptes
- Pour faciliter l'utilisation du service

Reviewed-on: https://git.weko.io/resilien/services/pulls/45
2022-12-09 22:14:17 +01:00
c9ef1d34a1 feat(Uptime Kuma): Add documentation and default .env 2022-12-09 22:12:41 +01:00
ce43797716 Merge pull request 'feat(Uptime Kuma): Add new service' (#44) from uptime-kuma into main
## Détails

- Mise en place du nouveau service Uptime Kuma

## Pourquoi

- Pour pouvoir monitorer nos services avec notre propre outil

Reviewed-on: https://git.weko.io/resilien/services/pulls/44
2022-12-09 21:17:39 +01:00
cae7eafbe0 feat(Uptime Kuma): Add new service 2022-12-09 21:16:41 +01:00
6026bb7709 Merge pull request 'feat(listmonk): Add new service' (#43) from listmonk into main
## Détail

- Ajout du service listmonk

## Pourquoi

- Pour faciliter la création de liste de diffusion ainsi que des newsletters

Reviewed-on: https://git.weko.io/resilien/services/pulls/43
2022-11-29 23:02:01 +01:00
912fe146af feat(listmonk): Add new service 2022-11-29 23:01:51 +01:00
01060abda6 Merge pull request 'docs(Registry): Add command to clean registry' (#42) from registry_clean into main
## Détails

- Ajout de la commande pour supprimer toutes les images non taggées

## Pourquoi

- Pour ce souvenir de la commande et permettre de faire de la place rapidement sur un serveur

### Ticket

https://tree.taiga.io/project/killiankemps-resilien/us/634

Reviewed-on: https://git.weko.io/resilien/services/pulls/42
Reviewed-by: killian <developer@killiankemps.fr>
2022-07-18 17:16:58 +02:00
cfc0771bb5 docs(Registry): Add command to clean registry 2022-07-12 10:23:14 +02:00
add83cd745 Merge pull request 'feat(Vikunja): Add new service' (#41) from vikunja into main
## Détails

- [x] Ajout du service [Vikunja](https://vikunja.io/)
- [x] Ajout d'un documentation
- [x] Ajout de l'url des releases dans le processus de [mise à jour](https://tree.taiga.io/project/killiankemps-resilien/us/374)

## Pourquoi

Pour nous organiser autour d'un outil simple et performant

Reviewed-on: https://git.weko.io/resilien/services/pulls/41
Reviewed-by: killian <developer@killiankemps.fr>
2022-04-21 16:38:36 +02:00
efcd3891ba feat(Vikunja): Add new service 2022-04-20 17:48:08 +02:00
d8414788ef Merge pull request 'Mise à jour des applications' (#40) from upgrade into main
* ec25f4b chore(Traefik): Upgrade to 2.6.3
* 8da5cc4 chore(Registry): Upgrade to 2.8.1
* 10337ac chore(Prometheus): Upgrade to 2.34.0
* ec4ae3a chore(Nextcloud): Upgrade to 23.0.3
* 5b6ce7c chore(Hedgedoc): Upgrade to 1.9.3
* 7498f63 chore(Grafana): Upgrade to 8.4.6
* 3a7e863 chore(Gitea): Upgrade to 1.16.5
* 62a5159 chore(Drone): Upgrade to 2.11.1
* 9d3175d chore(Directus): Upgrade to 9.8.0

Reviewed-on: https://git.weko.io/resilien/services/pulls/40
Reviewed-by: killian <developer@killiankemps.fr>
2022-04-15 09:11:59 +02:00
ec25f4b76f chore(Traefik): Upgrade to 2.6.3
https://github.com/traefik/traefik/releases/tag/v2.6.3
2022-04-13 23:16:23 +02:00
8da5cc41ed chore(Registry): Upgrade to 2.8.1
https://github.com/distribution/distribution/releases/tag/v2.8.1
2022-04-13 23:15:32 +02:00
10337ac53c chore(Prometheus): Upgrade to 2.34.0
https://github.com/prometheus/prometheus/releases/tag/v2.34.0
2022-04-13 23:13:22 +02:00
ec4ae3a8b8 chore(Nextcloud): Upgrade to 23.0.3
https://nextcloud.com/changelog/#latest23
2022-04-13 23:10:15 +02:00
5b6ce7cfcd chore(Hedgedoc): Upgrade to 1.9.3
https://github.com/hedgedoc/hedgedoc/releases/tag/1.9.3
2022-04-13 23:08:01 +02:00
7498f63974 chore(Grafana): Upgrade to 8.4.6
https://github.com/grafana/grafana/releases/tag/v8.4.6
2022-04-13 23:03:44 +02:00
3a7e863d0c chore(Gitea): Upgrade to 1.16.5
https://github.com/go-gitea/gitea/releases/tag/v1.16.5
2022-04-13 22:59:46 +02:00
62a5159232 chore(Drone): Upgrade to 2.11.1
https://github.com/harness/drone/releases/tag/v2.11.1
2022-04-13 22:58:18 +02:00
9d3175df69 chore(Directus): Upgrade to 9.8.0
https://github.com/directus/directus/releases/tag/v9.8.0
2022-04-13 22:56:15 +02:00
7939150137 Merge pull request 'fix(Hedgedoc): Update backup folder' (#39) from fix_hedgedoc into main
## Détails

- Mise à jour du dossier de backup des fichiers téléversés

## Pourquoi

- Pour correctement sauvegarder les images téléversés

## Liens

- [Ticket](https://tree.taiga.io/project/killiankemps-resilien/us/407)

Reviewed-on: https://git.weko.io/resilien/services/pulls/39
2022-03-07 16:04:01 +01:00
db74e92291 fix(Hedgedoc): Update backup folder 2022-03-07 16:02:21 +01:00
8f1a45969d Merge pull request 'Add configuration' (#38) from config into main
## Détails

- Ajout d'une variable d'environnement spécifique pour le timezone de l'image Docker Directus. (Fonctionnalité arrivé dans la dernière version)
- Ajout d'une variable d'environnement pour les log de Plausible

## Pourquoi

- Pour résoudre un bug d'affichage lorsque l'on selectionnait une date la valeur par défaut n'était pas sur le même fuseau horaire ce qui faisait reculer d'un jour...
- Permet d'afficher plus de logs

Reviewed-on: https://git.weko.io/resilien/services/pulls/38
2022-03-07 11:54:39 +01:00
c4248a6f97 feat(Plausible): Add log level variable 2022-03-07 11:51:48 +01:00
cfd8b5a2ce feat(Directus): Add timezone variable 2022-03-07 11:51:21 +01:00
1cee679407 Merge pull request 'upgrade services' (#37) from upgrade into main
## Détails

- Mise à jour de [Directus](https://github.com/directus/directus/releases/tag/v9.6.0)
- Mise à jour de [Grafana](https://github.com/grafana/grafana/releases/tag/v8.4.3)
- Mise à jour de [Prometheus](https://github.com/prometheus/prometheus/releases/tag/v2.33.4)
- Mise à jour de [Drone Server](https://github.com/harness/drone/releases/tag/v2.10.0)
- Mise à Jour de [Gitea](https://github.com/go-gitea/gitea/releases/tag/v1.16.3)

## Pourquoi

- Pour suivre les évolutions des différents projets

## Liens

- [Ticket](https://tree.taiga.io/project/killiankemps-resilien/us/374)

Reviewed-on: https://git.weko.io/resilien/services/pulls/37
2022-03-07 11:46:24 +01:00
1f7e610297 chore(Gitea): Upgrade to 1.16.3
https://github.com/go-gitea/gitea/releases/tag/v1.16.3
2022-03-07 11:20:33 +01:00
1931adafa4 chore(Drone Server): Upgrade to 2.10.0
https://github.com/harness/drone/releases/tag/v2.10.0
2022-03-07 11:15:32 +01:00
63246c442c chore(Prometheus): Upgrade to 2.33.4
https://github.com/prometheus/prometheus/releases/tag/v2.33.4
2022-03-07 11:11:39 +01:00
a60026a672 chore(Grafana): Upgrade to 8.4.3
https://github.com/grafana/grafana/releases/tag/v8.4.3
2022-03-07 11:09:18 +01:00
47ce108eb6 chore(Directus): Upgrade to 9.6.0
https://github.com/directus/directus/releases/tag/v9.6.0
2022-03-07 10:58:08 +01:00
a295e42fc5 Merge pull request 'feat(Plausible): Add more environment variables' (#36) from plausible into main
## Détails

- Ajout de nouvelles variables pour configurer Plausible

## Pourquoi

- Pour pouvoir configurer plus précisément le service

## Liens

- [ticket](https://tree.taiga.io/project/killiankemps-resilien/us/390)
- [config](26e34596c8/config/.env.test)

Reviewed-on: https://git.weko.io/resilien/services/pulls/36
2022-02-23 10:03:26 +01:00
768bf9b71d feat(Plausible): Add more environment variables 2022-02-23 09:59:12 +01:00
8e1cb72245 Merge pull request 'plausible' (#35) from plausible into main
Reviewed-on: https://git.weko.io/resilien/services/pulls/35
2022-02-22 19:13:49 +01:00
d951d0c8f5 docs(Plausible): Add default variables 2022-02-22 19:13:28 +01:00
30fd1db0a3 fix(GeoIP Update): Frequency 2022-02-22 19:13:28 +01:00
b8814b4391 Merge pull request 'fix(GeoIp Update): volume name' (#34) from plausible into main
Reviewed-on: https://git.weko.io/resilien/services/pulls/34
2022-02-22 16:59:09 +01:00
361f9b7d69 fix(GeoIp Update): volume name 2022-02-22 16:58:50 +01:00
903ba0283e Merge pull request 'fix(Plausible): BASE_URL != PLAUSIBLE_DOMAIN' (#33) from plausible into main
Reviewed-on: https://git.weko.io/resilien/services/pulls/33
2022-02-22 16:29:10 +01:00
7bc9788cd8 fix(Plausible): BASE_URL != PLAUSIBLE_DOMAIN 2022-02-22 16:28:52 +01:00
9cb520624f Merge pull request 'plausible' (#32) from plausible into main
## Détails

- Suppression des hash Docker
- Ajout des variables par défaut dans Postgres
- Ajout du service ClickHouse
- Ajout du service GeoIP Update
- Ajout du service Plausible

## Pourquoi

- Les hash Docker sont dépendant de la platforme hors nous gérons plusieurs type de platforme
- Pour simplifier la lecture des variables Postgres
- Pour proposer à nos utilisateurs Plausible

Reviewed-on: https://git.weko.io/resilien/services/pulls/32
2022-02-22 16:12:00 +01:00
5d4d7ad7fb feat(Plausible): Add new service 2022-02-22 16:10:46 +01:00
895623732f feat(GeoIP Update): Add new service 2022-02-22 16:01:45 +01:00
607e6c83c2 feat(ClickHouse): Add new service 2022-02-22 16:01:09 +01:00
58e5685b4d docs(Postgres): Add default variable 2022-02-22 15:55:45 +01:00
0e1c155fbf feat(Docker): Remove hash because it depends on the architecture 2022-02-22 15:55:18 +01:00
cf44901c1d Merge pull request 'docs(Redis): Add default variable on .env files' (#31) from redis into main
## Détails

- Ajout des variables non défini de Redis

## Pourquoi

- Pour clarifier l'utilisation des variables Redis

Reviewed-on: https://git.weko.io/resilien/services/pulls/31
2022-02-22 11:57:42 +01:00
557d35b9bf docs(Redis): Add default variable on .env files 2022-02-22 11:56:17 +01:00
af49fefe12 Merge pull request 'feat(Redis): Add volume name' (#30) from redis into main
## Détails

- Ajout d'un volume dans le conteneur Redis

## Pourquoi

- Pour permettre de persister les données de Redis permettant de redémarrer un conteneur sans être déconnecté

Reviewed-on: https://git.weko.io/resilien/services/pulls/30
2022-02-22 11:53:15 +01:00
4f2ae331df feat(Redis): Add volume name 2022-02-22 11:51:34 +01:00
dbe1cd0f0e Merge pull request 'upgrade' (#29) from upgrade into main
## Détails

- Mise à jour de Traefik en [2.6.1](https://github.com/traefik/traefik/releases/tag/v2.6.1)
- Mise à jour de Nextcloud en [23.0.2](https://nextcloud.com/changelog/#latest23)
- Mise à jour de Grafana en [8.4.1](https://github.com/grafana/grafana/releases/tag/v8.4.1)

## Pourquoi

- Pour être à jour

Reviewed-on: https://git.weko.io/resilien/services/pulls/29
2022-02-21 23:05:06 +01:00
ec62e7a14c chore(Traefik): Upgrade to 2.6.1
https://github.com/traefik/traefik/releases/tag/v2.6.1
2022-02-21 23:00:00 +01:00
248f2fc174 chore(Nextcloud): Upgrade to 23.0.2
https://nextcloud.com/changelog/#latest23
2022-02-21 22:56:02 +01:00
ca15dfeca1 chore(Grafana): Upgrade to 8.4.1
https://github.com/grafana/grafana/releases/tag/v8.4.0
https://github.com/grafana/grafana/releases/tag/v8.4.1
2022-02-21 22:47:11 +01:00
fe99557d1b Merge pull request 'upgrade' (#26) from upgrade into main
## Détails

- Mise à jour de :
    * Watchtower en [1.4.0](https://github.com/containrrr/watchtower/releases/tag/v1.4.0)
    * Registry en [2.8.0](https://github.com/distribution/distribution/releases/tag/v2.8.0)
    * Prometheus en [2.33.3](https://github.com/prometheus/prometheus/releases/tag/v2.33.3)
    * Postgres en [14.2](https://www.postgresql.org/docs/release/14.2/)
    * Grafana en [8.3.6](https://github.com/grafana/grafana/releases/tag/v8.3.6)
    * Gitea en [1.16.1](https://github.com/go-gitea/gitea/releases/tag/v1.16.1)
    * Nextcloud en [23.0.0](https://nextcloud.com/changelog/#latest23)
- Ajout des sha256 des images docker

## Pourquoi

- Pour avoir les derniers fix de sécurité
- Pour ajouter de la sécurité lors du téléchargement des images

## Liens

- [ticket](https://tree.taiga.io/project/killiankemps-resilien/us/374)

Reviewed-on: https://git.weko.io/resilien/services/pulls/26
Reviewed-by: killian <developer@killiankemps.fr>
2022-02-14 14:15:55 +01:00
69 changed files with 1038 additions and 137 deletions

View File

@ -8,19 +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
- [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
- [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
View File

@ -0,0 +1,3 @@
#CLICKHOUSE_VOLUME_NAME=
#CLICKHOUSE_CONTAINER_NAME=
#CLICKHOUSE_IMAGE=

16
clickhouse/README.md Normal file
View 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

View 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

View File

@ -44,7 +44,9 @@ POSTGRES_VOLUME_NAME=directus-postgres
#######
# REDIS
#REDIS_IMAGE=
#REDIS_CONTAINER_NAME=
#REDIS_VOLUME_NAME=
#########
# TRAEFIK

View File

@ -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}

View File

@ -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

View File

@ -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
View 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
View 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

View 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}

View File

@ -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

View File

@ -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}

View File

@ -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

View File

@ -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

View File

@ -34,6 +34,10 @@ GF_INSTALL_PLUGINS=grafana-piechart-panel
#######
# REDIS
#REDIS_IMAGE=
#REDIS_CONTAINER_NAME=
#REDIS_VOLUME_NAME=
#GF_REMOTE_CACHE_CONNSTR=
#########

View File

@ -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

View File

@ -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
View 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
View 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

View 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}

View File

@ -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

View File

@ -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

View File

@ -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 na aucun support SVG dans cette instance. Pour une meilleure compatibilité, il est recommandé de linstaller.
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

View 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

View File

@ -3,11 +3,16 @@ 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-configuration
SMTP_HOST: ${SMTP_HOST:?err}
SMTP_SECURE: ${SMTP_SECURE:-ssl}
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_NAME: ${SMTP_NAME:?err}
SMTP_PASSWORD: ${SMTP_PASSWORD:?err}
MAIL_FROM_ADDRESS: ${MAIL_FROM_ADDRESS:?err}
MAIL_DOMAIN: ${MAIL_DOMAIN:?err}
nextcloud-cron:
environment:
<<: *smtp-configuration

View File

@ -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

View File

@ -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

View File

@ -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
View 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
View 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

View 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>

View File

@ -0,0 +1,8 @@
<yandex>
<profiles>
<default>
<log_queries>0</log_queries>
<log_query_threads>0</log_query_threads>
</default>
</profiles>
</yandex>

View 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

View 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

View 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}

View File

@ -0,0 +1,6 @@
version: "3.8"
services:
plausible:
ports:
- ${LOCAL_PORT:-8000}:8000

View 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}

View 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}

View 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

View File

@ -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

View File

@ -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}

View File

@ -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

View File

@ -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

View File

@ -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 :

View File

@ -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

View File

@ -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
View 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
View 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/

View File

@ -0,0 +1,8 @@
---
version: "3.8"
services:
uptimekuma:
ports:
- 3001:3001

View 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}

View 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
View 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
View 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

View 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}

View 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}

View 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}

View 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
View File

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

12
vikunja/README.md Normal file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,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

View File

@ -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