{"id":25344588,"url":"https://github.com/jbukuts/infra","last_synced_at":"2025-09-01T07:33:37.569Z","repository":{"id":193924817,"uuid":"681420986","full_name":"jbukuts/infra","owner":"jbukuts","description":"Ansible configuration for home server","archived":false,"fork":false,"pushed_at":"2023-09-10T18:11:14.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T15:21:20.829Z","etag":null,"topics":["ansible","automation","devops"],"latest_commit_sha":null,"homepage":"","language":null,"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/jbukuts.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}},"created_at":"2023-08-22T01:34:17.000Z","updated_at":"2023-09-10T18:28:22.000Z","dependencies_parsed_at":"2023-11-11T08:45:09.724Z","dependency_job_id":null,"html_url":"https://github.com/jbukuts/infra","commit_stats":null,"previous_names":["jbukuts/infra"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jbukuts/infra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbukuts%2Finfra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbukuts%2Finfra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbukuts%2Finfra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbukuts%2Finfra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbukuts","download_url":"https://codeload.github.com/jbukuts/infra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbukuts%2Finfra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273088783,"owners_count":25043563,"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","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ansible","automation","devops"],"created_at":"2025-02-14T11:37:46.690Z","updated_at":"2025-09-01T07:33:37.515Z","avatar_url":"https://github.com/jbukuts.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Home Server Ansible Config\r\n\r\nContained in this repo is the Ansible configuration I defined for use on my home server. \r\n\r\nServer Info:\r\n\r\n```txt\r\nMOBO: Asus Z10PA-D8 \r\nCPU: 2 x Intel E5 Xeon 2683 v4\r\nRAM: 128 GB 2400Mhz DDR4 ECC\r\n\r\nOS: 22.04 Ubuntu Home\r\n```\r\n\r\n\r\n## Steps\r\n\r\nFirst start by install any required roles or collections via:\r\n\r\n```sh\r\nansible-galaxy install -r requirements.yml\r\n```\r\n\r\n\r\nA quick overview of the steps taken to initialize my home server is this\r\n\r\n1. Initial system configuration\r\n    - SSH settings\r\n       - No password auth allowed\r\n       - Copy key file\r\n    - Passwordless sudo for my user\r\n2. Building RAID arrays\r\n    - I've written two roles for this. One using `zfs` and the other `mdadm`. \r\n\r\n    - The arrays aren't too complicated and are built via `mdadm`. No fancy caching or additional parity. \r\n    - They can be specified via some variables as to which drives are in what arrays, their mount points, and RAID level.\r\n       - more in depth explanation [here]()\r\n    - I've catered this role to work on Ubuntu (Debian) systems primarily given that's my use case.\r\n3. Install and configure Docker containers\r\n    - The installation itself is handled via [geerlingguy's role]()\r\n    - The containers I provision are:\r\n        - Portainer Community Edition\r\n        - Plex\r\n        - PiHole\r\n        - Transmission\r\n    - I choose to use strict versions for my containers to not introduce breaking changes by accident\r\n4. Configure NAS capabilities via Samba \r\n\r\n## Shout outs\r\n\r\nI'm no ansible expert so I'll link the various sources I pulled from to get this working:\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbukuts%2Finfra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbukuts%2Finfra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbukuts%2Finfra/lists"}