{"id":21662365,"url":"https://github.com/ginolatorilla/local-platform","last_synced_at":"2026-04-19T19:02:30.849Z","repository":{"id":263154730,"uuid":"889526129","full_name":"ginolatorilla/local-platform","owner":"ginolatorilla","description":"A reduced version of k8s-homenet","archived":false,"fork":false,"pushed_at":"2026-03-14T08:02:47.000Z","size":250,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-14T12:42:33.569Z","etag":null,"topics":["argocd","argocd-managed","bash","bash-script","k8s","k8s-at-home","kubeadm","kubeadm-cluster","kubeadm-lab","kubernetes","kubernetes-cluster","lima","lima-vm"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/ginolatorilla.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":"2024-11-16T14:55:54.000Z","updated_at":"2026-03-14T06:17:46.000Z","dependencies_parsed_at":"2024-11-16T16:18:40.817Z","dependency_job_id":"c5247564-b8cb-4f7b-adec-93df6b88803d","html_url":"https://github.com/ginolatorilla/local-platform","commit_stats":null,"previous_names":["ginolatorilla/local-platform"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ginolatorilla/local-platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ginolatorilla%2Flocal-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ginolatorilla%2Flocal-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ginolatorilla%2Flocal-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ginolatorilla%2Flocal-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ginolatorilla","download_url":"https://codeload.github.com/ginolatorilla/local-platform/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ginolatorilla%2Flocal-platform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32018764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"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":["argocd","argocd-managed","bash","bash-script","k8s","k8s-at-home","kubeadm","kubeadm-cluster","kubeadm-lab","kubernetes","kubernetes-cluster","lima","lima-vm"],"created_at":"2024-11-25T10:15:44.478Z","updated_at":"2026-04-19T19:02:30.843Z","avatar_url":"https://github.com/ginolatorilla.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# My Local Platform\n\nThis is a laptop-only version of my [home lab](https://github.com/ginolatorilla/k8s-homenet/).\n\n## Specifications\n\n| Item                         | Value                         |\n| ---------------------------- | ----------------------------- |\n| Hypervisor                   | [Lima VM](https://lima-vm.io) |\n| Hypervisor version           | limactl 1.0.1                 |\n| Host OS                      | MacOS (Darwin)                |\n| Guest OS                     | Ubuntu 22.04                  |\n| Guest CPU architecture       | arm64                         |\n| Kubernetes version           | 1.35.2                        |\n| Container runtime            | CRI-O                         |\n| Container runtime version    | 1.35                          |\n| Container networking         | Calico                        |\n| Container networking version | 3.27.0                        |\n| Ingress controller           | Nginx                         |\n| Ingress controller version   | 3.4.3                         |\n| Private registry (cluster)   | registry:5001                 |\n| Private registry (host)      | localhost:5001                |\n\n## Requirements\n\n- limactl\n- helm\n- kubectl\n- docker (cli)\n- skopeo\n- htpasswd\n- sed\n- terraform\n- jq\n\n## Quickstart\n\n```shell\n./install.sh\n```\n\n### Resetting the VM\n\n1. Modify `k8s.lima.yaml`\n2. Run `./install.sh --reset-vm`.\n3. Wait for all the pods to restart.\n\n### Resetting the cluster\n\n1. Modify any file in `kubeadm/*`\n2. Run `./install.sh --reset-cluster`.\n\n## Port forwarding\n\nLima automatically forwards the following localhost ports to the host:\n\n| Port | Service                             |\n| ---- | ----------------------------------- |\n| 80   | Forwarder to Ingress HTTP NodePort  |\n| 443  | Forwarder to Ingress HTTPS NodePort |\n| 6443 | Kubernetes API                      |\n| 5001 | Distribution registry               |\n\n## Ingress\n\nSocat runs as a systemd service in the background that forwards VM ports 80 and 443 to the clusters nodeports.\n\nThe certificate authority is generated to `./outputs/certs/ownca.crt`. Make sure you install this CA to your host.\n\nSince the ingresses will be listening to hostnames, make sure you add them to your `/etc/hosts` file\nor use `\u003cname\u003e.localhost`.\n\n## Filesystem mounts\n\nThe `~/.lima/k8s/data` folder is mounted to the VM as `/mnt/data`. The PV provisioner (based from Rancher)\nwill mount volumes to this directory, ensuring application data will survive if the cluster is destroyed.\nThis will also contain the Kubernetes API server audit logs.\n\n## Airgap images\n\nA private container registry will run in Docker and listen on the host at `0.0.0.0:5001`. The images listed in `images.txt`\nwill be pushed to the registry, resulting in the final URL `registry:5001/\u003cimage\u003e`. The node will resolve `registry` to the host's IP.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fginolatorilla%2Flocal-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fginolatorilla%2Flocal-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fginolatorilla%2Flocal-platform/lists"}