update docker-compose add ai

This commit is contained in:
2025-09-03 21:36:56 +10:00
parent 6193f3d4d4
commit de048fe39f
3 changed files with 149 additions and 115 deletions

View File

@@ -1,102 +0,0 @@
# dockercompose.yml (версия 3.8 поддерживает named volumes и сетевые настройки)
version: "3.8"
services:
synapse:
image: matrixdotorg/synapse:latest
container_name: matrix_synapse
environment:
- SYNAPSE_SERVER_NAME=matrix.emsdata.ru
- SYNAPSE_REPORT_STATS=no
- TZ=Asia/Vladivostok
ports:
- "8008:8008" # HTTP (без TLS), используемый 뒤 federation/client API
- "8448:8448" # блок federation HTTPS (если понадобилось позже)
volumes:
- synapse_data:/data
restart: unless-stopped
drawio:
image: jgraph/drawio:latest
container_name: drawio
ports:
- "8080:8080" # Draw.io в браузере: http://host:8080
restart: unless-stopped
static-nginx:
image: nginx:alpine
container_name: nginx_static
ports:
- "8081:8081" # простой статический nginx без монтирования откроется дефолтный index
restart: unless-stopped
npm-app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
environment:
# Mysql/Maria connection parameters:
DB_MYSQL_HOST: "docker-db-1"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: ${db_user}
DB_MYSQL_PASSWORD: ${db_password}
DB_MYSQL_NAME: "npm"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./npm_data:/data
- ./npm_letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
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
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- ./gitea/data:/data
ports:
- "3000:3000"
- "2222:22"
restart: unless-stopped
wireguard:
image: lscr.io/linuxserver/wireguard:latest
container_name: wireguard_vpn
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
ports:
- "51820:51820/udp"
volumes:
- wireguard_data:/config
restart: unless-stopped
volumes:
synapse_data:
npm_data:
npm_letsencrypt:
wireguard_data:
nginx-site:
mysql:

View File

@@ -1,9 +1,23 @@
# dockercompose.yml (версия 3.8 поддерживает named volumes и сетевые настройки) # dockercompose.yml y(версия 3.8 поддерживает named volumes и сетевые настройки)
version: "3.8" 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: services:
synapse: synapse:
image: matrixdotorg/synapse:latest image: matrixdotorg/synapse:latest
networks:
- npm
container_name: matrix_synapse container_name: matrix_synapse
environment: environment:
- SYNAPSE_SERVER_NAME=matrix.emsdata.ru - SYNAPSE_SERVER_NAME=matrix.emsdata.ru
@@ -13,35 +27,46 @@ services:
- "8008:8008" # HTTP (без TLS), используемый 뒤 federation/client API - "8008:8008" # HTTP (без TLS), используемый 뒤 federation/client API
- "8448:8448" # блок federation HTTPS (если понадобилось позже) - "8448:8448" # блок federation HTTPS (если понадобилось позже)
volumes: volumes:
- synapse_data:/data - ./synapse/data:/data
- ./mautrix:/briges
restart: unless-stopped restart: unless-stopped
drawio: drawio:
image: jgraph/drawio:latest image: jgraph/drawio:latest
networks:
- npm
container_name: drawio container_name: drawio
ports: ports:
- "8080:8080" # Draw.io в браузере: http://host:8080 - "8280:8080" # Draw.io в браузере: http://host:8080
restart: unless-stopped restart: unless-stopped
apache: apache:
image: httpd:2.4 image: httpd:2.4
networks:
- npm
ports: ports:
- 8081:80 - 8281:80
volumes: volumes:
- ./src:/usr/local/apache2/htdocs - ./src:/usr/local/apache2/htdocs
restart: unless-stopped
static-nginx: static-nginx:
image: nginx:alpine image: nginx:alpine
container_name: nginx_static container_name: nginx_static
networks:
- npm
ports: ports:
- "8082:80" # простой статический nginx без монтирования откроется дефолтный index - "8282:80" # простой статический nginx без монтирования откроется дефолтный index
volumes: volumes:
- ./nginx-site:/usr/share/nginx/html:ro - ./nginx-site:/usr/share/nginx/html:ro
restart: unless-stopped restart: unless-stopped
npm-app: npm-app:
image: 'jc21/nginx-proxy-manager:latest' image: 'jc21/nginx-proxy-manager:latest'
networks:
ollama_net:
ipv4_address: 172.28.0.100
npm:
restart: unless-stopped restart: unless-stopped
ports: ports:
# These ports are in format <host-port>:<container-port> # These ports are in format <host-port>:<container-port>
@@ -67,6 +92,8 @@ services:
db: db:
image: 'jc21/mariadb-aria:latest' image: 'jc21/mariadb-aria:latest'
networks:
- npm
restart: unless-stopped restart: unless-stopped
environment: environment:
MYSQL_DATABASE: 'npm' MYSQL_DATABASE: 'npm'
@@ -78,6 +105,8 @@ services:
gitea: gitea:
image: gitea/gitea:latest image: gitea/gitea:latest
networks:
- npm
container_name: gitea container_name: gitea
environment: environment:
- USER_UID=1000 - USER_UID=1000
@@ -89,6 +118,109 @@ services:
- "2222:22" - "2222:22"
restart: unless-stopped restart: unless-stopped
mautrix:
image: dock.mau.dev/mautrix/telegram:latest
networks:
- npm
restart: unless-stopped
volumes:
- ./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:
- ./registry/registry.password:/auth/registry.password
#- ./registry/certs:/certs
- ./registry/data:/data
open-webui:
image: ghcr.io/open-webui/open-webui:git-3111d1b-ollama
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:
- ./open-webui:/app/backend/data
depends_on:
- ollama
ollama:
image: ollama/ollama
container_name: ollama
networks:
- ollama_net
restart: unless-stopped
expose:
- 11434/tcp
ports:
- "11434:11434"
healthcheck:
test: ollama --version || exit 1
#entrypoint: /root/entrypoint.sh
#environment:
# - ENABLE_OLLAMA_STREAMING=false
volumes:
- ollama:/root/.ollama
- ./ollama/entrypoint.sh:/root/entrypoint.sh
# ollama:
# image: ollama/ollama:latest
# container_name: ollama
# networks:
# ollama_net:
# ipv4_address: 172.28.0.10
# restart: unless-stopped
# volumes:
# - ollama:/root/.ollama
# ports:
# - "11434:11434"
# environment:
# # - OLLAMA_NUM_THREADS=8
# - OLLAMA_NO_GPU=1
# #- OLLAMA_HOST=0.0.0.0
# open-webui:
# image: ghcr.io/open-webui/open-webui:main
# container_name: open-webui
# networks:
# ollama_net:
# ipv4_address: 172.28.0.20
# ports:
# - "8080:8080"
# volumes:
# - ./open-webui:/app/backend/data
# environment:
# - OLLAMA_BASE_URL=http://172.28.0.10:11434
# - ENABLE_OLLAMA_STREAMING=true
# - ENABLE_WEBSOCKET_SUPPORT=true
# - GLOBAL_LOG_LEVEL=DEBUG
# depends_on:
# - ollama
wireguard: wireguard:
image: lscr.io/linuxserver/wireguard:latest image: lscr.io/linuxserver/wireguard:latest
container_name: wireguard_vpn container_name: wireguard_vpn
@@ -100,13 +232,17 @@ services:
ports: ports:
- "51820:51820/udp" - "51820:51820/udp"
volumes: volumes:
- ./wireguard/config:/config - ./wireguard:/config
restart: unless-stopped restart: unless-stopped
volumes: volumes:
synapse_data: synapse_data:
npm_data: npm_data:
npm_letsencrypt: npm_letsencrypt:
wireguard_data:
nginx-site: nginx-site:
mysql: mysql:
synapse:
mautrix:
registry-data:
wireguard:
ollama:

View File

@@ -13,7 +13,7 @@
- name: Copy docker-compose.yml - name: Copy docker-compose.yml
copy: copy:
src: first/docker-compose.yml src: global/docker-compose.yml
dest: "{{ compose_dir }}/docker-compose.yml" dest: "{{ compose_dir }}/docker-compose.yml"
- name: Copy .env - name: Copy .env