| Status | Stable | Preview | Discord Support |
|---|---|---|---|
Run Suwayomi-Server inside docker container as non-root user. The server will be running on http://localhost:4567 open this url in your browser.
Docker Releases - https://github.com/Suwayomi/Suwayomi-Server-docker/pkgs/container/suwayomi-server
Dockerfile - https://github.com/Suwayomi/Suwayomi-Server-docker
Suwayomi data location - /home/suwayomi/.local/share/Tachidesk
Docker images are mutli-arch (linux/amd64, linux/arm64/v8, linux/ppc64le, linux/s390x, linux/riscv64) and has small size based on Ubuntu linux.
Logs are sent to stdout.
This allows docker to manage the logs; view them using docker logs --tail=1000 <container name> or if using the docker-compose file docker compose logs --tail=1000 suwayomi.
By default, docker stores logs indefinitely, you can set up logging globally or edit the compose file with a logging driver.
Use the template docker-compose.yml in this repo for creating and starting tachidesk docker container.
Caution
Providing an environment variable will overwrite the current setting value when starting the container.
Tip
Most of the time you don't need to use environment variables, instead settings can be changed during runtime via the webUI. (which will be rendered useless when providing an environment variable)
Note
See server-reference.conf in the Suwayomi-Server repository for the default values
There are a number of environment variables available to configure Suwayomi:
| Variable | Server Default | Description |
|---|---|---|
| TZ | Etc/UTC |
What time zone the container thinks it is. |
| BIND_IP | 0.0.0.0 |
The interface to listen on, inside the container. You almost never want to change this. |
| BIND_PORT | 4567 |
Which port Suwayomi will listen on |
| SOCKS_PROXY_ENABLED | false |
Whether Suwayomi will connect through a SOCKS5 proxy |
| SOCKS_PROXY_VERSION | 5 |
The version of the SOCKS proxy |
| SOCKS_PROXY_HOST | |
The TCP host of the SOCKS proxy |
| SOCKS_PROXY_PORT | |
The port of the SOCKS proxy |
| SOCKS_PROXY_USERNAME | |
The username to log in to the SOCKS proxy |
| SOCKS_PROXY_PASSWORD | |
The password to log in to the SOCKS proxy |
| DOWNLOAD_AS_CBZ | false |
Whether Suwayomi should save the manga to disk in CBZ format |
| AUTH_MODE | none |
Whether Suwayomi requires a login to get in. none or basic_auth or simple_login or ui_login |
| AUTH_USERNAME | |
The username to log in to Suwayomi |
| AUTH_PASSWORD | |
The password to log in to Suwayomi |
| JWT_AUDIENCE | suwayomi-server-api |
The JWT Audience of the ui_login token |
| JWT_TOKEN_EXPIRY | 5m |
The JWT access token expiry timeout, in ISO-8601 Duration format |
| JWT_REFRESH_EXPIRY | 60d |
The JWT refresh token expiry timeout, in ISO-8601 Duration format |
| DEBUG | false |
If extra logging is enabled. Useful for development and troubleshooting. |
| MAX_LOG_FILES | 31 |
The max number of days to keep files before they get deleted |
| MAX_LOG_FILE_SIZE | 10mb |
The max size of a log file - Possible values: 1 (bytes), 1KB (kilobytes), 1MB (megabytes), 1GB (gigabytes) |
| MAX_LOG_FOLDER_SIZE | 100mb |
The max size of all saved log files - Possible values: 1 (bytes), 1KB (kilobytes), 1MB (megabytes), 1GB (gigabytes) |
| WEB_UI_ENABLED | true |
If the server should serve a webUI |
| WEB_UI_FLAVOR | WebUI |
WebUI or Custom |
| WEB_UI_CHANNEL | stable |
"bundled" (the version bundled with the server release), "stable" or "preview" - the webUI version that should be used |
| WEB_UI_UPDATE_INTERVAL | 23 |
Time in hours - 0 to disable auto update - range: 1 <= n < 24 - how often the server should check for webUI updates |
| AUTO_DOWNLOAD_CHAPTERS | false |
If new chapters that have been retrieved should get automatically downloaded |
| AUTO_DOWNLOAD_EXCLUDE_UNREAD | true |
Ignore automatic chapter downloads of entries with unread chapters |
| AUTO_DOWNLOAD_NEW_CHAPTERS_LIMIT | 0 |
0 to disable - how many unread downloaded chapters should be available - if the limit is reached, new chapters won't be downloaded automatically |
| AUTO_DOWNLOAD_IGNORE_REUPLOADS | false |
Decides if re-uploads should be ignored during auto download of new chapters chapters |
| DOWNLOAD_CONVERSIONS | {} |
Image download conversions, please see the wiki for more information. |
| SERVE_CONVERSIONS | {} |
Image serve conversions, please see the wiki for more information. |
| EXTENSION_REPOS | [] |
Any additional extension repos to use, the format is ["https://github.com/MY_ACCOUNT/MY_REPO/tree/repo", "https://github.com/MY_ACCOUNT_2/MY_REPO_2/"] |
| MAX_SOURCES_IN_PARALLEL | 6 |
Range: 1 <= n <= 20 - Sets how many sources can do requests (updates, downloads) in parallel. Updates/Downloads are grouped by source and all mangas of a source are updated/downloaded synchronously |
| UPDATE_EXCLUDE_UNREAD | true |
If unread manga should be excluded from updates |
| UPDATE_EXCLUDE_STARTED | true |
If manga that haven't been started should be excluded from updates |
| UPDATE_EXCLUDE_COMPLETED | true |
If completed manga should be excluded from updates |
| UPDATE_INTERVAL | 12 |
Time in hours - 0 to disable it - (doesn't have to be full hours e.g. 12.5) - range: 6 <= n < ∞ - Interval in which the global update will be automatically triggered |
| UPDATE_MANGA_INFO | false |
If manga info should be updated along with the chapters |
| BACKUP_TIME | 00:00 |
Range: hour: 0-23, minute: 0-59 - Time of day at which the automated backup should be triggered |
| BACKUP_INTERVAL | 1 |
Time in days - 0 to disable it - range: 1 <= n < ∞ - Interval in which the server will automatically create a backup |
| BACKUP_TTL | 14 |
Time in days - 0 to disable it - range: 1 <= n < ∞ - How long backup files will be kept before they will get deleted |
| AUTO_BACKUP_INCLUDE_MANGA | true |
If the auto-backup should include manga |
| AUTO_BACKUP_INCLUDE_CATEGORIES | true |
If the auto-backup should include categories |
| AUTO_BACKUP_INCLUDE_CHAPTERS | true |
If the auto-backup should include chapters |
| AUTO_BACKUP_INCLUDE_TRACKING | true |
If the auto-backup should include tracking |
| AUTO_BACKUP_INCLUDE_HISTORY | true |
If the auto-backup should include history |
| AUTO_BACKUP_INCLUDE_CLIENT_DATA | true |
If the auto-backup should include client data |
| AUTO_BACKUP_INCLUDE_SERVER_SETTINGS | true |
If the auto-backup should include server settings |
| FLARESOLVERR_ENABLED | false |
Whether FlareSolverr is enabled and available to use |
| FLARESOLVERR_URL | http://localhost:8191 |
The URL of the FlareSolverr instance |
| FLARESOLVERR_TIMEOUT | 60 |
Time in seconds for FlareSolverr to timeout if the challenge is not solved |
| FLARESOLVERR_SESSION_NAME | suwayomi |
The name of the session that Suwayomi will use with FlareSolverr |
| FLARESOLVERR_SESSION_TTL | 15 |
The time to live for the FlareSolverr session |
| FLARESOLVERR_RESPONSE_AS_FALLBACK | false |
Use the response from FlareSolverr if Suwayomi does not succeed |
| OPDS_USE_BINARY_FILE_SIZES | false |
If the file sizes should be displayed in binary (KiB, MiB, GiB) or decimal (KB, MB, GB) |
| OPDS_ITEMS_PER_PAGE | 50 |
How many items to show on a page - 10 <= n < 5000 |
| OPDS_ENABLE_PAGE_READ_PROGRESS | true |
Track and update your reading progress by page for each chapter during page streaming |
| OPDS_MARK_AS_READ_ON_DOWNLOAD | false |
Automatically mark chapters as read when you download them |
| OPDS_SHOW_ONLY_UNREAD_CHAPTERS | false |
Filter manga feed to display only chapters you haven't read |
| OPDS_SHOW_ONLY_DOWNLOADED_CHAPTERS | false |
Filter manga feed to display only chapters you have downloaded |
| OPDS_CHAPTER_SORT_ORDER | DESC |
DESC or ASC |
| OPDS_CBZ_MIME_TYPE | MODERN |
MODERN or LEGACY or COMPATIBLE. Controls the MimeType that Suwayomi sends in OPDS entries for CBZ archives. Also affects global CBZ download. Modern follows recent IANA standard (2017), while LEGACY (deprecated mimetype for .cbz) and COMPATIBLE (deprecated mimetype for all comic archives) might be more compatible with older clients. |
| KOREADER_SYNC_SERVER_URL | https://sync.koreader.rocks/ |
The URL of the KOReader Sync server |
| KOREADER_SYNC_USERNAME | |
KOReader Sync UserName |
| KOREADER_SYNC_USERKEY | |
KOReader Sync UserKey |
| KOREADER_SYNC_DEVICE_ID | |
The Device-ID for KOReader |
| KOREADER_SYNC_CHECKSUM_METHOD | binary |
binary or filename |
| KOREADER_SYNC_PERCENTAGE_TOLERANCE | 0.00000000000001 |
Absolute tolerance for progress comparison from 1 (widest) to 1e-15 (strict) |
| KOREADER_SYNC_STRATEGY_FORWARD | prompt |
prompt, keep_local, keep_remote, disabled |
| KOREADER_SYNC_STRATEGY_BACKWARD | disabled |
prompt, keep_local, keep_remote, disabled |
| DATABASE_TYPE | H2 |
H2 or POSTGRESQL |
| DATABASE_URL | postgresql://localhost:5432/suwayomi |
The URL of the database, only used for non-h2 database |
| DATABASE_USERNAME | |
Database username, only used for non-h2 database |
| DATABASE_PASSWORD | |
Database password, only used for non-h2 database |
| USE_HIKARI_CONNECTION_POOL | true |
Use Hikari Connection Pool to connect to the database. |
Caution
This docker image is known to occasionally fail to work. This seems to be caused by problems in the download. If the logs simply end with LD_PRELOAD=/opt/catch_abort.so /home/suwayomi/.local/share/Tachidesk/bin/kcef/libcef.so, please remove the downloaded image and pull again. If this does not help, open a new issue.
We do not allow configuration of the downloads folder, since Docker Volumes can handle that instead, here is an example of a docker-compose.yaml that has downloads volume configuration:
suwayomi_server:
image: ghcr.io/suwayomi/suwayomi-server:stable
container_name: Suwayomi-Server
volumes: # The order matters! Make sure the downloads is first in the volume list or it will not work!
- /example/suwayomi-server/downloads:/home/suwayomi/.local/share/Tachidesk/downloads
- /example/suwayomi-server/files:/home/suwayomi/.local/share/Tachidesk
ports:
- 4568:4567
restart: unless-stoppedghcr.io/suwayomi/suwayomi-server:latest
The latest stable release of the server. Also tagged as :stable.
ghcr.io/suwayomi/suwayomi-server:preview
The latest preview release of the server. Can be buggy!
Suwayomi-Server is licensed under MPL v. 2.0.
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.