docs: changes from johannes
WIP
This commit is contained in:
committed by
Qubasa
parent
86c4555bc0
commit
13eba4d7c5
@@ -46,25 +46,6 @@ exclude_docs: |
|
|||||||
/drafts/
|
/drafts/
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
- Home: index.md
|
|
||||||
- Guides:
|
|
||||||
- Getting Started:
|
|
||||||
- Creating Your First Clan: guides/getting-started/index.md
|
|
||||||
- Add Machines: guides/getting-started/add-machines.md
|
|
||||||
- Add User: guides/getting-started/add-user.md
|
|
||||||
- Add Services: guides/getting-started/add-services.md
|
|
||||||
- Deploy to Physical Machine:
|
|
||||||
- Create USB Installer: guides/getting-started/create-installer.md
|
|
||||||
- Deploy Physical Machine: guides/getting-started/hardware-report-physical.md
|
|
||||||
- Deploy to Virtual Machine: guides/getting-started/hardware-report-virtual.md
|
|
||||||
- Configure Disk Config: guides/getting-started/choose-disk.md
|
|
||||||
- Update Machine: guides/getting-started/update.md
|
|
||||||
- Continuous Integration: guides/getting-started/flake-check.md
|
|
||||||
- Convert Existing NixOS Config: guides/getting-started/convert-flake.md
|
|
||||||
- Inventory:
|
|
||||||
- Overview: guides/inventory/autoincludes.md
|
|
||||||
- Clan Services: guides/inventory/clanServices.md
|
|
||||||
- Concepts: guides/inventory/inventory.md
|
|
||||||
- Getting Started:
|
- Getting Started:
|
||||||
- Overview: index.md
|
- Overview: index.md
|
||||||
- Creating Your First Clan: guides/getting-started/index.md
|
- Creating Your First Clan: guides/getting-started/index.md
|
||||||
@@ -90,16 +71,14 @@ nav:
|
|||||||
- Community Clan Services: guides/services/community.md
|
- Community Clan Services: guides/services/community.md
|
||||||
- Write Your Own Clan Service: guides/services/write-your-own.md
|
- Write Your Own Clan Service: guides/services/write-your-own.md
|
||||||
- Vars:
|
- Vars:
|
||||||
|
- Introduction to Vars: guides/vars/vars-overview.md
|
||||||
|
- Minimal Example: guides/vars/vars-backend.md
|
||||||
|
- Diving deeper: guides/vars/vars-concepts.md
|
||||||
- Introduction to Vars: guides/vars/vars-overview.md
|
- Introduction to Vars: guides/vars/vars-overview.md
|
||||||
- Minimal Example: guides/vars/vars-backend.md
|
- Minimal Example: guides/vars/vars-backend.md
|
||||||
- Diving deeper: guides/vars/vars-concepts.md
|
- Diving deeper: guides/vars/vars-concepts.md
|
||||||
- Advanced Examples: guides/vars/vars-advanced-examples.md
|
- Advanced Examples: guides/vars/vars-advanced-examples.md
|
||||||
- Troubleshooting: guides/vars/vars-troubleshooting.md
|
- Troubleshooting: guides/vars/vars-troubleshooting.md
|
||||||
- Managing Users (OLD): guides/secrets.md
|
|
||||||
- Networking:
|
|
||||||
- Overview: guides/networking/networking.md
|
|
||||||
- Zerotier VPN: guides/networking/mesh-vpn.md
|
|
||||||
- Backup & Restore: guides/backups.md
|
|
||||||
- Sops Backend:
|
- Sops Backend:
|
||||||
- Yubikeys & Age Plugins: guides/vars/sops/age-plugins.md
|
- Yubikeys & Age Plugins: guides/vars/sops/age-plugins.md
|
||||||
- Managing Users (OLD): guides/secrets.md
|
- Managing Users (OLD): guides/secrets.md
|
||||||
@@ -129,14 +108,8 @@ nav:
|
|||||||
- Facts --> Vars: guides/migrations/migration-facts-vars.md
|
- Facts --> Vars: guides/migrations/migration-facts-vars.md
|
||||||
- Disk id: guides/migrations/disk-id.md
|
- Disk id: guides/migrations/disk-id.md
|
||||||
- Disk Encryption: guides/disk-encryption.md
|
- Disk Encryption: guides/disk-encryption.md
|
||||||
- Flake-parts: guides/flake-parts.md
|
|
||||||
- Nixos-rebuild: guides/nixos-rebuild.md
|
|
||||||
- macOS: guides/macos.md
|
|
||||||
- Templates: concepts/templates.md
|
|
||||||
- Disable Secure Boot: guides/secure-boot.md
|
- Disable Secure Boot: guides/secure-boot.md
|
||||||
- Contributing:
|
- Contributing:
|
||||||
- Getting Started: guides/contributing/CONTRIBUTING.md
|
|
||||||
- Debugging: guides/contributing/debugging.md
|
|
||||||
- Hacking: guides/contributing/CONTRIBUTING.md
|
- Hacking: guides/contributing/CONTRIBUTING.md
|
||||||
- Advanced Debugging: guides/contributing/debugging.md
|
- Advanced Debugging: guides/contributing/debugging.md
|
||||||
- Testing: guides/contributing/testing.md
|
- Testing: guides/contributing/testing.md
|
||||||
@@ -198,32 +171,6 @@ nav:
|
|||||||
- 05-deployment-parameters: decisions/05-deployment-parameters.md
|
- 05-deployment-parameters: decisions/05-deployment-parameters.md
|
||||||
- Template: decisions/_template.md
|
- Template: decisions/_template.md
|
||||||
- Glossary: reference/glossary.md
|
- Glossary: reference/glossary.md
|
||||||
- Clan Services:
|
|
||||||
- reference/clanServices/index.md
|
|
||||||
- reference/clanServices/admin.md
|
|
||||||
- reference/clanServices/borgbackup.md
|
|
||||||
- reference/clanServices/certificates.md
|
|
||||||
- reference/clanServices/coredns.md
|
|
||||||
- reference/clanServices/data-mesher.md
|
|
||||||
- reference/clanServices/dyndns.md
|
|
||||||
- reference/clanServices/emergency-access.md
|
|
||||||
- reference/clanServices/garage.md
|
|
||||||
- reference/clanServices/hello-world.md
|
|
||||||
- reference/clanServices/importer.md
|
|
||||||
- reference/clanServices/localbackup.md
|
|
||||||
- reference/clanServices/matrix-synapse.md
|
|
||||||
- reference/clanServices/mycelium.md
|
|
||||||
- reference/clanServices/monitoring.md
|
|
||||||
- reference/clanServices/packages.md
|
|
||||||
- reference/clanServices/sshd.md
|
|
||||||
- reference/clanServices/syncthing.md
|
|
||||||
- reference/clanServices/trusted-nix-caches.md
|
|
||||||
- reference/clanServices/users.md
|
|
||||||
- reference/clanServices/wifi.md
|
|
||||||
- reference/clanServices/wireguard.md
|
|
||||||
- reference/clanServices/zerotier.md
|
|
||||||
|
|
||||||
- Clan Options: "/options"
|
|
||||||
- Services:
|
- Services:
|
||||||
- Introduction to ClanServices: reference/clanServices/index.md
|
- Introduction to ClanServices: reference/clanServices/index.md
|
||||||
- Official:
|
- Official:
|
||||||
|
|||||||
27
docs/site/community/services/index.md
Normal file
27
docs/site/community/services/index.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
Services provided by the community
|
||||||
|
|
||||||
|
!!! tip "Add your own!"
|
||||||
|
|
||||||
|
Have you built a service or a tool for? Open a PR adding a link to this page!
|
||||||
|
|
||||||
|
<div class="grid cards" markdown>
|
||||||
|
|
||||||
|
- [Your Service Foo](https://example.com) :octicons-link-external-16:
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Does this and that
|
||||||
|
|
||||||
|
- [Your Service Foo](https://example.com) :octicons-link-external-16:
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Does this and that
|
||||||
|
|
||||||
|
- [Your Service Foo](https://example.com) :octicons-link-external-16:
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Does this and that
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
Now that you have created a machine, added some services, and set up secrets, this guide will walk you through how to deploy it.
|
Now that you have created a machine, added some services, and set up secrets, this guide will walk you through how to deploy it.
|
||||||
|
|
||||||
|
|
||||||
### Step 0. Prerequisites
|
### Prerequisites
|
||||||
- [x] RAM > 2GB
|
- [x] RAM > 2GB
|
||||||
- [x] **Two Computers**: You need one computer that you're getting ready (we'll call this the Target Computer) and another one to set it up from (we'll call this the Setup Computer). Make sure both can talk to each other over the network using SSH.
|
- [x] **Two Computers**: You need one computer that you're getting ready (we'll call this the Target Computer) and another one to set it up from (we'll call this the Setup Computer). Make sure both can talk to each other over the network using SSH.
|
||||||
- [x] **Machine configuration**: See our basic [adding and configuring machine guide](./add-machines.md)
|
- [x] **Machine configuration**: See our basic [adding and configuring machine guide](./add-machines.md)
|
||||||
@@ -45,7 +45,7 @@ This is an example of the booted installer.
|
|||||||
│ │Onion address: 6evxy5yhzytwpnhc2vpscrbti3iktxdhpnf6yim6bbs25p4v6beemzyd.onion │ │
|
│ │Onion address: 6evxy5yhzytwpnhc2vpscrbti3iktxdhpnf6yim6bbs25p4v6beemzyd.onion │ │
|
||||||
│ │Multicast DNS: nixos-installer.local │ │
|
│ │Multicast DNS: nixos-installer.local │ │
|
||||||
│ └─────────────────────────────────────────────────────────────────────────────────┘ │
|
│ └─────────────────────────────────────────────────────────────────────────────────┘ │
|
||||||
│ Press 'Ctrl-C' for console access │
|
│ Press 'Ctrl-C' for console access │
|
||||||
│ │
|
│ │
|
||||||
└─────────────────────────────────────────────────────────────────────────────────────┘
|
└─────────────────────────────────────────────────────────────────────────────────────┘
|
||||||
```
|
```
|
||||||
@@ -75,12 +75,12 @@ This is an example of the booted installer.
|
|||||||
|
|
||||||
There are two ways to deploy your machine:
|
There are two ways to deploy your machine:
|
||||||
|
|
||||||
|
### Generating a Hardware Report
|
||||||
|
|
||||||
|
The following command will generate a hardware report with [nixos-facter](https://github.com/nix-community/nixos-facter) and writes it back into your machine folder. The `--phases kexec` flag makes sure we are not yet formatting anything, instead if the target system is not a NixOS machine it will use [kexec](https://wiki.archlinux.org/title/Kexec) to switch to a NixOS kernel.
|
||||||
|
|
||||||
=== "Password"
|
=== "Password"
|
||||||
### Generating a Hardware Report
|
**Password**
|
||||||
|
|
||||||
The following command will generate a hardware report with [nixos-facter](https://github.com/nix-community/nixos-facter) and writes it back into your machine folder. The `--phases kexec` flag makes sure we are not yet formatting anything, instead if the target system is not a NixOS machine it will use [kexec](https://wiki.archlinux.org/title/Kexec) to switch to a NixOS kernel.
|
|
||||||
|
|
||||||
|
|
||||||
```terminal
|
```terminal
|
||||||
clan machines install [MACHINE] \
|
clan machines install [MACHINE] \
|
||||||
@@ -90,11 +90,10 @@ There are two ways to deploy your machine:
|
|||||||
```
|
```
|
||||||
|
|
||||||
=== "QR Code"
|
=== "QR Code"
|
||||||
### Generating a Hardware Report
|
**QR Code**
|
||||||
|
|
||||||
The following command will generate a hardware report with [nixos-facter](https://github.com/nix-community/nixos-facter) and writes it back into your machine folder. The `--phases kexec` flag makes sure we are not yet formatting anything, instead if the target system is not a NixOS machine it will use [kexec](https://wiki.archlinux.org/title/Kexec) to switch to a NixOS kernel.
|
**Using a JSON String or File Path**:
|
||||||
|
|
||||||
#### Using a JSON String or File Path
|
|
||||||
Copy the JSON string contained in the QR Code and provide its path or paste it directly:
|
Copy the JSON string contained in the QR Code and provide its path or paste it directly:
|
||||||
```terminal
|
```terminal
|
||||||
clan machines install [MACHINE] --json [JSON] \
|
clan machines install [MACHINE] --json [JSON] \
|
||||||
@@ -102,7 +101,8 @@ There are two ways to deploy your machine:
|
|||||||
--phases kexec
|
--phases kexec
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Using an Image Containing the QR Code
|
**Using an Image Containing the QR Code**:
|
||||||
|
|
||||||
Provide the path to an image file containing the QR code displayed by the installer:
|
Provide the path to an image file containing the QR code displayed by the installer:
|
||||||
```terminal
|
```terminal
|
||||||
clan machines install [MACHINE] --png [PATH] \
|
clan machines install [MACHINE] --png [PATH] \
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
# Using the Inventory
|
|
||||||
|
|
||||||
Clan's inventory system is a composable way to define and deploy services across
|
Clan's inventory system is a composable way to define and deploy services across
|
||||||
machines.
|
machines.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
# Vars System Overview
|
|
||||||
|
|
||||||
The vars system is clan's declarative solution for managing generated files, secrets, and dynamic configuration in your NixOS deployments. It eliminates the manual steps of generating credentials, certificates, and other dynamic values by automating these processes within your infrastructure-as-code workflow.
|
The vars system is clan's declarative solution for managing generated files, secrets, and dynamic configuration in your NixOS deployments. It eliminates the manual steps of generating credentials, certificates, and other dynamic values by automating these processes within your infrastructure-as-code workflow.
|
||||||
|
|
||||||
@@ -19,7 +18,7 @@ This approach has several problems:
|
|||||||
|
|
||||||
- **Not reproducible**: Manual steps vary between team members
|
- **Not reproducible**: Manual steps vary between team members
|
||||||
|
|
||||||
- **Hard to maintain**: Updating secrets requires remembering manual commands
|
- **Hard to maintain**: Updating secrets requires remembering manual commands
|
||||||
|
|
||||||
- **Deployment friction**: Secrets must be managed outside of your configuration
|
- **Deployment friction**: Secrets must be managed outside of your configuration
|
||||||
|
|
||||||
@@ -38,7 +37,7 @@ clan.core.vars.generators.root-password = {
|
|||||||
runtimeInputs = [ pkgs.mkpasswd ];
|
runtimeInputs = [ pkgs.mkpasswd ];
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.root.hashedPasswordFile =
|
users.users.root.hashedPasswordFile =
|
||||||
config.clan.core.vars.generators.root-password.files.hash.path;
|
config.clan.core.vars.generators.root-password.files.hash.path;
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -92,7 +91,7 @@ Define how to create files from inputs:
|
|||||||
|
|
||||||
- **Prompts**: Values requested from users
|
- **Prompts**: Values requested from users
|
||||||
|
|
||||||
- **Scripts**: Generation logic
|
- **Scripts**: Generation logic
|
||||||
|
|
||||||
- **Dependencies**: Other generators this depends on
|
- **Dependencies**: Other generators this depends on
|
||||||
|
|
||||||
@@ -123,9 +122,9 @@ Here's a complete example showing password generation and usage:
|
|||||||
'';
|
'';
|
||||||
runtimeInputs = [ pkgs.mkpasswd ];
|
runtimeInputs = [ pkgs.mkpasswd ];
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.myuser = {
|
users.users.myuser = {
|
||||||
hashedPasswordFile =
|
hashedPasswordFile =
|
||||||
config.clan.core.vars.generators.user-password.files.hash.path;
|
config.clan.core.vars.generators.user-password.files.hash.path;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,39 +1,28 @@
|
|||||||
---
|
---
|
||||||
hide:
|
hide:
|
||||||
- navigation
|
|
||||||
- toc
|
- toc
|
||||||
---
|
---
|
||||||
|
|
||||||
# :material-home: What is Clan?
|
# Selfhost in a reliable and scalable way
|
||||||
|
|
||||||
[Clan](https://clan.lol/) is a peer-to-peer computer management framework that
|
[Get started](./guides/getting-started/index.md){ .md-button .md-button--primary }
|
||||||
empowers you to **selfhost in a reliable and scalable way**.
|
[View on Gitea](https://git.clan.lol/clan/clan-core){ .md-button }
|
||||||
|
|
||||||
Built on NixOS, Clan provides a **declarative interface for managing machines** with automated [secret management](./guides/secrets.md), easy [mesh VPN
|
## Guides
|
||||||
connectivity](./guides/mesh-vpn.md), and [automated backups](./guides/backups.md).
|
|
||||||
|
|
||||||
Whether you're running a homelab or maintaining critical computing infrastructure,
|
|
||||||
Clan will help **reduce maintenance burden** by allowing a **git repository to define your whole network** of computers.
|
|
||||||
|
|
||||||
In combination with [sops-nix](https://github.com/Mic92/sops-nix), [nixos-anywhere](https://github.com/nix-community/nixos-anywhere) and [disko](https://github.com/nix-community/disko), Clan makes it possible to have **collaborative infrastructure**.
|
|
||||||
|
|
||||||
At the heart of Clan are [Clan Services](./reference/clanServices/index.md) - the core
|
|
||||||
concept that enables you to add functionality across multiple machines in your
|
|
||||||
network. While Clan ships with essential core services, you can [create custom
|
|
||||||
services](./guides/clanServices.md) tailored to your specific needs.
|
|
||||||
|
|
||||||
|
|
||||||
## :material-book: Guides
|
|
||||||
|
|
||||||
How-to Guides for achieving a certain goal or solving a specific issue.
|
|
||||||
|
|
||||||
<div class="grid cards" markdown>
|
<div class="grid cards" markdown>
|
||||||
|
|
||||||
- [:material-clock-fast: Getting Started](./guides/getting-started/index.md)
|
- [Inventory](./guides/inventory.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Get started in less than 20 minutes!
|
Learn how about inventory
|
||||||
|
|
||||||
|
- [Vars](./guides/vars.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Learn how to use vars
|
||||||
|
|
||||||
- [macOS](./guides/macos.md)
|
- [macOS](./guides/macos.md)
|
||||||
|
|
||||||
@@ -41,35 +30,40 @@ How-to Guides for achieving a certain goal or solving a specific issue.
|
|||||||
|
|
||||||
Using Clan to manage your macOS machines
|
Using Clan to manage your macOS machines
|
||||||
|
|
||||||
- [Contribute](./guides/contributing/CONTRIBUTING.md)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
How to set up a development environment
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## Concepts
|
## Reference
|
||||||
|
|
||||||
Explore the underlying principles of Clan
|
|
||||||
|
|
||||||
<div class="grid cards" markdown>
|
<div class="grid cards" markdown>
|
||||||
|
|
||||||
- [Vars](./guides/vars/vars-overview.md)
|
- [CLI](./reference/cli/index.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Learn about Generators, our way to secret management
|
command line interface
|
||||||
|
|
||||||
- [Inventory](./concepts/inventory.md)
|
- [Clan Options](./options)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Learn about the Inventory, a multi machine Nix interface
|
Search all options
|
||||||
|
|
||||||
|
- [Services](./reference/cli/index.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Discover services
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
## Blog
|
## Blog
|
||||||
|
|
||||||
Visit our [Clan Blog](https://clan.lol/blog/) for the latest updates, tutorials, and community stories.
|
<div class="grid cards" markdown>
|
||||||
|
|
||||||
|
- [Clan Blog](https://clan.lol/blog/)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
For the latest updates, tutorials, and community stories.
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user