This repo contains configurations and services for my home server. These steps define the primary requirements needed by the system to get up and running.
- Settings >> Power >> Performance >> Screen Blank (Never)
- Install NVIDIA driver with:
- Determine driver with
sudo ubuntu-drivers devices - Update lists with
sudo get update - Install NVIDIA recommended driver (most likely
nvidia-driver-570) sudo reboot
- Determine driver with
- Install
curlwithsudo apt install curl - Install
tailscalefor VPN with:curl -fsSL https://tailscale.com/install.sh | shsudo tailscale upsudo tailscale set --ssh
- Install
gitto clone this repo withsudo apt install git - Install
ghfor auth with:sudo apt install ghgh auth login
- Setup RAID 6 array with:
- Install
mdadmwithsudo apt install mdadm - New System:
- Ensure all 4 drives are partition free and named
sd[a-d] - Create the array
sudo mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd - Determine the current location with
cat /proc/mdstat(wait until complete, this can take a long time) - Format the array with
sudo fsck.ext4 /dev/md<location>
- Ensure all 4 drives are partition free and named
- Reinstall OS, Existing RAID:
- Find drives with
sudo mdadm --examine --scan - Attach drives with
sudo mdadm --assemble --scan - Determine the current location with
cat /proc/mdstat
- Find drives with
- Finish Setup:
- Determine the block ID with
sudo blkid /dev/<location> - Create a persistent mount with
sudo sh -c 'echo "UUID=<block ID> /mnt/raid ext4 defaults 0 0" >> /etc/fstab'
- Determine the block ID with
- Install
- Install Docker with
apt- Be sure to run the post install steps (e.g., so you can run
dockerwithoutsudo)
- Be sure to run the post install steps (e.g., so you can run
- Install NVIDIA Container Toolkit
- Set the NVIDIA toolkit to always run
sudo nvidia-ctk runtime configure --runtime=docker - Reboot with
sudo reboot - Run containers with
sudo docker compose up --buildin the root and inimmich/
- Install
tailscale(same as above) - Add the following SSH hosts to
~/.ssh/config:
Host treehouse
Hostname treehouse
User treehouse
Host token
Hostname treehouse
User treehouse
RequestTTY yes
RemoteCommand sh -c "docker logs lab 2>&1 | grep -oP 'token=\K[0-9a-f]+' | tail -1"