diff --git a/README.html b/README.html new file mode 100644 index 0000000..810722d --- /dev/null +++ b/README.html @@ -0,0 +1,365 @@ + + + + + + + README + + + +

Cachy-workstation

+

Infrastructure-as-Code for a CachyOS Linux workstation, managed with +Ansible.

+

Goals

+ +

Design

+ +

New Machine Bootstrap

+

On a fresh machine, run bootstrap.yml first. It handles +the prerequisites that site.yml depends on:

+
    +
  1. Installs and authenticates Tailscale
  2. +
  3. Imports GPG keys from the local git server
  4. +
  5. Clones the pass password store
  6. +
+

Prerequisites before running bootstrap:

+
sudo pacman -S ansible git
+

Run bootstrap:

+
ansible-playbook -K -i inventory/hosts.yml bootstrap.yml
+

Then run the full site playbook:

+
ansible-playbook -K -i inventory/hosts.yml site.yml
+

Usage

+

Run the full site playbook:

+
ansible-playbook -K -i inventory/hosts.yml site.yml
+

Run only tasks matching a specific tag:

+
ansible-playbook -K -i inventory/hosts.yml site.yml --tags <tagname>
+

Skip tasks matching a tag:

+
ansible-playbook -K -i inventory/hosts.yml site.yml --skip-tags <tagname>
+

Roles

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RolePlayDescription
firewallsystemufw, default deny incoming, allow port 22
packagessystemGeneral packages via pacman
dockersystemDocker, enables service, adds user to docker group
virtualizationsystemqemu-full, virt-manager, libvirtd
websystemhcloud, hugo, tea
flatpaksystemFlatpak and apps, MakeMKV device permissions
gpguserImport GPG keys from private git repo
sshuserDeploy SSH keys and config from pass
passuserClone pass password store
dotfilesuserClone dotfiles and nvim repos, symlink configs
scriptsuserClone scripts repo, add to PATH, deploy Pushover credentials
hotkeysuserDeploy .desktop files, set Plasma 6 global shortcuts
+

Structure

+
.
+├── bootstrap.yml     # New machine bootstrap
+├── site.yml          # Main entry point
+├── inventory/        # Inventory files
+└── roles/            # Ansible roles
+ +