# ProxiTok - TikTok frontend
# Port: 8080
# Privacy-respecting TikTok viewer

version: "3.9"
services:
  redis:
    image: redis
    command: redis-server --save 60 1 --loglevel warning
    container_name: ProxiTok-REDIS
    hostname: proxitok-redis
    mem_limit: 256m
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    read_only: true
    user: 1000:1000
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping || exit 1"]
    restart: on-failure:5

  signer:
    image: ghcr.io/pablouser1/signtok:master
    container_name: ProxiTok-SIGNER
    hostname: proxitok-signer
    mem_limit: 512m
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    read_only: true
    user: 1000:1000
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:8080/ || exit 1
    restart: on-failure:5

  proxitok:
    image: ghcr.io/pablouser1/proxitok:master
    container_name: ProxiTok
    hostname: proxitok
    mem_limit: 1g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    healthcheck:
      test: stat /etc/passwd || exit 1
    ports:
      - 9770:80
    volumes:
      - proxitok-cache:/cache
    environment:
      LATTE_CACHE: /cache
      API_CACHE: redis
      REDIS_HOST: proxitok-redis
      REDIS_PORT: 6379
      API_SIGNER: remote
      API_SIGNER_URL: http://proxitok-signer:8080/signature
    restart: on-failure:5
    depends_on:
      redis:
        condition: service_healthy
      signer:
        condition: service_healthy

volumes:
  proxitok-cache:
