version: "3.0" # # updated: 2023-10-13 # stack: hyperpiped # networks: hyperpipe: name: hyperpipe driver: bridge enable_ipv6: true traefik: external: true services: piped-db: extends: file: ./_vm/common.yml service: x-common user: 0:0 cap_add: - DAC_OVERRIDE - CHOWN - FOWNER - FSETID - SETGID - SETUID - NET_BIND_SERVICE - MKNOD container_name: piped-db hostname: piped-db image: postgres:16 restart: unless-stopped ports: - "${VM_PORT_PIPED_DB}:5432" expose: - "5432" networks: - hyperpipe - traefik healthcheck: test: ["CMD", "pg_isready", "-q", "-d", "piped", "-U", "root"] environment: POSTGRES_DB: piped POSTGRES_USER: root POSTGRES_PASSWORD: xxx labels: com.stack.name: "piped" com.stack.service.name: "db" deploy: resources: limits: cpus: "8.0" memory: 4G tmpfs: - /tmp:rw,exec,size=1G volumes: - ./datas/db:/var/lib/postgresql/data:rw sysctls: net.core.somaxconn: 8192 net.ipv4.tcp_syncookies: 0 piped-proxy: extends: file: ./_vm/host.yml service: x-host read_only: true container_name: piped-proxy hostname: piped-proxy image: 1337kavin/piped-proxy:latest restart: unless-stopped ports: - "${VM_PORT_PIPED_PROXY}:80" expose: - "80" networks: - hyperpipe - traefik healthcheck: test: uname -a || exit 1 environment: UDS: 1 labels: com.stack.name: "piped" com.stack.service.name: "proxy" deploy: resources: limits: cpus: "8.0" memory: 4G pids: 8192 tmpfs: - /tmp:rw,exec,size=1G volumes: - ./datas/piped/proxy:/app/socket:rw sysctls: net.core.somaxconn: 8192 net.ipv4.tcp_syncookies: 0 piped-back: extends: file: ./_vm/host.yml service: x-host user: 0:0 cap_add: - DAC_OVERRIDE - CHOWN - FOWNER - FSETID - SETGID - SETUID - NET_BIND_SERVICE - MKNOD container_name: piped-back hostname: piped-back image: 1337kavin/piped:latest restart: unless-stopped ports: - "${VM_PORT_PIPED_BACK}:8080" expose: - "8080" networks: - hyperpipe - traefik depends_on: piped-db: condition: service_healthy piped-proxy: condition: service_healthy healthcheck: test: curl --fail http://localhost:8080/ || exit 1 environment: DSN: "" labels: com.stack.name: "piped" com.stack.service.name: "back" deploy: resources: limits: cpus: "8.0" memory: 4G pids: 8192 tmpfs: - /tmp:rw,exec,size=1G volumes: - ./conf/piped/backend.conf:/app/config.properties:ro sysctls: net.core.somaxconn: 8192 net.ipv4.tcp_syncookies: 0 piped-front: extends: file: ./_vm/host.yml service: x-host user: 0:0 cap_add: - DAC_OVERRIDE - CHOWN - FOWNER - FSETID - SETGID - SETUID - NET_BIND_SERVICE - MKNOD container_name: piped-front hostname: piped-front image: 1337kavin/piped-frontend:latest restart: unless-stopped ports: - "${VM_PORT_PIPED_FRONT}:80" expose: - "80" networks: - hyperpipe - traefik depends_on: piped-back: condition: service_healthy healthcheck: test: wget --no-verbose --tries=1 --spider http://localhost:80 entrypoint: ash -c 'sed -i s/pipedapi.kavin.rocks/pipedapi.domain.com/g /usr/share/nginx/html/assets/* && /docker-entrypoint.sh && nginx -g "daemon off;"' labels: com.stack.name: "piped" com.stack.service.name: "front" deploy: resources: limits: cpus: "8.0" memory: 4G pids: 8192 tmpfs: - /tmp:rw,exec,size=1G sysctls: net.core.somaxconn: 8192 net.ipv4.tcp_syncookies: 0 hyperpipe-nginx: extends: file: ./_vm/host.yml service: x-host user: 0:0 cap_add: - CHOWN - DAC_OVERRIDE - FOWNER - FSETID - SETGID - SETUID - NET_BIND_SERVICE - MKNOD - SETPCAP - SYS_ADMIN container_name: hyperpipe-nginx hostname: hyperpipe-nginx image: registry.domain.com/zogg/nginx:latest restart: unless-stopped depends_on: piped-db: condition: service_healthy piped-back: condition: service_healthy piped-front: condition: service_healthy piped-proxy: condition: service_healthy ports: - "${VM_PORT_HYPERPIPE_NGINX}:80" expose: - "80" networks: - hyperpipe - traefik healthcheck: test: curl --fail http://localhost:80/ || exit 1 start_period: 120s labels: com.stack.name: "hyperpipe" com.stack.service.name: "nginx" deploy: resources: limits: cpus: "8.0" memory: 4G pids: 8192 tmpfs: - /tmp:rw,exec,size=1G volumes: - ./conf/hyperpipe/nginx.conf:/etc/nginx/nginx.conf:ro - ./conf/piped/api.conf:/etc/nginx/conf.d/pipedapi.conf:ro - ./conf/piped/proxy.conf:/etc/nginx/conf.d/pipedproxy.conf:ro - ./conf/piped/frontend.conf:/etc/nginx/conf.d/pipedfrontend.conf:ro - ./conf/hyperpipe/youtube.conf:/etc/nginx/snippets/ytproxy.conf:ro - ./datas/piped/proxy:/var/run/ytproxy:rw sysctls: net.core.somaxconn: 8192 net.ipv4.tcp_syncookies: 0 hyperpipe-back: extends: file: ./_vm/host.yml service: x-host container_name: hyperpipe-back hostname: hyperpipe-back image: codeberg.org/hyperpipe/hyperpipe-backend:latest restart: unless-stopped depends_on: hyperpipe-nginx: condition: service_healthy ports: - "${VM_PORT_HYPERPIPE_BACK}:3000" expose: - "3000" networks: - hyperpipe - traefik environment: HYP_PROXY: "ytproxy.domain.com" labels: com.stack.name: "hyperpipe" com.stack.service.name: "back" deploy: resources: limits: cpus: "8.0" memory: 4G pids: 8192 tmpfs: - /tmp:rw,exec,size=1G sysctls: net.core.somaxconn: 8192 net.ipv4.tcp_syncookies: 0 hyperpipe-front: extends: file: ./_vm/host.yml service: x-host user: 0:0 cap_add: - DAC_OVERRIDE - CHOWN - FOWNER - FSETID - SETGID - SETUID - NET_BIND_SERVICE - MKNOD container_name: hyperpipe-front hostname: hyperpipe-front image: codeberg.org/hyperpipe/hyperpipe:latest restart: unless-stopped depends_on: hyperpipe-back: condition: service_started ports: - "${VM_PORT_HYPERPIPE_FRONT}:80" expose: - "80" networks: - hyperpipe - traefik healthcheck: test: wget --no-verbose --tries=1 --spider http://localhost entrypoint: sh -c 'find /usr/share/nginx/html -type f -exec sed -i s/pipedapi.kavin.rocks/pipedapi.domain.com/g {} \; -exec sed -i s/hyperpipeapi.onrender.com/hyperpipeapi.domain.com/g {} \; && /docker-entrypoint.sh && nginx -g "daemon off;"' labels: com.stack.name: "hyperpipe" com.stack.service.name: "front" deploy: resources: limits: cpus: "8.0" memory: 4G pids: 8192 tmpfs: - /tmp:rw,exec,size=1G sysctls: net.core.somaxconn: 8192 net.ipv4.tcp_syncookies: 0