Files
ansible/global/docker-compose.yml
2025-12-26 18:39:36 +10:00

194 lines
4.0 KiB
YAML

version: "3.8"
networks:
ollama_net:
driver: bridge
ipam:
config:
- subnet: 172.28.0.0/16
npm:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
services:
synapse:
image: c5ada12052bb
networks:
- npm
container_name: matrix_synapse
environment:
- SYNAPSE_SERVER_NAME=matrix.emsdata.ru
- SYNAPSE_REPORT_STATS=no
- TZ=Asia/Vladivostok
ports:
- "8008:8008"
- "8448:8448"
volumes:
- /opt/docker/synapse/data:/data
- /opt/matrix:/media
- /opt/docker/mautrix:/briges
restart: unless-stopped
drawio:
image: jgraph/drawio:latest
networks:
- npm
container_name: drawio
ports:
- "8280:8080"
restart: unless-stopped
apache:
image: httpd:2.4
networks:
- npm
ports:
- 8281:80
volumes:
- ./src:/usr/local/apache2/htdocs
restart: unless-stopped
static-nginx:
image: nginx:alpine
container_name: nginx_static
networks:
- npm
ports:
- "8282:80"
volumes:
- ./nginx-site:/usr/share/nginx/html:ro
# - /opt/media:/user/share/nginx/media
restart: unless-stopped
npm-app:
image: 'jc21/nginx-proxy-manager:latest'
networks:
- npm
restart: unless-stopped
ports:
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# - '21:21' # FTP
environment:
DB_MYSQL_HOST: "docker-db-1"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: ${db_user}
DB_MYSQL_PASSWORD: ${db_password}
DB_MYSQL_NAME: "npm"
# DISABLE_IPV6: 'true'
volumes:
- ./npm_data:/data
- ./npm_letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
networks:
- npm
restart: unless-stopped
environment:
MYSQL_DATABASE: 'npm'
MYSQL_USER: ${db_user}
MYSQL_PASSWORD: ${db_password}
MARIADB_AUTO_UPGRADE: '1'
volumes:
- ./mysql:/var/lib/mysql
gitea:
image: gitea/gitea:latest
networks:
- npm
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- /opt/docker/gitea/data:/data
- /opt/gitea/git:/data/git
ports:
- "3000:3000"
- "2222:22"
restart: unless-stopped
mautrix:
image: dock.mau.dev/mautrix/telegram:latest
networks:
- npm
restart: unless-stopped
volumes:
- /opt/docker/mautrix:/data
environment:
- TZ=Asia/Vladivostok
ports:
- "29371:29371"
registry:
image: registry:latest
networks:
- npm
restart: unless-stopped
environment:
- REGISTRY_AUTH=htpasswd
- REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm
- REGISTRY_AUTH_HTPASSWD_PATH=/auth/registry.password
#- REGISTRY_HTTP_ADDR=0.0.0.0:5000
#- REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt
#- REGISTRY_HTTP_TLS_KEY=/certs/domain.key
ports:
- "5000:5000"
volumes:
- /opt/docker/registry/registry.password:/auth/registry.password
#- ./registry/certs:/certs
- /opt/registry/data:/data
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
networks:
- npm
- ollama_net
restart: unless-stopped
expose:
- 8080/tcp
ports:
- "8111:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- /opt/docker/open-webui:/app/backend/data
depends_on:
- ollama
ollama:
image: ollama/ollama:latest
container_name: ollama
networks:
- ollama_net
restart: unless-stopped
expose:
- 11434/tcp
ports:
- "11434:11434"
volumes:
- /opt/ollama:/root/.ollama/
healthcheck:
test: ollama --version || exit 1
#entrypoint: /root/entrypoint.sh
volumes:
synapse_data:
npm_data:
npm_letsencrypt:
nginx-site:
mysql:
synapse:
mautrix:
registry-data:
wireguard:
ollama: