Compare commits

...

4 Commits

Author SHA1 Message Date
32ef4ccb0d decluttarr readme 2025-11-13 20:38:59 +00:00
b509854496 decluttarr 2025-11-13 19:17:24 +00:00
c51a7d81be decluttarr 2025-11-13 17:34:15 +00:00
b053fc8019 sonarr animes folder 2025-11-13 15:49:39 +00:00
11 changed files with 231 additions and 1 deletions

View File

@ -12,3 +12,4 @@ jellyfin comes from https://docs.linuxserver.io/images/docker-jellyfin/
flaresolverr comes from https://github.com/FlareSolverr/FlareSolverr flaresolverr comes from https://github.com/FlareSolverr/FlareSolverr
jellyseer comes from https://hub.docker.com/r/fallenbagel/jellyseerr jellyseer comes from https://hub.docker.com/r/fallenbagel/jellyseerr
and https://docs.seerr.dev/extending-jellyseerr/database-config and https://docs.seerr.dev/extending-jellyseerr/database-config
decluttarr comes from https://github.com/ManiMatter/decluttarr

View File

@ -27,4 +27,5 @@
- sonarr - sonarr
- jellyfin - jellyfin
- flaresolverr - flaresolverr
- jellyseerr - jellyseerr
- decluttarr

View File

@ -0,0 +1,74 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: decluttarr
namespace: stack-arr
spec:
replicas: 1
selector:
matchLabels:
app: decluttarr
template:
metadata:
labels:
app: decluttarr
spec:
imagePullSecrets:
- name: regcred
containers:
- name: decluttarr
image: ghcr.io/manimatter/decluttarr:latest
env:
- name: PUID
value: "1013"
- name: PGID
value: "1013"
- name: TZ
value: 'Etc/UTC'
- name: REMOVE_TIMER
value: '1'
- name: REMOVE_FAILED
value: 'True'
- name: REMOVE_FAILED_IMPORTS
value: 'True'
- name: REMOVE_METADATA_MISSING
value: 'True'
- name: REMOVE_MISSING_FILES
value: 'True'
- name: REMOVE_ORPHANS
value: 'True'
- name: REMOVE_SLOW
value: 'False'
- name: REMOVE_STALLED
value: 'True'
- name: REMOVE_UNMONITORED
value: 'False'
- name: MIN_DOWNLOAD_SPEED
value: '100'
- name: PERMITTED_ATTEMPTS
value: '2'
- name: SONARR
valueFrom:
secretKeyRef:
name: decluttarr-secret
key: sonarr
- name: QBITTORRENT
valueFrom:
secretKeyRef:
name: decluttarr-secret
key: bittorrent
volumeMounts:
- name: config
mountPath: /config
- name: downloads
mountPath: /data/downloads
volumes:
- name: config
persistentVolumeClaim:
claimName: decluttarr-config-pvc
- name: downloads
persistentVolumeClaim:
claimName: qbittorrent-downloads-pvc

View File

@ -0,0 +1,12 @@
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: decluttarr-nfs-csi
namespace: stack-arr
provisioner: nfs.csi.k8s.io
parameters:
server: 192.168.1.22
share: /mnt/fenix-main-nas-pool-0/data/k8s-Volumes/k8s-cluster-iac-deployed/stack-arr/decluttarr
allowVolumeExpansion: true
reclaimPolicy: Retain
---

View File

@ -0,0 +1,30 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: decluttarr-config-pv
namespace: stack-arr
spec:
capacity:
storage: 2Gi
storageClassName: decluttarr-nfs-csi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 192.168.1.22
path: /mnt/fenix-main-nas-pool-0/data/k8s-Volumes/k8s-cluster-iac-deployed/stack-arr/decluttarr/config
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: decluttarr-config-pvc
namespace: stack-arr
spec:
storageClassName: decluttarr-nfs-csi
accessModes:
- ReadWriteOnce
volumeName: decluttarr-config-pv
resources:
requests:
storage: 2Gi
---

View File

@ -0,0 +1,10 @@
apiVersion: v1
kind: Secret
metadata:
name: decluttarr-secret
namespace: stack-arr
type: Opaque
data:
radarr: IC0gYmFzZV91cmw6ICJodHRwOi8vcmFkYXJyOjc4NzgiCiAgIGFwaV9rZXk6ICJSQURBUlJfQVBJX0tFWSI=
sonarr: IC0gYmFzZV91cmw6ICJodHRwOi8vc29uYXJyMTo4OTg5IgogICBhcGlfa2V5OiAiU09OQVJSX0FQSV9LRVki
bittorrent: LSBiYXNlX3VybDogImh0dHA6Ly9xYml0dG9ycmVudC1zZXJ2aWNlLnN0YWNrLWFyci5zdmMuY2x1c3Rlci5sb2NhbDo4MDgwIgogIHVzZXJuYW1lOiAidXNlciIgCiAgcGFzc3dvcmQ6ICJwYXNzIgogIG5hbWU6ICJxQml0dG9ycmVudCIKICAgICAgICA=

View File

@ -0,0 +1,51 @@
- name: Remover o diretório /tmp/stack-arr/decluttarr/kubernetes-files
ansible.builtin.file:
path: /tmp/stack-arr/decluttarr/kubernetes-files
state: absent
- name: Criar diretório temporário no remoto
file:
path: /tmp/stack-arr/decluttarr/kubernetes-files
state: directory
mode: '0755'
- name: Copy file with owner and permissions
ansible.builtin.copy:
src: ../files
dest: /tmp/stack-arr/decluttarr/kubernetes-files
owner: fenix
group: root
mode: '0644'
- name: Obter várias notas do Bitwarden
shell: |
echo "unlock"
BW_SESSION=$(bw unlock {{ bw_password }} --raw)
echo "get item"
bw get item "{{ item.id }}" --session $BW_SESSION | jq -r '.notes' > {{ item.dest }}
loop:
- { id: "iac.ansible.stackarr.decluttarr.secret", dest: "/tmp/stack-arr/decluttarr/kubernetes-files/files/decluttarr-secret.yaml" }
args:
executable: /bin/bash
environment:
BW_PASSWORD: "{{ BW_PASSWORD }}"
- name: Listar conteúdo do diretório remoto
shell: ls -l /tmp/stack-arr/decluttarr/kubernetes-files/files
register: resultado_ls
- name: Mostrar resultado do ls
debug:
var: resultado_ls.stdout_lines
- name: Aplicar o stolon
become: yes
become_user: fenix
shell: |
kubectl apply -f /tmp/stack-arr/decluttarr/kubernetes-files/files/
environment:
KUBECONFIG: /home/fenix/.kube/config

View File

@ -0,0 +1,4 @@
bw_password: "{{ lookup('env', 'BW_PASSWORD') }}"
VAULTWARDEN_LINK: "{{ lookup('env', 'VAULTWARDEN_LINK') }}"
BW_CLIENTID: "{{ lookup('env', 'BW_CLIENTID') }}"
BW_CLIENTSECRET : "{{ lookup('env', 'BW_CLIENTSECRET') }}"

View File

@ -61,6 +61,8 @@ spec:
mountPath: /downloads mountPath: /downloads
- name: tv - name: tv
mountPath: /tv mountPath: /tv
- name: anime
mountPath: /anime
volumes: volumes:
- name: config - name: config
persistentVolumeClaim: persistentVolumeClaim:
@ -71,6 +73,9 @@ spec:
- name: tv - name: tv
persistentVolumeClaim: persistentVolumeClaim:
claimName: sonarr-tv-pvc claimName: sonarr-tv-pvc
- name: anime
persistentVolumeClaim:
claimName: sonarr-anime-pvc

View File

@ -20,4 +20,16 @@ parameters:
server: 192.168.1.22 server: 192.168.1.22
share: /mnt/fenix-main-nas-pool-0/data/Filmes_e_Series/TV share: /mnt/fenix-main-nas-pool-0/data/Filmes_e_Series/TV
allowVolumeExpansion: true allowVolumeExpansion: true
reclaimPolicy: Retain
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: sonarr-anime-nfs-csi
namespace: stack-arr
provisioner: nfs.csi.k8s.io
parameters:
server: 192.168.1.22
share: /mnt/fenix-main-nas-pool-0/data/Filmes_e_Series/Anime
allowVolumeExpansion: true
reclaimPolicy: Retain reclaimPolicy: Retain

View File

@ -57,4 +57,34 @@ spec:
resources: resources:
requests: requests:
storage: 50Gi storage: 50Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: sonarr-anime-pv
namespace: stack-arr
spec:
capacity:
storage: 50Gi
storageClassName: sonarr-anime-nfs-csi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 192.168.1.22
path: /mnt/fenix-main-nas-pool-0/data/Filmes_e_Series/Anime
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sonarr-anime-pvc
namespace: stack-arr
spec:
storageClassName: sonarr-anime-nfs-csi
accessModes:
- ReadWriteOnce
volumeName: sonarr-anime-pv
resources:
requests:
storage: 50Gi
--- ---