-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration
🌐 English · Deutsch
All settings are managed in the WebUI and stored in the SQLite database (app_settings table). A .env file is no longer required.
Migration: If a legacy
~/.aniworld/.envstill exists, its values are imported into the database once on first start (existing DB values are never overwritten). Afterwards the file can be deleted directly from the UI under Settings → Legacy .env.
On startup the app additionally exports all stored DB settings into the process environment (ANIWORLD_*), so both paths behave identically internally. Environment variables remain useful for initial configuration via Docker — values saved from the UI take precedence.

| Setting | DB key | Env variable | Default | Description |
|---|---|---|---|---|
| Download path | download_path |
ANIWORLD_DOWNLOAD_PATH |
~/Downloads |
Base folder for all downloads |
| Language separation | lang_separation |
ANIWORLD_LANG_SEPARATION |
0 |
One subfolder per language (german-dub, english-sub, …) |
| Disable English Sub | disable_english_sub |
ANIWORLD_DISABLE_ENGLISH_SUB |
0 |
Hides English Sub (relevant for "All Languages" sync) |
| FilmPalast subfolder | filmpalast_movie_subfolder |
FILMPALAST_MOVIE_SUBFOLDER |
0 |
Put movies into their own subfolder |
| Default language | download_language |
ANIWORLD_LANGUAGE |
German Dub |
Preselection for downloads |
| Default provider | download_provider |
ANIWORLD_PROVIDER |
VOE |
Preselection for downloads |
| Naming template | naming_template |
ANIWORLD_NAMING_TEMPLATE |
see below | File naming scheme |
| Web base URL | web_base_url |
ANIWORLD_WEB_BASE_URL |
empty | Public URL behind a reverse proxy (enables secure cookies for https://) |
| Debug mode | debug_mode |
ANIWORLD_DEBUG_MODE |
0 |
Verbose logging |
Default:
{title} ({year}) [imdbid-{imdbid}]/Season {season}/{title} S{season}E{episode}.mkv
Available placeholders: {title}, {year}, {imdbid}, {season}, {episode}. The scheme is Jellyfin/Plex-compatible (folder per series, Season XX subfolders, SxxExx file names).
| Setting | DB key | Default | Values |
|---|---|---|---|
| Sync interval | sync_schedule |
0 (off) |
1min, 30min, 1h, 2h, 4h, 8h, 12h, 16h, 24h
|
| Schedule mode | sync_mode |
interval |
interval or weekly
|
| Weekdays (weekly) | sync_days |
0,1,2,3,4,5,6 |
Comma list, 0=Mon … 6=Sun |
| Times (weekly) | sync_times |
06:00 |
Comma list HH:MM, one or more |
| Sync language | sync_language |
German Dub |
All languages + All Languages
|
| Sync provider | sync_provider |
VOE |
Active providers |
| Path unavailable action | sync_path_unavailable_action |
skip |
skip or hold
|
| Error retries | sync_error_retries |
0 |
0–10 |
| Retry delay | sync_error_retry_time |
5min |
0min–5min
|
In weekly mode, sync_days + sync_times replace the fixed interval; a job then runs on the selected weekdays at each configured time (caught up if the app was off at that time). How it all works: AutoSync.
| Setting | DB key | Default | Values |
|---|---|---|---|
| Retention | history_retention_days |
30 |
0 (unlimited), 7, 30, 90, 180, 365 (days) |
History entries older than the selected period are deleted automatically (cleanup runs roughly hourly in the background). Details: Download History.
Named extra paths (e.g. a NAS mount) can be created under Settings. Downloads and AutoSync jobs can then pick a custom path per job. Paths in use by queue entries or sync jobs cannot be deleted.
If your ISP's DNS blocks the streaming sites, an alternative resolver can be selected — takes effect immediately, no restart:
| Mode | Server |
|---|---|
system |
Operating system DNS (default) |
cloudflare |
1.1.1.1 (DoH) |
google |
8.8.8.8 (DoH) |
quad9 |
9.9.9.9 (DoH) |
custom |
Your own server IP |
The switch works on two levels: the app's HTTP requests use DNS-over-HTTPS (niquests), and socket.getaddrinfo is patched so subprocesses like FFmpeg use the chosen server too. A built-in DNS test checks reachability of aniworld.to, s.to and filmpalast.to.
| Setting | DB key / env | Default | Description |
|---|---|---|---|
| Hard timeout |
watchdog_hang_timeout / ANIWORLD_HANG_TIMEOUT
|
1800 s |
Maximum total duration of one episode download |
| Stall timeout |
watchdog_stall_timeout / ANIWORLD_STALL_TIMEOUT
|
3600 s |
Abort when no progress for this long |
Some options exist only as environment variables (mostly relevant for Docker):
| Variable | Description |
|---|---|
ANIWORLD_WEB_ADMIN_USER / ANIWORLD_WEB_ADMIN_PASS
|
Auto-create the admin account on first start |
ANIWORLD_HTTPS |
1 = force secure cookies (behind a TLS proxy) |
ANIWORLD_REDIS_URL |
Redis storage for the login rate limit (in-memory otherwise) |
ANIWORLD_VAPID_PRIVATE_KEY / ANIWORLD_VAPID_PUBLIC_KEY / ANIWORLD_VAPID_CLAIMS_EMAIL
|
Custom Web Push keys (auto-generated otherwise) |
ANIWORLD_INSTALL_FOLDER |
Location for auto-downloaded binaries (default ~/.aniworld) |
Other settings areas have dedicated pages: Authentication (SSO/OIDC), Notifications, Integrations (Jellyfin/Plex/Seerr/MediaScan/CineInfo), Encoding and Anime4K Upscaling.
🇬🇧 English
Users
- Installation
- Getting Started
- Configuration
- Web UI
- Download System
- Download History
- AutoSync
- Calendar
- Library
- Authentication
- Notifications
- Integrations
- SyncPlay
- Anime4K Upscaling
- Encoding
- Docker
- Supported Sites
Developers