39 Commits

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

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

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

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

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

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

## Pourquoi

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

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

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

- Ajout du préfixe `DIRECTUS_`

## Pourquoi

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

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

- Ajout de la variable `CORS_ORIGIN`

## Pourquoi

- Pour permettre de spécifier les URLs

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

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

## Pourquoi

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

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

- Changement de nom de variables

## Pourquoi

- Pour être plus cohérent

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

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

## Pourquoi

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

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

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

## Pourquoi

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

Reviewed-on: #60
2023-07-05 15:57:31 +02:00
06f1e2910f feat(LLDAP): Add new service 2023-07-05 15:56:32 +02:00
91 changed files with 436 additions and 243 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

50
lldap/.env Normal file
View File

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

View File

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

View File

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

View File

@ -1,7 +1,5 @@
---
version: "3.8"
services:
lldap:
environment:
@ -9,8 +7,8 @@ services:
- LLDAP_SMTP_OPTIONS__ENABLE_PASSWORD_RESET=${LLDAP_SMTP_OPTIONS__ENABLE_PASSWORD_RESET}
- LLDAP_SMTP_OPTIONS__SERVER=${LLDAP_SMTP_OPTIONS__SERVER}
- LLDAP_SMTP_OPTIONS__PORT=${LLDAP_SMTP_OPTIONS__PORT}
- LLDAP_SMTP_OPTIONS__SMTP_ENCRYPTION=${LLDAP_SMTP_OPTIONS__ENCRYPTION}
- LLDAP_SMTP_OPTIONS__SMTP_ENCRYPTION=${LLDAP_SMTP_OPTIONS__SMTP_ENCRYPTION}
- LLDAP_SMTP_OPTIONS__USER=${LLDAP_SMTP_OPTIONS__USER}
- LLDAP_SMTP_OPTIONS__PASSWORD=${LLDAP_SMTP_OPTIONS__PASSWORD}
- LLDAP_SMTP_OPTIONS__FROM=${LLDAP_SMTP_OPTIONS__FROM}
- LLDAP_SMTP_OPTIONS__REPLY_TO=${LLDAP_SMTP_OPTIONS__TO}
- LLDAP_SMTP_OPTIONS__REPLY_TO=${LLDAP_SMTP_OPTIONS__REPLY_TO}

View File

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

View File

@ -1,7 +1,5 @@
---
version: "3.8"
volumes:
lldap:
name: ${LLDAP_VOLUME_NAME:-lldap}
@ -15,10 +13,10 @@ services:
- "lldap:/data"
environment:
- TZ=${TIMEZONE:-Europe/Paris}
- LLDAP_VERBOSE=${LLDAP_VERBOSE:-false}
- LLDAP_JWT_SECRET=${LLDAP_JWT_SECRET:?err}
- LLDAP_HTTP_URL=https://${LLDAP_DOMAIN:?err}
- LLDAP_VERBOSE=${LLDAP_VERBOSE:-false}
- LLDAP_LDAP_BASE_DN=${LLDAP_LDAP_BASE_DN:?err}
- LLDAP_LDAP_USER_DN=${LLDAP_LDAP_USER_DN:?err}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,12 +1,12 @@
version: "3.8"
---
services:
nextcloud-fpm:
environment:
&smtp-configuration
SMTP_HOST: ${SMTP_HOST:?err}
SMTP_SECURE: ${SMTP_SECURE:-ssl}
SMTP_PORT: ${SMTP_PORT:-465}
SMTP_SECURE: ${SMTP_SECURE:-}
SMTP_PORT: ${SMTP_PORT:-587}
SMTP_AUTHTYPE: ${SMTP_AUTHTYPE:-LOGIN}
SMTP_NAME: ${SMTP_NAME:?err}
SMTP_PASSWORD: ${SMTP_PASSWORD:?err}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

24
snikket/.env Normal file
View File

@ -0,0 +1,24 @@
########
# DOCKER
SERVICES_DIR=".."
COMPOSE_FILE=${SERVICES_DIR}/snikket/docker-compose.yml:${SERVICES_DIR}/snikket/docker-compose.local.yml
# COMPOSE_PROJECT_NAME=
## APP
# SNIKKET_DOMAIN={{ SNIKKET_DOMAIN }}
SNIKKET_CONTAINER_NAME=snikket
SNIKKET_DATA_VOLUME_NAME=snikket_data
SNIKKET_ACME_CHALLENGES_VOLUME_NAME=acme_challenges
# SNIKKET_SERVER_IMAGE=
# SNIKKET_WEB_PORTAL_IMAGE=
# SNIKKET_CERT_MANAGER_IMAGE
# SNIKKET_WEB_PROXY_IMAGE
#########
# TRAEFIK
# TRAEFIK_NETWORK_NAME=
# TRAEFIK_ROUTER_NAME=
# TRAEFIK_ENTRYPOINTS=

22
snikket/README.md Normal file
View File

@ -0,0 +1,22 @@
# Snikket
> Snikket est un service de messagerie instantanée basée sur le protocole XMPP destiné à être utilisé d'abord sur téléphone.
## Clients
Pour utiliser Snikket sur un téléphone Android, vous pouvez télécharger l'application sur F-droid (recommandé) ou sur le Google Play Store.
Sur Linux, nous recommandons le client Dino (d'abord créer son compte Snikket via le téléphone).
Sur iPhone, vous pouvez aussi télécharger l'application Snikket qui sera cependant moins complète que sur Android.
## Liens
- [Site Officiel][site]
- [Documentation][documentation]
- [Code source][source]
- [Docker Hub][dockerhub]
[site]: https://snikket.org
[source]: https://github.com/snikket-im/snikket-selfhosted
[documentation]: https://snikket.org/service/quickstart/
[dockerhub]: https://hub.docker.com/r/snikket/snikket-server

View File

@ -0,0 +1,13 @@
---
version: "3.8"
services:
snikket_proxy:
network_mode: host
snikket_certs:
network_mode: host
snikket_portal:
network_mode: host
snikket_server:
network_mode: host

View File

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

View File

@ -0,0 +1,48 @@
---
version: "3.3"
services:
snikket_proxy:
container_name: ${SNIKKET_CONTAINER_NAME:-snikket}_proxy
image: ${SNIKKET_WEB_PROXY_IMAGE:-snikket/snikket-web-proxy:beta}
environment:
- SNIKKET_DOMAIN: ${SNIKKET_DOMAIN:?err}
- SNIKKET_ADMIN_EMAIL: ${SNIKKET_ADMIN_EMAIL:?err}
volumes:
- snikket_data:/snikket
- acme_challenges:/var/www/html/.well-known/acme-challenge
restart: "unless-stopped"
snikket_certs:
container_name: ${SNIKKET_CONTAINER_NAME:-snikket}-certs
image: ${SNIKKET_CERT_MANAGER_IMAGE:-snikket/snikket-cert-manager:beta}
environment:
- SNIKKET_DOMAIN: ${SNIKKET_DOMAIN:?err}
- SNIKKET_ADMIN_EMAIL: ${SNIKKET_ADMIN_EMAIL:?err}
volumes:
- snikket_data:/snikket
- acme_challenges:/var/www/.well-known/acme-challenge
restart: "unless-stopped"
snikket_portal:
container_name: ${SNIKKET_CONTAINER_NAME:-snikket}-portal
image: ${SNIKKET_WEB_PORTAL_IMAGE:-snikket/snikket-web-portal:beta}
environment:
- SNIKKET_DOMAIN: ${SNIKKET_DOMAIN:?err}
- SNIKKET_ADMIN_EMAIL: ${SNIKKET_ADMIN_EMAIL:?err}
restart: "unless-stopped"
snikket_server:
container_name: ${SNIKKET_CONTAINER_NAME:-snikket}
image: ${SNIKKET_SERVER_IMAGE:-snikket/snikket-server:beta}
volumes:
- snikket_data:/snikket
environment:
- SNIKKET_DOMAIN: ${SNIKKET_DOMAIN:?err}
- SNIKKET_ADMIN_EMAIL: ${SNIKKET_ADMIN_EMAIL:?err}
restart: "unless-stopped"
volumes:
acme_challenges:
name: ${SNIKKET_ACME_CHALLENGES_VOLUME_NAME:-acme_challenges}
snikket_data:
name: ${SNIKKET_DATA_VOLUME_NAME:-snikket_data}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
version: "3.8"
---
# https://vikunja.io/docs/config-options
# https://vikunja.io/docs/full-docker-example/
@ -10,13 +10,30 @@ volumes:
services:
vikunja_api:
container_name: ${VIKUNJA_CONTAINER_NAME:-vikunja}_api
image: ${VIKUNJA_API_IMAGE:-vikunja/api:0.18.1}
image: ${VIKUNJA_API_IMAGE:-vikunja/api:0.21.0}
restart: always
environment:
VIKUNJA_DATABASE_PATH: ${VIKUNJA_DATABASE_PATH:-./vikunja.db}
VIKUNJA_DEFAULTSETTINGS_AVATAR_PROVIDER: ${VIKUNJA_DEFAULTSETTINGS_AVATAR_PROVIDER:-initials}
VIKUNJA_DEFAULTSETTINGS_AVATAR_FILE_ID: ${VIKUNJA_DEFAULTSETTINGS_AVATAR_FILE_ID:-0}
VIKUNJA_DEFAULTSETTINGS_EMAIL_REMINDERS_ENABLED: ${VIKUNJA_DEFAULTSETTINGS_EMAIL_REMINDERS_ENABLED:-false}
VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_NAME: ${VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_NAME:-true}
VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_EMAIL: ${VIKUNJA_DEFAULTSETTINGS_DISCOVERABLE_BY_EMAIL:-true}
VIKUNJA_DEFAULTSETTINGS_OVERDUE_TASKS_REMINDERS_ENABLED: ${VIKUNJA_DEFAULTSETTINGS_OVERDUE_TASKS_REMINDERS_ENABLED:-false}
VIKUNJA_DEFAULTSETTINGS_OVERDUE_TASKS_REMINDERS_TIME: ${VIKUNJA_DEFAULTSETTINGS_OVERDUE_TASKS_REMINDERS_TIME:-9:00}
VIKUNJA_DEFAULTSETTINGS_DEFAULT_PROJECT_ID: ${VIKUNJA_DEFAULTSETTINGS_DEFAULT_PROJECT_ID:-0}
VIKUNJA_DEFAULTSETTINGS_WEEK_START: ${VIKUNJA_DEFAULTSETTINGS_WEEK_START:-1}
VIKUNJA_DEFAULTSETTINGS_LANGUAGE: ${VIKUNJA_DEFAULTSETTINGS_LANGUAGE:-fr-FR}
VIKUNJA_DEFAULTSETTINGS_TIMEZONE: ${VIKUNJA_DEFAULTSETTINGS_TIMEZONE:-Europe/Paris}
VIKUNJA_FILES_BASEPATH: ${VIKUNJA_FILES_BASEPATH:-./files}
VIKUNJA_FILES_MAXSIZE: ${VIKUNJA_FILES_MAXSIZE:-20MB}
VIKUNJA_SERVICE_JWTSECRET: ${VIKUNJA_SERVICE_JWTSECRET}
VIKUNJA_SERVICE_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}
@ -28,18 +45,17 @@ services:
VIKUNJA_SERVICE_ENABLETOTP: ${VIKUNJA_SERVICE_ENABLETOTP:-true}
VIKUNJA_SERVICE_ENABLEEMAILREMINDERS: ${VIKUNJA_SERVICE_ENABLEEMAILREMINDERS:-true}
VIKUNJA_SERVICE_ENABLEUSERDELETION: ${VIKUNJA_SERVICE_ENABLEUSERDELETION:-true}
VIKUNJA_SERVICE_ROOTPATH: ${VIKUNJA_SERVICE_ROOTPATH:-/app/vikunja/}
VIKUNJA_FILES_BASEPATH: ${VIKUNJA_FILES_BASEPATH:-./files}
VIKUNJA_FILES_MAXSIZE: ${VIKUNJA_FILES_MAXSIZE:-20MB}
PUID: ${VIKUNJA_PUID:-1000}
PGID: ${VIKUNJA_PGID:-1000}
volumes:
- vikunja:/app/vikunja/files
- vikunja:${VIKUNJA_VOLUME_PATH:-/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}
image: ${VIKUNJA_FRONTEND_IMAGE:-vikunja/frontend:0.21.0}
restart: always
depends_on:
- vikunja_api