{"id":17058746,"url":"https://github.com/smkent/homelab","last_synced_at":"2026-03-15T09:44:28.655Z","repository":{"id":150156535,"uuid":"562379838","full_name":"smkent/homelab","owner":"smkent","description":"🏠🧪 Self-hosted apps and deployments","archived":false,"fork":false,"pushed_at":"2025-04-03T03:45:13.000Z","size":378,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T04:27:25.032Z","etag":null,"topics":["ansible","certbot","containers","debian","docker","docker-compose","homelab","homelab-setup","letsencrypt","linode","linux","nginx","onprem","postfix","self-hosted"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smkent.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-11-06T06:49:39.000Z","updated_at":"2025-04-03T03:45:15.000Z","dependencies_parsed_at":"2023-11-07T04:13:04.431Z","dependency_job_id":"d32f8ebb-041b-4be8-99af-1f8b4037a970","html_url":"https://github.com/smkent/homelab","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smkent%2Fhomelab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smkent%2Fhomelab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smkent%2Fhomelab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smkent%2Fhomelab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smkent","download_url":"https://codeload.github.com/smkent/homelab/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248610408,"owners_count":21132920,"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","certbot","containers","debian","docker","docker-compose","homelab","homelab-setup","letsencrypt","linode","linux","nginx","onprem","postfix","self-hosted"],"created_at":"2024-10-14T10:30:42.707Z","updated_at":"2026-03-15T09:44:28.612Z","avatar_url":"https://github.com/smkent.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Homelab\n\nSelf-hosted apps I run on my [homelab][homelab] and personal infrastructure.\nDeployments are managed by [Ansible][ansible].\n\n# New machine first steps\n\nBefore using this repository, perform these steps on the target machine.\n\n## [Linode][linode]\n\nSelect [Debian][debian] 11 (or the current stable version) when creating a new\nLinode instance.\n\n## Home server\n\nInstall [Debian stable][debian] using the [netinst][debian-netinst] installer\nmedia.\n\n* In the disk partitioner, choose \"encrypted LVM\" to encrypt the entire disk.\n* The installer requires creation of an unprivileged user. This user should be\n  manually deleted after installation, so choose a simple temporary username.\n\nBoot into the new installation and perform these steps:\n\n1. Delete the unprivileged user created during installation:\n   `deluser --remove-all-files username`\n2. Install basic packages: `apt install -y sudo vim`\n3. Create the root user's ssh directory: `mkdir -m 0700 /root/.ssh`\n4. Create `/root/.ssh/authorized_keys` with your ssh public key\n\n# Deployment\n\nIf not already present, add the target machine's hostname to\n`ansible/hosts.yml`.\n\nUse `./deploy` to set up one or more target machine(s). Arguments are passed\nthrough to [ansible-playbook][ansible-playbook-docs].\n\n## Configuration\n\nEnvironment variables may be set for configuration:\n\n* `ENV`: Inventory file selection. Choices: `live` (default) or `sandbox`.\n* `FQDN`: Host suffix domain name, such as `example.com`\n\n## Invocation examples\n\n* Deploy to a single host (dry run): `./deploy -C -l target-host-name`\n* Deploy to a single host: `./deploy -l target-host-name`\n* Deploy to all configured hosts (dry run): `./deploy -C`\n* Deploy to all configured hosts: `./deploy`\n\n[ansible]: https://docs.ansible.com/ansible/latest/\n[ansible-playbook-docs]: https://docs.ansible.com/ansible/latest/cli/ansible-playbook.html\n[debian-netinst]: https://www.debian.org/distrib/netinst\n[debian]: https://www.debian.org/releases/stable/\n[homelab]: https://web.archive.org/web/20221023001900/https://linuxhandbook.com/homelab/\n[linode]: https://linode.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmkent%2Fhomelab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmkent%2Fhomelab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmkent%2Fhomelab/lists"}