services: rybbit_clickhouse: mem_limit: 2g memswap_limit: 3g container_name: rybbit_clickhouse image: clickhouse/clickhouse-server:25.4.2 volumes: - /srv/appdata/rybbit/clickhouse:/var/lib/clickhouse - ./clickhouse_config:/etc/clickhouse-server/config.d:ro env_file: - /srv/docker/secrets/rybbit/.env healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8123/ping"] interval: 3s timeout: 5s retries: 5 start_period: 10s restart: unless-stopped networks: - internal tmpfs: - /sys rybbit_postgres: image: postgres:17.4 container_name: rybbit_postgres env_file: - /srv/docker/secrets/rybbit/.env volumes: - /srv/appdata/rybbit/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 3s timeout: 5s retries: 5 start_period: 10s restart: unless-stopped networks: - internal rybbit_backend: mem_limit: 1g memswap_limit: 1.5g image: ghcr.io/rybbit-io/rybbit-backend:latest container_name: rybbit_backend env_file: - /srv/docker/secrets/rybbit/.env environment: - NODE_ENV=production - CLICKHOUSE_HOST=http://rybbit_clickhouse:8123 - POSTGRES_HOST=rybbit_postgres - POSTGRES_PORT=5432 - BASE_URL=https://analytics.yoonect.com - DISABLE_SIGNUP=true depends_on: rybbit_clickhouse: condition: service_healthy rybbit_postgres: condition: service_healthy healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3001/api/health"] interval: 3s timeout: 5s retries: 5 start_period: 10s restart: unless-stopped networks: internal: npm_proxy: ipv4_address: 192.168.98.20 rybbit_client: image: ghcr.io/rybbit-io/rybbit-client:latest container_name: rybbit_client environment: - NODE_ENV=production - NEXT_PUBLIC_BACKEND_URL=https://analytics.yoonect.com - NEXT_PUBLIC_DISABLE_SIGNUP=true depends_on: - rybbit_backend restart: unless-stopped networks: internal: npm_proxy: ipv4_address: 192.168.98.21 networks: internal: driver: bridge npm_proxy: external: true