name: iptv networks: iptvc-network: driver: bridge x-common-attributes: &common-attributes restart: unless-stopped volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro extra_hosts: [host.docker.internal:host-gateway] networks: [iptvc-network] logging: driver: "json-file" options: max-file: 5 max-size: 50m services: iptvc: <<: *common-attributes container_name: iptvc image: git.axenov.dev/iptv/iptvc:latest build: context: ./iptvc dockerfile: Dockerfile env_file: [.env] command: ["serve", "--check", "--repeat", "0"] ports: [8800:8800] volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - ./playlists.ini:/app/playlists.ini:ro - ./channels.json:/app/channels.json:ro - ./config.yml:/app/config.yml:ro depends_on: [keydb] docs: <<: *common-attributes container_name: iptv-docs image: git.axenov.dev/iptv/iptv-docs:latest build: context: ./docs dockerfile: Dockerfile ports: [8801:8801] keydb: <<: *common-attributes container_name: iptv-keydb image: eqalpha/keydb:latest pull_policy: always user: ${KEYDB_UID}:${KEYDB_GID} entrypoint: ["sh", "/entrypoint.sh"] volumes: - ./docker/keydb/entrypoint.sh:/entrypoint.sh - ./docker/keydb/keydb.conf:/etc/keydb/keydb.conf - ./docker/keydb/data/:/data:rw ports: [${KEYDB_PORT:-6379}:6379]