You've already forked docker-compose-nas
mirror of
https://github.com/AdrienPoupa/docker-compose-nas.git
synced 2025-06-14 22:15:17 +02:00
feat: Migrate Jellyseerr to a subdomain (#146)
This commit is contained in:
@ -13,9 +13,10 @@ PIA_USER=
|
|||||||
PIA_PASS=
|
PIA_PASS=
|
||||||
PIA_LOCAL_NETWORK="192.168.0.0/16"
|
PIA_LOCAL_NETWORK="192.168.0.0/16"
|
||||||
HOSTNAME=localhost
|
HOSTNAME=localhost
|
||||||
HOMEASSISTANT_HOSTNAME=
|
BASE_HOSTNAME=localhost
|
||||||
|
HOMEASSISTANT_HOSTNAME="homeassistant.${BASE_HOSTNAME}"
|
||||||
IMMICH_HOSTNAME=
|
IMMICH_HOSTNAME=
|
||||||
ADGUARD_HOSTNAME=
|
ADGUARD_HOSTNAME="dns.${BASE_HOSTNAME}"
|
||||||
ADGUARD_USERNAME=
|
ADGUARD_USERNAME=
|
||||||
ADGUARD_PASSWORD=
|
ADGUARD_PASSWORD=
|
||||||
QBITTORRENT_USERNAME=admin
|
QBITTORRENT_USERNAME=admin
|
||||||
@ -54,3 +55,4 @@ DECLUTTARR_REMOVE_FAILED_IMPORTS=True
|
|||||||
DECLUTTARR_REMOVE_METADATA_MISSING=True
|
DECLUTTARR_REMOVE_METADATA_MISSING=True
|
||||||
DECLUTTARR_REMOVE_MISSING_FILES=True
|
DECLUTTARR_REMOVE_MISSING_FILES=True
|
||||||
DECLUTTARR_REMOVE_ORPHANS=True
|
DECLUTTARR_REMOVE_ORPHANS=True
|
||||||
|
JELLYSEERR_HOSTNAME="jellyseerr.${BASE_HOSTNAME}"
|
113
README.md
113
README.md
@ -13,53 +13,54 @@ I am running it in Ubuntu Server 22.04; I also tested this setup on a [Synology
|
|||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
<!-- TOC -->
|
<!-- TOC -->
|
||||||
* [Docker Compose NAS](#docker-compose-nas)
|
|
||||||
* [Table of Contents](#table-of-contents)
|
- [Docker Compose NAS](#docker-compose-nas)
|
||||||
* [Applications](#applications)
|
- [Table of Contents](#table-of-contents)
|
||||||
* [Quick Start](#quick-start)
|
- [Applications](#applications)
|
||||||
* [Environment Variables](#environment-variables)
|
- [Quick Start](#quick-start)
|
||||||
* [PIA WireGuard VPN](#pia-wireguard-vpn)
|
- [Environment Variables](#environment-variables)
|
||||||
* [Sonarr, Radarr & Lidarr](#sonarr-radarr--lidarr)
|
- [PIA WireGuard VPN](#pia-wireguard-vpn)
|
||||||
* [File Structure](#file-structure)
|
- [Sonarr, Radarr & Lidarr](#sonarr-radarr--lidarr)
|
||||||
* [Download Client](#download-client)
|
- [File Structure](#file-structure)
|
||||||
* [Prowlarr](#prowlarr)
|
- [Download Client](#download-client)
|
||||||
* [qBittorrent](#qbittorrent)
|
- [Prowlarr](#prowlarr)
|
||||||
* [Jellyfin](#jellyfin)
|
- [qBittorrent](#qbittorrent)
|
||||||
* [Homepage](#homepage)
|
- [Jellyfin](#jellyfin)
|
||||||
* [Jellyseerr](#jellyseerr)
|
- [Homepage](#homepage)
|
||||||
* [Traefik and SSL Certificates](#traefik-and-ssl-certificates)
|
- [Jellyseerr](#jellyseerr)
|
||||||
* [Accessing from the outside with Tailscale](#accessing-from-the-outside-with-tailscale)
|
- [Traefik and SSL Certificates](#traefik-and-ssl-certificates)
|
||||||
* [Optional Services](#optional-services)
|
- [Accessing from the outside with Tailscale](#accessing-from-the-outside-with-tailscale)
|
||||||
* [FlareSolverr](#flaresolverr)
|
- [Optional Services](#optional-services)
|
||||||
* [SABnzbd](#sabnzbd)
|
- [FlareSolverr](#flaresolverr)
|
||||||
* [AdGuard Home](#adguard-home)
|
- [SABnzbd](#sabnzbd)
|
||||||
* [Encryption](#encryption)
|
- [AdGuard Home](#adguard-home)
|
||||||
* [DHCP](#dhcp)
|
- [Encryption](#encryption)
|
||||||
* [Expose DNS Server with Tailscale](#expose-dns-server-with-tailscale)
|
- [DHCP](#dhcp)
|
||||||
* [Calibre-Web](#calibre-web)
|
- [Expose DNS Server with Tailscale](#expose-dns-server-with-tailscale)
|
||||||
* [Decluttarr](#decluttarr)
|
- [Calibre-Web](#calibre-web)
|
||||||
* [Tandoor](#tandoor)
|
- [Decluttarr](#decluttarr)
|
||||||
* [Joplin](#joplin)
|
- [Tandoor](#tandoor)
|
||||||
* [Home Assistant](#home-assistant)
|
- [Joplin](#joplin)
|
||||||
* [Immich](#immich)
|
- [Home Assistant](#home-assistant)
|
||||||
* [Customization](#customization)
|
- [Immich](#immich)
|
||||||
* [Optional: Using the VPN for *arr apps](#optional-using-the-vpn-for-arr-apps)
|
- [Customization](#customization)
|
||||||
* [Synology Quirks](#synology-quirks)
|
- [Optional: Using the VPN for \*arr apps](#optional-using-the-vpn-for-arr-apps)
|
||||||
* [Free Ports 80 and 443](#free-ports-80-and-443)
|
- [Synology Quirks](#synology-quirks)
|
||||||
* [Install Synology WireGuard](#install-synology-wireguard)
|
- [Free Ports 80 and 443](#free-ports-80-and-443)
|
||||||
* [Free Port 1900](#free-port-1900)
|
- [Install Synology WireGuard](#install-synology-wireguard)
|
||||||
* [User Permissions](#user-permissions)
|
- [Free Port 1900](#free-port-1900)
|
||||||
* [Synology DHCP Server and Adguard Home Port Conflict](#synology-dhcp-server-and-adguard-home-port-conflict)
|
- [User Permissions](#user-permissions)
|
||||||
* [Use Separate Paths for Torrents and Storage](#use-separate-paths-for-torrents-and-storage)
|
- [Synology DHCP Server and Adguard Home Port Conflict](#synology-dhcp-server-and-adguard-home-port-conflict)
|
||||||
* [NFS Share](#nfs-share)
|
- [Use Separate Paths for Torrents and Storage](#use-separate-paths-for-torrents-and-storage)
|
||||||
* [Static IP](#static-ip)
|
- [NFS Share](#nfs-share)
|
||||||
* [Laptop Specific Configuration](#laptop-specific-configuration)
|
- [Static IP](#static-ip)
|
||||||
|
- [Laptop Specific Configuration](#laptop-specific-configuration)
|
||||||
<!-- TOC -->
|
<!-- TOC -->
|
||||||
|
|
||||||
## Applications
|
## Applications
|
||||||
|
|
||||||
| **Application** | **Description** | **Image** | **URL** |
|
| **Application** | **Description** | **Image** | **URL** |
|
||||||
|--------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|--------------|
|
| ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------- |
|
||||||
| [Sonarr](https://sonarr.tv) | PVR for newsgroup and bittorrent users | [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr) | /sonarr |
|
| [Sonarr](https://sonarr.tv) | PVR for newsgroup and bittorrent users | [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr) | /sonarr |
|
||||||
| [Radarr](https://radarr.video) | Movie collection manager for Usenet and BitTorrent users | [linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr) | /radarr |
|
| [Radarr](https://radarr.video) | Movie collection manager for Usenet and BitTorrent users | [linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr) | /radarr |
|
||||||
| [Bazarr](https://www.bazarr.media/) | Companion application to Sonarr and Radarr that manages and downloads subtitles | [linuxserver/bazarr](https://hub.docker.com/r/linuxserver/bazarr) | /bazarr |
|
| [Bazarr](https://www.bazarr.media/) | Companion application to Sonarr and Radarr that manages and downloads subtitles | [linuxserver/bazarr](https://hub.docker.com/r/linuxserver/bazarr) | /bazarr |
|
||||||
@ -68,7 +69,7 @@ I am running it in Ubuntu Server 22.04; I also tested this setup on a [Synology
|
|||||||
| [qBittorrent](https://www.qbittorrent.org) | Bittorrent client with a complete web UI<br/>Uses VPN network<br/>Using Libtorrent 1.x | [linuxserver/qbittorrent:libtorrentv1](https://hub.docker.com/r/linuxserver/qbittorrent) | /qbittorrent |
|
| [qBittorrent](https://www.qbittorrent.org) | Bittorrent client with a complete web UI<br/>Uses VPN network<br/>Using Libtorrent 1.x | [linuxserver/qbittorrent:libtorrentv1](https://hub.docker.com/r/linuxserver/qbittorrent) | /qbittorrent |
|
||||||
| [Unpackerr](https://unpackerr.zip) | Automated Archive Extractions | [golift/unpackerr](https://hub.docker.com/r/golift/unpackerr) | |
|
| [Unpackerr](https://unpackerr.zip) | Automated Archive Extractions | [golift/unpackerr](https://hub.docker.com/r/golift/unpackerr) | |
|
||||||
| [Jellyfin](https://jellyfin.org) | Media server designed to organize, manage, and share digital media files to networked devices | [linuxserver/jellyfin](https://hub.docker.com/r/linuxserver/jellyfin) | /jellyfin |
|
| [Jellyfin](https://jellyfin.org) | Media server designed to organize, manage, and share digital media files to networked devices | [linuxserver/jellyfin](https://hub.docker.com/r/linuxserver/jellyfin) | /jellyfin |
|
||||||
| [Jellyseer](https://jellyfin.org) | Manages requests for your media library | [fallenbagel/jellyseerr](https://hub.docker.com/r/fallenbagel/jellyseerr) | /jellyseer |
|
| [Jellyseer](https://jellyfin.org) | Manages requests for your media library | [fallenbagel/jellyseerr](https://hub.docker.com/r/fallenbagel/jellyseerr) | `$JELLYSEERR_HOSTNAME` |
|
||||||
| [Homepage](https://gethomepage.dev) | Application dashboard | [gethomepage/homepage](https://github.com/gethomepage/homepage/pkgs/container/homepage) | / |
|
| [Homepage](https://gethomepage.dev) | Application dashboard | [gethomepage/homepage](https://github.com/gethomepage/homepage/pkgs/container/homepage) | / |
|
||||||
| [Traefik](https://traefik.io) | Reverse proxy | [traefik](https://hub.docker.com/_/traefik) | |
|
| [Traefik](https://traefik.io) | Reverse proxy | [traefik](https://hub.docker.com/_/traefik) | |
|
||||||
| [Watchtower](https://containrrr.dev/watchtower/) | Automated Docker images update | [containrrr/watchtower](https://hub.docker.com/r/containrrr/watchtower) | |
|
| [Watchtower](https://containrrr.dev/watchtower/) | Automated Docker images update | [containrrr/watchtower](https://hub.docker.com/r/containrrr/watchtower) | |
|
||||||
@ -98,7 +99,7 @@ If you want to show Jellyfin information in the homepage, create it in Jellyfin
|
|||||||
## Environment Variables
|
## Environment Variables
|
||||||
|
|
||||||
| Variable | Description | Default |
|
| Variable | Description | Default |
|
||||||
|--------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|
|
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------ |
|
||||||
| `COMPOSE_FILE` | Docker compose files to load | |
|
| `COMPOSE_FILE` | Docker compose files to load | |
|
||||||
| `COMPOSE_PROFILES` | Docker compose profiles to load (`flaresolverr`, `adguardhome`, `sabnzbd`) | |
|
| `COMPOSE_PROFILES` | Docker compose profiles to load (`flaresolverr`, `adguardhome`, `sabnzbd`) | |
|
||||||
| `USER_ID` | ID of the user to use in Docker containers | `1000` |
|
| `USER_ID` | ID of the user to use in Docker containers | `1000` |
|
||||||
@ -112,6 +113,7 @@ If you want to show Jellyfin information in the homepage, create it in Jellyfin
|
|||||||
| `PIA_PASS` | PIA password | |
|
| `PIA_PASS` | PIA password | |
|
||||||
| `PIA_LOCAL_NETWORK` | PIA local network | `192.168.0.0/16` |
|
| `PIA_LOCAL_NETWORK` | PIA local network | `192.168.0.0/16` |
|
||||||
| `HOSTNAME` | Hostname of the NAS, could be a local IP or a domain name | `localhost` |
|
| `HOSTNAME` | Hostname of the NAS, could be a local IP or a domain name | `localhost` |
|
||||||
|
| `BASE_HOSTNAME` | Base hostname of the NAS, useful if hostname is a subdomain | `localhost` |
|
||||||
| `ADGUARD_HOSTNAME` | Optional - AdGuard Home hostname used, if enabled | |
|
| `ADGUARD_HOSTNAME` | Optional - AdGuard Home hostname used, if enabled | |
|
||||||
| `ADGUARD_USERNAME` | Optional - AdGuard Home username to show details in the homepage, if enabled | |
|
| `ADGUARD_USERNAME` | Optional - AdGuard Home username to show details in the homepage, if enabled | |
|
||||||
| `ADGUARD_PASSWORD` | Optional - AdGuard Home password to show details in the homepage, if enabled | |
|
| `ADGUARD_PASSWORD` | Optional - AdGuard Home password to show details in the homepage, if enabled | |
|
||||||
@ -141,6 +143,7 @@ If you want to show Jellyfin information in the homepage, create it in Jellyfin
|
|||||||
| `HOMEPAGE_VAR_WEATHER_UNIT` | Homepage weather unit, either `metric` or `imperial` | `metric` |
|
| `HOMEPAGE_VAR_WEATHER_UNIT` | Homepage weather unit, either `metric` or `imperial` | `metric` |
|
||||||
| `CALIBRE_USERNAME` | Optional - Calibre-Web username to show details in the homepage, if enabled | `admin` |
|
| `CALIBRE_USERNAME` | Optional - Calibre-Web username to show details in the homepage, if enabled | `admin` |
|
||||||
| `CALIBRE_PASSWORD` | Optional - Calibre-Web password to show details in the homepage, if enabled | `admin123` |
|
| `CALIBRE_PASSWORD` | Optional - Calibre-Web password to show details in the homepage, if enabled | `admin123` |
|
||||||
|
| `JELLYSEERR_HOSTNAME` | Jellyseerr hostname used | |
|
||||||
|
|
||||||
## PIA WireGuard VPN
|
## PIA WireGuard VPN
|
||||||
|
|
||||||
@ -164,7 +167,7 @@ otherwise the VPN container will exit and qBittorrent will not start.
|
|||||||
### File Structure
|
### File Structure
|
||||||
|
|
||||||
Sonarr, Radarr, and Lidarr must be configured to support hardlinks, to allow instant moves and prevent using twice the storage
|
Sonarr, Radarr, and Lidarr must be configured to support hardlinks, to allow instant moves and prevent using twice the storage
|
||||||
(Bittorrent downloads and final file). The trick is to use a single volume shared by the Bittorrent client and the *arrs.
|
(Bittorrent downloads and final file). The trick is to use a single volume shared by the Bittorrent client and the \*arrs.
|
||||||
Subfolders are used to separate the TV shows from the movies.
|
Subfolders are used to separate the TV shows from the movies.
|
||||||
|
|
||||||
The configuration is well explained by [this guide](https://trash-guides.info/Hardlinks/How-to-setup-for/Docker/).
|
The configuration is well explained by [this guide](https://trash-guides.info/Hardlinks/How-to-setup-for/Docker/).
|
||||||
@ -205,6 +208,7 @@ Their API keys can be found in Settings > Security > API Key.
|
|||||||
|
|
||||||
Running `update-config.sh` will set qBittorrent's password to `adminadmin`. If you wish to update the password manually,
|
Running `update-config.sh` will set qBittorrent's password to `adminadmin`. If you wish to update the password manually,
|
||||||
since qBittorrent v4.6.2, a temporary password is generated on startup. Get it with `docker compose logs qbittorrent`:
|
since qBittorrent v4.6.2, a temporary password is generated on startup. Get it with `docker compose logs qbittorrent`:
|
||||||
|
|
||||||
```
|
```
|
||||||
The WebUI administrator username is: admin
|
The WebUI administrator username is: admin
|
||||||
The WebUI administrator password was not set. A temporary password is provided for this session: <some_password>
|
The WebUI administrator password was not set. A temporary password is provided for this session: <some_password>
|
||||||
@ -252,7 +256,12 @@ The files in `/homepage/tpl/*.yaml` only serve as a base to set up the homepage
|
|||||||
|
|
||||||
Jellyseer gives you content recommendations, allows others to make requests to you, and allows logging in with Jellyfin credentials.
|
Jellyseer gives you content recommendations, allows others to make requests to you, and allows logging in with Jellyfin credentials.
|
||||||
|
|
||||||
To set up, go to https://hostname/jellyseerr/setup, and set the URLs as follows:
|
Set the `JELLYSEERR_HOSTNAME`, since it does not support
|
||||||
|
[running in a subfolder](https://github.com/Fallenbagel/jellyseerr/issues/97).
|
||||||
|
Add the necessary DNS records in your domain.
|
||||||
|
|
||||||
|
To set up, go to the Jellyseerr hostname, and set the URLs as follows:
|
||||||
|
|
||||||
- Jellyfin: http://jellyfin:8096/jellyfin
|
- Jellyfin: http://jellyfin:8096/jellyfin
|
||||||
- Radarr:
|
- Radarr:
|
||||||
- Hostname: radarr
|
- Hostname: radarr
|
||||||
@ -274,6 +283,7 @@ Traefik makes this trivial by using Let's Encrypt and one of its
|
|||||||
Let's assume we are using `nas.domain.com` as custom subdomain.
|
Let's assume we are using `nas.domain.com` as custom subdomain.
|
||||||
|
|
||||||
The idea is to create an A record pointing to the private IP of the NAS, `192.168.0.10` for example:
|
The idea is to create an A record pointing to the private IP of the NAS, `192.168.0.10` for example:
|
||||||
|
|
||||||
```
|
```
|
||||||
nas.domain.com. 1 IN A 192.168.0.10
|
nas.domain.com. 1 IN A 192.168.0.10
|
||||||
```
|
```
|
||||||
@ -288,6 +298,7 @@ Then, fill the CloudFlare `.env` entries.
|
|||||||
|
|
||||||
If you want to test your configuration first, use the Let's Encrypt staging server by updating `LETS_ENCRYPT_CA_SERVER`'s
|
If you want to test your configuration first, use the Let's Encrypt staging server by updating `LETS_ENCRYPT_CA_SERVER`'s
|
||||||
value in `.env`:
|
value in `.env`:
|
||||||
|
|
||||||
```
|
```
|
||||||
LETS_ENCRYPT_CA_SERVER=https://acme-staging-v02.api.letsencrypt.org/directory
|
LETS_ENCRYPT_CA_SERVER=https://acme-staging-v02.api.letsencrypt.org/directory
|
||||||
```
|
```
|
||||||
@ -308,6 +319,7 @@ If we want to make it reachable from outside the network without opening ports o
|
|||||||
you are connecting from, and they will see each other.
|
you are connecting from, and they will see each other.
|
||||||
|
|
||||||
In this case, the A record should point to the IP Tailscale assigned to the NAS, eg `100.xxx.xxx.xxx`:
|
In this case, the A record should point to the IP Tailscale assigned to the NAS, eg `100.xxx.xxx.xxx`:
|
||||||
|
|
||||||
```
|
```
|
||||||
nas.domain.com. 1 IN A 100.xxx.xxx.xxx
|
nas.domain.com. 1 IN A 100.xxx.xxx.xxx
|
||||||
```
|
```
|
||||||
@ -370,6 +382,7 @@ In `adguardhome/docker-compose.yml`, set the network interface `dhcp-relay` shou
|
|||||||
`enp2s0`, but you may need to change it to your host's network interface, verify it with `ip a`.
|
`enp2s0`, but you may need to change it to your host's network interface, verify it with `ip a`.
|
||||||
|
|
||||||
In the configuration (`adguardhome/conf/AdGuardHome.yaml`), set the DHCP options 6th key to your NAS internal IP address:
|
In the configuration (`adguardhome/conf/AdGuardHome.yaml`), set the DHCP options 6th key to your NAS internal IP address:
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
dhcp:
|
dhcp:
|
||||||
dhcpv4:
|
dhcpv4:
|
||||||
@ -397,6 +410,7 @@ Unrar is included by default and needs to be set in the Calibre-Web admin page (
|
|||||||
with a path of `/usr/bin/unrar`.
|
with a path of `/usr/bin/unrar`.
|
||||||
|
|
||||||
### Decluttarr
|
### Decluttarr
|
||||||
|
|
||||||
Decluttarr keeps the queue free of stalled and redundant downloads. For configuration options and examples,
|
Decluttarr keeps the queue free of stalled and redundant downloads. For configuration options and examples,
|
||||||
please see https://github.com/ManiMatter/decluttarr/blob/dev/README.md.
|
please see https://github.com/ManiMatter/decluttarr/blob/dev/README.md.
|
||||||
|
|
||||||
@ -442,9 +456,10 @@ services:
|
|||||||
- NETWORK=192.168.1.0/24 # So it can be accessed within the local network
|
- NETWORK=192.168.1.0/24 # So it can be accessed within the local network
|
||||||
```
|
```
|
||||||
|
|
||||||
### Optional: Using the VPN for *arr apps
|
### Optional: Using the VPN for \*arr apps
|
||||||
|
|
||||||
|
If you want to use the VPN for Prowlarr and other \*arr applications, add the following block to all the desired containers:
|
||||||
|
|
||||||
If you want to use the VPN for Prowlarr and other *arr applications, add the following block to all the desired containers:
|
|
||||||
```yml
|
```yml
|
||||||
network_mode: "service:vpn"
|
network_mode: "service:vpn"
|
||||||
depends_on:
|
depends_on:
|
||||||
@ -466,6 +481,7 @@ Docker compose NAS can run on DSM 7.1, with a few extra steps.
|
|||||||
By default, ports 80 and 443 are used by Nginx but not actually used for anything useful. Free them by creating a new task
|
By default, ports 80 and 443 are used by Nginx but not actually used for anything useful. Free them by creating a new task
|
||||||
in the Task Scheduler > Create > Triggered Task > User-defined script. Leave the Event as `Boot-up` and the `root` user,
|
in the Task Scheduler > Create > Triggered Task > User-defined script. Leave the Event as `Boot-up` and the `root` user,
|
||||||
go to Task Settings and paste the following in User-defined script:
|
go to Task Settings and paste the following in User-defined script:
|
||||||
|
|
||||||
```
|
```
|
||||||
sed -i -e 's/80/81/' -e 's/443/444/' /usr/syno/share/nginx/server.mustache /usr/syno/share/nginx/DSM.mustache /usr/syno/share/nginx/WWWService.mustache
|
sed -i -e 's/80/81/' -e 's/443/444/' /usr/syno/share/nginx/server.mustache /usr/syno/share/nginx/DSM.mustache /usr/syno/share/nginx/WWWService.mustache
|
||||||
|
|
||||||
@ -580,6 +596,7 @@ If the server is installed on a laptop, you may want to disable the suspension w
|
|||||||
`sudo nano /etc/systemd/logind.conf`
|
`sudo nano /etc/systemd/logind.conf`
|
||||||
|
|
||||||
Replace:
|
Replace:
|
||||||
|
|
||||||
- `#HandleLidSwitch=suspend` by `HandleLidSwitch=ignore`
|
- `#HandleLidSwitch=suspend` by `HandleLidSwitch=ignore`
|
||||||
- `#LidSwitchIgnoreInhibited=yes` by `LidSwitchIgnoreInhibited=no`
|
- `#LidSwitchIgnoreInhibited=yes` by `LidSwitchIgnoreInhibited=no`
|
||||||
|
|
||||||
|
@ -183,62 +183,14 @@ services:
|
|||||||
retries: 10
|
retries: 10
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- traefik.enable=true
|
||||||
- traefik.http.routers.jellyseerr.rule=(Host(`${HOSTNAME}`) && PathPrefix(`/jellyseerr`))
|
- traefik.http.routers.jellyseerr.rule=(Host(`${JELLYSEERR_HOSTNAME}`))
|
||||||
- traefik.http.routers.jellyseerr.tls=true
|
- traefik.http.routers.jellyseerr.tls=true
|
||||||
- traefik.http.routers.jellyseerr.tls.certresolver=myresolver
|
- traefik.http.routers.jellyseerr.tls.certresolver=myresolver
|
||||||
- traefik.http.services.jellyseerr.loadbalancer.server.port=5055
|
- traefik.http.services.jellyseerr.loadbalancer.server.port=5055
|
||||||
- traefik.http.routers.jellyseerr.middlewares=jellyseerr-stripprefix,jellyseerr-rewrite,jellyseerr-rewriteHeaders
|
|
||||||
- traefik.http.middlewares.jellyseerr-stripprefix.stripPrefix.prefixes=/jellyseerr
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewriteHeaders.plugin.rewriteHeaders.rewrites[0].header=location
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewriteHeaders.plugin.rewriteHeaders.rewrites[0].regex=^/(.+)$
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewriteHeaders.plugin.rewriteHeaders.rewrites[0].replacement=/jellyseerr/$1
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewriteHeaders.plugin.rewriteHeaders.rewrites[1].header=location
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewriteHeaders.plugin.rewriteHeaders.rewrites[1].regex=^/$
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewriteHeaders.plugin.rewriteHeaders.rewrites[1].replacement=/jellyseerr
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.monitoring.types[0]=text/html
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.monitoring.types[1]=application/javascript
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.monitoring.types[2]=*/*
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.monitoring.types[3]=application/json
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[1].regex=/_next
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[1].replacement=/jellyseerr/_next
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[2].regex=/_next/data/
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[2].replacement=/jellyseerr/_next/data/
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[3].regex=\/_next\\/static\\//
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[3].replacement=\/jellyseerr\/_next\/static\//
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[4].regex=/api/v1
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[4].replacement=/jellyseerr/api/v1
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[5].regex=/login/plex/loading
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[5].replacement=/jellyseerr/login/plex/loading
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[6].regex=/images/
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[6].replacement=/jellyseerr/images/
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[7].regex=/favicon
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[7].replacement=/jellyseerr/favicon
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[8].regex=/logo_
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[8].replacement=/jellyseerr/logo_
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[9].regex=/site.webmanifest
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[9].replacement=/jellyseerr/site.webmanifest
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[10].regex=/sw.js
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[10].replacement=/jellyseerr/sw.js
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[11].regex=/offline.html
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[11].replacement=/jellyseerr/offline.html
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[12].regex=src="/os_logo_square.png"
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[12].replacement=src="/jellyseerr/os_logo_square.png"
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[13].regex=href([=:])"/([/a-zA-Z?=]*)"
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[13].replacement=href$1"/jellyseerr/$2"
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[14].regex=linkUrl:"/([/a-zA-Z?=]*)"
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[14].replacement=linkUrl:"/jellyseerr/$1"
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[15].regex="/([a-z]+)/".concat
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[15].replacement="/jellyseerr/$1/".concat
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[16].regex=url:"/([/a-zA-Z?=]*)"
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[16].replacement=url:"/jellyseerr/$1"
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[17].regex=/imageproxy/
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[17].replacement=/jellyseerr/imageproxy/
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[18].regex=/avatarproxy/
|
|
||||||
- traefik.http.middlewares.jellyseerr-rewrite.plugin.rewrite-body.rewrites[18].replacement=/jellyseerr/avatarproxy/
|
|
||||||
- homepage.group=Media
|
- homepage.group=Media
|
||||||
- homepage.name=JellySeerr
|
- homepage.name=JellySeerr
|
||||||
- homepage.icon=jellyseerr.png
|
- homepage.icon=jellyseerr.png
|
||||||
- homepage.href=/jellyseerr
|
- homepage.href=https://${JELLYSEERR_HOSTNAME}
|
||||||
- homepage.description=Content Recommendations and Request Management
|
- homepage.description=Content Recommendations and Request Management
|
||||||
- homepage.weight=3
|
- homepage.weight=3
|
||||||
- homepage.widget.type=jellyseerr
|
- homepage.widget.type=jellyseerr
|
||||||
|
Reference in New Issue
Block a user