Post

Radarr - Movie Management from the Arr family of applications

Radarr - Movie Management from the Arr family of applications

Radarr is a movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available.

I use PostgreSQL instead of SQLite

Since this uses media from my NAS i have simply decided to run this as a Docker Container on UnRAID on my NAS instead of having it as part of my kubernetes cluster to remove the need to access the NAS media remotely

Kubernetes Manifest

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: radarr
    app.kubernetes.io/instance: radarr
    app.kubernetes.io/name: radarr
  name: radarr
  namespace: arr
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: radarr
  template:
    metadata:
      labels:
        app: radarr
        app.kubernetes.io/name: radarr
    spec:
      nodeSelector:
        nas: "true"
      containers:
      - image: hotio/radarr
        name: radarr
        ports:
        - containerPort: 7878
          name: web
          protocol: TCP
        env:
        - name: TZ
          value: Europe/London
        volumeMounts:
        - mountPath: "/movies"
          readOnly: false
          name: smb
          subPath: "Movies"
        - mountPath: "/downloads"
          readOnly: false
          name: smb
          subPath: "Downloads"
        - mountPath: "/config"
          readOnly: false
          name: config
      volumes:
        - name: smb
          persistentVolumeClaim:
            claimName: pvc-radarr-smb
        - name: config
          persistentVolumeClaim:
            claimName: radarr
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: radarr
  name: radarr
  namespace: arr
spec:
  ports:
  - name: web-tcp
    port: 7878
    protocol: TCP
    targetPort: 7878
  selector:
    app: radarr
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: radarr
  namespace: arr
  annotations: 
    kubernetes.io/ingress.class: traefik-external
    gethomepage.dev/href: "https://radarr.f9.casa"
    gethomepage.dev/enabled: "true"
    gethomepage.dev/description: Movie Management
    gethomepage.dev/group: Media Management
    gethomepage.dev/icon: radarr.png
    gethomepage.dev/name: Radarr
    gethomepage.dev/widget.type: radarr
    gethomepage.dev/widget.url: "http://radarr.arr:7878"
    gethomepage.dev/widget.key: "[REDACTED]"
spec:
  entryPoints:
    - websecure
  routes:
    - match: Host(`radarr.f9.casa`)
      kind: Rule
      services:
        - name: radarr
          port: 7878
      middlewares:
        - name: default-headers
          namespace: default
        - name: authentik
          namespace: authentik
  tls:
    secretName: f9-casa-tls

Docker Compose

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: '3.9'
services:
  radarr:
    image: ghcr.io/hotio/radarr
    hostname: radarr
    networks:
      - traefik-public
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - /srv/cephfs/docker/appdata/radarr:/config
      - /srv/media/Movies:/movies
      - /srv/media/Downloads:/downloads
    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.radarr.rule=Host(`radarr.f9.casa`)"
        - "traefik.http.services.radarr.loadbalancer.server.port=7878"
        - "traefik.http.routers.radarr.entrypoints=https"
        - "traefik.http.routers.radarr.tls=true"
        - "traefik.http.routers.radarr.tls.certresolver=letsencrypt"
        - "traefik.http.routers.radarr.middlewares=authentik@docker"

        
        - homepage.group=Media Management
        - homepage.name=Radarr
        - homepage.icon=radarr.png
        - homepage.href=https://radarr.f9.casa
        - homepage.description=Movie Management
        - homepage.siteMonitor=http://radarr:7878
        - homepage.widget.type=radarr
        - homepage.widget.url=http://radarr:7878
        - homepage.widget.key=[REDACTED]
      mode: replicated
networks:
  traefik-public:
    external: true

Configuration

config.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<Config>
  <BindAddress>*</BindAddress>
  <Port>7878</Port>
  <SslPort>9898</SslPort>
  <EnableSsl>False</EnableSsl>
  <LaunchBrowser>True</LaunchBrowser>
  <ApiKey>[REDACTED]</ApiKey>
  <AuthenticationMethod>External</AuthenticationMethod>
  <Branch>master</Branch>
  <LogLevel>info</LogLevel>
  <SslCertPath></SslCertPath>
  <SslCertPassword></SslCertPassword>
  <UrlBase></UrlBase>
  <InstanceName>Radarr</InstanceName>
  <UpdateMechanism>Docker</UpdateMechanism>
  <AnalyticsEnabled>False</AnalyticsEnabled>
  <AuthenticationRequired>Enabled</AuthenticationRequired>
  <PostgresUser>radarr</PostgresUser>
  <PostgresPassword>[REDACTED]</PostgresPassword>
  <PostgresPort>5432</PostgresPort>
  <PostgresHost>postgresql</PostgresHost>
</Config>
This post is licensed under CC BY 4.0 by the author.