95 lines
2.0 KiB
YAML
95 lines
2.0 KiB
YAML
name: whatido
|
|
|
|
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
POSTGRES_DB: whereldo
|
|
POSTGRES_USER: app
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
TZ: Europe/Moscow
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
- ./db/init.sql:/docker-entrypoint-initdb.d/init.sql
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U app -d whereldo"]
|
|
interval: 2s
|
|
timeout: 3s
|
|
retries: 10
|
|
|
|
app:
|
|
build: .
|
|
expose:
|
|
- "3003"
|
|
- "3443"
|
|
ports:
|
|
- "3003:3003"
|
|
- "3443:3443"
|
|
environment:
|
|
DATABASE_URL: postgres://app:${DB_PASSWORD}@db:5432/whereldo
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
|
|
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
|
|
NODE_ENV: production
|
|
TZ: Europe/Moscow
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
volumes:
|
|
- ./uploads:/app/uploads
|
|
|
|
# Публикация через Tailscale (Serve / Funnel) без проброса портов.
|
|
# Приложение доступно по https://whatido.<tailnet>.ts.net
|
|
tailscale:
|
|
image: tailscale/tailscale:latest
|
|
hostname: whatido
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
cap_add:
|
|
- NET_ADMIN
|
|
- SYS_MODULE
|
|
environment:
|
|
SSL_CERT_FILE: /etc/tailscale/app-certs/cert.pem
|
|
volumes:
|
|
- /var/lib/tailscale:/var/lib/tailscale
|
|
- /dev/net/tun:/dev/net/tun
|
|
- /lib/modules:/lib/modules:ro
|
|
- ./certs:/etc/tailscale/app-certs:ro
|
|
- ./start-tailscale.sh:/start-tailscale.sh:ro
|
|
command: ["/bin/sh", "/start-tailscale.sh"]
|
|
depends_on:
|
|
- app
|
|
|
|
|
|
text-corrector:
|
|
image: ghcr.io/ggml-org/llama.cpp:server
|
|
container_name: text-corrector
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
- ./models:/models
|
|
|
|
ports:
|
|
- "8080:8080"
|
|
|
|
command:
|
|
- -m
|
|
- /models/qwen2.5-1.5b-instruct-q4_k_m.gguf
|
|
- --host
|
|
- 0.0.0.0
|
|
- --port
|
|
- "8080"
|
|
- -c
|
|
- "4096"
|
|
- -n
|
|
- "256"
|
|
- -t
|
|
- "8"
|
|
- --temp
|
|
- "0.1"
|
|
|
|
|
|
|
|
|
|
volumes:
|
|
pgdata:
|