Project based on k3s to host various apps to manage tv shows and movies.
Homepage: Application dashboard
Prowlarr: Torrent indexer
Flaresolverr: Bypass Cloudflare and DDoS-GUARD protection. Solely used by Prowlarr
Sonarr: Queues TV shows requests and processes them when completed
Radarr: Same as Sonarr but for movies
Transmission: Torrent downloader
Jellyfin: Library manager and media system for your video files
Jellyseerr: Displays popular movies and tv shows you can request
ArgoCD: Deploys applications easily and with a GUI
- Use
mv .env.example .env
and replace the required variables - Create a Tailscale account and follow the instructions
- Taskfile [installed](https://github.com/go-task/task
If you have an Nvidia GPU, use task install-nvidia
after task prepare
If you don't have an Nvidia GPU, comment the resources
lines in lab/jellyfin/values.yaml
)
On your remote server, you have to use
sudo ./setup/server.sh
This will start the server and create a folder to contain our resources. You can export the configuration with this command :
scp user@192.168.1.1:/etc/rancher/k3s/k3s.yaml ~/.kube/config
sed -i 's/127\.0\.0\.1/192\.168\.1\.1/g' ~/.kube/config
Change these two lines with whatever ip address your private server uses.
On your current computer, you can now access your cluster with kubectl get pods -A
You can follow the changes that will be made with one of these : OpenLens or k9s
You can now use the next shell script that will initiate everything for your cluster
task setup
You have to change the samples for the 2 secrets we need and use
task set-secrets
You can prepare the cluster for applications with
task prepare
After that, use
task create-apps
After a few seconds, everything will be deployed and available !
To configure your application, you have to set up internal urls as [application]:[service-port]
.
You can access your applications at https://[application].[tailscale-dns]
In order to stop the applications, you can use ArgoCD's GUI to uninstall applications.
If you want to destroy everything, you have to use setup/teardown.sh
Helm Simplifies common configurations
Gluetun: VPN container to use transmission over VPN
Tailscale: Private WireGuard with DNS resolution
PostgreSQL: SQL Database