{"id":13682190,"url":"https://github.com/kalbasit/shabka","last_synced_at":"2025-04-30T07:30:47.880Z","repository":{"id":1319261,"uuid":"1264182","full_name":"kalbasit/shabka","owner":"kalbasit","description":"Shabka. Declaritive description of my network, workstations and servers.","archived":true,"fork":false,"pushed_at":"2021-01-03T19:27:48.000Z","size":10324,"stargazers_count":153,"open_issues_count":0,"forks_count":10,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-08-02T13:33:47.424Z","etag":null,"topics":["dotfiles","nix","nix-expressions","nixos","shell","zsh"],"latest_commit_sha":null,"homepage":"https://kalbas.it","language":"Nix","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/kalbasit.png","metadata":{"files":{"readme":"README-old.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}},"created_at":"2011-01-17T17:49:41.000Z","updated_at":"2024-04-24T18:31:13.000Z","dependencies_parsed_at":"2022-08-16T13:05:15.917Z","dependency_job_id":null,"html_url":"https://github.com/kalbasit/shabka","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalbasit%2Fshabka","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalbasit%2Fshabka/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalbasit%2Fshabka/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalbasit%2Fshabka/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kalbasit","download_url":"https://codeload.github.com/kalbasit/shabka/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224201896,"owners_count":17272660,"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":["dotfiles","nix","nix-expressions","nixos","shell","zsh"],"created_at":"2024-08-02T13:01:41.955Z","updated_at":"2024-11-12T01:31:16.983Z","avatar_url":"https://github.com/kalbasit.png","language":"Nix","funding_links":[],"categories":["Nix"],"sub_categories":[],"readme":"\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Table of Contents**\n\n- [Shabka](#shabka)\n  - [Why Nix?](#why-nix)\n  - [Why NixOS?](#why-nixos)\n- [Documentation](#documentation)\n  - [Shabka structure](#shabka-structure)\n- [Author](#author)\n- [Credit](#credit)\n- [License](#license)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n# Shabka\n\nShabka (Arabic for Network) is a declarative congruent representation of\nmy workstations (desktops, and laptops), network devices and servers.\nIt's based on the [NixOS][1] operating system, and uses\n[home-manager][4] to setup the home directory of the users, for both\nNixOS and the other operating systems, including Mac.\n\nSee [What is \"declarative congruence\"?][5] for more information on the\nsubject.\n\n## Why Nix?\n\n[Nix][2] is a powerful package manager for Linux and other Unix systems that\nmakes package management reliable and reproducible. It provides atomic\nupgrades and rollbacks, side-by-side installation of multiple versions\nof a package, multi-user package management and easy setup of build\nenvironments. [Read more…][12]\n\nPackages are built from Nix expressions, which is a simple functional\nlanguage. A Nix expression describes everything that goes into a package\nbuild action (a “derivation”): other packages, sources, the build\nscript, environment variables for the build script, etc. Nix tries very\nhard to ensure that Nix expressions are deterministic: building a Nix\nexpression twice should yield the same result.\n\nBecause it's a functional language, it's easy to support building\nvariants of a package: turn the Nix expression into a function and call\nit any number of times with the appropriate arguments. Due to the\nhashing scheme, variants don't conflict with each other in the Nix\nstore.\n\nNix has a large set of Nix expressions containing thousands of existing\nUnix packages, in the [Nix Packages collection (Nixpkgs)][13].\n\n## Why NixOS?\n\nNixOS is a Linux distribution with a unique approach to package and\nconfiguration management. Built on top of the [Nix package manager][2],\nit is completely declarative, makes upgrading systems reliable, and has\n[many other advantages][14].\n\nSimilar to Nix, NixOS is built upon the concept of atomic system updates\nas well as rollbacks, and that includes the kernel and the initrd images\nfor early boot.\n\nYou simply cannot find yourself on a system that does not boot anymore,\nprovided the hardware is not defective and you have not broken GRUB or\nSystemd-boot.\n\nPlease see the [NixOS about page][14] for a quick taste of managing a\nNixOS system.\n\n# Documentation\n\nPlease see [doc/modules](/doc/modules.md) for documentation on all the\nsupported options.\n\n## Shabka structure\n\n| Directory     | Description                                                                                        |\n|:------------- |:-------------------------------------------------------------------------------------------------- |\n| overlays      | package and module overrides used throughout the configuration.                                    |\n| scripts       | various development scripts to help with the development.                                          |\n| external      | Nix expressions for fetching externals such as nixos-hardware.                                     |\n| hosts         | top-level expressions specific to individual workstations or servers.                              |\n| modules/nixos | custom [NixOS][1] modules under the `shabka` namespace controlled by host configuration.             |\n| modules/home  | custom [home-manager][4] modules under the `shabka` namespace controlled by host configuration.      |\n| util          | Nix expressions, mainly functions, used as helpers in the actual modules.                          |\n| os-specific   | OS-specific configuration files, and bootstrap scripts not belonging to NixOS or the home-manager. |\n| libexec       | development helpers, mainly used by the scripts (not invoked directly).                            |\n| network       | top-level expressions describing a NixOps network.                                                 |\n| terraform     | cloud-resources that are not nixops-able.                                                          |\n\n# Author\n\n| [![twitter/ylcodes](https://avatars0.githubusercontent.com/u/87115?v=3\u0026s=128)](http://twitter.com/ylcodes \"Follow @ylcodes on Twitter\") | [![risson](https://avatars1.githubusercontent.com/u/18313093?s=128\u0026v=3)](https://risson.space \"Browse risson's website\") |\n|-----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|\n| [Wael Nasreddine](https://github.com/kalbasit)                                                                                          | [Marc 'risson' Schmitt](https://gitlab.com/risson)                                                                                           |\n\n# Credit\n\nThanks to `#nixos` community on Freenode, particularly `infinisil`,\n`clever` and `samueldr` for helping me learn how to configure my NixOS\nsystem and debug it.\n\nThe host configuration, the modules and the options are inspired by\n[@dustinlacewell][15]'s [dotfiles][7].\n\nThe images from the declarative congruence description above are taken\nfrom the paper published on Usenet, written by Steve Traugott and Lance\nBrown.\n\n# License\n\nAll source code is licensed under the [MIT License][3].\n\n[1]: https://nixos.org\n[2]: https://nixos.org/nix\n[3]: /LICENSE\n[4]: https://github.com/rycee/home-manager\n[5]: /doc/congruent.md\n[7]: https://github.com/dustinlacewell/dotfiles\n[12]: https://nixos.org/nix/about.html\n[13]: https://nixos.org/nixpkgs\n[14]: https://nixos.org/nixos/about.html\n[15]: https://github.com/dustinlacewell\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkalbasit%2Fshabka","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkalbasit%2Fshabka","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkalbasit%2Fshabka/lists"}