Skip to content
This repository has been archived by the owner on Jun 11, 2024. It is now read-only.

joryirving/home-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

home-service

My home service stack running on a Raspberry Pi 5 with Raspberry Pi OS. Applications are run as docker containers and managed by docker compose to support my home infrastructure.

Core components

  • direnv: Update environment per working directory.
  • renovate: Universal dependency automation tool.
  • sops: Manage secrets which are commited to Git using Age for encryption.
  • task: A task runner / simpler Make alternative written in Go.

Setup

System configuration

Important

A non-root user must be created (if not already) and used.

  1. Install required system deps and reboot

    sudo sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin
    sudo apt install git
  2. Make a new SSH key, add it to GitHub and clone your repo

    export GITHUB_USER="joryirving"
    curl https://github.com/$GITHUB_USER.keys > ~/.ssh/authorized_keys
    sudo install -d -o $(logname) -g $(logname) -m 755 ~/git/home-service
    git clone git@github.com:$GITHUB_USER/home-service.git ~/git/home-service
  3. Install additional system deps and reboot

    cd ~/git/home-service
    task deps
  4. Add user to docker group

    sudo groupadd docker
    sudo usermod -aG docker $USER
    newgrp docker
  5. Create an Age public/private key pair for use with sops

    age-keygen -o /var/opt/home-service/age.key

Container configuration

Tip

To encrypt files with sops replace the public key in the .sops.yaml file with your Age public key. The format should look similar to the one already present.

View the apps directory for documentation on configuring an app container used here, or setup your own by reviewing the structure of this repository.

Using the included Taskfile there are helper commands to start, stop, restart containers and more. Run the command below to view all available tasks.

task --list

Optional configuration

Fish shell

Tip

🐟 fish is awesome, you should try fish!

chsh -s /usr/bin/fish
# IMPORTANT: Log out and log back in
task dotfiles

Network topology

Name Subnet DHCP range
LAN 192.168.1.0/24 6-254
GUESTS 192.168.6.0/24 6-254
IOT 192.168.10.0/24 6-254
CAMERA 192.168.20.0/24 6-254
TRUSTED 192.168.30.0/24 6-254
SERVERS 10.69.1.0/24 6-254

Related Projects

About

Trying out home-dns

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages