{"id":43146132,"url":"https://github.com/dotboris/homelab","last_synced_at":"2026-01-31T23:45:37.027Z","repository":{"id":212960878,"uuid":"730423805","full_name":"dotboris/homelab","owner":"dotboris","description":"My home lab / home server powered by Nix","archived":false,"fork":false,"pushed_at":"2026-01-23T23:42:25.000Z","size":309,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-24T11:36:19.354Z","etag":null,"topics":["homelab","homeserver","nix","nixos"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dotboris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-11T22:29:56.000Z","updated_at":"2026-01-23T23:42:28.000Z","dependencies_parsed_at":"2024-05-28T03:02:48.021Z","dependency_job_id":"105303a3-588e-436b-9ae9-a0e2ed532af0","html_url":"https://github.com/dotboris/homelab","commit_stats":null,"previous_names":["dotboris/homelab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dotboris/homelab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotboris%2Fhomelab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotboris%2Fhomelab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotboris%2Fhomelab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotboris%2Fhomelab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotboris","download_url":"https://codeload.github.com/dotboris/homelab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotboris%2Fhomelab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28961063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T23:03:11.038Z","status":"ssl_error","status_checked_at":"2026-01-31T22:56:44.691Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["homelab","homeserver","nix","nixos"],"created_at":"2026-01-31T23:45:35.807Z","updated_at":"2026-01-31T23:45:37.021Z","avatar_url":"https://github.com/dotboris.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Home Lab\n\nMy personal Home Lab / Home Server powered by Nix\n\n## Test VM\n\nTo test things out, you can install the Home Lab config into a test VM.\n\n### Setup\n\nThese instructions will guide you on how to create a test VM and install a test\nversion of the Home Lab to it.\n\n1. Build an installer iso: `nix build -L .#installer-iso`\n1. In `libvirt`, create a Linux VM. Most of the default settings should just\n   work. Make sure you set the boot ISO to\n   `./result/iso/nixos-installer-x86_64-linux.iso`.\n1. Boot the VM. It'll eventually land on a page showing you network information\n1. Install NixOS using `nixos-anywhere`:\n\n    ```sh\n    nixos-anywhere --flake .#homelab-test root@nixos-installer.local\n    ```\n\n### Testing web apps\n\nFirst, figure out the IP address of your VM:\n\n```sh\nvirsh -c qemu:///system net-dhcp-leases default\n```\n\nOpen you system `/etc/hosts` file and add the following values:\n\n```\n# Homelab dev\n{VM IP Address} home.dotboris.io\n{VM IP Address} traefik.dotboris.io\n{VM IP Address} feeds.dotboris.io\n{VM IP Address} netdata.dotboris.io\n```\n\nFrom there, you'll be able to access the various web apps by pointing your\nbrowser to `https://{host}.dotboris.io`. You'll need to accept the self-signed\nHTTPS certificate.\n\nOnce you're done remember to comment out the entries in your hosts file.\n\n## Updates\n\n### Local Packages\n\nThere are custom package in this repo. Some of these packages pull source from other places like GitHub. These are pinned to specific versions and hashes. Updating those packages means updating those versions and hashes. There's tooling in place to automate this:\n\n```sh\nnix run .#update-packages\n```\n\nThis will update all packages in the flake with `passthru.updateScript = ...;`.\nIf you want to update a package, add the following to the derivation.\n\n```nix\n{self, ...}: {\n  perSystem = {pkgs, ...}: {\n    packages.my-package = pkgs.stdenv.mkDerivation rec {\n      pname = \"my-package\";\n      version = \"...\";\n      passthru.updateScript = self.lib.updateScript {inherit pkgs pname;};\n    };\n  };\n}\n```\n\nYou can also update a single package by running `nix run .#{pname}.updateScript`.\n\n### Flake lock\n\n```sh\nnix flake update -L\n```\n\n### Do I need to reboot?\n\nMost of the time you don't need to reboot. Services with new versions gets rebooted automatically and other programs get the the update when they're closed and re-opened.\n\nThere are a few packages that require a reboot. They're core components of the system that can't just be restarted. They are:\n\n- The Linux kernel\n- SystemD\n\nYou can figure out what changed through the following steps:\n\n1. SSH into the machine\n1. Run: `nix profile diff-closures --profile /nix/var/nix/profiles/system`\n\nIf the packages mentioned above have been updated, you need to reboot.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotboris%2Fhomelab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotboris%2Fhomelab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotboris%2Fhomelab/lists"}