From adc70638d1f241317761d6918d85270a14507219 Mon Sep 17 00:00:00 2001 From: theoleuthardt Date: Wed, 16 Jul 2025 11:11:24 +0000 Subject: [PATCH] init all current docker compose files --- awx-ansible/docker-compose.yml | 53 +++++++++++++++++ grafana-influxdb/docker-compose.yml | 40 +++++++++++++ immich/docker-compose.yml | 79 +++++++++++++++++++++++++ jellyfin/docker-compose.yaml | 52 ++++++++++++++++ mealie/docker-compose.yml | 20 +++++++ ollama/docker-compose.yaml | 27 +++++++++ overleaf/docker-compose.yaml | 55 +++++++++++++++++ portainer/docker-compose.yml | 14 +++++ satisfactory/docker-compose.yaml | 26 ++++++++ tailscale/docker-compose.yaml | 17 ++++++ time-machine-config/docker-compose.yaml | 21 +++++++ werkzeugkiste/docker-compose.yml | 28 +++++++++ 12 files changed, 432 insertions(+) create mode 100644 awx-ansible/docker-compose.yml create mode 100644 grafana-influxdb/docker-compose.yml create mode 100644 immich/docker-compose.yml create mode 100644 jellyfin/docker-compose.yaml create mode 100644 mealie/docker-compose.yml create mode 100644 ollama/docker-compose.yaml create mode 100644 overleaf/docker-compose.yaml create mode 100644 portainer/docker-compose.yml create mode 100644 satisfactory/docker-compose.yaml create mode 100644 tailscale/docker-compose.yaml create mode 100644 time-machine-config/docker-compose.yaml create mode 100644 werkzeugkiste/docker-compose.yml diff --git a/awx-ansible/docker-compose.yml b/awx-ansible/docker-compose.yml new file mode 100644 index 0000000..bc37020 --- /dev/null +++ b/awx-ansible/docker-compose.yml @@ -0,0 +1,53 @@ +services: + # PostgreSQL Datenbank für AWX + postgres: + image: postgres:latest + container_name: awx_postgres + restart: unless-stopped + volumes: + - postgres_data:/var/lib/postgresql/data + environment: + POSTGRES_USER: awx + POSTGRES_PASSWORD: 58201928alsk + POSTGRES_DB: awx + + # Redis für AWX Caching und Messaging + redis: + image: redis:latest + container_name: awx_redis + restart: unless-stopped + command: redis-server --appendonly yes + volumes: + - redis_data:/data + + # AWX Web und Task Container + awx: + image: quay.io/ansible/awx:latest + container_name: awx_web + restart: unless-stopped + depends_on: + - postgres + - redis + volumes: + - awx_data:/var/lib/awx + - awx_projects:/var/lib/awx/projects + # Optional: Wenn du SSH-Keys für Git brauchst + - ${HOME}/.ssh/id_rsa:/root/.ssh/id_rsa:ro + environment: + DATABASE_NAME: awx + DATABASE_USER: awx + DATABASE_PASSWORD: 58201928alsk + DATABASE_HOST: postgres + DATABASE_PORT: 5432 + REDIS_HOST: redis + REDIS_PORT: 6379 + AWX_ADMIN_USER: admin + AWX_ADMIN_PASSWORD: 58201928alsk + ports: + - "8052:8052" + +volumes: + postgres_data: + redis_data: + awx_data: + awx_projects: \ No newline at end of file diff --git a/grafana-influxdb/docker-compose.yml b/grafana-influxdb/docker-compose.yml new file mode 100644 index 0000000..cb45867 --- /dev/null +++ b/grafana-influxdb/docker-compose.yml @@ -0,0 +1,40 @@ +services: + influxdb: + image: influxdb:latest + container_name: influxdb + restart: always + environment: + INFLUXDB_DB: 'monitoringdb' # Name der InfluxDB-Datenbank + INFLUXDB_ADMIN_USER: 'admin' # Admin Benutzername + INFLUXDB_ADMIN_PASSWORD: '58201928alsk' # Admin Passwort + INFLUXDB_USER: 'theo' # Grafana Benutzername + INFLUXDB_USER_PASSWORD: 'Ftul7103oy!' # Grafana Passwort + volumes: + - influxdb_data:/var/lib/influxdb # Persistente Daten für InfluxDB + ports: + - "8086:8086" # Port für InfluxDB API + networks: + - monitoring + + grafana: + image: grafana/grafana:latest + container_name: grafana + restart: always + environment: + GF_SECURITY_ADMIN_PASSWORD: '58201928alsk' # Grafana Admin Passwort + volumes: + - grafana_data:/var/lib/grafana # Persistente Daten für Grafana + ports: + - "3000:3000" # Webinterface für Grafana + depends_on: + - influxdb + networks: + - monitoring + +volumes: + influxdb_data: + grafana_data: + +networks: + monitoring: + driver: bridge diff --git a/immich/docker-compose.yml b/immich/docker-compose.yml new file mode 100644 index 0000000..7d3a5a6 --- /dev/null +++ b/immich/docker-compose.yml @@ -0,0 +1,79 @@ +# +# WARNING: Make sure to use the docker-compose.yml of the current release: +# +# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml +# +# The compose file on main may not be compatible with the latest release. +# + +name: immich + +services: + immich-server: + container_name: immich_server + image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} + # extends: + # file: hwaccel.transcoding.yml + # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding + volumes: + # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file + - immich_data:/usr/src/app/upload + - /etc/localtime:/etc/localtime:ro + env_file: + - .env + ports: + - '2283:2283' + depends_on: + - redis + - database + restart: always + healthcheck: + disable: false + + redis: + container_name: immich_redis + image: docker.io/redis:6.2-alpine@sha256:eaba718fecd1196d88533de7ba49bf903ad33664a92debb24660a922ecd9cac8 + healthcheck: + test: redis-cli ping || exit 1 + restart: always + + database: + container_name: immich_postgres + image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 + environment: + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_USER: ${DB_USERNAME} + POSTGRES_DB: ${DB_DATABASE_NAME} + POSTGRES_INITDB_ARGS: '--data-checksums' + volumes: + # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file + - immich_db:/var/lib/postgresql/data + healthcheck: + test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 + interval: 5m + start_interval: 30s + start_period: 5m + command: + [ + 'postgres', + '-c', + 'shared_preload_libraries=vectors.so', + '-c', + 'search_path="$$user", public, vectors', + '-c', + 'logging_collector=on', + '-c', + 'max_wal_size=2GB', + '-c', + 'shared_buffers=512MB', + '-c', + 'wal_compression=on', + ] + restart: always + +volumes: + model-cache: + immich_data: + external: true + immich_db: + external: true diff --git a/jellyfin/docker-compose.yaml b/jellyfin/docker-compose.yaml new file mode 100644 index 0000000..eee5a51 --- /dev/null +++ b/jellyfin/docker-compose.yaml @@ -0,0 +1,52 @@ +services: + jellyfin: + image: jellyfin/jellyfin + container_name: jellyfin + ports: + - "8096:8096" + - "8920:8920" + volumes: + - jellyfin_config:/config + - jellyfin_cache:/cache + - jellyfin_media:/media + restart: unless-stopped + + sonarr: + image: linuxserver/sonarr + container_name: sonarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Berlin + ports: + - "8989:8989" + volumes: + - sonarr_config:/config + - jellyfin_download:/downloads + - jellyfin_media:/media + restart: unless-stopped + + radarr: + image: linuxserver/radarr + container_name: radarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Berlin + ports: + - "7878:7878" + volumes: + - radarr_config:/config + - jellyfin_download:/downloads + - jellyfin_media:/media + restart: unless-stopped + +volumes: + jellyfin_config: + jellyfin_cache: + sonarr_config: + radarr_config: + jellyfin_media: + external: true + jellyfin_download: + external: true diff --git a/mealie/docker-compose.yml b/mealie/docker-compose.yml new file mode 100644 index 0000000..58a7638 --- /dev/null +++ b/mealie/docker-compose.yml @@ -0,0 +1,20 @@ +services: + mealie: + image: hkotel/mealie:latest + ports: + - "9925:9000" + volumes: + - mealie_data:/app/data + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/Berlin + - BASE_URL=http://mealie.theocloud.dev + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000"] + interval: 30s + timeout: 10s + retries: 5 + +volumes: + mealie_data: diff --git a/ollama/docker-compose.yaml b/ollama/docker-compose.yaml new file mode 100644 index 0000000..91e6e1a --- /dev/null +++ b/ollama/docker-compose.yaml @@ -0,0 +1,27 @@ +services: + open-webui: + volumes: + - open-webui:/app/backend/data + environment: + - OLLAMA_BASE_URL=http://192.168.12.151:11434 + container_name: open-webui + restart: always + image: ghcr.io/open-webui/open-webui:main + + ollama: + restart: always + devices: + - /dev/kfd + - /dev/dri + volumes: + - ollama:/root/.ollama + ports: + - 11434:11434 + container_name: ollama + environment: + - HSA_OVERRIDE_GFX_VERSION=10.3.0 + - HCC_AMDGPU_TARGET=gfx1030 + image: ollama/ollama:rocm +volumes: + ollama: + open-webui: diff --git a/overleaf/docker-compose.yaml b/overleaf/docker-compose.yaml new file mode 100644 index 0000000..7e86832 --- /dev/null +++ b/overleaf/docker-compose.yaml @@ -0,0 +1,55 @@ +version: '2.2' +services: + sharelatex: + restart: always + image: sharelatex/sharelatex + container_name: sharelatex + depends_on: + mongo: + condition: service_healthy + redis: + condition: service_started + ports: + - "3001:80" + stop_grace_period: 60s + volumes: + - overleaf_sharelatex_data:/var/lib/overleaf + environment: + OVERLEAF_APP_NAME: Overleaf by TheoCloud + OVERLEAF_MONGO_URL: mongodb://mongo/sharelatex + OVERLEAF_REDIS_HOST: redis + ENABLED_LINKED_FILE_TYPES: 'project_file,project_output_file' + ENABLE_CONVERSIONS: 'true' + EMAIL_CONFIRMATION_DISABLED: 'true' + TEXMFVAR: /var/lib/overleaf/tmp/texmf-var + OVERLEAF_SITE_URL: http://overleaf.theocloud.dev + + mongo: + restart: always + image: mongo:5.0 + container_name: mongo + command: '--replSet overleaf' + volumes: + - overleaf_mongo_data:/data/db + - ./mongodb-init-replica-set.js:/docker-entrypoint-initdb.d/mongodb-init-replica-set.js + environment: + MONGO_INITDB_DATABASE: sharelatex + healthcheck: + test: echo 'db.stats().ok' | mongo localhost:27017/test --quiet + interval: 10s + timeout: 10s + retries: 5 + + redis: + restart: always + image: redis:6.2 + container_name: redis + volumes: + - redis_data:/data + +volumes: + overleaf_sharelatex_data: + external: true + overleaf_mongo_data: + external: true + redis_data: diff --git a/portainer/docker-compose.yml b/portainer/docker-compose.yml new file mode 100644 index 0000000..d268a4d --- /dev/null +++ b/portainer/docker-compose.yml @@ -0,0 +1,14 @@ +services: + portainer: + image: portainer/portainer-ce:latest + restart: always + ports: + - "8000:8000" # Optional für Edge-Agent + - "9443:9443" # HTTPS-Zugriff auf Portainer (Web-UI) + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - portainer_data:/data + +volumes: + portainer_data: + external: true diff --git a/satisfactory/docker-compose.yaml b/satisfactory/docker-compose.yaml new file mode 100644 index 0000000..b9fedbd --- /dev/null +++ b/satisfactory/docker-compose.yaml @@ -0,0 +1,26 @@ +services: + satisfactory-server: + container_name: 'satisfactory-server' + hostname: 'drachenschanze-reloaded' + image: 'wolveix/satisfactory-server:latest' + ports: + - '7777:7777/udp' + - '7777:7777/tcp' + volumes: + - satisfactory_config:/config + environment: + - MAXPLAYERS=4 + - PGID=1000 + - PUID=1000 + - STEAMBETA=false + restart: unless-stopped + deploy: + resources: + limits: + memory: 16G + reservations: + memory: 8G + +volumes: + satisfactory_config: + external: true diff --git a/tailscale/docker-compose.yaml b/tailscale/docker-compose.yaml new file mode 100644 index 0000000..bcc33e3 --- /dev/null +++ b/tailscale/docker-compose.yaml @@ -0,0 +1,17 @@ +services: + tailscale: + image: tailscale/tailscale:stable + container_name: tailscaled + volumes: + - tailscale_tailscale_data:/var/lib + - /dev/net/tun:/dev/net/tun + network_mode: host + cap_add: + - NET_ADMIN + - NET_RAW + environment: + - TS_AUTHKEY=tskey-auth-kzcw7n21Rm11CNTRL-xscFvvmtfzFyzLi3QnQF1GJcKDhknoMP + +volumes: + tailscale_tailscale_data: + external: True diff --git a/time-machine-config/docker-compose.yaml b/time-machine-config/docker-compose.yaml new file mode 100644 index 0000000..dd0d59b --- /dev/null +++ b/time-machine-config/docker-compose.yaml @@ -0,0 +1,21 @@ +name: time-machine +services: + timemachine: + restart: always + container_name: timemachine + network_mode: host + environment: + - TM_USERNAME=timemachine + - TM_GROUPNAME=timemachine + - PASSWORD=timemachine + - TM_UID=1000 + - TM_GID=1000 + - SET_PERMISSIONS=false + - VOLUME_SIZE_LIMIT=0 + volumes: + - time_machine_data:/opt/timemachine + tmpfs: /run/samba + image: mbentley/timemachine:smb +volumes: + time_machine_data: + external: true diff --git a/werkzeugkiste/docker-compose.yml b/werkzeugkiste/docker-compose.yml new file mode 100644 index 0000000..787ee30 --- /dev/null +++ b/werkzeugkiste/docker-compose.yml @@ -0,0 +1,28 @@ +services: + frontend: + image: theoretisch030/werkzeugkiste-frontend:latest + container_name: werkzeugkiste-frontend + env_file: .env + environment: + - NODE_ENV=${NODE_ENV} + - HOSTNAME=${HOSTNAME} + - PORT=${FRONTEND_PORT} + ports: + - "3002:3000" + restart: unless-stopped + + backend: + image: theoretisch030/werkzeugkiste-backend:latest + container_name: werkzeugkiste-backend + env_file: .env + environment: + - NODE_ENV=${NODE_ENV} + - HOSTNAME=${HOSTNAME} + - PORT=${BACKEND_PORT} + ports: + - "4000:4000" + restart: unless-stopped + +networks: + default: + driver: bridge