2026-05-02 03:08:18 -04:00
2026-04-19 13:33:11 -04:00
2026-05-02 03:08:18 -04:00
2026-04-19 13:33:11 -04:00
2026-05-02 03:08:17 -04:00
2026-04-19 13:33:11 -04:00
2026-04-18 17:41:09 -04:00

tuxcord.nix

Declarative NixOS system configurations for tuxcord server infrastructure.

Nix knowledge will be assumed arbitrarily; you should have basic understanding before diving into any details of this configuration.

Documentation

This README serves as the documentation entry point of this repository. Any other subcategories (e.g., users, structure, filesystem, security, services) should be documented using Markdown under this same directory.

Do keep in mind that documentation requires effort. This file can be outdated, incomplete, or inaccurate. Nothing will always be as accurate as the configuration itself.

Repository

Active work is done in the staging branch, which will be periodically merged into the main branch. main is guaranteed to not break commit history unless absolutely required, whereas staging is relaxed in this regard and commit history may be rewritten if deemed appropriate.

Hosts

There's currently a single shared tuxcord server, but we've already adopted a host naming convention in case this ever scales.

Hostnames follow the format tuxcord-<region>, where <region> is the lowercase two-letter country code representing the server's geographical location. We doubt there will ever be more than one server per country, so further disambiguation is not defined.

Host specific configuration can be found at nixos/hosts/tuxcord-XX. This is useful for host-specific hardware, firmware, storage layouts, etc.

Development

A Nix development shell is provided. To get a shell environment with basic tooling needed to work on this configuration, just run:

nix develop

To test the environment, you can launch a virtualized NixOS system derived from the configuration:

nix run '.#nixosConfigurations.<system>.config.system.build.vm'

Here, <system> refers to the hostname of the system you want to test (e.g., tuxcord-ca).

Note that this will create a qcow2 image file in the current directory. Nix will automatically manage changes to the configuration and update the image file accordingly while keeping part of its mutable state (e.g., root bash history).

Warning

Not all changes are applied automatically. Updates such as user passwords changes or modifications to the filesystem layout will require deleting the image file so that Nix can re-create it from scratch.

Contributions

For any contribution you would like to make, whether it is a discussion, a change, or another issue, there is no official channel, and the git server does not allow arbitrary user registration. We recommend contacting us via email (javalsai@proton.me/javalsai@tuxcord.net, error@tuxcord.net, or both).

License

All contents in this repository are licensed exclusively under the GNU Lesser General Public License (LGPL-3.0-only).

You are permitted to use derivatives of this configuration for your own systems and to redistribute modified versions, provided that you comply with the terms of the license.

S
Description
tuxcord.net NixOS configuration
Readme 437 KiB
Languages
Nix 100%