{"id":20951371,"url":"https://github.com/lgug2z/nixos-hetzner-cloud-starter","last_synced_at":"2026-03-07T14:02:30.613Z","repository":{"id":198143340,"uuid":"700168623","full_name":"LGUG2Z/nixos-hetzner-cloud-starter","owner":"LGUG2Z","description":"A sane, batteries-included starter template for running NixOS on Hetzner Cloud","archived":false,"fork":false,"pushed_at":"2024-07-09T23:05:09.000Z","size":29,"stargazers_count":44,"open_issues_count":0,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-14T03:42:51.226Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/LGUG2Z.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}},"created_at":"2023-10-04T04:42:06.000Z","updated_at":"2025-04-08T14:58:45.000Z","dependencies_parsed_at":"2023-12-05T19:24:09.959Z","dependency_job_id":"77acf3a9-4a12-4309-aec2-621e2804a951","html_url":"https://github.com/LGUG2Z/nixos-hetzner-cloud-starter","commit_stats":null,"previous_names":["lgug2z/nixos-hetzner-cloud-starter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LGUG2Z/nixos-hetzner-cloud-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LGUG2Z%2Fnixos-hetzner-cloud-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LGUG2Z%2Fnixos-hetzner-cloud-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LGUG2Z%2Fnixos-hetzner-cloud-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LGUG2Z%2Fnixos-hetzner-cloud-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LGUG2Z","download_url":"https://codeload.github.com/LGUG2Z/nixos-hetzner-cloud-starter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LGUG2Z%2Fnixos-hetzner-cloud-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30216496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T13:35:13.914Z","status":"ssl_error","status_checked_at":"2026-03-07T13:35:13.569Z","response_time":53,"last_error":"SSL_read: 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":[],"created_at":"2024-11-19T00:58:36.658Z","updated_at":"2026-03-07T14:02:30.585Z","avatar_url":"https://github.com/LGUG2Z.png","language":"Nix","funding_links":["https://github.com/sponsors/LGUG2Z"],"categories":[],"sub_categories":[],"readme":"# nixos-hetzner-cloud-starter\n\nThis repository is intended to be a sane, batteries-included starter template\nfor running a [JeezyVim](https://github.com/LGUG2Z/JeezyVim)-powered NixOS\ndevelopment environment on Hetzner Cloud. It exists as a sister-project of\n[nixos-wsl-starter](https://github.com/lgug2z/nixos-wsl-starter).\n\nIf you don't want to dig into NixOS too much right now, the only file you need\nto concern yourself with is [home.nix](home.nix). This is where you can add and\nremove binaries to your global `$PATH`.\n\nGo to [https://search.nixos.org](https://search.nixos.org/packages) to find the\ncorrect package names, though usually they will be what you expect them to be\nin other package managers.\n\n`unstable-packages` is for packages that you want to always keep at the latest\nreleased versions, and `stable-packages` is for packages that you want to track\nwith the current release of NixOS (currently 24.05).\n\nIf you want to update the versions of the available `unstable-packages`, run\n`nix flake update` to pull the latest version of the Nixpkgs repository and\nthen apply the changes.\n\nMake sure to look at all the `FIXME` notices in the various files which are\nintended to direct you to places where you may want to make configuration\ntweaks.\n\nIf you found this starter template useful, please consider\n[sponsoring](https://github.com/sponsors/LGUG2Z) and [subscribing to my YouTube\nchannel](https://www.youtube.com/channel/UCeai3-do-9O4MNy9_xjO6mg?sub_confirmation=1).\n\n## What Is Included\n\nThis starter is a lightly-opinionated take on a productive terminal-driven\ndevelopment environment based on my own preferences. However, it is trivial to\ncustomize to your liking both by removing and adding tools that you prefer.\n\n- The default editor is [JeezyVim](https://github.com/LGUG2Z/JeezyVim)\n- The default shell is `fish`\n- `docker` is enabled by default\n- The prompt is [Starship](https://starship.rs/)\n- [`fzf`](https://github.com/junegunn/fzf),\n  [`lsd`](https://github.com/lsd-rs/lsd),\n  [`zoxide`](https://github.com/ajeetdsouza/zoxide), and\n  [`broot`](https://github.com/Canop/broot) are integrated into `fish` by\n  default\n  - These can all be disabled easily by setting `enable = false` in\n    [home.nix](home.nix), or just removing the lines all together\n- [`direnv`](https://github.com/direnv/direnv) is integrated into `fish` by\n  default\n- `git` config is generated in [home.nix](home.nix) with options provided to\n  enable private HTTPS clones with secret tokens\n- `fish` config is generated in [home.nix](home.nix), and includes useful\n  navigiation and git aliases\n\n## Quickstart\n\n[![Watch the walkthrough video](https://img.youtube.com/vi/wr22CyoyRo4/hqdefault.jpg)](https://www.youtube.com/watch?v=wr22CyoyRo4)\n\n- Create a server on Hetzner Cloud\n  - Location: Any\n  - Image: Ubuntu 22.04\n  - Type: Any (Shared vCPU `CPX11` is a good starting point)\n  - SSH: Use your \"default\" SSH public key for ease\n  - Architecture: x86\n  - Volumes: Not required\n  - Firewalls: Not required\n  - Backups: Not required\n  - Placement Groups: Not required\n  - Labels: Not required\n  - Cloud Config: Leave blank\n  - Name: Any\n- `cp ~/.ssh/id_rsa.pub .` to make sure you have your SSH public key in this\n  repo\n- Go through all the `FIXME:` notices in this repo and make changes wherever\n  you want\n- Run [`nixos-anywhere`](https://github.com/nix-community/nixos-anywhere)\n  against `root@\u003cserver-ip-address\u003e`\n\n```bash\nnix run github:numtide/nixos-anywhere -- --flake .#nixos root@\u003cserver-ip-address\u003e\n```\n\n- Wait for the installation to complete\n- Try to SSH into the server with `ssh \u003cyour-username-selected-in-flake.nix\u003e@\u003cserver-ip-address\u003e`\n- You'll probably receive an error like the one below; follow the steps to\n  remove the ip address from `known_hosts`\n\n```text\n  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\nIT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!\nSomeone could be eavesdropping on you right now (man-in-the-middle attack)!\nIt is also possible that a host key has just been changed.\nThe fingerprint for the ED25519 key sent by the remote host is\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.\nPlease contact your system administrator.\nAdd correct host key in ~/.ssh/known_hosts to get rid of this message.\nOffending ECDSA key in ~/.ssh/known_hosts:6\n  remove with:\n  ssh-keygen -f ~/.ssh/known_hosts\" -R \"\u003cip addrress\u003e\"\nHost key for \u003cip_address\u003e has changed and you have requested strict checking.\nHost key verification failed.\n```\n\n- Now you can SSH into the server\n- In a local terminal window, apply updated configurations to the remote server\n\n```bash\nnixos-rebuild switch --flake .#nixos --target-host root@\u003cserver-ip-address\u003e\n```\n\nNote: If developing in Rust, you'll still be managing your toolchains and\ncomponents like `rust-analyzer` with `rustup`!\n\n## Project Layout\n\nIn order to keep the template as approachable as possible for new NixOS users,\nthis project uses a flat layout without any nesting or modularization.\n\n- `flake.nix` is where dependencies are specified\n  - `nixpkgs` is the current release of NixOS\n  - `nixpkgs-unstable` is the current trunk branch of NixOS (ie. all the\n    latest packages)\n  - `home-manager` is used to manage everything related to your home\n    directory (dotfiles etc.)\n  - `nur` is the community-maintained [Nix User\n    Repositories](https://nur.nix-community.org/) for packages that may not\n    be available in the NixOS repository\n  - `nix-index-database` tells you how to install a package when you run a\n    command which requires a binary not in the `$PATH`\n  - `disko` is used to prepare VM storage for NixOS\n- `hetzner.nix` is where OpenSSH is configured and where the `root` SSH public\n  key is set\n- `linux.nix` is where the VM is configured\n  - The hostname is set here\n  - The default shell is set here\n  - User groups are set here\n  - NixOS options are set here\n- `home.nix` is where packages, dotfiles, terminal tools, environment variables\n  and aliases are configured\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flgug2z%2Fnixos-hetzner-cloud-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flgug2z%2Fnixos-hetzner-cloud-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flgug2z%2Fnixos-hetzner-cloud-starter/lists"}