{"id":15151581,"url":"https://github.com/Capi-nemoo/nmConfigurator","last_synced_at":"2025-10-24T07:31:10.241Z","repository":{"id":253710150,"uuid":"844268493","full_name":"Capi-nemoo/nmConfigurator","owner":"Capi-nemoo","description":"DOTFILES.  Automating with Bash and Ansible for seamless deployment and configuration management in ARCH Linux environments.","archived":false,"fork":false,"pushed_at":"2025-01-29T20:53:18.000Z","size":26788,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-29T21:30:48.410Z","etag":null,"topics":["ansible","dotfiles-linux","rust","tui"],"latest_commit_sha":null,"homepage":"","language":null,"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/Capi-nemoo.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}},"created_at":"2024-08-18T22:05:02.000Z","updated_at":"2025-01-29T20:53:20.000Z","dependencies_parsed_at":"2024-09-07T10:36:27.882Z","dependency_job_id":"3367f065-60bb-49bf-8b9e-80f96caac142","html_url":"https://github.com/Capi-nemoo/nmConfigurator","commit_stats":{"total_commits":45,"total_committers":2,"mean_commits":22.5,"dds":0.06666666666666665,"last_synced_commit":"7da98d15789edf9f3834e88c838107b982f957e2"},"previous_names":["capi-nemoo/nemooconfig","capi-nemoo/nmconfigurator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capi-nemoo%2FnmConfigurator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capi-nemoo%2FnmConfigurator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capi-nemoo%2FnmConfigurator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Capi-nemoo%2FnmConfigurator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Capi-nemoo","download_url":"https://codeload.github.com/Capi-nemoo/nmConfigurator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237932070,"owners_count":19389560,"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","dotfiles-linux","rust","tui"],"created_at":"2024-09-26T15:04:25.899Z","updated_at":"2025-10-24T07:31:09.808Z","avatar_url":"https://github.com/Capi-nemoo.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# nemooconfig\n\nhttps://github.com/user-attachments/assets/fcc2b7a5-5781-4344-89aa-57f1025129db\n\n# Arch Linux Setup Project Documentation\n\n```bash \narch-linux-setup/\n├── inventory/\n│   ├── localhost.ini\n├── playbooks/\n│   ├── base.yml\n│   ├── packages.yml\n│   ├── dotfiles.yml\n├── roles/\n│   ├── base/\n│   │   ├── tasks.yml\n│   ├──packages/\n│   │   ├── tasks.yml\n│   └── dotfiles/\n│       ├── tasks.yml\n├── vars/\n│   ├── common.yml\n├── ansible.cfg\n├── README.md\n\n```\n\n\n\n## Inventory\n\n### `localhost.ini`\nThis file defines the machine where Ansible will run. In this case, it's set up for local execution without SSH. If you want to expand, you can add configurations for remote servers or even dynamic inventories for virtual machines or containers.\n\n---\n\n## Playbooks\n\n### `base.yml`\nHandles the initial setup of your Arch Linux system. This includes disk partitioning, installing the base system, and setting up the bootloader. You could expand this to include disk encryption (LUKS), RAID configurations, or other advanced disk setups.\n\n### `packages.yml`\nThis playbook installs all the necessary tools and applications. It uses `pacman` for official packages and `yay` for AUR packages. You could enhance it with custom profiles like \"developer\", \"gaming\", or \"minimal\" to tailor the installed packages to different needs.\n\n### `dotfiles.yml`\nThis playbook manages your dotfiles by cloning your repository and linking the necessary configuration files into your home directory. In the future, you could add features like automatic backups of existing files before overwriting them or support for different configuration profiles (e.g., work vs. personal).\n\n---\n\n## Roles\n\n### `roles/base/tasks.yml`\nThis role focuses on the system’s base configuration. It sets up users, installs essential services like NetworkManager, and applies any required basic configurations. Expansion ideas include adding support for UEFI vs. Legacy BIOS setups or managing extra system services like SSH or Firewalld.\n\n### `roles/packages/tasks.yml`\nInstalls all your specified packages. It separates installation between `pacman` packages and AUR packages using `yay`. You could make this more dynamic by including conditional installs based on the type of machine (e.g., laptop, desktop, server) or by adding optional features toggled through variables.\n\n### `roles/dotfiles/tasks.yml`\nHandles your dotfiles. It clones your repository and creates symbolic links for configurations in `$HOME`. You could expand it to manage multiple repositories or provide automated backups of existing files before replacing them.\n\n---\n\n## Vars\n\n### `vars/common.yml`\nThis file stores shared variables used across playbooks and roles. It includes settings like the username, lists of packages (`pacman` and `aur`), and any other reusable configurations. Future improvements could include adding regional settings (timezone, keyboard layout) or flags for optional installations.\n\n---\n\n## Root Files\n\n### `ansible.cfg`\nDefines how Ansible behaves. It specifies where to find roles, inventories, and how to handle privileges. This file could be expanded to support SSH configurations or other advanced inventory setups for remote execution.\n\n### `README.md`\nThe main documentation for the project. It explains how to use the playbooks, install Ansible, and run the setup. You could expand this by adding troubleshooting tips, a guide for contributions, or explanations of the project’s structure.\n\n---\n\n## Expansion Ideas\n\n1. **Support for Multiple Systems**  \n   Add configurations for derivatives like Manjaro or EndeavourOS.\n\n2. **Automated GUI Setup**  \n   Include setups for graphical environments like GNOME or i3wm.\n\n3. **Custom Profiles**  \n   Create profiles like \"developer\", \"gamer\", or \"server\" to streamline installations.\n\n4. **Testing and Validation**  \n   Use tools like Molecule to test playbooks and ensure everything works as expected.\n\n5. **Backup Integration**  \n   Automate restoration of user data and configurations from backups.\n\n6. **Resource Optimization**  \n   Check available resources like disk space or memory and adjust the setup accordingly.\n\n---\n\n# List of items each file should contain\n\n## inventory/localhost.ini\n- Define the local host\n- Reference `ansible_connection=local`\n\n## playbooks/base.yml\n- Reference `hosts: localhost`\n- Use `become: true` for privilege escalation\n- Include the `base` role\n- Use variables from `vars/common.yml` (no explanation, just reference them)\n- Main tasks for installing and configuring the base system (list tasks in YAML format)\n\n## playbooks/packages.yml\n- Reference `hosts: localhost`\n- Use `become: true` for privilege escalation\n- Include the `packages` role\n- Use variables for package lists (from `vars/common.yml`)\n- Main tasks for installing official repo packages and AUR packages\n\n## playbooks/dotfiles.yml\n- Reference `hosts: localhost`\n- Use `become: true` for privilege escalation\n- Include the `dotfiles` role\n- Use variables for the dotfiles repository (from `vars/common.yml`)\n- Tasks to clone the repository and create symbolic links\n\n## roles/base/tasks.yml\n- Tasks to partition the disk\n- Tasks to format the partitions\n- Tasks to mount the base system\n- Tasks to `pacstrap` the base system\n- Tasks to generate `fstab`\n- Tasks to configure timezone, locale, and hostname\n- Tasks to install the bootloader\n\n## roles/packages/tasks.yml\n- Tasks to update the package database\n- Tasks to install packages using pacman (from the list in `vars/common.yml`)\n- Tasks to install `yay`\n- Tasks to install AUR packages (from the list in `vars/common.yml`)\n\n## roles/dotfiles/tasks.yml\n- Tasks to clone the dotfiles repository (using variables from `vars/common.yml`)\n- Tasks to create symbolic links for dotfiles\n- Tasks to ensure correct permissions for config files\n\n## vars/common.yml\n- Variable for the final username\n- Variable for the list of pacman packages\n- Variable for the list of AUR packages\n- Variable for the dotfiles repository URL\n- Variable for timezone and locale\n\n## ansible.cfg\n- Basic Ansible settings\n- Path to roles\n- Define the inventory\n- Minimum recommended settings (privilege escalation, host_key_checking, etc.)\n\n## README.md\n- Short description of the project\n- Basic instructions to run playbooks\n- Prerequisites (having Ansible, live environment with internet)\n- References to files and roles\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCapi-nemoo%2FnmConfigurator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCapi-nemoo%2FnmConfigurator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCapi-nemoo%2FnmConfigurator/lists"}