Skip to main content

Configuration

Environment variables​

kinora reads its settings from the environment. With Docker Compose, put them in .env.

VariableDefaultDescription
TMDB_API_KEYrequiredTMDB v3 API key or v4 read access token.
DATABASE_URLrequiredPostgreSQL connection string, postgres://user:password@host:5432/kinora?sslmode=disable. Docker Compose sets it to its own postgres service.
ADDR:8080Address the server listens on.
APP_ENVproductionWhere the Android TV app looks for updates: production uses the latest GitHub release, development the APK built locally. See Android TV.
UI_DEV_URLDevelopment only: proxies the UI to an Expo dev server. See Development.
TRUSTED_PROXIESloopback and private networksComma separated CIDRs of the reverse proxies whose X-Forwarded-For header gives the client IP, for the failed login lockout. If kinora's port is reachable from the internet without a reverse proxy in front, set it to your proxy's address only (for example 127.0.0.1/32), otherwise anyone can forge their IP.

Instance settings​

Everything else is set by an admin from the Account page, and applies without a restart:

  • Language of the instance (French or English).
  • FlareSolverr server address.
  • Check for updates of the Android TV app.

Each profile can turn off the skip intro and skip credits buttons.

FlareSolverr​

Some sites protect themselves with a Cloudflare challenge. kinora only queries them if an admin sets a FlareSolverr server. A challenged request goes through FlareSolverr once, then kinora reuses the cf_clearance cookie it got directly for that domain, until the next challenge.

The docker-compose.yml already runs a flaresolverr service. To use it, go to Account > FlareSolverr and enter:

http://flaresolverr:8191

If you don't need these sites, remove the flaresolverr service from docker-compose.yml.

Site domains​

Streaming sites change domains often. kinora syncs them every 6 hours from a sites.json per language: vStream's for French (updated by their team several times a week), and internal/scraper/en/sites.json from the kinora repository for English. There is nothing to configure.