Initialize docker stack repo
This commit is contained in:
241
_legacy/docker-compose-no-envs.yml
Normal file
241
_legacy/docker-compose-no-envs.yml
Normal file
@@ -0,0 +1,241 @@
|
||||
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:
|
||||
Reference in New Issue
Block a user