diff --git a/dockmon/docker-compose.yaml b/dockmon-docker-compose.yaml similarity index 55% rename from dockmon/docker-compose.yaml rename to dockmon-docker-compose.yaml index aaf08cf..046faf3 100644 --- a/dockmon/docker-compose.yaml +++ b/dockmon-docker-compose.yaml @@ -8,7 +8,7 @@ services: environment: - TZ=Europe/Bratislava volumes: - - ./dockmon_data:/app/data + - ./dockmon/dockmon_data:/app/data - /var/run/docker.sock:/var/run/docker.sock healthcheck: test: ["CMD", "curl", "-k", "-f", "https://localhost:443/health"] @@ -19,12 +19,12 @@ services: - traefik-proxy labels: - "traefik.enable=true" - - "traefik.http.routers.dockmon.rule=Host(`dockmon.workstation`)" - - "traefik.http.routers.dockmon.entrypoints=websecure" - - "traefik.http.services.dockmon.loadbalancer.server.port=443" - - "traefik.http.services.dockmon.loadbalancer.server.scheme=https" + - "traefik.http.routers.${DOCKMON_APPNAME:-dockmon}.rule=Host(`${DOCKMON_SUBDOMEN:-}.${HOST:-workstation}`)" + - "traefik.http.routers.${DOCKMON_APPNAME:-dockmon}.entrypoints=websecure" + - "traefik.http.services.${DOCKMON_APPNAME:-dockmon}.loadbalancer.server.port=443" + - "traefik.http.services.${DOCKMON_APPNAME:-dockmon}.loadbalancer.server.scheme=https" - "traefik.docker.network=traefik-proxy" - - "traefik.http.routers.dockmon.tls.certresolver=le" + - "traefik.http.routers.${DOCKMON_APPNAME:-dockmon}.tls.certresolver=le" networks: traefik-proxy: diff --git a/edu_master/docker-compose.yaml b/edu_master-docker-compose.yaml similarity index 89% rename from edu_master/docker-compose.yaml rename to edu_master-docker-compose.yaml index 784f26d..c2b940f 100644 --- a/edu_master/docker-compose.yaml +++ b/edu_master-docker-compose.yaml @@ -99,8 +99,8 @@ services: nginx: image: nginx:alpine volumes: - - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf.template - - ./nginx/entrypoint.sh:/entrypoint.sh + - ./edu_master/nginx/nginx.conf:/etc/nginx/conf.d/default.conf.template + - ./edu_master/nginx/entrypoint.sh:/entrypoint.sh environment: - MINIO_PRIVATE_BUCKET=${MINIO_PRIVATE_BUCKET:-private} - MINIO_PUBLIC_BUCKET=${MINIO_PUBLIC_BUCKET:-public} @@ -115,11 +115,11 @@ services: - default labels: - "traefik.enable=true" - - "traefik.http.routers.watercrawl.rule=Host(`watercrawl.workstation`)" - - "traefik.http.routers.watercrawl.entrypoints=websecure" - - "traefik.http.services.watercrawl.loadbalancer.server.port=80" + - "traefik.http.routers.${WATERCRAWL_APPNAME:-watercrawl}.rule=Host(`${WATERCRAWL_SUBDOMEN:-watercrawl}.${HOST:-workstation}`)" + - "traefik.http.routers.${WATERCRAWL_APPNAME:-watercrawl}.entrypoints=websecure" + - "traefik.http.routers.${WATERCRAWL_APPNAME:-watercrawl}.tls.certresolver=le" + - "traefik.http.services.${WATERCRAWL_APPNAME:-watercrawl}.loadbalancer.server.port=80" - "traefik.docker.network=traefik-proxy" - - "traefik.http.routers.watercrawl.tls.certresolver=le" app: <<: *app @@ -144,7 +144,7 @@ services: image: minio/minio:RELEASE.2024-11-07T00-52-20Z restart: unless-stopped volumes: - - ./volumes/minio-data:/data + - ./edu_master/volumes/minio-data:/data command: server /data --console-address ":9001" environment: - MINIO_BROWSER_REDIRECT_URL=${MINIO_BROWSER_REDIRECT_URL:-http://localhost/minio-console/} @@ -175,7 +175,7 @@ services: - POSTGRES_USER=${POSTGRES_USER:-postgres} - POSTGRES_DB=${POSTGRES_DB:-postgres} volumes: - - ./volumes/postgres-db:/var/lib/postgresql/data + - ./edu_master/volumes/postgres-db:/var/lib/postgresql/data healthcheck: test: [ "CMD-SHELL", "pg_isready" ] interval: 10s @@ -195,7 +195,7 @@ services: image: ollama/ollama:latest restart: unless-stopped volumes: - - ./volumes/ollama-models:/root/.ollama + - ./edu_master/volumes/ollama-models:/root/.ollama environment: - OLLAMA_DISABLE_TELEMETRY=true - OLLAMA_KEEP_ALIVE=5m @@ -220,7 +220,7 @@ services: - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true volumes: - n8n_data:/home/node/.n8n - - ./n8n/local-files:/files + - ./edu_master/n8n/local-files:/files extra_hosts: - "enterprise.n8n.io:104.26.13.187" - "enterprise.n8n.io:104.26.12.187" @@ -233,11 +233,11 @@ services: - default labels: - "traefik.enable=true" - - "traefik.http.routers.n8n.rule=Host(`n8n.workstation`)" - - "traefik.http.routers.n8n.entrypoints=websecure" - - "traefik.http.services.n8n.loadbalancer.server.port=5678" + - "traefik.http.routers.${N8N_APPNAME:-n8n}.rule=Host(`${N8N_SUBDOMEN:-n8n}.${HOST:-workstation}`)" + - "traefik.http.routers.${N8N_APPNAME:-n8n}..entrypoints=websecure" + - "traefik.http.services.${WATERCRAWL_APPNAME:-watercrawl}.loadbalancer.server.port=5678" - "traefik.docker.network=traefik-proxy" - - "traefik.http.routers.n8n.tls.certresolver=le" + - "traefik.http.routers.${WATERCRAWL_APPNAME:-watercrawl}.tls.certresolver=le" # docker exec -it edu_master-llm-1 ollama pull neural-chat:7b-q4 # docker exec -it edu_master-llm-1 ollama pull mistral:7b-q4 @@ -268,14 +268,6 @@ services: timeout: 10s retries: 3 start_period: 10s - # webinar-notif-worker: - # image: python:3.11-slim - # restart: on-failure - # volumes: - # - ./webinar_notif:/app/webinar_notif:ro - # working_dir: /app/webinar_notif - # command: ["/bin/sh", "-c", "pip install --no-cache-dir -r requirements.txt 2>/dev/null || true; python -u main.py"] - phpsessid-bot: build: diff --git a/glance-docker-compose.yml b/glance-docker-compose.yml new file mode 100644 index 0000000..de3eff9 --- /dev/null +++ b/glance-docker-compose.yml @@ -0,0 +1,27 @@ +services: + glance: + container_name: glance + image: glanceapp/glance + restart: unless-stopped + volumes: + - ./glance/config:/app/config + - ./glance/assets:/app/assets + - /etc/localtime:/etc/localtime:ro + - /var/run/docker.sock:/var/run/docker.sock:ro + env_file: .env + labels: + - "traefik.enable=true" + - "traefik.http.routers.${GLANCE_APPNAME:-glance}.rule=Host(`${GLANCE_SUBDOMEN:-glance}.${HOST:-workstation}`)" + - "traefik.http.routers.${GLANCE_APPNAME:-glance}.entrypoints=websecure" + - "traefik.http.routers.${GLANCE_APPNAME:-glance}.tls=true" + - "traefik.http.routers.${GLANCE_APPNAME:-glance}.tls.certresolver=le" + - "traefik.http.services.${GLANCE_APPNAME:-glance}.loadbalancer.server.port=8080" + + networks: + - traefik-proxy + dns: + - 1.1.1.1 + - 8.8.8.8 +networks: + traefik-proxy: + external: true \ No newline at end of file diff --git a/glance/docker-compose.yml b/glance/docker-compose.yml deleted file mode 100644 index a252399..0000000 --- a/glance/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -services: - glance: - container_name: glance - image: glanceapp/glance - restart: unless-stopped - volumes: - - ./config:/app/config - - ./assets:/app/assets - - /etc/localtime:/etc/localtime:ro - - /var/run/docker.sock:/var/run/docker.sock:ro - env_file: .env - labels: - - "traefik.enable=true" - - "traefik.http.routers.glance.rule=Host(`glance.workstation`)" - - "traefik.http.routers.glance.entrypoints=websecure" - - "traefik.http.routers.glance.tls=true" - - "traefik.http.services.glance.loadbalancer.server.port=8080" - - "traefik.http.routers.glance.tls.certresolver=le" - - networks: - - traefik-proxy - dns: - - 1.1.1.1 - - 8.8.8.8 -networks: - traefik-proxy: - external: true \ No newline at end of file diff --git a/homer/docker-compose.yaml b/homer-docker-compose.yaml similarity index 81% rename from homer/docker-compose.yaml rename to homer-docker-compose.yaml index d51126a..5b2b705 100644 --- a/homer/docker-compose.yaml +++ b/homer-docker-compose.yaml @@ -3,7 +3,7 @@ services: image: b4bz/homer container_name: homer volumes: - - ./config:/www/assets # Make sure your local config directory exists + - ./homer/config:/www/assets # Make sure your local config directory exists ports: - 8090:8080 # - 8080:8080 diff --git a/traefik/docker-compose.yaml b/traefik-docker-compose.yaml similarity index 61% rename from traefik/docker-compose.yaml rename to traefik-docker-compose.yaml index fcb174e..6d9385c 100644 --- a/traefik/docker-compose.yaml +++ b/traefik-docker-compose.yaml @@ -16,25 +16,25 @@ services: - "--entryPoints.web.http.redirections.entryPoint.scheme=https" - --serversTransport.insecureSkipVerify=true # Let's Encrypt configuration - - "--certificatesresolvers.le.acme.email=bobrovod@national.shitposting.agency" + - "--certificatesresolvers.le.acme.email=${EMAIL:-bobrovod@national.shitposting.agency}" - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json" - "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web" labels: - "traefik.enable=true" - - "traefik.http.routers.traefik.rule=Host(`traefik.workstation`)" - - "traefik.http.routers.traefik.entrypoints=websecure" - - "traefik.http.routers.traefik.service=api@internal" - - "traefik.http.routers.traefik.tls=true" - - "traefik.http.routers.traefik.tls.certresolver=le" + - "traefik.http.routers.${DASHBOARD_APPNAME:-traefik}.rule=Host(`${DASHBOARD_SUBDOMEN:-traefik}.${HOST:-workstation}`)" + - "traefik.http.routers.${DASHBOARD_APPNAME:-traefik}.entrypoints=websecure" + - "traefik.http.routers.${DASHBOARD_APPNAME:-traefik}.service=api@internal" + - "traefik.http.routers.${DASHBOARD_APPNAME:-traefik}.tls=true" + - "traefik.http.routers.${DASHBOARD_APPNAME:-traefik}.tls.certresolver=le" ports: - "80:80" - "443:443" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - - ./certs:/certs:ro - - ./dynamic:/etc/traefik/dynamic:ro - - ./letsencrypt:/letsencrypt + - ./traefik/certs:/certs:ro + - ./traefik/dynamic:/etc/traefik/dynamic:ro + - ./traefik/letsencrypt:/letsencrypt networks: - traefik-proxy networks: