My personal setup for homelab, just a bunch of services deployed with docker-compose and make
Follow guide on Installing fedora CoreOS on Bare Metal
- Download FCOS ISO
podman run --security-opt label=disable --pull=always --rm -v .:/data -w /data \
quay.io/coreos/coreos-installer:release download -s stable -p metal -f iso
Burn ISO to USB drive or mount it via piKVM to server
- Install FCOS
Reboot server and boot from USB drive
Run following command to install FCOS
sudo coreos-installer install --ignition-url https://github.com/xtruder/homelab/raw/main/ignition/jarvis.ign /dev/sdX
- Reboot server
Reboot server to apply changes
sudo reboot
After reboot the server will automatically be rebased to ucore server image, this will cause server to restart twice.
- Enroll ublue secure boot keys
sudo mokutil --import /etc/pki/akmods/certs/akmods-ublue.der
sudo reboot
During reboot you will be asked to enroll secure boot keys, select enroll
and enter password.
- Create host ssh key and add it as deploy key to github:
ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pub
Add key to: https://github.com/xtruder/homelab/settings/keys
- Install cron job
git clone git@github.com:xtruder/homelab.git
mkdir -p ~/.config/systemd/user
cp homelab-cron.timer ~/.config/systemd/user/homelab-cron.timer
cp homelab-cron.service ~/.config/systemd/user/homelab-cron.service
systemctl --user daemon-reload
systemctl --user enable homelab-cron.timer
systemctl --user start homelab-cron.timer
To pause automatic deployments create .pause
file and it will skip deployment