GithubHelp home page GithubHelp logo

home-dns's Introduction

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 [email protected]:$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

home-dns's People

Contributors

joryirving avatar smurf-bot[bot] avatar

Watchers

 avatar

home-dns's Issues

Renovate Dashboard ๐Ÿค–

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

docker-compose
apps/blocky/docker-compose.yml
  • ghcr.io/0xerr0r/blocky v0.24@sha256:9a82e0235c52ef3048586f8006add06e52132adaae70d02f980569dae16421a2
apps/bws-cache/docker-compose.yml
  • ghcr.io/ripplefcl/bws-cache v1.1.0@sha256:bcee868971c14cf9180249059c386706b8ab2ad3f3749762006aa261f6490744
apps/gatus/docker-compose.yml
  • ghcr.io/twin/gatus v5.11.0@sha256:eb0374eb55e3ff84ec8f9ea10342ddb623cfba23e5836138896cde01f11cf23d
apps/node-exporter/docker-compose.yml
  • quay.io/prometheus/node-exporter v1.8.1@sha256:fa7fa12a57eff607176d5c363d8bb08dfbf636b36ac3cb5613a202f3c61a6631
apps/traefik/docker-compose.yml
  • docker.io/library/traefik v3.0.1@sha256:7ca3233c2d4d862db071aceba4355bb430065ec00d818b6b4724c09f2a6a2783
github-actions
.github/workflows/label-sync.yaml
  • bitwarden/sm-action v2
  • actions/create-github-app-token v1
  • actions/checkout v4
  • EndBug/label-sync v2
regex
Taskfile.yaml
  • getsops/sops v3.8.1
  • fastfetch-cli/fastfetch 2.14.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.