Todos que já pesquisaram sobre programas como Radarr, Sonarr e os demais softwares relacionados já se depararam com o famoso TRaSH Guides. Em poucas palavras, ele é um guia de boas práticas e de como você pode tirar um bom proveito desses programas em relação ao armazenamento em disco.
A maioria desses softwares de mídia se baseia bastante no conceito de hardlinks. A principal utilidade nesse cenário é ter o mesmo arquivo em locais diferentes, por exemplo no diretório da sua biblioteca de mídia (Plex/Jellyfin) e no diretório do seu cliente BitTorrent para fazer a semeadura da mídia. Isso é muito útil para não ocupar espaço duplicado no seu HD/SSD, além de permitir renomear o arquivo no link e adicionar informações relevantes sobre a mídia.
Sugestão do TRaSH Guides
No site deles, eles sugerem a seguinte estrutura de diretórios para organizar seus arquivos:
data
├── torrents
│ ├── books
│ ├── movies
│ ├── music
│ └── tv
├── usenet
│ ├── incomplete
│ └── complete
│ ├── books
│ ├── movies
│ ├── music
│ └── tv
└── media
├── books
├── movies
├── music
└── tv
O nível do data contém 3 pastas: torrents, usenet e media. Dentro de
torrents e usenet estão as categorias dos seus downloads, enquanto media
conterá os hardlinks que apontarão para os arquivos dos diretórios torrents
e usenet. Ter uma pasta media separada da pasta de torrents é útil, pois o
Jellyfin/Plex irá usar essa pasta para identificar suas mídias, já que a pasta
de torrents pode conter arquivos irrelevantes.
Essa estrutura é boa e eu sempre usei desde quando comecei a me aventurar no mundo de self-hosting, porém acredito que possa melhorar.
A estrutura que uso atualmente
O ponto principal que não acho interessante nessa estrutura do TRaSH Guides é
que, caso você baixe algo que não se enquadre nas pastas torrents e usenet
(que não foi baixado pelo qBittorrent ou pelo SABnzbd, por exemplo), não teria
um local adequado e ficaria “jogado”. Criar uma pasta para cada fonte também
deixaria tudo desnecessariamente desorganizado.
Eu utilizo o Soulseek para algumas coisas e ele também ficaria “jogado”. Cada novo lugar de download seria mais uma pasta em um nível adicional, o que não faz sentido na minha opinião.
No meu homelab estou utilizando a seguinte estrutura:
/mnt/terachad
└── data
├── downloads
│ ├── slskd
│ ├── tidal
│ ├── torrents
│ └── usenet
└── media
├── audiobooks
├── books
├── courses
├── movies
├── music
└── tv
Desta forma fica bem mais intuitivo, pois estaria tudo dentro do diretório
downloads. No compose, os volumes ficam assim (a depender de qual container
usar, é claro):
- ${DATA_ROOT}:/data
- ${DATA_ROOT}/downloads/torrents:/data/torrents/
- ${DATA_ROOT}/media:/data/media:ro
Conclusão
No meu ponto de vista, ter uma pasta de downloads deixa a estrutura muito mais
organizada.
Em um primeiro momento, isso pode parecer irrelevante, ou pensar algo como “eu
só uso torrents”. Eu também pensava isso, mas a toca do coelho do self-hosting
é grande, você vai querer cada vez mais serviços e provavelmente terá muitas
pastas que estariam dentro de downloads.
Fazer essa mudança depois de já estar usando toda a stack de containers é bem trabalhoso, principalmente por se tratar de hardlinks. Além de que terá que fazer alguns mappings de volumes nos *arrs (eu tive que fazer) e é mais uma coisa para lembrar na hora do troubleshooting.
Então, se eu tivesse começando hoje, gostaria de ter alguém que me falasse para usar essa estrutura desde o começo para evitar retrabalho.
