testerfy

testerfy

Docker app from Selfhosters

Overview

Testerfy — Spotify Playlist Curation Made Easy

Burn through discovery playlists at speed. Like saves to your target playlists and skips, dislike removes and skips. Every decision is logged with timestamps, decision speed, and listening stats.

Features: one-tap like/dislike with auto-skip, playlist guard, passive listening tracker, decision time analytics, undo support, mobile-friendly UI, encrypted tokens (AES-256-GCM).

SETUP (about 5 min):

  1. Expose the Web UI with a URL Spotify can redirect to (HTTPS is usually required for production redirect URIs). Pick one approach:
    • Optional: Tailscale — install the Unraid Tailscale plugin, then run: tailscale serve --bg --https 5247 http://localhost:5247
    • Or use your own reverse proxy / TLS (Nginx Proxy Manager, Caddy, Cloudflare Tunnel, etc.) in front of http://[IP]:5247
  2. Create a Spotify Developer App at developer.spotify.com/dashboard
  3. Add a redirect URI that exactly matches your public URL, e.g. https://your-domain/api/auth/callback or https://MACHINE.TAILNET.ts.net:5247/api/auth/callback if you use Tailscale Serve
  4. Generate session secret: openssl rand -hex 32
  5. Fill in the fields below and click Apply

Full guide: https://github.com/ozmoetr/testerfy#setup

Install Testerfy on Unraid in a few clicks.

Find Testerfy in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Testerfy Review the template variables and paths Click Install

Requirements

Optional: Tailscale plugin if you want HTTPS via tailscale serve (see Overview). Spotify Premium and a Spotify Developer App are required.

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/ozmoetr/testerfy:latest
Last Updated2026-08-30
First Seen2026-02-03

Runtime arguments

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

Template configuration

Web UI PortPorttcp

Container port. Map host port as needed; put HTTPS in front with a reverse proxy or optional Tailscale Serve.

Target
5247
Default
5247
Value
5247
Data PathPathrw

Database and config storage. Back this up to preserve your history.

Target
/data
Default
/mnt/user/appdata/testerfy/data
Value
/mnt/user/appdata/testerfy/data
Spotify Client IDVariable

From developer.spotify.com → Dashboard → Your App → Settings

Target
SPOTIFY_CLIENT_ID
Spotify Client SecretVariable

From developer.spotify.com → Dashboard → Your App → Settings → View client secret

Target
SPOTIFY_CLIENT_SECRET
Spotify Redirect URIVariable

Must match your Spotify Dashboard exactly — e.g. https://your-domain/api/auth/callback, or https://MACHINE.TAILNET.ts.net:5247/api/auth/callback if using Tailscale Serve

Target
SPOTIFY_REDIRECT_URI
Session SecretVariable

Random security key. Generate with: openssl rand -hex 32

Target
SESSION_SECRET