{"id":24478511,"url":"https://github.com/usmcamp0811/dotfiles","last_synced_at":"2025-12-30T12:39:56.445Z","repository":{"id":272216275,"uuid":"915816657","full_name":"usmcamp0811/dotfiles","owner":"usmcamp0811","description":"A mirror of my NixOS Dotfiles repo which is more than just my system configs but also my mono repo of almost all the things I hack on.","archived":false,"fork":false,"pushed_at":"2025-02-11T21:55:47.000Z","size":139017,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"nixos","last_synced_at":"2025-02-11T22:30:36.157Z","etag":null,"topics":["cicd","devops","devsecops","nix","nixos","terraform"],"latest_commit_sha":null,"homepage":"https://blog.aicampground.com","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/usmcamp0811.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":"2025-01-12T21:48:44.000Z","updated_at":"2025-02-11T21:55:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"d17ed69f-7df4-4568-bb3a-966191a58b8c","html_url":"https://github.com/usmcamp0811/dotfiles","commit_stats":null,"previous_names":["usmcamp0811/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usmcamp0811%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usmcamp0811%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usmcamp0811%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usmcamp0811%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/usmcamp0811","download_url":"https://codeload.github.com/usmcamp0811/dotfiles/tar.gz/refs/heads/nixos","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243615576,"owners_count":20319729,"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":["cicd","devops","devsecops","nix","nixos","terraform"],"created_at":"2025-01-21T10:12:35.599Z","updated_at":"2025-12-30T12:39:56.440Z","avatar_url":"https://github.com/usmcamp0811.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch3\u003e\n  \u003cimg src=\"./camp-gumby.png\" width=\"100\" alt=\"Logo\" style=\"border-radius: 50%; overflow: hidden;\"/\u003e\u003cbr/\u003e\n  NixOS Config for \u003ca href=\"https://matt-camp.com\"\u003eMatt Camp\u003c/a\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png\" height=\"30\" width=\"0px\"/\u003e\n  \u003cimg referrerpolicy=\"no-referrer-when-downgrade\" src=\"https://matomo.aicampground.com/matomo.php?idsite=3\u0026amp;rec=1\" style=\"border:0\" alt=\"\" /\u003e\n\u003c/h3\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://gitlab.com/usmcamp0811/dotfiles/-/commits/nixos\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/dynamic/json?color=363a4f\u0026label=Stars\u0026query=$.star_count\u0026url=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2Fusmcamp0811%252Fdotfiles\u0026style=for-the-badge\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://gitlab.com/usmcamp0811/dotfiles/-/commits/nixos\"\u003e\n      \u003cimg src=\"https://img.shields.io/gitlab/last-commit/38220901?style=for-the-badge\u0026color=rgb(54%2C%2058%2C%2079)\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://nixos.wiki/wiki/Flakes\" target=\"_blank\"\u003e\n      \u003cimg alt=\"Nix Flakes Ready\" src=\"https://img.shields.io/static/v1?logo=nixos\u0026logoColor=d8dee9\u0026label=Nix%20Flakes\u0026labelColor=5e81ac\u0026message=Ready\u0026color=d8dee9\u0026style=for-the-badge\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/snowfallorg/lib\" target=\"_blank\"\u003e\n      \u003cimg alt=\"Built With Snowfall\" src=\"https://img.shields.io/static/v1?logoColor=d8dee9\u0026label=Built%20With\u0026labelColor=5e81ac\u0026message=Snowfall\u0026color=d8dee9\u0026style=for-the-badge\"\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\n\u003c/div\u003e\n\nWelcome to AI Campground, your gateway to my personalized Nix ecosystem. This repository is a comprehensive collection of my NixOS and generic Nix configurations, forming a cohesive, well-documented setup. I’m committed to providing detailed READMEs to share my journey, insights, and solutions to challenges encountered along the way.\n\n## Getting Started\n\nBefore diving in, ensure that you have Nix installed on your system. If not, you can download and install it from the official [Nix website](https://nixos.org/download.html).\n\n### Clone this repository to your local machine:\n\n```bash\ngit clone https://gitlab.com/usmcamp0811/dotfiles.git\n```\n\n#### Create a LIVE USB\n\n```bash\nnix build gitlab:usmcamp0811/dotfiles#isoConfigurations.base-iso\ndd if=./result/iso/nixos.iso of=/dev/usb_drive status=progress\n```\n\n#### [New System Install](./docs/Install.md)\n\n**TODO: Show how to install with disko**\n\n## Features\n\nHere's an overview of what my Nix configuration offers:\n\n- **[Campground Nvim](https://gitlab.com/usmcamp0811/campground-nvim)**: I configured my Neovim config using [NixVim](https://github.com/nix-community/nixvim) and export it as a package.\n\n- **Home Manager**: Manage your dotfiles, home environment, and user-specific configurations with Home Manager.\n\n- **Hashicorp Vault**: Leveraging insights from [Jake Hamilton's dotfiles](https://github.com/jakehamilton/config), I've seamlessly integrated Vault Agent into my Nix configuration. This provides an exemplary secret management experience, eliminating the need to store sensitive information in git repositories or other insecure locations.\n\n- **Automated Deploy**: Ability to automatically deploy all systems through Gitlab CICD or with `deploy --host \u003chostname\u003e .#\u003chostname\u003e`.\n\n- **Git Pre-Commit Hooks**: Seamless integration of git hooks with Nix. To enable the hooks just activate the default shell. `nix develop`\n\n- **System Observability \u0026 Monitoring**: Integrate Prometheus, Grafana, and Loki to achieve comprehensive monitoring of all systems, including Systemd services.\n\n- **Terraform Modules**: Various modules for deploying infrastructure in the cloud with Terraform.\n\n## Customization\n\nLeveraging the Snowfall Org lib architecture, my Nix setup offers a streamlined and well-organized way to handle your Nix ecosystem. Here’s the breakdown:\n\n- **Custom Library**: Located in the `lib/` folder, an optional custom library features a Nix function that utilizes `inputs`, `snowfall-inputs`, and `lib` to return an attribute set that merges with `lib`.\n\n- **Hierarchical Directory Setup**: The `lib/` and `packages/` directories support a flexible, nestable folder structure. Each folder houses a Nix function designed to return an attribute set that blends seamlessly into `lib`, facilitating a modular configuration.\n\n- **Package Layering**: Within the `packages/` folder, you have the option to define a collection of exportable packages. These packages are initialized using `callPackage` and should contain functions that accept an attribute set of packages and the essential `lib` to yield a derivation.\n\n- **Configuration Modules**: The `modules/` folder allows you to set up NixOS modules tailored for different platforms like `nixos`, `darwin`, and `home`, making system configuration management more modular.\n\n- **Personalized Overlays**: Use the `overlays/` directory for any custom overlays you may have. Each overlay function should accept three arguments: an attribute set based on your flake's inputs and a `channels` attribute that lists all accessible channels, the finalized `pkgs`, and their predecessors. This feature enhances package set customization.\n\n- **System-Centric Configurations**: The `systems/` folder helps you organize your system setups by architecture and format, enabling configurations for multiple platforms like `x86_64-linux` or `aarch64-darwin`.\n\n- **Home Environment Configs**: Similarly, the `homes/` folder arranges configurations by architecture, which is particularly handy for managing home environments via Nix.\n\nThis methodology fosters a user-friendly approach to Nix configuration, balancing both flexibility and modularity for better manageability.\n\n## Credits\n\nInspiration and code snippets have been sourced from various corners of the internet. I'll endeavor to document these contributions whenever memory and circumstances permit.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusmcamp0811%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusmcamp0811%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusmcamp0811%2Fdotfiles/lists"}