Template-based poster generation for Plex — Create clean, consistent custom posters with TMDb/TVDB/Fanart.tv artwork, overlay badges, and full batch automation.
- Live-preview poster editor for movies, TV shows (per-season, independent artwork/logo/text), and Plex Collections (two dedicated creators, including a Kometa-style one)
- Multi-source artwork — TMDb, TVDB, Fanart.tv, with configurable priority and fallback rules
- Overlay badges — resolution, codec, audio, edition, studio, streaming platform, custom images, text
- Batch edit — apply a preset across your whole library in one run, with live progress
- Webhooks — Radarr, Sonarr, and Tautulli, auto-generate on import
- Scheduled scans and a smart retry queue for hands-off automation
- Guided setup wizard on first launch — Plex, API keys, libraries, automation, all in one flow
- 6 themes, Discord/Apprise notifications, full History audit log with hover previews
Full breakdown of all of this in the docs below.
git clone https://github.com/PJGitHub9/Simposter.git
cd Simposter
docker-compose up -d --buildOpen http://localhost:8003 — a setup wizard walks you through Plex/API keys/libraries from there. No manual config file editing required.
Updating: git pull && docker-compose up -d --build — your data lives in the bind-mounted ./config folder, untouched by rebuilds.
Prefer not to build locally? Pre-built images are published to ghcr.io/pjgithub9/simposter — see Getting Started for the compose snippet. That doc also covers local dev (no Docker), alternative install methods, environment variables, the setup wizard step-by-step, and your first poster.
| Doc | What's in it |
|---|---|
| Getting Started | Install (Docker/local dev), the setup wizard, your first poster, Settings reference, environment variables |
| Collections & Poster Guide | Templates/presets, logos, overlay badges, batch processing, the smart retry queue, and Plex Collections (including why a Fanart.tv key matters) |
| Webhooks | Radarr, Sonarr, and Tautulli setup, payload examples, dry-run testing |
| ARCHITECTURE.md | Technical architecture, API routers, rendering pipeline (for contributors) |
| WORKFLOW.md | How a poster request flows end-to-end for each trigger type |
| CHANGELOG.md | Full version history |
| CONTRIBUTING.md | Dev setup, PR expectations, code conventions |
| SECURITY.md | Security model and how to report a vulnerability |
A few related projects solve overlapping problems — no affiliation with any of them, just worth knowing which fits:
- Kometa manages your whole Plex metadata/collection setup, including posters pulled from its own defaults repo. Simposter is poster-generation-only, with a live in-app editor and per-item control — the two pair well together (Simposter's Kometa Creator for Collections is directly modeled on Kometa's own poster conventions).
- Posterizarr is best for mass library operations — a similar automation-first poster tool, but it misses out on manual per-item customization. Simposter leans more toward interactive editing (live preview, manual per-item tuning) alongside its automation, rather than automation-only.
- PosterTools is best for non-selfhosters — a hosted poster/title-card creation tool, no server to run yourself.
- TitleCardMaker focuses specifically on TV episode title cards, a different artifact than posters.
- UMTK generates "coming soon" overlays, a narrower and complementary use case.
Poster styles that inspired Simposter: darkmatte and ikonok — both from r/PlexPosters.
MIT License — See LICENSE for details.
Built with FastAPI, Vue 3, Pillow, TMDb API, TVDB API, and Fanart.tv API.
Developed with the assistance of Claude. All features are designed, directed, and tested by a human. (Still learning! :D)
