Commit initial : infrastructure Ansible pour homeserver
- Playbooks Ansible avec rôles (common, cockpit, docker, services) - 30+ stacks Docker Compose avec reverse proxy Traefik - Ansible Vault pour gestion secrets - Intégration CrowdSec pour détection intrusions - Versions images Docker fixées pour reproductibilité
This commit is contained in:
commit
fd01ea59ee
125 changed files with 4768 additions and 0 deletions
91
stacks/photoprism/compose.yml
Normal file
91
stacks/photoprism/compose.yml
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
services:
|
||||
photoprism:
|
||||
image: photoprism/photoprism:241021
|
||||
stop_grace_period: 10s
|
||||
depends_on:
|
||||
- mariadb
|
||||
restart: unless-stopped
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
- apparmor:unconfined
|
||||
working_dir: "/photoprism"
|
||||
volumes:
|
||||
- "/mnt/storage/photos:/photoprism/import"
|
||||
- "/mnt/storage/photoprism/originals:/photoprism/originals"
|
||||
- "/mnt/storage/photoprism/storage:/photoprism/storage"
|
||||
environment:
|
||||
- PHOTOPRISM_DATABASE_DRIVER=mysql
|
||||
- PHOTOPRISM_DATABASE_SERVER=mariadb:3306
|
||||
- PHOTOPRISM_DATABASE_NAME=photoprism
|
||||
- PHOTOPRISM_DATABASE_USER=${MARIADB_USER}
|
||||
- PHOTOPRISM_DATABASE_PASSWORD=${PHOTOPRISM_DATABASE_PASSWORD}
|
||||
- PHOTOPRISM_ADMIN_USER=${PHOTOPRISM_ADMIN_USER}
|
||||
- PHOTOPRISM_ADMIN_PASSWORD=${PHOTOPRISM_ADMIN_PASSWORD}
|
||||
- PHOTOPRISM_AUTH_MODE=password
|
||||
- PHOTOPRISM_SITE_URL=https://photoprism.tellserv.fr/
|
||||
- PHOTOPRISM_DISABLE_TLS=true
|
||||
- PHOTOPRISM_ORIGINALS_LIMIT=5000
|
||||
- PHOTOPRISM_HTTP_COMPRESSION=gzip
|
||||
- PHOTOPRISM_LOG_LEVEL=info
|
||||
- PHOTOPRISM_READONLY=false
|
||||
- PHOTOPRISM_EXPERIMENTAL=false
|
||||
- PHOTOPRISM_DISABLE_CHOWN=false
|
||||
- PHOTOPRISM_DISABLE_WEBDAV=false
|
||||
- PHOTOPRISM_DISABLE_SETTINGS=false
|
||||
- PHOTOPRISM_DISABLE_TENSORFLOW=false
|
||||
- PHOTOPRISM_DISABLE_FACES=false
|
||||
- PHOTOPRISM_DISABLE_CLASSIFICATION=false
|
||||
- PHOTOPRISM_DISABLE_VECTORS=false
|
||||
- PHOTOPRISM_DISABLE_RAW=false
|
||||
- PHOTOPRISM_RAW_PRESETS=false
|
||||
- PHOTOPRISM_JPEG_QUALITY=85
|
||||
- PHOTOPRISM_DETECT_NSFW=false
|
||||
- PHOTOPRISM_UPLOAD_NSFW=true
|
||||
- PHOTOPRISM_SITE_CAPTION=AI-Powered Photos App
|
||||
- PHOTOPRISM_SITE_DESCRIPTION=
|
||||
- PHOTOPRISM_SITE_AUTHOR=
|
||||
networks:
|
||||
- traefik_network
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-local.rule=Host(`${COMPOSE_PROJECT_NAME}.local.tellserv.fr`)"
|
||||
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-local.entryPoints=local"
|
||||
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-local.tls.certresolver=cloudflare-local"
|
||||
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-local.tls=true"
|
||||
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-prod.rule=Host(`${COMPOSE_PROJECT_NAME}.tellserv.fr`)"
|
||||
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-prod.entryPoints=websecure"
|
||||
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-prod.tls=true"
|
||||
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-prod.tls.certResolver=cloudflare"
|
||||
- "traefik.http.services.${COMPOSE_PROJECT_NAME}.loadbalancer.server.port=2342"
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
|
||||
mariadb:
|
||||
image: mariadb:11
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 5s
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
- apparmor:unconfined
|
||||
command: >
|
||||
--innodb-buffer-pool-size=512M
|
||||
--transaction-isolation=READ-COMMITTED
|
||||
--character-set-server=utf8mb4
|
||||
--collation-server=utf8mb4_unicode_ci
|
||||
--max-connections=512
|
||||
--innodb-rollback-on-timeout=OFF
|
||||
--innodb-lock-wait-timeout=120
|
||||
volumes:
|
||||
- ./database:/var/lib/mysql
|
||||
environment:
|
||||
- MARIADB_AUTO_UPGRADE=1
|
||||
- MARIADB_INITDB_SKIP_TZINFO=1
|
||||
- MARIADB_DATABASE=photoprism
|
||||
- MARIADB_USER=${MARIADB_USER}
|
||||
- MARIADB_PASSWORD=${MARIADB_PASSWORD}
|
||||
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
|
||||
networks:
|
||||
- traefik_network
|
||||
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
Loading…
Add table
Add a link
Reference in a new issue