{"id":13581624,"url":"https://github.com/packruler/traefik-themepark","last_synced_at":"2025-04-06T10:32:39.273Z","repository":{"id":57697345,"uuid":"494935376","full_name":"packruler/traefik-themepark","owner":"packruler","description":"Easily add theme-park.dev themes to supported applications","archived":false,"fork":false,"pushed_at":"2024-10-23T18:21:32.000Z","size":566,"stargazers_count":34,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T14:18:16.562Z","etag":null,"topics":["traefik","traefik-plugin","traefik-v2"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/packruler.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-05-22T01:53:03.000Z","updated_at":"2024-10-23T18:20:56.000Z","dependencies_parsed_at":"2024-11-05T21:43:13.873Z","dependency_job_id":null,"html_url":"https://github.com/packruler/traefik-themepark","commit_stats":null,"previous_names":["packruler/plugin-themepark"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/packruler%2Ftraefik-themepark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/packruler%2Ftraefik-themepark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/packruler%2Ftraefik-themepark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/packruler%2Ftraefik-themepark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/packruler","download_url":"https://codeload.github.com/packruler/traefik-themepark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247470372,"owners_count":20944146,"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":["traefik","traefik-plugin","traefik-v2"],"created_at":"2024-08-01T15:02:08.336Z","updated_at":"2025-04-06T10:32:38.456Z","avatar_url":"https://github.com/packruler.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# `theme.park` Traefik Plugin\n\nApply themes from [theme.park](https://theme-park.dev) to supported applications.\n\nAll credit for design and styling to the various contributors to\n[https://github.com/GilbN/theme.park](https://github.com/GilbN/theme.park)!\n\n## Features\n\nHere is a list of features: (current [x], planned [ ], and potential `?`)\n\n* [x] Support for all supported themes and apps in [theme.park](https://theme-park.dev)\n* [x] Supports service side compression:\n  - [x] `gzip` - gzip\n  - [x] `deflate` - zlib\n  -  ?  `br` - brotli (currently unsupported in [Yaegi](https://github.com/traefik/yaegi) for Traefik plugins)\n* [x] Limits the HTTP queries which are touched by plugin to improve performance\n* [x] Updates requests to limit requests' `Accept-Encoding` to include only supported systems\n\n## Configuration\n\n### Static\n\n```yaml\npilot:\n  token: \"xxxx\"\n\nexperimental:\n    plugins:\n        themepark:\n            moduleName: \"github.com/packruler/traefik-themepark\"\n            version: \"v1.2.2\"\n```\n\n### Dynamic\n\nTo configure the `theme.park` plugin you should create a [middleware](https://docs.traefik.io/middlewares/overview/) in\nyour dynamic configuration as explained [here](https://docs.traefik.io/middlewares/overview/). The following example creates\nand uses the `themepark` middleware plugin to replace all foo occurences by bar in the HTTP response body.\n\nThe `app` and `theme` values passed to the plugin should match the `\u003cstyle\u003e` tag provided in the `Installation` section.\nThe example below would match `Installation` section having the following `\u003cstyle\u003e` tag.\n\n`\u003clink rel=\"stylesheet\" type=\"text/css\" href=\"https://theme-park.dev/css/base/sonarr/dark.css\"\u003e`\n\n\n\n```yaml\nhttp:\n  routers:\n    my-router:\n      rule: \"Host(`localhost`)\"\n      middlewares:\n        - \"sonarr-dark\"\n      service: \"my-service\"\n\n  middlewares:\n    sonarr-dark:\n      plugin:\n        themepark:\n          # The name of the supported application listed on https://docs.theme-park.dev/themes.\n          app: sonarr\n\n          # The name of the supported theme listed on https://docs.theme-park.dev/theme-options/ or https://docs.theme-park.dev/community-themes/\n          theme: dark\n\n          # baseUrl is optional if you want to use a self-hosted version of theme.park\n          baseUrl: https://theme-park.domain.tld\n\n          # This currently only supports '4k-logo' and 'darker' addons. Future addons that follow a similar syntax will work as well.\n          # For refernce: https://docs.theme-park.dev/themes/addons/\n          addons:\n            - sonarr-4k-logo\n    radarr-theme:\n      plugin:\n        themepark:\n          # The name of the supported application listed on https://docs.theme-park.dev/themes.\n          app: radarr\n\n          # If using the 'darker' addon the theme MUST be excluded or set to 'base'\n          theme: base\n\n          # Multiple addons can be included at the same time\n          addons:\n            - radarr-darker\n            - radarr-4k-logo\n\n  services:\n    my-service:\n      loadBalancer:\n        servers:\n          - url: \"http://127.0.0.1\"\n```\n\n## How Does This Work?\n\nThis is an extension of the [rewrite-body](https://github.com/packruler/rewrite-body)\nplugin I created based on Traefik's [plugin-rewritebody](https://github.com/traefik/plugin-rewritebody)\nto add support for compressed content.\n\nThat said, this plugin is more focused on `theme.park` support and allows more targetted\nmiddleware logic. This means the overhead added by the plugin's logic is very limited.\nYou can read more about that in the [process](#process) section.\n\n### Process\n\n#### Supported Requests\n\nFor any updates to be attempted the following conditions must be met by the incoming request:\n\n- `Accept` header must include `text/html`\n- HTTP `Method` must be `GET`\n\nThese conditions are intended to drastically limit the HTTP queries that are touched by this plugin.\nAt this time these conditions properly cover all tested applications.\n\n#### Supported Responses\n\nAssuming [Supported Request](#supported-requests) conditions have been met, the following conditions must\nbe met by the resulting response:\n\n- `Content-Type` must be `text/html`\n- `Content-Encoding` must be a support compression (`gzip`, `deflate`, or `identity`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpackruler%2Ftraefik-themepark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpackruler%2Ftraefik-themepark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpackruler%2Ftraefik-themepark/lists"}