{"id":13577624,"url":"https://github.com/lento234/homelab","last_synced_at":"2025-04-05T12:30:54.155Z","repository":{"id":39071591,"uuid":"451972060","full_name":"lento234/homelab","owner":"lento234","description":"Personal homelab setup","archived":false,"fork":false,"pushed_at":"2024-05-10T19:46:04.000Z","size":840,"stargazers_count":35,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-05T14:46:40.453Z","etag":null,"topics":["ansible","debian","devops","homelab","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lento234.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2022-01-25T17:17:58.000Z","updated_at":"2024-09-13T02:49:14.000Z","dependencies_parsed_at":"2024-11-05T15:15:11.136Z","dependency_job_id":null,"html_url":"https://github.com/lento234/homelab","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lento234%2Fhomelab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lento234%2Fhomelab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lento234%2Fhomelab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lento234%2Fhomelab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lento234","download_url":"https://codeload.github.com/lento234/homelab/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247338582,"owners_count":20922989,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ansible","debian","devops","homelab","raspberry-pi"],"created_at":"2024-08-01T15:01:23.022Z","updated_at":"2025-04-05T12:30:49.145Z","avatar_url":"https://github.com/lento234.png","language":"Jinja","funding_links":[],"categories":["Jinja"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003e\n    \u003cimg width=\"500\" align=\"center\" src=\"assets/homelab-logo.svg\"\u003e\n\u003c/h1\u003e\n\n[![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square\u0026labelColor=000000)](#license)\n![Raspberry Pi](https://img.shields.io/badge/-RaspberryPi-C51A4A?style=for-the-badge\u0026logo=Raspberry-Pi)\n\n***`Ansible`-based personal homelab setup.***\n\n\u003c/div\u003e\n\n## Description\n\nThe project contains a set of ansible playbooks use to setup (and manage) a\npersonal homelab infrastructure. The homelab runs on a Raspberry Pi 4 running\non Debian.\n\n![Homepage](assets/homepage.png)\n\n## Setup\n\n1. Setup virtual environment using [uv](https://github.com/astral-sh/uv):\n\n```bash\nuv venv\nsource .venv/bin/activate\n```\n\n2. Install python dependencies (incl. ansible):\n\n```bash\nuv pip install -r requirement.txt\n```\n\n3. Use the `make` command runner to setup the homelab:\n\n```bash\n$ make\ndry-run         Dry-run default playbook\nping            Ping all hosts\npre-commit      Run pre-commit on all files\nrun             Run default playbook run\nvault-create    Create the secret vault file vault\nvault           Edit the secret vault file vault\n```\n\n4. Add hosts into the `hosts.ini` file (example):\n\n```\n[homelab]\nheimdall ansible_python_interpreter=/usr/libexec/platform-python\n```\n\n5. Modify group vars file `group_vars/all/vars.yml`\n\n6. Create and edit vault secrets:\n\n```bash\n$ make vault-create\n```\n\n7. Run `dry-run` or `run` to deploy the infrastructure.\n\n```bash\n$ make dry-run\n```\n\n## Hosted services\n\n**Server management**\n\n* [x] [homer](https://github.com/bastienwirtz/homer) - A very simple static homepage for your server.\n* [x] [portainer.io](https://docs.portainer.io/v/ce-2.11/) - A centralized service delivery platform for containerized apps.\n* [x] [Watchtower](https://containrrr.dev/watchtower) - A container-based solution for automating Docker container base image updates.\n* [ ] [Wireguard](https://github.com/linuxserver/docker-wireguard) - Self-hosted VPN (*optional:* or use alternative service, e.g. (OpenVPN)) or [Tailscale](https://tailscale.com/).\n* [ ] [healthchecks](https://github.com/healthchecks/healthchecks) - A cron monitoring tool written in Python \u0026 Django.\n* [ ] [rdiff](https://rdiff-backup.net/) - Reverse differential backup tool, over a network or locally (*or use similar ideas*).\n\n\n**Monitoring**\n\n* [x] [Glances](https://nicolargo.github.io/glances) - An *Eye* on your system.\n* [x] Munin\n\n**Media**\n\n* [x] [plex media server](https://hub.docker.com/r/linuxserver/plex) - Organizes video, music and photos from personal media libraries.\n* [x] [FreshRSS](https://www.freshrss.org/) - A free, self-hostable RSS feed aggregator.\n\n\n**File storage \u0026 Sharing**\n\n* [x] [nextcloud](https://github.com/nextcloud/server) - :cloud: cloud Nextcloud server, a safe home for all your data.\n* [x] [photoprism](https://github.com/photoprism/photoprism) - Photos App powered by Go and Google TensorFlow :rainbow: :sparkles:.\n* [ ] [vaultwarden](https://github.com/dani-garcia/vaultwarden) - Alternative implementation of the Bitwarden server.\n\n\n**Automation**\n\n* [x] [home assistant](https://github.com/khuedoan/homelab) - My self-hosting infrastructure, fully automated from empty disk to operating services.\n* [ ] [grocy](https://github.com/linuxserver/docker-grocy) - Grocy is a web-based self-hosted groceries \u0026 household management solution for your home.\n\n## Hardware / software stack\n\n* [x] Raspberry Pi 4 Model B 8GB: [OKdo](https://www.okdo.com/p/okdo-raspberry-pi-4-8gb-model-b-starter-kit/)\n* [x] OS: Debian bookworm (12)\n* [x] Storage - (primary) Sandisk microSDXC 128GB (`/`, `ext4`)\n* [x] Storage - (data) ZFS pool ~40 TB (`/mnt/store/`)\n\n## References\n\n### Homelab / Self-hosted\n\n* [geerlingguy/ansible-for-devops](https://github.com/geerlingguy/ansible-for-devops) - Ansible for DevOps examples.\n* [davestephens/ansible-nas](https://github.com/davestephens/ansible-nas) - Build a full-featured home server or NAS replacement with an Ubuntu box and this playbook.\n* [notthebee/infra](https://github.com/notthebee/infra) - IaC for my Linux/Unix machines\n* [awesome-selfhosted/awesome-selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) - A list of Free Software network services and web applications which can be hosted on your own servers\n* [khuedoan/homelab](https://github.com/khuedoan/homelab) - Small and power efficient self-hosting infrastructure. Fully automated from empty disk to operating services\n* [abhilesh/self-hosted_docker_setups](https://github.com/abhilesh/self-hosted_docker_setups) - A collection of my docker-compose files used to setup self-hosted services on Raspberry Pi 4 running 64-bit Raspberry Pi OS\n\n### Home automation / IOT\n\n* [HQarroum/awesome-iot](https://github.com/HQarroum/awesome-iot) - :robot: A curated list of awesome Internet of Things projects and resources.\n* [pfalcon/awesome-smarthome](https://github.com/pfalcon/awesome-smarthome) -  Curated list of awesome SmartHome/Home Automation things (open and leaving users in control)\n* [microsoft/IoT-For-Beginners](https://github.com/microsoft/IoT-For-Beginners) - 12 Weeks, 24 Lessons, IoT for All!\n* [frenck/awesome-home-assistant](https://github.com/frenck/awesome-home-assistant) - A curated list of amazingly awesome Home Assistant resources.\n* [Hypfer/Valetudo](https://github.com/Hypfer/Valetudo) - Cloud-free control webinterface for vacuum robots\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flento234%2Fhomelab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flento234%2Fhomelab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flento234%2Fhomelab/lists"}