Skip to content

AbraXa5/self-hosted-homelab

Repository files navigation

Self-hosted HomeLab

Dashboard Image

Service Description
AdGuard Home Ad and tracking blocking DNS server
AdGuardian-term Terminal client for AdGuard home stats
Authelia SSO portal with MFA support
Calibre Web Storing/ Browsing eBooks
Cloudflare Tunnel Create and manage cloudflare tunnels
container-monitoring Container resource monitoring with Prometheus, Grafana, cAdvisor, Node Exporter
Cyberchef The Cyber Swiss Army Knife
Filebrowser Web based file browser
Filestash Web based file browser
Freshrss RSS Aggregator
Homer Static homepage server
It-tools Handy tools for dev
Jellyfin Media server
Jellyseer Requests manager for media server
Kopia Backup software
Mealie Recipe manager and Meal planner
Mediastack Jellyseer, Sonarr, Radarr, Bazarr, Jackett, Transmission, FlareSolver
Nextcloud Self hosted cloud
Ngnix Proxy Manager Reverse Proxy
Pairdrop P2P file sharing
Paperless-ngx Document manager and scanner
Pi.Hole Ad blocker and DNS sinkhole
Portainer Managing docker containers
Samba SMB
Snippet Box Code snippets organizer
swag Reverse Proxy + Certbot + fail2ban
Syncthing P2P file synchronizer
Tailscale Encrypted P2P Mesh VPN with wireguard protocol
Transmission Torrent client
Uptime Kuma Monitoring tool
VsCode Minimal VSCode server
Watchtower Automatically update docker images

Setup

Install docker and docker-compose

yay -S docker
yay -S docker-compose
sudo usermod -aG docker $USER
newgrp docker
_ systemctl enable docker --now

Setting up services

cdinto the directory and run

docker-compose up -d --force-recreate --remove-orphans

Some conatiners need a .env file, there's a .env.example file to refer to for that. Same goes for config.yml if required

Docker cgroup memory issue fix

On arm devices, enabling cgroud memory doesn't take effect. Adding this to /boot/cmdline.txt and rebooting should help fix the issue, src

cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1

Verify by running.

docker stats

Contributing

Install pre-commit

pipx install pre-commit
pre-commit install

Update tags for the pre-commit hooks and dry run

pre-commit autoupdate
pre-commit run --all-files --verbose

ToDo

  • Switch pihole to AdGuard Home
  • Add watchdog to automatically update docker containers
  • Setup Sonarr, Radarr and Jackett
  • Switch to Traefik as the reverse proxy
  • Add wireguard configs
  • Setup tailscale for remote access
  • Setup VaultWarden