{"id":26215900,"url":"https://github.com/jeremehancock/posteria","last_synced_at":"2025-04-08T03:19:59.634Z","repository":{"id":278837696,"uuid":"936937573","full_name":"jeremehancock/Posteria","owner":"jeremehancock","description":"A Media Poster Managment App","archived":false,"fork":false,"pushed_at":"2025-04-02T22:30:13.000Z","size":108783,"stargazers_count":104,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T23:27:02.394Z","etag":null,"topics":["metadata","movie","plex","plex-media-server","plexmediaserver","tv"],"latest_commit_sha":null,"homepage":"https://posteria.app","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeremehancock.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-22T00:50:52.000Z","updated_at":"2025-04-02T22:30:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"6b65e28d-e4b3-4582-ade8-23d7365c651c","html_url":"https://github.com/jeremehancock/Posteria","commit_stats":null,"previous_names":["jeremehancock/posteria"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeremehancock%2FPosteria","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeremehancock%2FPosteria/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeremehancock%2FPosteria/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeremehancock%2FPosteria/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeremehancock","download_url":"https://codeload.github.com/jeremehancock/Posteria/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247767239,"owners_count":20992548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["metadata","movie","plex","plex-media-server","plexmediaserver","tv"],"created_at":"2025-03-12T11:18:22.027Z","updated_at":"2025-04-08T03:19:59.625Z","avatar_url":"https://github.com/jeremehancock.png","language":"PHP","funding_links":["https://www.buymeacoffee.com/jeremehancock"],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003e\u003cimg src=\"https://raw.githubusercontent.com/jeremehancock/Posteria/main/images/logo.png\" height=\"50\" /\u003e Posteria\u003c/h1\u003e\n\nPosteria is a web-based media poster management system that allows you to organize and store custom posters for your movies, TV shows, seasons, and collections. It provides an elegant interface for uploading, importing, managing, and accessing your media artwork.\n\n## Features\n\nHere's the updated version with the PWA line added:\n\n- 🖥️ Clean, modern interface for managing media posters\n- 📁 Organized categories for Movies, TV Shows, TV Seasons, and Collections\n- 🔍 Fast, fuzzy search functionality\n- 📱 Mobile-responsive design\n- 📲 Installable as a PWA (Progressive Web App)\n- 🔒 Simple authentication system\n- ⚡ Easy poster upload from local files or URLs\n- 🎬 Grab posters directly from [TMDB](https://www.themoviedb.org/), [TVDB](https://www.thetvdb.com/) \u0026 [Fanart.tv](https://fanart.tv)\n- 📥 Import posters from Plex\n- 🔄 Sync posters to Plex\n- 🤖 Schedule Auto Imports\n- 🧹 Orphan Poster detection\n- 🎨 Support for JPG, JPEG, PNG, and WebP formats\n- 🖼️ Includes built-in Poster Wall for showing off your posters\n- 🛒 Available in the [Unraid Community App Store](https://unraid.net/community/apps?q=posteria#r)\n  - Thanks to [@ctrlaltd1337ed](https://github.com/ctrlaltd1337ed/unraid-templates) for putting this together.\n\n## Support this project\n\n[![Donate](https://raw.githubusercontent.com/jeremehancock/Posteria/main/images/donate-button.png)](https://www.buymeacoffee.com/jeremehancock)\n\n## Screenshots\n\n#### Main Screen\n\n![Posteria](https://raw.githubusercontent.com/jeremehancock/Posteria/main/images/posteria.png \"Posteria\")\n\n#### Poster Wall\n\n![Posteria](https://raw.githubusercontent.com/jeremehancock/Posteria/main/images/poster-wall.gif \"Poster Wall\")\n\n## Installation\n\n1. Create a `docker-compose.yml` file with the following content:\n\n```yaml\nservices:\n  posteria:\n    image: bozodev/posteria:latest\n    container_name: posteria\n    ports:\n      - \"1818:80\"\n    environment:\n      - SITE_TITLE=Posteria\n\n      - AUTH_USERNAME=admin # Change this!\n      - AUTH_PASSWORD=changeme # Change this!\n      - SESSION_DURATION=3600 # In seconds\n      - IMAGES_PER_PAGE=24\n      - MAX_FILE_SIZE=5242880 # In bytes\n\n      - PLEX_SERVER_URL=\n      - PLEX_TOKEN=\n      - PLEX_REMOVE_OVERLAY_LABEL=false # Set to true for Kometa compatibility\n\n      - IGNORE_ARTICLES_IN_SORT=true # Set to false to sort with articles (A, An, The) included\n      - SORT_BY_DATE_ADDED=false # Set to true to sort by Recently Added date in Plex instead of Alphabetically\n\n      - AUTO_IMPORT_ENABLED=false # Enable/disable auto-import\n      - AUTO_IMPORT_SCHEDULE=1h # Schedule 24h, 12h, 6h, 3h, 1h\n      - AUTO_IMPORT_MOVIES=false # Import Movie posters\n      - AUTO_IMPORT_SHOWS=false # Import TV Show posters\n      - AUTO_IMPORT_SEASONS=false # Import TV season posters\n      - AUTO_IMPORT_COLLECTIONS=false # Import Collection posters\n    volumes:\n      - ./posters/movies:/var/www/html/posters/movies\n      - ./posters/tv-shows:/var/www/html/posters/tv-shows\n      - ./posters/tv-seasons:/var/www/html/posters/tv-seasons\n      - ./posters/collections:/var/www/html/posters/collections\n      - ./data:/var/www/html/data # Logs are found here\n    restart: unless-stopped\n```\n\n2. Start the container:\n\n```bash\ndocker-compose up -d\n```\n\n## Configuration\n\n### Environment Variables\n\n| Variable                  | Description                          | Default                                                                                               |\n| ------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------- |\n| SITE_TITLE                | Website title                        | Posteria                                                                                              |\n| AUTH_USERNAME             | Admin username                       | admin                                                                                                 |\n| AUTH_PASSWORD             | Admin password                       | changeme                                                                                              |\n| SESSION_DURATION          | Login session duration in seconds    | 3600 (1 Hour)                                                                                         |\n| IMAGES_PER_PAGE           | Number of posters displayed per page | 24                                                                                                    |\n| MAX_FILE_SIZE             | Maximum upload file size in bytes    | 5242880 (5MB)                                                                                         |\n| PLEX_SERVER_URL           | URL for your Plex Server             | ex: http://your-server:32400                                                                          |\n| PLEX_TOKEN                | Plex Server Token                    | [More info](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/) |\n| PLEX_REMOVE_OVERLAY_LABEL | Remove Overlay Label                 | false [More info](#note)                                                                              |\n| IGNORE_ARTICLES_IN_SORT   | Ignore articles in sort              | true                                                                                                  |\n| SORT_BY_DATE_ADDED        | Sort by Recently Added               | false                                                                                                 |\n| AUTO_IMPORT_ENABLED       | Enable/disable auto-import           | true                                                                                                  |\n| AUTO_IMPORT_SCHEDULE      | Schedule 24h, 12h, 6h, 3h, 1h        | 1h                                                                                                    |\n| AUTO_IMPORT_MOVIES        | Import Movie posters                 | true                                                                                                  |\n| AUTO_IMPORT_SHOWS         | Import TV Shows posters              | true                                                                                                  |\n| AUTO_IMPORT_SEASONS       | Import TV Seasons posters            | true                                                                                                  |\n| AUTO_IMPORT_COLLECTIONS   | Import Collection posters            | true                                                                                                  |\n\n#### Note:\n\n`PLEX_REMOVE_OVERLAY_LABEL`\n\nControls whether Posteria will remove the \"Overlay\" label in Plex when the poster is updated. The \"Overlay\" label is used by Kometa for re-applying overlays on updated posters. Set to true if you use [Kometa](https://kometa.wiki/en/latest/).\n\n[More info](https://kometa.wiki/en/latest/files/overlays/#overlay-understandings)\n\n### Volume Mounts\n\nThe Docker container uses the following volume mounts:\n\n- `./posters/movies`: Movie posters\n- `./posters/tv-shows`: TV show posters\n- `./posters/tv-seasons`: TV season posters\n- `./posters/collections`: Collection posters\n\n## Usage\n\n1. Access the web interface at `http://your-server:1818`\n2. Log in using your configured credentials\n3. Import posters form Plex\n4. Change posters:\n   - Support for local file upload\n   - Support for direct URL upload\n   - Grab posters from TMDB \u0026 Fanart.tv\n5. Posters are automatically updated on Plex\n6. As you add more media to Plex just re-import to add new posters\n7. Orphaned poster detection\n\n## Frequently Asked Questions\n\n#### How does Posteria interact with Plex?\n\nPosteria can import posters directly from your Plex Media Server and sync customized posters back to it. To enable this functionality, you need to provide your Plex server URL and authentication token in the configuration. This allows Posteria to securely communicate with your server while maintaining all your customizations.\n\n#### How do I find my Plex auth token?\n\nYou can find your Plex authentication token (X-Plex-Token) by following these steps:\n\n1. Log in to your Plex Web App\n2. Browse to any media item\n3. Click the 3 dots menu and select \"Get Info\"\n4. In the info dialog, click \"View XML\"\n5. In the URL of the new tab, find the \"X-Plex-Token=\" parameter\n\nFor more detailed instructions, visit the [Plex Support article](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/).\n\n#### Can I use Posteria as a backup for my Plex posters?\n\nNo, Posteria should not be considered a backup of your Plex posters. Posteria treats Plex as the \"source of truth,\" which means any changes made in Plex will automatically sync to Posteria during the next import (whether scheduled or manual). This synchronization will override any poster selections in Posteria that differ from what's currently in Plex. We strongly recommend keeping separate backups of both your Plex metadata and your Posteria poster directories to ensure you can restore your preferred poster selections if needed.\n\n#### What is \"Orphan Detection\"?\n\nOrphan Detection is a feature that helps you identify posters in Posteria that aren't linked to any media in your Plex library. This can happen when you remove content from your library but the posters remain in Posteria. Posteria can detect these orphaned posters so you can decide whether to keep them for future use or remove them to save space.\n\n#### How secure is Posteria?\n\nPosteria includes basic authentication to protect your poster collection. You can set your username and password in the docker-compose.yml file. We recommend changing the default credentials and using a strong password. All communication with your Plex server is done securely using your Plex authentication token.\n\nIf you want to make Posteria accesible outside your network it is recommended you use a service such as **[Tailscale](https://www.tailscale.com)™** or another VPN solution.\n\n#### How do I update Posteria?\n\nTo update Posteria to the latest version, follow these steps:\n\n1. Navigate to your Posteria directory\n2. Run `docker-compose pull` to download the latest image\n3. Run `docker-compose up -d` to restart with the new version\n\nYour poster collection and settings will be preserved during updates as they're stored in the mounted volumes.\n\n#### Where can I find posters for my media?\n\nThere are several excellent resources where you can find high-quality posters for your media library:\n\n- **[The Poster Database](https://theposterdb.com/)** - A community-driven collection of custom posters with various styles and themes\n- **[The Movie Database (TMDB)](https://www.themoviedb.org/)** - Extensive library of official and fan-made artwork, now fully integrated with Posteria for automatic poster fetching\n- **[The TV Database (TVDB)](https://www.thetvdb.com/)** - Comprehensive database for TV show posters and fanart, now fully integrated with Posteria for automatic poster fetching\n- **[Fanart.tv](https://www.fanart.tv/)** - High-quality artwork for movies, TV shows, and collections, now fully integrated with Posteria for automatic poster fetching\n- **[Mediux](https://mediux.pro/)** - Collection of professionally designed media artwork\n\nPosteria supports using URLS from Mediux YAML files in the URL uploader when changing posters, making it a convenient choice for managing your collection.\n\n#### Is Posteria available on Unraid?\n\nYes!\n\nPosteria is available in the **[Unraid](https://www.unraid.net)™** Community Apps store.\n\n[More info](https://unraid.net/community/apps?q=posteria#r)\n\n#### Is Posteria mobile-friendly?\n\nYes! Posteria is designed as a responsive Progressive Web App (PWA), which means it works beautifully on all devices from desktops to smartphones. You can even install it on your mobile device's home screen for quick access, just like a native app.\n\n## Security Considerations\n\n1. Change the default username and password\n2. Use HTTPS if exposing to the internet\n3. Regularly backup your poster directories\n\n## Breaking Change Notice\n\n[More info](https://github.com/jeremehancock/Posteria/discussions/28)\n\n## License\n\n[MIT License](LICENSE)\n\n## AI Assistance Disclosure\n\nThis tool was developed with assistance from AI language models.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeremehancock%2Fposteria","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeremehancock%2Fposteria","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeremehancock%2Fposteria/lists"}