Configuration
You can specify configuration options via environment variables. Each option is documented below with what it does and a default (if any).
Ryot serves the final configuration loaded at the /backend/config endpoint as JSON (example). Sensitive variables are redacted.
Important parameters
| Environment variable | Description |
|---|---|
TZ | Timezone to be used for cron jobs. Accepts values according to the IANA database. Defaults to GMT. |
DISABLE_TELEMETRY | Disables telemetry collection using Umami. Defaults to false. |
DATABASE_URL | The Postgres database connection string. |
MOVIES_AND_SHOWS_TMDB_ACCESS_TOKEN | The access token issued by TMDB. Required to enable movies and shows tracking. More information |
VIDEO_GAMES_TWITCH_CLIENT_ID | The client ID issued by Twitch. Required to enable video games tracking. More information |
VIDEO_GAMES_TWITCH_CLIENT_SECRET | The client secret issued by Twitch. Required to enable video games tracking. |
SERVER_IMPORTER_TRAKT_CLIENT_ID | The client ID issued by Trakt. Required to enable Trakt import. More information |
ANIME_AND_MANGA_MAL_CLIENT_ID | The client ID issued by MyAnimeList. Required to enable MyAnimeList import. More information |
Health endpoint
The /health endpoint can be used for checking service healthiness. More information here.
All parameters
Please refer to the @env annotations to know which environment variable to use for a given configuration option.
yaml
# Settings related to anime and manga.
anime_and_manga:
# Settings related to Anilist.
anilist: {}
# Settings related to MAL.
mal:
# The client ID to be used for the MAL API.
# @env ANIME_AND_MANGA_MAL_CLIENT_ID
client_id: ""
# Settings related to MangaUpdates.
manga_updates: {}
# Settings related to audio books.
audio_books:
# Settings related to Audible.
audible: {}
# Settings related to books.
books:
# Settings related to Google Books.
google_books:
# The API key to be used for the Google Books API.
# @env BOOKS_GOOGLE_BOOKS_API_KEY
api_key: ""
# Settings related to Hardcover.
hardcover:
# The API key to be used.
# @env BOOKS_HARDCOVER_API_KEY
api_key: ""
# Settings related to Openlibrary.
openlibrary:
# The image sizes to fetch from Openlibrary.
# @env BOOKS_OPENLIBRARY_COVER_IMAGE_SIZE
# @values "S" | "M" | "L"
cover_image_size: "M"
# The database related settings.
database:
# The Postgres database connection string.
# Format described in https://www.sea-ql.org/SeaORM/docs/install-and-config/connection/#postgres.
# @env DATABASE_URL
url: ""
# Whether to disable telemetry.
# @env DISABLE_TELEMETRY
disable_telemetry: false
# Settings related to exercises.
exercise: {}
# Settings related to file storage.
file_storage:
# The access key ID for the S3 compatible file storage. **Required** to
# enable file storage.
# @env FILE_STORAGE_S3_ACCESS_KEY_ID
s3_access_key_id: ""
# The name of the S3 compatible bucket. **Required** to enable file storage.
# @env FILE_STORAGE_S3_BUCKET_NAME
s3_bucket_name: ""
# The region for the S3 compatible file storage.
# @env FILE_STORAGE_S3_REGION
s3_region: "us-east-1"
# The secret access key for the S3 compatible file storage. **Required**
# to enable file storage.
# @env FILE_STORAGE_S3_SECRET_ACCESS_KEY
s3_secret_access_key: ""
# The URL for the S3 compatible file storage.
# @env FILE_STORAGE_S3_URL
s3_url: ""
# Settings related to frontend storage.
frontend:
# A message to be displayed on the dashboard.
# @env FRONTEND_DASHBOARD_MESSAGE
dashboard_message: ""
# The button label for OIDC authentication.
# @env FRONTEND_OIDC_BUTTON_LABEL
oidc_button_label: "Continue with OpenID Connect"
# Settings related to Umami analytics.
umami:
# For example: https://umami.is/script.js.
# @env FRONTEND_UMAMI_SCRIPT_URL
script_url: ""
# @env FRONTEND_UMAMI_WEBSITE_ID
website_id: ""
# Used as the base URL when generating item links for the frontend.
# @env FRONTEND_URL
url: "https://app.ryot.io"
# Settings related to movies and shows.
movies_and_shows:
# Settings related to TMDB.
tmdb:
# The access token for the TMDB API.
# @env MOVIES_AND_SHOWS_TMDB_ACCESS_TOKEN
access_token: ""
# Settings related to TVDB.
tvdb:
# The API key for the TVDB API.
# @env MOVIES_AND_SHOWS_TVDB_API_KEY
api_key: ""
# Settings related to music.
music:
# Settings related to Spotify.
spotify:
# The client ID for the Spotify API.
# @env MUSIC_SPOTIFY_CLIENT_ID
client_id: ""
# The client secret for the Spotify API.
# @env MUSIC_SPOTIFY_CLIENT_SECRET
client_secret: ""
# Settings related to podcasts.
podcasts:
# Settings related to iTunes.
itunes: {}
# Settings related to Listennotes.
listennotes:
# The access token for the Listennotes API.
# @env PODCASTS_LISTENNOTES_API_TOKEN
api_token: ""
# Settings related to scheduler.
scheduler:
# English expression for frequent cron tasks (syncing integrations, workout revisions).
# Uses https://github.com/kaplanelad/english-to-cron.
# @env SCHEDULER_FREQUENT_CRON_JOBS_SCHEDULE
frequent_cron_jobs_schedule: "every 5 minutes"
# English expression for infrequent cron jobs (cleaning up data, refreshing calendar).
# Uses https://github.com/kaplanelad/english-to-cron.
# @env SCHEDULER_INFREQUENT_CRON_JOBS_SCHEDULE
infrequent_cron_jobs_schedule: "every midnight"
# Settings related to server.
server:
# An access token that can be used for admin operations.
# @env SERVER_ADMIN_ACCESS_TOKEN
admin_access_token: ""
# The host address to bind the backend server to.
# @env SERVER_BACKEND_HOST
backend_host: "0.0.0.0"
# The port number to bind the backend server to.
# @env SERVER_BACKEND_PORT
backend_port: 5000
# An array of URLs for CORS.
# @env SERVER_CORS_ORIGINS
cors_origins: []
# Disable all background jobs.
# @env SERVER_DISABLE_BACKGROUND_JOBS
disable_background_jobs: false
# Whether the graphql playground will be enabled.
# @env SERVER_GRAPHQL_PLAYGROUND_ENABLED
graphql_playground_enabled: true
# The importer related settings.
importer:
# The client ID for the Trakt importer. **Required** to enable Trakt importer.
# @env SERVER_IMPORTER_TRAKT_CLIENT_ID
trakt_client_id: ""
# Whether this is a demo instance.
# @env SERVER_IS_DEMO_INSTANCE
is_demo_instance: false
# The maximum file size in MB for user uploads.
# @env SERVER_MAX_FILE_SIZE_MB
max_file_size_mb: 70
# The OIDC related settings.
oidc:
# @env SERVER_OIDC_CLIENT_ID
client_id: ""
# @env SERVER_OIDC_CLIENT_SECRET
client_secret: ""
# @env SERVER_OIDC_ISSUER_URL
issuer_url: ""
# The key that can be used to enable Ryot Pro features.
# @env SERVER_PRO_KEY
pro_key: ""
# The hours in which a media can be marked as seen again for a user. This
# is used so that the same media can not be used marked as started when
# it has been already marked as seen in the last `n` hours.
# @env SERVER_PROGRESS_UPDATE_THRESHOLD
progress_update_threshold: 2
# Number of seconds to sleep before starting the server.
# @env SERVER_SLEEP_BEFORE_STARTUP_SECONDS
sleep_before_startup_seconds: 0
# The mailer related settings.
smtp:
# @env SERVER_SMTP_MAILBOX
mailbox: "Ryot <[email protected]>"
# @env SERVER_SMTP_PASSWORD
password: ""
# @env SERVER_SMTP_SERVER
server: ""
# @env SERVER_SMTP_USER
user: ""
# Timezone to be used for date time operations.
# @env TZ
tz: "Etc/GMT"
# Settings related to users.
users:
# Whether new users will be allowed to sign up to this instance.
# @env USERS_ALLOW_REGISTRATION
allow_registration: true
# Whether to disable local user authentication completely.
# @env USERS_DISABLE_LOCAL_AUTH
disable_local_auth: false
# The number of days till login authentication token is valid.
# @env USERS_TOKEN_VALID_FOR_DAYS
token_valid_for_days: 90
# Settings related to video games.
video_games:
# Settings related to GiantBomb.
giant_bomb:
# The API key to be used for the GiantBomb API.
# @env VIDEO_GAMES_GIANT_BOMB_API_KEY
api_key: ""
# Settings related to IGDB.
igdb:
# The image sizes to fetch from IGDB.
# @env VIDEO_GAMES_IGDB_IMAGE_SIZE
# @values "t_original"
image_size: "t_original"
# Settings related to Twitch.
twitch:
# The client ID issues by Twitch. **Required** to enable video games
# tracking. [More information](/docs/guides/video-games.md).
# @env VIDEO_GAMES_TWITCH_CLIENT_ID
client_id: ""
# The client secret issued by Twitch. **Required** to enable video games
# tracking.
# @env VIDEO_GAMES_TWITCH_CLIENT_SECRET
client_secret: ""
# Settings related to visual novels.
visual_novels: {}