This public repo contains the scripts I use too set up my home server.
Although I deploy the services in a virtualized test environment first, I'm actively modifying the script in order to harden the security and automate the deployment in my production environment later.
For security reasons, I'm not commiting my .env files in this repo.
The test environment is a virtualized Rocky Linux running in Virtual Box bridged to the host machine. The production environment is a Beelink Mini S12 with an Intel N95, 8GB DDR4 and a 256GB SSD running Rocky Linux.
Docker is the container management application that runs all the apps of my home server.
Installation Steps are covered in the Rocky Linux documentation.
Almost all the images can be pulled from Docker Hub, linuxserver.io and github.com.
- Homepage
- Uptime Kuma
- Glances
- Prometheus
- cAdvisor
- Grafana
- Dozzle
- Prowlarr
- Radarr
- Readarr
- Sonarr
- Jellyseer
- IT tools
- Web Check
- Change Detection
- Stirling PDF
- Code Server
- Jsoncrack
- MK Docs Material
As easy as typing in the command:
docker compose -f compose-file.yml up -d
Some media applications such as Jellyfin require hardware acceleration. This will improve CPU usage as the main load will be carried over by the iGPU.
Since the N95 is compatible with QSV, Docker needs to be aware of the render device associated with the iGPU.
The command ls -l /dev/dri
will list the render devices and eventually, the render device needs to be added in the docker compose file as a device
argument.
Example:
devices:
- /dev/dri:/dev/dri #let the application access the render and iGPU devices
- Implement VPN.
- Perform iperf3 tests on all the devices.
- Migrate env passwords to secrets.
- Implement 2FA and IAM with Authelia.
- Implement ZFS.
- Implement crontab to prune unused images and unused volumes.
- Review the Networking diagram + validate and refine the firewall policies.