Files
appks/docker-compose.yaml
zhenyi b797e360c0 feat(registry): add service discovery and health check capabilities
- Integrate tonic-health for gRPC service health monitoring
- Add etcd-based service registration with automatic keep-alive
- Implement dynamic configuration loading from etcd with fallback
- Remove external dependencies from docker-compose for simplified deployment
- Refactor service registration logic with improved lease management
- Add health service to gRPC server with serving status reporting
2026-06-11 22:50:40 +08:00

86 lines
2.7 KiB
YAML

x-appks-env: &appks-env
RUST_LOG: info
APP_HTTP_HOST: 0.0.0.0
APP_HTTP_PORT: 8000
APP_HTTP_WORKERS: 2
APP_HTTP_JSON_LIMIT_BYTES: 10485760
APP_URL: http://localhost:8000
APP_MAIN_DOMAIN: localhost
APP_SESSION_SECRET: TC5uuvxDNHLNm-BjZVhHtObtdF1oLL6bPmYlmwbNaGWe00mpWiT2uBJbeFrNYumi4UGI7sVBn83mLTIeKxfHEg
APP_SESSION_COOKIE_NAME: sid
APP_SESSION_COOKIE_SECURE: "false"
APP_SESSION_COOKIE_HTTP_ONLY: "true"
APP_SESSION_COOKIE_SAME_SITE: Lax
APP_SESSION_COOKIE_PATH: /
APP_SESSION_TTL_SECS: 86400
APP_SESSION_MAX_AGE_SECS: 86400
APP_DATABASE_URL: postgres://appks:appks@postgres:5432/appks
DATABASE_URL: postgres://appks:appks@postgres:5432/appks
APP_DATABASE_MAX_CONNECTIONS: 10
APP_DATABASE_MIN_CONNECTIONS: 2
APP_DATABASE_IDLE_TIMEOUT: 600
APP_DATABASE_MAX_LIFETIME: 3600
APP_DATABASE_CONNECTION_TIMEOUT: 8
APP_DATABASE_RETRY_ATTEMPTS: 3
APP_DATABASE_RETRY_DELAY: 5
APP_REDIS_CLUSTER_ENABLED: "true"
APP_REDIS_CLUSTER_NODES: redis://redis-node-0:6379,redis://redis-node-1:6379,redis://redis-node-2:6379,redis://redis-node-3:6379,redis://redis-node-4:6379,redis://redis-node-5:6379
APP_REDIS_READ_FROM_REPLICAS: "false"
APP_REDIS_MAX_CONNECTIONS: 20
APP_REDIS_MIN_CONNECTIONS: 2
APP_REDIS_IDLE_TIMEOUT: 300
APP_REDIS_CONNECTION_TIMEOUT: 5
APP_REDIS_MAX_RETRIES: 3
APP_REDIS_RETRY_DELAY_MS: 100
APP_REDIS_TLS_ENABLED: "false"
APP_REDIS_KEY_PREFIX: "appks:"
APP_ETCD_ENDPOINTS: http://etcd:2379
APP_ETCD_KEY_PREFIX: /appks/
APP_ETCD_CONNECT_TIMEOUT: 5
APP_ETCD_REQUEST_TIMEOUT: 10
APP_ETCD_KEEP_ALIVE_INTERVAL: 10
APP_ETCD_LEASE_TTL: 15
APP_ETCD_MAX_RETRIES: 3
APP_ETCD_REGISTER_SELF: "true"
APP_NATS_URL: nats://nats:4222
APP_NATS_CONNECTION_TIMEOUT: 5
APP_NATS_PING_INTERVAL: 20
APP_NATS_RECONNECT_DELAY: 2
APP_NATS_MAX_RECONNECTS: 60
APP_NATS_STREAM_PREFIX: APPKS
APP_NATS_ACK_WAIT_SECS: 30
APP_NATS_MAX_DELIVER: 5
APP_S3_ENDPOINT: http://minio:9000
APP_S3_REGION: us-east-1
APP_S3_ACCESS_KEY: admin
APP_S3_SECRET_KEY: mysecret123
APP_S3_BUCKET: appks
APP_S3_PATH_STYLE: "true"
APP_S3_FORCE_PATH_STYLE: "true"
APP_S3_PUBLIC_URL: http://localhost:9000/appks
APP_S3_MAX_CONNECTIONS: 50
APP_S3_IDLE_TIMEOUT: 90
APP_S3_CONNECTION_TIMEOUT: 10
APP_S3_MAX_RETRIES: 3
APP_S3_UPLOAD_PART_SIZE: 8388608
APP_S3_MAX_UPLOAD_SIZE: 104857600
APP_S3_PRESIGNED_URL_EXPIRY: 3600
APP_LRU_DEFAULT_CAPACITY: 1000
APP_LRU_DEFAULT_TTL_SECS: 300
APP_LRU_CLEANUP_INTERVAL_SECS: 60
APP_RPC_SELF_HOST: 0.0.0.0
APP_RPC_SELF_PORT: 50049
APP_RPC_SELF_REFLECTION: "false"
APP_RPC_SELF_SERVICE_NAME: appks
APP_RPC_DEFAULT_TIMEOUT_SECS: 10
services:
appks:
image: appks
restart: unless-stopped
ports:
- "8000:8000"
- "50049:50049"
environment:
<<: *appks-env