docs: readme

This commit is contained in:
ooks-io 2025-02-01 12:15:15 +11:00 committed by GitHub
parent 81377aef7d
commit 49c951c877
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3,23 +3,17 @@
## Overview ## Overview
This repository serves two main purposes: The goals of this repository are:
1. To maintain a centralized location for all my personal computing infrastructure
1. To serve as a centralized location for all my personal computing 2. To provide a place to experiment and learn about networking, administration, security, unix, design, and programming
infrastructure
2. To provide a place to experiment and learn about networking, administration,
security, unix, design, and programming
> [!WARNING] > [!WARNING]
> This repository is not intended to be used by anyone but myself. It is highly > This repository is not intended to be used by anyone but myself. It is highly personalized and likely doesn't fit anyone else's needs. I maintain this repository publicly as a reference for anyone building something similar.
> personalized and likely doesn't fit anyone else's needs. I leave this
> repository public to serve as a reference for anyone else building something
> similar.
## Features ## Features
- NixOS configurations for all my hosts - NixOS configurations for all my hosts
- Home-manager configuration for my workstations - Home-Manager configuration for my workstations
- Custom packages - Custom packages
- Development environments - Development environments
- Declarative secrets with agenix - Declarative secrets with agenix
@ -46,12 +40,10 @@ As this project serves as a learning environment, its architecture changes
frequently. While I'll try to keep this documentation current, what follows is a frequently. While I'll try to keep this documentation current, what follows is a
high-level overview of the current design. high-level overview of the current design.
One of the main goals of this project was to allow for easy bootstrapping of new The current architecture enables straightfoward bootstrapping of new hosts while maintaining fine-grained configuration on a per-host basis. This is accomplished using a roles and profiles pattern (similar to [Puppet's roles and profiles method](https://www.puppet.com/docs/puppet/7/the_roles_and_profiles_method.html)).
hosts while maintaining fine-grained configuration on a per-host basis. This is
accomplished using a roles and profiles pattern (similar to
[Puppet's roles and profiles method](https://www.puppet.com/docs/puppet/7/the_roles_and_profiles_method.html)).
#### Roles
### Roles
- **Workstation**: Desktop/laptop systems with GUI environment - **Workstation**: Desktop/laptop systems with GUI environment
- **Server**: Headless systems running specific services - **Server**: Headless systems running specific services
@ -85,7 +77,7 @@ flake.nixosConfigurations = {
}; };
``` ```
#### Profiles ### Profiles
Profiles are collections of related software and configurations that can be Profiles are collections of related software and configurations that can be
enabled on a per-host basis. Here are some example profiles for workstations: enabled on a per-host basis. Here are some example profiles for workstations:
@ -97,7 +89,7 @@ enabled on a per-host basis. Here are some example profiles for workstations:
- `media`: Audio/video playback and management - `media`: Audio/video playback and management
- `virtualization`: Virtual machine support - `virtualization`: Virtual machine support
Example configuration: Example:
```nix ```nix
ooknet.workstation.profiles = ["gaming" "creative" "media"]; ooknet.workstation.profiles = ["gaming" "creative" "media"];
@ -116,16 +108,17 @@ ooknet.server.services = ["ookflix"];
## Desktop environment ## Desktop environment
<img src=".github/assets/2025-01-26T21:52:48,481278761+11:00.png" /> <img src=".github/assets/2025-01-26T21:52:48,481278761+11:00.png" />
All workstations currently run a minimal wayland configuration made from a few All workstations use a minimal wayland configuration made from the following
components: components:
- [Hyprland](https://github.com/hyprwm/Hyprland) - **Compositor**: [Hyprland](https://github.com/hyprwm/Hyprland)
- Hypr* ware ([hypridle](https://github.com/hyprwm/hypridle), - **Utilities**:
[hyprlock](https://github.com/hyprwm/hyprlock), - **Idle**: [hypridle](https://github.com/hyprwm/hypridle)
[hyprpaper](https://github.com/hyprwm/hyprpaper)) - **Screen locker**: [hyprlock](https://github.com/hyprwm/hyprlock)
- [Waybar](https://github.com/Alexays/Waybar) - **Wallpaper**: [hyprpaper](https://github.com/hyprwm/hyprpaper)
- [Mako](https://github.com/emersion/mako) - **Bar**: [Waybar](https://github.com/Alexays/Waybar)
- [Gruvbox extended](https://github.com/ooks-io/ooknet/blob/main/outputs/hozen/default.nix) - **Notifications**: [Mako](https://github.com/emersion/mako)
- **Colorscheme**: [Gruvbox extended](https://github.com/ooks-io/ooknet/blob/main/outputs/hozen/default.nix)
## Appreciation ## Appreciation