Files
srv-docker/_legacy/docker-compose-no-envs.yml
2026-03-07 17:28:59 +00:00

242 lines
6.1 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: "3.8"
services:
minio:
image: quay.io/minio/minio:latest
command: server /data1 /data2 --console-address ":9001"
environment:
MINIO_ROOT_USER: *
MINIO_ROOT_PASSWORD: *
MINIO_PROMETHEUS_AUTH_TYPE: public
MINIO_REGION: ru-1
ports:
- "9000:9000"
- "9110:9001"
volumes:
- /mnt/disk2/minio1:/data1
- /mnt/disk1/minio2:/data2
restart: unless-stopped
minio-init:
image: quay.io/minio/mc:latest
depends_on: [minio]
environment:
MC_HOST_minio: "http://minio-root:minio-root-pass@minio:9000"
entrypoint: >
/bin/sh -c "
mc alias set minio http://minio:9000 minio-root minio-root-pass &&
mc mb -p minio/nextcloud || true &&
mc admin user add minio nextcloud nextcloud-secret &&
mc admin policy attach minio readwrite --user nextcloud || true &&
exit 0
"
restart: "no"
postgres:
image: postgres:16
environment:
POSTGRES_DB: nextcloud
POSTGRES_USER: *
POSTGRES_PASSWORD: *
volumes:
- /data/postgres:/var/lib/postgresql/data
restart: unless-stopped
redis:
image: redis:7
command: ["redis-server", "--save", "", "--appendonly", "no"]
restart: unless-stopped
nextcloud:
build: ./nextcloud
image: nextcloud:30-apache-ffmpeg
depends_on: [postgres, redis, minio, minio-init]
ports:
- "80:80"
dns:
- 1.1.1.1
- 8.8.8.8
dns_opt:
- use-vc
environment:
POSTGRES_HOST: postgres
POSTGRES_DB: nextcloud
POSTGRES_USER: *
POSTGRES_PASSWORD: *
NEXTCLOUD_TRUSTED_DOMAINS: *
NEXTCLOUD_ADMIN_USER: *
NEXTCLOUD_ADMIN_PASSWORD: *
OVERWRITEHOST: *
OVERWRITEPROTOCOL: *
TRUSTED_PROXIES: *
MAGICK_THREAD_LIMIT: *
OMP_NUM_THREADS: *
volumes:
- /data/nextcloud/html:/var/www/html
nextcloud-cron:
image: nextcloud:30-apache
restart: unless-stopped
volumes:
- /data/nextcloud/html:/var/www/html
entrypoint: /cron.sh
depends_on:
- nextcloud
# --- IMMICH AND REQ-S ---
immich-server:
image: ghcr.io/immich-app/immich-server:release
container_name: immich-server
environment:
# URL, по которому клиенты будут подключаться
PUBLIC_URL: https://photos.g4st3r.ru
UPLOAD_LOCATION: /usr/src/app/upload
# база данных
DB_HOSTNAME: immich-db
DB_PORT: 5432
DB_USERNAME: *
DB_PASSWORD: *
DB_DATABASE_NAME: *
# Redis
REDIS_HOSTNAME: immich-redis
REDIS_PORT: 6379
# ML сервис
MACHINE_LEARNING_URL: http://immich-ml:3003
volumes:
- /mnt/disk3/immich/uploads:/usr/src/app/upload
depends_on:
- immich-db
- immich-redis
- immich-ml
ports:
- 2283:2283
restart: unless-stopped
immich-ml:
image: ghcr.io/immich-app/immich-machine-learning:release
container_name: immich-ml
ports:
- "3003:3003"
environment:
- TRANSFORMERS_CACHE=/cache
volumes:
- /mnt/disk2/immich/ml-cache:/cache
restart: unless-stopped
immich-db:
image: pgvector/pgvector:pg16
container_name: immich-db
environment:
- POSTGRES_USER=${DB_USERNAME:-immich}
- POSTGRES_PASSWORD=${DB_PASSWORD:-immich_strong_pass}
- POSTGRES_DB=${DB_DATABASE_NAME:-immich}
volumes:
- /mnt/disk2/immich/db:/var/lib/postgresql/data
restart: unless-stopped
immich-redis:
image: redis:7-alpine
container_name: immich-redis
command: ["redis-server", "--save", "60", "1"]
volumes:
- /mnt/disk2/immich/redis:/data
restart: unless-stopped
# --- EXPORTERS & MONITORING ---
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
restart: unless-stopped
ports:
- "9100:9100"
command:
- '--path.rootfs=/host'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($|/)'
volumes:
- '/:/host:ro,rslave'
postgres-exporter:
image: quay.io/prometheuscommunity/postgres-exporter:latest
container_name: postgres-exporter
restart: unless-stopped
environment:
# у тебя Postgres с юзером nc и БД nextcloud
DATA_SOURCE_NAME: "postgresql://nc:*@postgres:5432/nextcloud?sslmode=disable"
ports:
- "9187:9187"
depends_on:
- postgres
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
command:
- '--config.file=/etc/prometheus/prometheus.yml'
volumes:
- /srv/monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus-data:/prometheus
ports:
- "9090:9090"
depends_on:
- node-exporter
- cadvisor
- postgres-exporter
- minio
smartctl-exporter:
image: prometheuscommunity/smartctl-exporter:v0.9.1
container_name: smartctl-exporter
privileged: true # нужно, чтобы читать SMART с устройств
volumes:
- /dev:/dev:ro
- /run/udev:/run/udev:ro
environment:
- SMARTCTL_INTERVAL=300 # каждые 5 минут
ports:
- "9633:9633"
restart: unless-stopped
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=*
- GF_SERVER_DOMAIN=*
- GF_SERVER_ROOT_URL=*
volumes:
- /srv/monitoring/grafana:/var/lib/grafana
- /srv/monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
ports:
- "3000:3000"
depends_on:
- prometheus
alertmanager:
image: prom/alertmanager:latest
container_name: alertmanager
command:
- --config.file=/etc/alertmanager/alertmanager.yml
- --web.external-url=https://alert.g4st3r.ru
volumes:
- ./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
- ./alertmanager/templates:/etc/alertmanager/templates:ro
ports:
- "9093:9093"
restart: unless-stopped
environment:
- TELEGRAM_BOT_TOKEN=*
- TELEGRAM_CHAT_ID=*
volumes:
prometheus-data: