docs: readme
This commit is contained in:
parent
81377aef7d
commit
49c951c877
1 changed files with 19 additions and 26 deletions
45
README.md
45
README.md
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue