Compare commits

...

6 Commits

12 changed files with 2906 additions and 1 deletions

11
.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
matrix/postgres/data/
matrix/nginx/www/
matrix/synapse/media_store/
traefik/certs/
traefik/log/
minio/data
matomo/html/
matomo/db/

View File

@ -6,7 +6,7 @@ https://github.com/matusnovak/homelab
## Traefik
Avant de lancer les contenaires, il faut gérer les certificats
### Before
mkcert -install
mkcert -key-file ./certs/local-key.pem -cert-file ./certs/local-cert.pem localdev 'docker.localdev' '*.docker.localdev'
@ -17,7 +17,21 @@ https://zestedesavoir.com/billets/3355/traefik-v2-https-ssl-en-localhost/
## Matrix
### Before
Make some direcories
mkdir -p nginx/www
mkdir -p postgres/data
mkdir -p synapse/media_store
### Sources
https://gist.github.com/matusnovak/37109e60abe79f4b59fc9fbda10896da
## Minio
Quelques commandes utiles
docker run -ti --rm --network docker_lan -v /docker/data/mc:/root/.mc minio/mc alias set minio http://minio.combava.lan:9000 admin testtest --api s3v4

11
matomo/.env Normal file
View File

@ -0,0 +1,11 @@
MATOMO_DATABASE_HOST=db
MATOMO_DATABASE_ADAPTER=mysql
MATOMO_DATABASE_TABLES_PREFIX=matomo_
MATOMO_DATABASE_USERNAME=MYUSER
MATOMO_DATABASE_PASSWORD=MYPASSWORD
MATOMO_DATABASE_DBNAME=MYDATABASE
MYSQL_PASSWORD=$MATOMO_DATABASE_PASSWORD
MYSQL_DATABASE=$MATOMO_DATABASE_DBNAME
MYSQL_USER=$MATOMO_DATABASE_USERNAME

34
matomo/docker-compose.yml Normal file
View File

@ -0,0 +1,34 @@
version: "3.7"
services:
db:
image: mariadb:10
command: --max-allowed-packet=64MB
volumes:
- ./db:/var/lib/mysql
environment:
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
env_file:
- ./.env
networks:
- matomo
matomo:
image: matomo:latest
volumes:
- ./html:/var/www/html
env_file:
- ./.env
labels:
- "traefik.enable=true"
- "traefik.http.routers.matomo.rule=Host(`matomo.combava.lan`)"
- "traefik.http.routers.matomo.entrypoints=https"
- "traefik.http.routers.matomo.tls=true"
- "traefik.http.services.matomo.loadbalancer.server.port=80"
networks:
- matomo
- gateway
networks:
matomo:
gateway:
external: true

71
matrix/docker-compose.yml Normal file
View File

@ -0,0 +1,71 @@
version: '3'
services:
postgres:
image: "postgres:14.1"
restart: "unless-stopped"
environment:
POSTGRES_PASSWORD: "admin"
volumes:
- "./postgres/data:/var/lib/postgresql/data"
- ./postgres/init.sql:/docker-entrypoint-initdb.d/init.sql
networks:
- matrix
redis:
image: "redis:latest"
restart: "unless-stopped"
networks:
- matrix
synapse:
image: "matrixdotorg/synapse:latest"
restart: "unless-stopped"
environment:
SYNAPSE_CONFIG_DIR: "/data"
SYNAPSE_CONFIG_PATH: "/data/homeserver.yaml"
UID: "1000"
GID: "1000"
TZ: "Europe/Paris"
volumes:
- "./synapse:/data"
labels:
- "traefik.enable=true"
- "traefik.http.services.synapse.loadbalancer.server.port=8008"
- "traefik.http.routers.synapse.rule=Host(`synapse.combava.lan`)"
- "traefik.http.routers.synapse.entrypoints=https"
- "traefik.http.routers.synapse.tls=true"
networks:
- gateway
- matrix
nginx:
image: "nginx:latest"
restart: "unless-stopped"
volumes:
- "./nginx/matrix.conf:/etc/nginx/conf.d/matrix.conf"
- ./nginx/www:/var/www/
labels:
- "traefik.enable=true"
- "traefik.http.routers.matrix.rule=Host(`matrix.combava.lan`)"
- "traefik.http.routers.matrix.entrypoints=https"
- "traefik.http.routers.matrix.tls=true"
networks:
- gateway
element:
image: "vectorim/element-web:latest"
volumes:
- "./element/config.json:/app/config.json:ro"
labels:
- "traefik.enable=true"
- "traefik.http.services.element.loadbalancer.server.port=80"
- "traefik.http.routers.element.rule=Host(`element.combava.lan`)"
- "traefik.http.routers.element.entrypoints=https"
- "traefik.http.routers.element.tls=true"
networks:
- gateway
networks:
matrix:
gateway:
external: true

18
matrix/nginx/matrix.conf Normal file
View File

@ -0,0 +1,18 @@
server {
listen 80 default_server;
server_name matrix.combava.lan;
# Traefik -> nginx -> synapse
location /_matrix {
proxy_pass http://synapse:8008;
proxy_set_header X-Forwarded-For $remote_addr;
client_max_body_size 128m;
}
location /.well-known/matrix/ {
root /var/www/;
default_type application/json;
add_header Access-Control-Allow-Origin *;
}
}

5
matrix/postgres/init.sql Normal file
View File

@ -0,0 +1,5 @@
CREATE ROLE synapse;
ALTER ROLE synapse WITH PASSWORD 'password';
ALTER ROLE synapse WITH LOGIN;
CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse;
GRANT ALL PRIVILEGES ON DATABASE synapse TO synapse;

File diff suppressed because it is too large Load Diff

2
minio/.env Normal file
View File

@ -0,0 +1,2 @@
MINIO_ROOT_USER=test
MINIO_ROOT_PASSWORD=testtest

24
minio/docker-compose.yml Normal file
View File

@ -0,0 +1,24 @@
version: '3'
services:
minio:
image: minio/minio
volumes:
- ./data:/data
env_file:
- .env
ports:
- "9000:9000"
- "9001:9001"
command: server --console-address ":9001" --address ":9000" /data
labels:
- "traefik.enable=true"
- "traefik.http.services.minio.loadbalancer.server.port=8008"
- "traefik.http.routers.minio.rule=Host(`minio.combava.lan`)"
- "traefik.http.routers.minio.entrypoints=https"
- "traefik.http.routers.minio.tls=true"
networks:
- gateway
networks:
gateway:
external: true

View File

@ -19,6 +19,8 @@ services:
- ./config.yml:/etc/traefik/config.yml:ro
# On map les certificats dans le conteneur
- ./certs:/etc/certs:ro
- ./log:/var/log/traefik
- /usr/share/zoneinfo:/usr/share/zoneinfo:ro
networks:
- gateway
labels:

View File

@ -38,3 +38,12 @@ http:
redirectScheme:
scheme: https
permanent: true
accessLog:
filePath: "/var/log/traefik/access.log"
fields:
defaultMode: keep
names:
StartUTC: drop
headers:
defaultMode: keep