Compare commits
39 Commits
13bd7663c5
...
snikket
Author | SHA1 | Date | |
---|---|---|---|
f323ee23ad | |||
b770dfd525 | |||
ec039c4474 | |||
16a583e326 | |||
4f3c112404 | |||
bbd45d8f3f | |||
68820ec859 | |||
9b8591caee | |||
4c2ebac4e7 | |||
b516600e50 | |||
c579565849 | |||
a26e291396 | |||
6441551318 | |||
d88b1829f1 | |||
6047ad6050 | |||
11f89a1c8c | |||
847bc2b014 | |||
2111829feb | |||
06d35b9c9a | |||
2ceca1c76a | |||
225015a5c9 | |||
ab822795ad | |||
f944ef4fe3 | |||
b047319556 | |||
9078d9d04f | |||
0a99b3402c | |||
6d5884343e | |||
8162c6a81a | |||
b803eedf8c | |||
61680c6e6e | |||
353c1bd812 | |||
c5d761d229 | |||
72621b893d | |||
fe0d4d6224 | |||
b5ea07c70a | |||
0b41480815 | |||
0e06b651e8 | |||
d7206c92de | |||
06f1e2910f |
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
volumes:
|
||||
clickhouse:
|
||||
|
@ -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]
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
directus:
|
||||
environment:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
directus:
|
||||
environment:
|
||||
|
@ -1,10 +1,9 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
directus:
|
||||
|
@ -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
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
# https://docs.drone.io/runner/docker/configuration/dashboard/
|
||||
|
||||
services:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
drone-runner:
|
||||
ports:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
# https://docs.drone.io/runner/docker/configuration/logging/
|
||||
|
||||
services:
|
||||
|
@ -1,10 +1,9 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME}
|
||||
external: true
|
||||
|
||||
services:
|
||||
drone-runner:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
# https://docs.drone.io/runner/docker/installation/linux/
|
||||
|
||||
services:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
# https://docs.drone.io/server/cookie/
|
||||
|
||||
services:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
# https://docs.drone.io/server/provider/gitea/
|
||||
|
||||
services:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
# https://docs.drone.io/server/headers/
|
||||
|
||||
services:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
drone-server:
|
||||
ports:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
# https://docs.drone.io/server/logging/
|
||||
|
||||
services:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
# https://docs.drone.io/server/storage/database/
|
||||
# https://docs.drone.io/server/storage/encryption/
|
||||
|
||||
|
@ -1,10 +1,9 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME}
|
||||
external: true
|
||||
|
||||
services:
|
||||
drone-server:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
# https://docs.drone.io/server/user/registration/
|
||||
|
||||
services:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
drone-server:
|
||||
name: ${DRONE_SERVER_VOLUME_NAME:-drone-server}
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
geoip:
|
||||
name: ${GEOIP_VOLUME_NAME:-geoip}
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
geoipupdate:
|
||||
name: ${GEOIPUPDATE_VOLUME_NAME:-geoipupdate}
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
gitea:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
gitea:
|
||||
|
12
gitea/docker-compose.postgres.yml
Normal file
12
gitea/docker-compose.postgres.yml
Normal 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
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
gitea:
|
||||
|
@ -1,8 +1,9 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
gitea:
|
||||
|
@ -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
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
grafana:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
grafana:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
grafana:
|
||||
|
@ -1,8 +1,9 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
grafana:
|
||||
|
@ -1,5 +1,4 @@
|
||||
---
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
grafana:
|
||||
|
@ -1,8 +1,9 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
hedgedoc:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
volumes:
|
||||
hedgedoc:
|
||||
|
@ -1,8 +1,9 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
listmonk:
|
||||
|
50
lldap/.env
Normal file
50
lldap/.env
Normal 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=
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
lldap:
|
||||
ports:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
lldap:
|
||||
environment:
|
||||
|
@ -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}
|
||||
|
@ -1,10 +1,9 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
lldap:
|
||||
|
@ -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}
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
mobilizon:
|
||||
ports:
|
||||
|
@ -1,10 +1,9 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
mobilizon:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
mobilizon:
|
||||
name: ${MOBILIZON_VOLUME_NAME:-mobilizon}
|
||||
|
@ -1,5 +1,4 @@
|
||||
---
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
nextcloud-fpm:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
nextcloud-web:
|
||||
|
16
nextcloud/docker-compose.postgres.yml
Normal file
16
nextcloud/docker-compose.postgres.yml
Normal 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
|
13
nextcloud/docker-compose.redis.yml
Normal file
13
nextcloud/docker-compose.redis.yml
Normal 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
|
@ -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}
|
||||
|
@ -1,8 +1,9 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
nextcloud-fpm:
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
# HTTP response headers borrowed from Nextcloud `.htaccess`
|
||||
add_header Referrer-Policy "no-referrer" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
add_header X-Download-Options "noopen" always;
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
add_header X-Permitted-Cross-Domain-Policies "none" always;
|
||||
add_header X-Robots-Tag "noindex, nofollow" always;
|
||||
add_header X-XSS-Protection "1; mode=block" always;
|
||||
|
||||
# Remove X-Powered-By, which is an information leak
|
||||
fastcgi_hide_header X-Powered-By;
|
||||
|
||||
# Add .mjs as a file extension for javascript
|
||||
# Either include it in the default mime.types list
|
||||
# or include you can include that list explicitly and add the file extension
|
||||
# only for Nextcloud like below:
|
||||
include mime.types;
|
||||
types {
|
||||
text/javascript js mjs;
|
||||
}
|
||||
|
||||
location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
|
||||
deny all;
|
||||
}
|
||||
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
|
||||
deny all;
|
||||
# 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 ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
|
||||
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
|
||||
location = /robots.txt {
|
||||
allow all;
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
# Make a regex exception for `/.well-known` so that clients can still
|
||||
# access it despite the existence of the regex rule
|
||||
# `location ~ /(\.|autotest|...)` which would otherwise handle requests
|
||||
# for `/.well-known`.
|
||||
location ^~ /.well-known {
|
||||
# The rules in this block are an adaptation of the rules
|
||||
# in `.htaccess` that concern `/.well-known`.
|
||||
|
||||
location = /.well-known/carddav { return 301 /remote.php/dav/; }
|
||||
location = /.well-known/caldav { return 301 /remote.php/dav/; }
|
||||
|
||||
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
|
||||
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
|
||||
|
||||
# Let Nextcloud's API for `/.well-known` URIs handle all other
|
||||
# requests by passing them to the front-end controller.
|
||||
return 301 /index.php$request_uri;
|
||||
}
|
||||
|
||||
# Rules borrowed from `.htaccess` to hide certain paths from clients
|
||||
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; }
|
||||
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; }
|
||||
|
||||
# Ensure this block, which passes PHP files to the PHP process, is above the blocks
|
||||
# which handle static assets (as seen below). If this block is not declared first,
|
||||
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
|
||||
# to the URI, resulting in a HTTP 500 error response.
|
||||
location ~ \.php(?:$|/) {
|
||||
# Required for legacy support
|
||||
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
|
||||
|
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||
set $path_info $fastcgi_path_info;
|
||||
|
||||
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 HTTPS on;
|
||||
|
||||
# Avoid sending the security headers twice
|
||||
fastcgi_param modHeadersAvailable true;
|
||||
|
||||
# Enable pretty urls
|
||||
fastcgi_param front_controller_active true;
|
||||
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;
|
||||
}
|
||||
|
||||
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)$ {
|
||||
# Serve static files
|
||||
location ~ \.(?:css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite|map|ogg|flac)$ {
|
||||
try_files $uri /index.php$request_uri;
|
||||
add_header Cache-Control "public, max-age=15778463";
|
||||
# Add headers to serve security related headers (It is intended to
|
||||
# have those duplicated to the ones above)
|
||||
# Before enabling Strict-Transport-Security headers please read into
|
||||
# this topic first.
|
||||
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
|
||||
#
|
||||
# WARNING: Only add the preload option once you read about
|
||||
# the consequences in https://hstspreload.org/. This option
|
||||
# will add the domain to a hardcoded list that is shipped
|
||||
# in all major browsers and getting removed from this list
|
||||
# could take several months.
|
||||
add_header Referrer-Policy "no-referrer" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
add_header X-Download-Options "noopen" always;
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
add_header X-Permitted-Cross-Domain-Policies "none" always;
|
||||
add_header X-Robots-Tag "none" always;
|
||||
add_header X-XSS-Protection "1; mode=block" always;
|
||||
add_header Cache-Control "public, max-age=15778463, $asset_immutable";
|
||||
access_log off; # Optional: Don't log access to assets
|
||||
|
||||
# Optional: Don't log access to assets
|
||||
access_log off;
|
||||
location ~ \.wasm$ {
|
||||
default_type application/wasm;
|
||||
}
|
||||
}
|
||||
|
||||
location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap|mp4|webm)$ {
|
||||
location ~ \.woff2?$ {
|
||||
try_files $uri /index.php$request_uri;
|
||||
# Optional: Don't log access to other assets
|
||||
access_log off;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
clickhouse:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
plausible:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
plausible:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
plausible:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
plausible:
|
||||
|
@ -1,8 +1,9 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
plausible:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
volumes:
|
||||
plausible:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
volumes:
|
||||
postgres:
|
||||
|
@ -1,10 +1,9 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
prometheus:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
volumes:
|
||||
redis:
|
||||
|
@ -3,6 +3,7 @@ version: '3.8'
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME}
|
||||
external: true
|
||||
|
||||
services:
|
||||
registry:
|
||||
|
@ -1,10 +1,9 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
signaturepdf:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
signaturepdf:
|
||||
name: ${SIGNATUREPDF_VOLUME_NAME:-signaturepdf}
|
||||
|
24
snikket/.env
Normal file
24
snikket/.env
Normal 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
22
snikket/README.md
Normal 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
|
13
snikket/docker-compose.local.yml
Normal file
13
snikket/docker-compose.local.yml
Normal 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
|
15
snikket/docker-compose.traefik.yml
Normal file
15
snikket/docker-compose.traefik.yml
Normal 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}
|
48
snikket/docker-compose.yml
Normal file
48
snikket/docker-compose.yml
Normal 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}
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
networks:
|
||||
default:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
traefik:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
traefik:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
networks:
|
||||
default:
|
||||
|
@ -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}
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
uptimekuma:
|
||||
ports:
|
||||
|
@ -1,10 +1,9 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
uptimekuma:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
uptimekuma:
|
||||
name: ${UPTIMEKUMA_VOLUME_NAME:-uptimekuma}
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
vaultwarden:
|
||||
depends_on:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
vaultwarden:
|
||||
environment:
|
||||
|
@ -1,10 +1,9 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: ${TRAEFIK_NETWORK_NAME:-traefik}
|
||||
external: true
|
||||
|
||||
services:
|
||||
vaultwarden:
|
||||
|
@ -1,7 +1,5 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
volumes:
|
||||
vaultwarden:
|
||||
name: ${VAULTWARDEN_VOLUME_NAME:-vaultwarden}
|
||||
|
9
vikunja/docker-compose.legal.yml
Normal file
9
vikunja/docker-compose.legal.yml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
vikunja_api:
|
||||
environment:
|
||||
VIKUNJA_LEGAL_IMPRINTURL: ${VIKUNJA_LEGAL_IMPRINTURL}
|
||||
VIKUNJA_LEGAL_PRIVACYURL: ${VIKUNJA_LEGAL_PRIVACYURL}
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
services:
|
||||
vikunja_api:
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
# https://vikunja.io/docs/config-options/#metrics
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
# https://vikunja.io/docs/config-options/#redis
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: "3.8"
|
||||
---
|
||||
|
||||
# https://vikunja.io/docs/config-options/#mailer
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user