A single repo for Kometa support utilities.
One repo, one deployment.
This repository publishes Docker images for its locally maintained utility services:
ghcr.io/kometa-team/anidb-mirrorghcr.io/kometa-team/plex-oauthghcr.io/kometa-team/trakt-oauthghcr.io/kometa-team/mal-oauthghcr.io/kometa-team/simkl-oauthghcr.io/kometa-team/simkl-serviceghcr.io/kometa-team/imdb-service
The base docker-compose.yml uses those published GHCR images.
For local development, docker-compose.override.yml is automatically picked up by Docker Compose and switches those same services back to local build: contexts. In practice that means:
- server/production usage pulls published images by default
- local development builds from source by default
If you want to force a local rebuild, use:
docker compose up -d --buildFor imdb-service, the Playwright/browser layer now lives in a separate base image so code-only updates stay small. To rebuild both the IMDb base image and the app image locally in one step, use:
./imdb-service/build-local.shOptional overrides:
BASE_IMAGE=ghcr.io/kometa-team/imdb-service-base:dev \
APP_IMAGE=ghcr.io/kometa-team/imdb-service:dev \
./imdb-service/build-local.shThe repository includes two Docker-related GitHub Actions workflows:
- Pull requests to
main: build the utility images for validation only - Pushes to
main: build and publish the utility images to GHCR
Relevant workflow files:
.github/workflows/docker-pr-build.yml.github/workflows/docker-build.yml.github/workflows/deploy.yml
This lets contributors verify Docker changes in PRs while keeping image publishing limited to the main branch.
The repository also includes a deployment workflow that connects to the remote server over SSH after the Docker Builds workflow completes successfully on main.
The workflow:
- pulls the latest Git branch on the server
- runs
docker compose pull - runs
docker compose up -d - prunes dangling Docker images
Required GitHub Actions secrets:
DEPLOY_HOSTDEPLOY_USERDEPLOY_SSH_KEYDEPLOY_PROJECT_DIR
Optional secrets:
DEPLOY_PORT(defaults to22)DEPLOY_BRANCH(defaults tomain)
The IMDb parental guide fetch path supports optional proxy rotation so repeated browser-backed parental requests do not all originate from the same IP.
Supported environment variables for imdb-service:
PARENTAL_PROXY_ENABLEDPARENTAL_PROXY_URLSPARENTAL_PROXY_RETRY_COUNTPARENTAL_PROXY_BAN_TTL_MINUTES
Example:
PARENTAL_PROXY_ENABLED=true
PARENTAL_PROXY_URLS=http://user:pass@proxy1.example.com:8080,http://user:pass@proxy2.example.com:8080
PARENTAL_PROXY_RETRY_COUNT=2
PARENTAL_PROXY_BAN_TTL_MINUTES=30Notes:
- proxy rotation is used only for IMDb parental guide fetches
- failed proxies are temporarily cooled down in-process before reuse
- cached parental guide data is still preferred, so proxy usage should stay low in normal operation
- for docker compose deployments, put these values in the server-side
.envfile rather than committing credentials intodocker-compose.yml
Example server-side .env values:
PARENTAL_PROXY_ENABLED=true
PARENTAL_PROXY_URLS=http://username:password@proxy-host:port
PARENTAL_PROXY_RETRY_COUNT=1
PARENTAL_PROXY_BAN_TTL_MINUTES=30