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.

Cleanarr logo

Self-host Cleanarr

v2.5.2

Plex duplicate and sample file cleaner

ReleaseOpen SourceMIT
Updated2 years ago
LanguageTypescript
Setup difficultyModerate
Stars
274
Ports
80 (HTTP web UI), 5000 (Development backend port)
Requires
Plex Media Server
Docker
selexin/cleanarr
Install with Docker
Demo of deleting duplicate movies in Cleanarr UICleanarr UI showing duplicate file listing

What is Cleanarr?

Cleanarr provides a simple web interface to scan Plex Media Server libraries for duplicate movies or TV episodes and sample files, then delete them directly. It connects to a Plex server using a base URL and authentication token, supports multiple libraries, and runs as a Docker container with a Flask backend and React frontend. The project is open-source under MIT license and requires the Plex 'Allow media deletion' setting to be enabled. Development has slowed with the last update over two years ago.

Should you self-host Cleanarr?

Cleanarr scores 46/100 on selfhost.directory (how scoring works) and ranks #92 of 142 in Media Management. It has 274 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

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

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 Cleanarr vs Sonarr side by side.

Features

  • Config persistence
  • Configurable page size
  • Debug logging
  • Duplicate file detection
  • Multiple library support
  • Sample File Detection
  • SSL verification bypass

Cleanarr README

How to install Cleanarr

Install Cleanarr with Docker

Docker
Environment variables
PLEX_BASE_URL, PLEX_TOKEN, LIBRARY_NAMES, BYPASS_SSL_VERIFY, PAGE_SIZE, DEBUG, PLEX_TIMEOUT

docker run
-e PLEX_BASE_URL="http://192.169.1.100:32400"
-e PLEX_TOKEN="somerandomstring"
-e LIBRARY_NAMES="Movies"
-p 5000:80
-v /some/path/on/your/computer:/config
selexin/cleanarr:latest

Requires Plex token and 'Allow media deletion' enabled in Plex settings

How to configure Cleanarr

  • BYPASS_SSL_VERIFYDisable SSL certificate verification. Use this if your Plex Server has "Secure Connections: Required" and you are having issues connecting to it.

    Disable SSL certificate verification. Use this if your Plex Server has "Secure Connections: Required" and you are having issues connecting to it.

    values: 1

  • CONFIG_DIR/configConfig directory path

    Config directory path

  • CONFIG_MOUNTLocation on your machine where you wish to store the state from Cleanarr

    Location on your machine where you wish to store the state from Cleanarr

  • CONTAINER_PORT80Container port for the UI

    Container port for the UI

  • DEBUG0To enable debug logging set DEBUG to 1

    To enable debug logging set DEBUG to 1

    values: 0,1

  • -e(required) Plex Server Address (e.g. http://192.169.1.100:32400)

    (required) Plex Server Address (e.g. http://192.169.1.100:32400)

  • HOST_PORT8080Host port to expose the UI

    Host port to expose the UI

  • LIBRARY_NAMESMoviesName(s) of your Plex Libraries to search. Separate multiple library names with ";" character. Default value is "Movies"

    Name(s) of your Plex Libraries to search. Separate multiple library names with ";" character. Default value is "Movies"

  • -p(required) Expose the UI via the selected port (in this case `5000`). Change `5000` to the port of your choosing, but don't change the number `80`.

    (required) Expose the UI via the selected port (in this case `5000`). Change `5000` to the port of your choosing, but don't change the number `80`.

  • PAGE_SIZE50To avoid plex timeouts, results are loaded in pages. If you receive Plex Timeout errors, try setting this parameter to a lower value.

    To avoid plex timeouts, results are loaded in pages. If you receive Plex Timeout errors, try setting this parameter to a lower value.

  • PLEX_BASE_URLPlex Server Address (e.g. http://192.169.1.100:32400)

    Plex Server Address (e.g. http://192.169.1.100:32400)

  • PLEX_TIMEOUT7200Modify the timeout for wrapper (Error: Failed to load content!)

    Modify the timeout for wrapper (Error: Failed to load content!)

  • PLEX_TOKENA valid Plex token for your Plex Server

    A valid Plex token for your Plex Server

  • REACT_APP_BACKEND_URL/Backend URL for the frontend to connect to (must include trailing slash)

    Backend URL for the frontend to connect to (must include trailing slash)

  • STATIC_INDEX1Enable static file serving

    Enable static file serving

  • -v(required) Volume mount for config directory

    (required) Volume mount for config directory

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…