# synix

NixOS and Home Manager modules, packages, and automation for client and server deployments.

Explore the outputs:
```bash
nix flake show git+https://git.sid.ovh/sid/synix
```

**Support:** `x86_64-linux` (stable), `aarch64-linux` (experimental)

## Directory Structure

- `apps/`: Deployment, installation, and update tooling.
- `docs/`: Project documentation.
- `lib/`: Helper functions.
- `modules/`: NixOS and Home Manager modules.
- `overlays/`: Package overrides and fixes.
- `pkgs/`: Custom packages.
- `templates/`: Boilerplates for `nix-config` and dev environments.

## Usage

Add this repo to your flake inputs:
```nix
# flake.nix
inputs.synix.url = "git+https://git.sid.ovh/sid/synix.git";
```

See the [documentation](https://doc.sid.ovh) for a full setup guide.

## Templates

Initialize a template in a new directory:
```bash
nix flake init -t git+https://git.sid.ovh/sid/synix#TEMPLATE
```

> Available templates: `nix-config`, `c-hello`, `microvm`, etc. See [flake.nix](./flake.nix) for the full list.

## Contributing

1. Clone & checkout `develop`:
   ```bash
   git clone https://git.sid.ovh/sid/synix && cd synix
   git checkout develop
   ```
2. Validate changes:
   ```bash
   nix fmt # formats the code
   nix flake check # checks formatting, runs build and runtime tests
   ```
3. Submit patches via `git format-patch` to **sid@sid.ovh** or Matrix **@sid:sid.ovh**.

Thank you for contributing!
