OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
HASH      b631904365a7
DATE      2025-01-26
SUBJECT   docs: readme
FILES     5 CHANGED
HASH      b631904365a7
DATE      2025-01-26
SUBJECT   docs: readme
FILES     5 CHANGED
 

diff --git a/.github/assets/2025-01-26T21:52:48,481278761+11:00.png b/.github/asse
ts/2025-01-26T21:52:48,481278761+11:00.png
new file mode 100644
index 0000000..4b64ffa
Binary files /dev/null and b/.github/assets/2025-01-26T21:52:48,481278761+11:00.pn
g differ

diff --git a/.github/assets/2025-01-26T21:52
:48,481278761+11:00.png b/.github/assets/202
5-01-26T21:52:48,481278761+11:00.png
new file mode 100644
index 0000000..4b64ffa
Binary files /dev/null and b/.github/assets/
2025-01-26T21:52:48,481278761+11:00.png diff
er
 

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a40c183
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+repodump.xml

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a40c183
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+repodump.xml
 

diff --git a/.repomixignore b/.repomixignore
new file mode 100644
index 0000000..221341a
--- /dev/null
+++ b/.repomixignore
@@ -0,0 +1,5 @@
+*.lock
+**/equicord/options.nix
+**/gruv.nix
+.repomixignore
+repomix*

diff --git a/.repomixignore b/.repomixignore
new file mode 100644
index 0000000..221341a
--- /dev/null
+++ b/.repomixignore
@@ -0,0 +1,5 @@
+*.lock
+**/equicord/options.nix
+**/gruv.nix
+.repomixignore
+repomix*
 

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..16616c7
--- /dev/null
+++ b/README.md
@@ -0,0 +1,125 @@
+<h1 align=center> ooknet </h1>
+<p align= center>A monorepo for all my nix expressions powered by flake-parts.</p
>
+
+## Overview
+
+This repository serves two main purposes:
+
+1. Centralized location for all my personal computing infrastructure.
+2. A place to experiment and learn about networking, administration, security,
+   unix, design and programming.
+
+> [!WARNING]
+> 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 leave this
+> repository public to serve as a reference for anyone else building a something
+> similar.
+
+## Features
+
+- NixOS configurations for all my hosts
+- Home-manager configuration for my workstations
+- Custom packages
+- Development environments
+- Declarative secrets with agenix
+- Personal website
+- Templates for bootstrapping projects
+
+## Fleet
+
+Below are all the hosts I currently maintain within this flake:
+
+| host      | spec                                  | role        | description  
                     | architecture | status |
+| --------- | ------------------------------------- | ----------- | -------------
-------------------- | ------------ | ------ |
+| ooksdesk  | 7500F / RX5700XT / 32 GB DDR5         | Workstation | Primary deskt
op workstation       | x86_64-linux | UP     |
+| ookst480s | T480s / i5-8350U / 24 GB DDR4         | Workstation | Primary mobil
e workstation        | x86_64-linux | UP     |
+| ooksmicro | GPD Micro PC / N8100 / 8 GB LPDR3     | Workstation | Pocket workst
ation                | x86_64-linux | UP     |
+| ooksmedia | i3-10100 / 1650 Super / 8 GB DDR4     | Server      | Homelab/Media
 server              | x86_64-linux | UP     |
+| ooksx1    | X1 Carbon G4 / i5 6200U / 8 GB LPDDR3 | Workstation | Alternative m
obile workstation    | x86_64-linux | DOWN   |
+| ooknode   | Linode Nanode                         | Server      | VPS for websi
te                   | x86_64-linux | UP     |
+| ooksphone | Termux                                | Workstation | Nix environme
nt for android phone | x86_64-linux | DOWN   |
+
+## Architecture
+
+I like to experiment with different ideas a lot. Due to that, much of this is
+subject to change. I will try to keep this readme as up to date as possible.
+
+I won't go too indepth here, as everything is subject to change. But here is the
+high-level.
+
+One of the main goals of this project was to allow for easy 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_rol
es_and_profiles_method.html)).
+
+#### Roles
+
+- **Workstation**: Desktop/laptop systems with GUI environment
+- **Server**: Headless systems running specific services
+
+Roles are declared via their own respective helper functions `mkWorkstation` and
+`mkServer`. Both being simple wrappers of
+[`lib.nixosSystem`](https://github.com/NixOS/nixpkgs/blob/e5db80ae487b59b4e9f950d
68983ffb0575e26c6/flake.nix#L21)
+(also see [`lib.evalModules`](https://noogle.dev/f/lib/evalModules)). These
+functions serve to abstract the boilerplate, leaving a simple interface for
+declaring hosts.
+
+Example:
+
+```nix
+flake.nixosConfigurations = {
+  ookst480s = mkWorkstation {
+    inherit withSystem;
+    system = "x86_64-linux";
+    hostname = "ookst480s";
+    type = "laptop";
+  };
+  ooknode = mkServer {
+    inherit withSystem;
+    system = "x86_64-linux";
+    hostname = "ooknode";
+    domain = "ooknet.org";
+    type = "vm";
+    profile = "linode";
+    services = ["website" "forgejo"]; 
+  };
+};
+```
+
+#### Profiles
+
+Profiles are collections of related software and configurations that can be
+enabled on a per-host basis. Here are some example profiles for workstations:
+
+- `gaming`: Steam & emulators
+- `communication`: Discord, Teams, Matrix
+- `productivity`: Document editing, note-taking
+- `creative`: Art and design tools
+- `media`: Audio/video playback and management
+- `virtualization`: Virtual machine support
+
+Example configuration:
+
+```nix
+ooknet.workstation.profiles = ["gaming" "creative" "media"];
+```
+
+For servers, profiles are defined as services. For example:
+
+- `ookflix`: Media server services
+- `forgjo`: Git server
+- `website`: My static website
+
+```nix
+ooknet.server.services = ["ookflix"];
+```
+
+## Desktop environment
+
+All workstations run a minimal hyprland configuration made from a few
+components:
+
+- Hyprland
+- Hypr* ware (hypridle, hyprlock, hyprpaper)
+- Waybar (status bar)
+- Mako (notifications)

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..16616c7
--- /dev/null
+++ b/README.md
@@ -0,0 +1,125 @@
+<h1 align=center> ooknet </h1>
+<p align= center>A monorepo for all my nix 
expressions powered by flake-parts.</p>
+
+## Overview
+
+This repository serves two main purposes:
+
+1. Centralized location for all my personal
 computing infrastructure.
+2. A place to experiment and learn about ne
tworking, administration, security,
+   unix, design and programming.
+
+> [!WARNING]
+> This repository is not intended to be use
d by anyone but myself. It is highly
+> personalized and likely doesn't fit anyon
e else's needs. I leave this
+> repository public to serve as a reference
 for anyone else building a something
+> similar.
+
+## Features
+
+- NixOS configurations for all my hosts
+- Home-manager configuration for my worksta
tions
+- Custom packages
+- Development environments
+- Declarative secrets with agenix
+- Personal website
+- Templates for bootstrapping projects
+
+## Fleet
+
+Below are all the hosts I currently maintai
n within this flake:
+
+| host      | spec                         
         | role        | description        
               | architecture | status |
+| --------- | -----------------------------
-------- | ----------- | -------------------
-------------- | ------------ | ------ |
+| ooksdesk  | 7500F / RX5700XT / 32 GB DDR5
         | Workstation | Primary desktop wor
kstation       | x86_64-linux | UP     |
+| ookst480s | T480s / i5-8350U / 24 GB DDR4
         | Workstation | Primary mobile work
station        | x86_64-linux | UP     |
+| ooksmicro | GPD Micro PC / N8100 / 8 GB L
PDR3     | Workstation | Pocket workstation 
               | x86_64-linux | UP     |
+| ooksmedia | i3-10100 / 1650 Super / 8 GB 
DDR4     | Server      | Homelab/Media serve
r              | x86_64-linux | UP     |
+| ooksx1    | X1 Carbon G4 / i5 6200U / 8 G
B LPDDR3 | Workstation | Alternative mobile 
workstation    | x86_64-linux | DOWN   |
+| ooknode   | Linode Nanode                
         | Server      | VPS for website    
               | x86_64-linux | UP     |
+| ooksphone | Termux                       
         | Workstation | Nix environment for
 android phone | x86_64-linux | DOWN   |
+
+## Architecture
+
+I like to experiment with different ideas a
 lot. Due to that, much of this is
+subject to change. I will try to keep this 
readme as up to date as possible.
+
+I won't go too indepth here, as everything 
is subject to change. But here is the
+high-level.
+
+One of the main goals of this project was t
o allow for easy bootstrapping of new
+hosts while maintaining fine-grained config
uration on a per-host basis. This is
+accomplished using a roles and profiles pat
tern (similar to
+[Puppet's roles and profiles method](https:
//www.puppet.com/docs/puppet/7/the_roles_and
_profiles_method.html)).
+
+#### Roles
+
+- **Workstation**: Desktop/laptop systems w
ith GUI environment
+- **Server**: Headless systems running spec
ific services
+
+Roles are declared via their own respective
 helper functions `mkWorkstation` and
+`mkServer`. Both being simple wrappers of
+[`lib.nixosSystem`](https://github.com/NixO
S/nixpkgs/blob/e5db80ae487b59b4e9f950d68983f
fb0575e26c6/flake.nix#L21)
+(also see [`lib.evalModules`](https://noogl
e.dev/f/lib/evalModules)). These
+functions serve to abstract the boilerplate
, leaving a simple interface for
+declaring hosts.
+
+Example:
+
+```nix
+flake.nixosConfigurations = {
+  ookst480s = mkWorkstation {
+    inherit withSystem;
+    system = "x86_64-linux";
+    hostname = "ookst480s";
+    type = "laptop";
+  };
+  ooknode = mkServer {
+    inherit withSystem;
+    system = "x86_64-linux";
+    hostname = "ooknode";
+    domain = "ooknet.org";
+    type = "vm";
+    profile = "linode";
+    services = ["website" "forgejo"]; 
+  };
+};
+```
+
+#### Profiles
+
+Profiles are collections of related softwar
e and configurations that can be
+enabled on a per-host basis. Here are some 
example profiles for workstations:
+
+- `gaming`: Steam & emulators
+- `communication`: Discord, Teams, Matrix
+- `productivity`: Document editing, note-ta
king
+- `creative`: Art and design tools
+- `media`: Audio/video playback and managem
ent
+- `virtualization`: Virtual machine support
+
+Example configuration:
+
+```nix
+ooknet.workstation.profiles = ["gaming" "cr
eative" "media"];
+```
+
+For servers, profiles are defined as servic
es. For example:
+
+- `ookflix`: Media server services
+- `forgjo`: Git server
+- `website`: My static website
+
+```nix
+ooknet.server.services = ["ookflix"];
+```
+
+## Desktop environment
+
+All workstations run a minimal hyprland con
figuration made from a few
+components:
+
+- Hyprland
+- Hypr* ware (hypridle, hyprlock, hyprpaper
)
+- Waybar (status bar)
+- Mako (notifications)
 

diff --git a/repomix.config.json b/repomix.config.json
new file mode 100644
index 0000000..c0f1d48
--- /dev/null
+++ b/repomix.config.json
@@ -0,0 +1,25 @@
+{
+  "output": {
+    "filePath": "repodump.xml",
+    "style": "xml",
+    "fileSummary": true,
+    "directoryStructure": true,
+    "removeComments": false,
+    "removeEmptyLines": false,
+    "topFilesLength": 5,
+    "showLineNumbers": false,
+    "copyToClipboard": false
+  },
+  "include": [],
+  "ignore": {
+    "useGitignore": true,
+    "useDefaultPatterns": true,
+    "customPatterns": []
+  },
+  "security": {
+    "enableSecurityCheck": true
+  },
+  "tokenCount": {
+    "encoding": "o200k_base"
+  }
+}

diff --git a/repomix.config.json b/repomix.c
onfig.json
new file mode 100644
index 0000000..c0f1d48
--- /dev/null
+++ b/repomix.config.json
@@ -0,0 +1,25 @@
+{
+  "output": {
+    "filePath": "repodump.xml",
+    "style": "xml",
+    "fileSummary": true,
+    "directoryStructure": true,
+    "removeComments": false,
+    "removeEmptyLines": false,
+    "topFilesLength": 5,
+    "showLineNumbers": false,
+    "copyToClipboard": false
+  },
+  "include": [],
+  "ignore": {
+    "useGitignore": true,
+    "useDefaultPatterns": true,
+    "customPatterns": []
+  },
+  "security": {
+    "enableSecurityCheck": true
+  },
+  "tokenCount": {
+    "encoding": "o200k_base"
+  }
+}
 
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET