selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

anibridge logo

Self-host anibridge

v2.2.1

Anime watchlist sync across Plex, Jellyfin, Emby, AniList

ReleaseOpen SourceMIT
Updated9 hours ago
LanguagePython
Setup difficultyModerate
Stars
211
CPU
AMD64 or ARM64
Port
4848 (Web interface)
Docker
ghcr.io/anibridge/anibridge
Install with Docker
AniBridge dashboard showing sync overviewReal-time sync timeline with history feedCustom mappings editor interfaceLog viewer for debugging sync operationsBackup management and restoration interfaceSettings and configuration pageAbout page with version information

What is anibridge?

AniBridge is a self-hosted tool that keeps anime watch data synchronized between media servers and tracking sites. It links Plex, Jellyfin, or Emby libraries with AniList, MyAnimeList, Simkl, or Trakt accounts. A curated database of 250,000+ title mappings handles the matching, with fuzzy search and custom overrides as fallbacks. The web UI shows a live sync timeline, lets you manage profiles and mappings, and provides logs and backup restoration. You can test changes with a dry-run mode before applying them. Deployment options include Docker Compose, Docker CLI, Unraid Community Applications, or a Python source install. The container listens on port 4848 and uses YAML configuration. The project is MIT licensed and under active development.

Should you self-host anibridge?

anibridge scores 51/100 on selfhost.directory (how scoring works) and ranks #66 of 142 in Media Management. It has 211 GitHub stars.

It shipped 7 stable releases in the past year. The latest, v2.2.1, came out on 24 October 2026. New versions land roughly every 2 weeks.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Sonarr (81/100, 17 472 stars). It scores higher overall, so compare the two before you pick. See anibridge vs Sonarr side by side.

Features

  • Automatic Backups
  • Dry Run Mode
  • HTTP Basic Authentication
  • Multi-platform anime sync
  • Multiple library providers
  • Multiple list providers
  • Multi-user and multi-profile
  • REST APINot intended for third-party integrations, subject to change without notice
  • Smart Content Matching
  • Web Dashboard
  • Webhook Support

anibridge README

How to install anibridge

Install anibridge with Docker

docker run
--name anibridge
-e PUID=1000
-e PGID=1000
-e UMASK=022
-e TZ=Etc/UTC
-p 4848:4848
-v /path/to/anibridge/data:/config
ghcr.io/anibridge/anibridge:v2

Requires Docker installed

How to configure anibridge

  • backup_retention_days30Days to retain backups

    Days to retain backups

  • batch_requestsEnable batch requests for API calls

    Enable batch requests for API calls

  • destructive_syncfalseAllow destructive sync operations

    Allow destructive sync operations

  • dry_runfalseEnable dry run mode for testing

    Enable dry run mode for testing

  • empty_syncfalseAllow sync when no items are found

    Allow sync when no items are found

  • full_scanfalsePerform a full scan instead of incremental

    Perform a full scan instead of incremental

  • library_providerMedia library provider (plex, jellyfin, emby)

    Media library provider (plex, jellyfin, emby)

    values: plex, jellyfin, emby

  • list_providerAnime list provider (anilist, mal, simkl, trakt)

    Anime list provider (anilist, mal, simkl, trakt)

    values: anilist, mal, simkl, trakt

  • log_levelLogging level

    Logging level

    values: debug, info, warning, error

  • mappings_urlhttps://github.com/anibridge/anibridge-mappings/releases/download/v3/mappings.json.zstURL for the mappings database

    URL for the mappings database

  • poll_intervalInterval for polling webhooks in seconds

    Interval for polling webhooks in seconds

  • scan_intervalInterval between periodic scans in seconds

    Interval between periodic scans in seconds

  • scan_modesScan modes to use

    Scan modes to use

    values: periodic, webhook, manual

  • search_fallback_threshold-1 (disabled)Threshold for fuzzy title search fallback

    Threshold for fuzzy title search fallback

  • sync_rulesConfigure which fields to sync

    Configure which fields to sync

  • threadsNumber of worker threads

    Number of worker threads

  • web.allow_config_without_authfalseAllow access to configuration endpoints without authentication

    Allow access to configuration endpoints without authentication

  • web.basic_auth.htpasswd_pathPath to an Apache htpasswd file for HTTP Basic Authentication

    Path to an Apache htpasswd file for HTTP Basic Authentication

  • web.basic_auth.passwordHTTP Basic Authentication password for the web UI

    HTTP Basic Authentication password for the web UI

  • web.basic_auth.realmAniBridgeRealm label presented in the browser Basic Auth prompt

    Realm label presented in the browser Basic Auth prompt

  • web.basic_auth.usernameHTTP Basic Authentication username for the web UI

    HTTP Basic Authentication username for the web UI

  • web.enabledtrueEnable the web interface

    Enable the web interface

  • web.host"" (empty string for dual-stack IPv4/IPv6)The host interface to bind to

    The host interface to bind to

  • web.port4848The port to bind the web interface to

    The port to bind the web interface to

anibridge releases & version history

FAQ

Why is my Plex repeat count incorrect?

AniBridge relies on Plex's viewCount attribute which may not update reliably. Common causes include deleting/re-adding items, syncing play history across devices, and manually marking items as watched/unwatched.

401 Unauthorized when using webhooks with HTTP Basic Authentication

Include credentials in the webhook URL (e.g., http://username:password@host:port/webhook/provider) and URL-encode special characters.

Why did my AniList token stop working?

AniList access tokens automatically expire one year after issuance. You must repeat the AniList authentication flow to generate a new token and update your configuration.

Do the AniBridge mappings support alternative episode orders?

No, the official mappings only support the default episode order (aired order for TMDB/TVDB). Other episode orders require custom mappings.

I've mapped X, so why is it still not found?

Check that the mapping flows in the correct direction (e.g., TVDB to AniList), verify it appears in the mappings page, and check logs for syntax or formatting warnings.

Why are there no mappings for X?

Some titles may not be mapped because they are very new, obscure, have mismatches across databases, or were simply missed. Users can submit pull requests to the anibridge-mappings repository to add missing mappings.

More in Media Server

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…