SyncYomi

SyncYomi

Official

Docker app from Xiaodoudou's Repository

Overview

Keeps your manga library and reading progress in sync between devices running TachiyomiSY or Komikku. Each device uploads its library to this server and downloads what the others changed, and the server keeps the last few versions so a bad sync can be rolled back from the web UI. The first start writes config.toml and a SQLite database into the config folder. Open the web UI, create an account, then create an API key under Settings, API Keys. Give every device the same key: each key is its own library.

syncyomi logo
SyncYomi

SyncYomi is an open-source project designed to offer a seamless synchronization experience for your Tachiyomi manga reading progress and library across multiple devices. This server can be self-hosted, allowing you to sync your Tachiyomi library effortlessly.

GitHub release (latest by date) GitHub all releases GitHub Workflow StatusDiscord

Documentation

Architecture, API reference, operations and development notes live in docs/.

Key features

  • User-friendly and mobile-optimized web UI.
  • Developed using Go and Vue, making SyncYomi lightweight and versatile, suitable for various platforms (Linux, FreeBSD, Windows, macOS) and architectures (e.g., x86, ARM).
  • Excellent container support (Docker, k8s/Kubernetes).
  • Compatible with both PostgreSQL and SQLite database engines.
  • Notifications supported via Discord, Telegram, ntfy, Notifiarr, or any custom webhook.
  • Base path/subfolder (and subdomain) support for easy reverse-proxy integration.

Installation

Head to releases and download the binary for your operating system. Then, run the binary.

Docker compose

docker-compose for syncyomi. Modify accordingly if running with unRAID or setting up with Portainer.

  • Logging is optional
  • Host port mapping might need to be changed to not collide with other apps
  • Change BASE_DOCKER_DATA_PATH to match your setup. Can be simply ./data
  • Set custom network if needed
  • You may need to update the host address to 0.0.0.0 if you are running with podman

Create docker-compose.yml and add the following. If you have a existing setup change to fit that.

version: "3.9"

services:
  syncyomi:
    container_name: syncyomi
    image: ghcr.io/syncyomi/syncyomi:latest
    restart: unless-stopped
    environment:
      - TZ=${TZ}
    volumes:
      - ${BASE_DOCKER_DATA_PATH}/syncyomi/config:/config
    ports:
      - 8282:8282

Then start with

docker compose up -d

Windows

Download the latest release and run it.

Linux generic

Download the latest release, or download the source code and build it yourself using make build.

wget $(curl -s https://api.github.com/repos/SyncYomi/SyncYomi/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)

Systemd (Recommended)

On Linux-based systems, it's recommended to run SyncYomi as a service with auto-restarting capabilities to ensure minimal downtime. The most common approach is to use systemd.

You will need to create a service file in /etc/systemd/system/ called syncyomi.service.

touch /etc/systemd/system/syncyomi@.service

Then place the following content inside the file (e.g. via nano/vim/ed):

[Unit]
Description=SyncYomi service for %i
After=syslog.target network-online.target

[Service]
Type=simple
User=%i
Group=%i
ExecStart=/usr/bin/syncyomi --config=/home/%i/.config/syncyomi/

[Install]
WantedBy=multi-user.target

Start the service. Enable will make it startup on reboot.

systemctl enable -q --now --user syncyomi@$USER

By default, the configuration is set to listen on 127.0.0.1. It is highly recommended to use a reverse proxy like caddy, nginx or traefik.

Note

If you are not running a reverse proxy change host in the config.toml to 0.0.0.0.

Usage

Configuring and Running the Service

Initial Setup

After the first run of the SyncYomi service, several files will be generated in your specified running directory. These are essential for the service's operation.

Configuration for Reverse Proxy Users

If you're using a reverse proxy and your setup includes a sub-directory, it's crucial to update the baseUrl value in your configuration. Additionally, adjust your proxy settings to exclude this suffix. Below is an example configuration for nginx:

location /syncyomi/ {
    proxy_pass              http://127.0.0.1:8282;
    proxy_http_version      1.1;
    proxy_set_header        X-Forwarded-Host        $http_host;

    rewrite ^/syncyomi/(.*) /$1 break;
}

After updating the configuration file, restart the SyncYomi service to apply these changes.

API Key Generation

To generate an API key, access the web interface of SyncYomi at http://<your-server-address>:8282. Once the service is running, navigate to Settings > API Keys and create a new API key. This key is crucial for linking your Tachiyomi clients to the SyncYomi service.

Important Note: Treat each API key as a unique user. To ensure a seamless syncing experience across multiple devices, it's important to use the same API key for all the devices you intend to synchronize. Using different API keys will result in the devices being treated as separate users, each with their own syncing data. Keep your API key secure and consistent across all your devices for optimal functionality.

Install The App

Preparing for Installation

Before proceeding, backup your existing Tachiyomi environment by making a manual backup in More > Data and storage then Create backup. Then either download TachiyomiSY or Komikku and install it.

Once installed, go to More > Data and Storage in the app and change the Sync option from Off to SyncYomi. Under the Sync section, input your Host details (e.g., http://192.168.1.202:8282 or https://sync.mydomain.tld) and the previously generated API Key by either pasting it or scanning the QR code.

Important Configuration for Direct IP Users

If you are using a direct IP address (e.g., http://192.168.1.202:8282) to connect to your server, ensure the config.toml file on your server has the host set to 0.0.0.0. This setting allows connections from any IP address. Be sure to use your machine's IPv4 address. For guidance on how to find your IPv4 address, refer to an IPv4 finding guide for Windows.

Linux: ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}'

Community

Come join us on Discord!

Requirements

TachiyomiSY or Komikku on each device you want to sync.

Related apps

Details

Repository
ghcr.io/syncyomi/syncyomi:latest
Last Updated2026-10-23
First Seen2023-11-18

Runtime arguments

Web UI
http://[IP]:[PORT:8282]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

Web UI and syncPorttcp

The web UI, and the address your devices sync with. If you change it, use the new port in the apps too.

Target
8282
Default
8282
Value
8282
ConfigPathrw

config.toml and the SQLite database holding every synced library. Back this folder up. Keep it on a cache or other local disk: SQLite needs WAL mode, which some network shares cannot provide.

Target
/config
Default
/mnt/user/appdata/syncyomi
Value
/mnt/user/appdata/syncyomi