Big update. Data lost found back.

This commit is contained in:
Raphael Numbus
2025-11-14 19:48:16 +01:00
parent 300b0cbccb
commit 60e5dd2615
2 changed files with 202 additions and 275 deletions
+47 -46
View File
@@ -1,65 +1,66 @@
# Numbus Server Configuration
# ☁️ Numbus Server: Your Personal Cloud, Simplified 🚀
## Project Overview
Welcome to the **Numbus Server** project! This repository provides a complete NixOS configuration to deploy a personal home server with a rich set of services in minutes. Our goal is to make self-hosting accessible to everyone, allowing you to take back control of your data with a solution that is easy to manage and highly reliable.
Welcome to the **numbus server** project ! This **repository** contains the numbus server **NixOS configuration**.
## ✨ Features
It uses the **Nix** package manager and the **NixOS** operating system to declaratively **manage** the **entire system** configuration.
- 🌐 **Free & Open-Source:** Built with transparency and community collaboration in mind.
- 🚀 **Easy Deployment:** Get your server up and running in minutes with a single command.
- 🛠️ **Set & Forget:** A highly reliable, low-maintenance solution.
- 🔒 **Secure by Design:** Strong security practices are at the core of our configuration.
- 📦 **Popular Services:** Access a wide range of popular, pre-configured services.
- ⚙️ **Declarative & Reproducible:** Thanks to NixOS, your system configuration is entirely declarative, ensuring reproducibility and easy maintenance.
The goal of this project is to be able to **deploy** a server with a **large set** of services **in minutes**.
## 🛠️ Key Technologies
This make **homelabbing** very **accessible** and **easy** and allows non-very-technical users to **take control over their data**.
- **NixOS:** A declarative Linux distribution that makes system management a breeze.
- **Nix Flakes:** For reproducible builds and dependency management.
- **Docker & Docker Compose:** To run containerized services with ease.
- **Traefik:** A modern reverse proxy for securely exposing services.
- **Sops-nix:** For secure and convenient management of secrets.
- **NixOS-anywhere:** For seamless initial deployment to any machine.
- **Disko:** For declarative and predictable disk partitioning.
#### Features
## 🚀 Getting Started
- Fully **free**, **libre** and **open-source** project.
- **Easy** to deploy.
- **Set** and **forget** solution.
- Highly **reliable**.
- **Secure**.
- Plenty of **popular** services **available**.
The entire deployment process is automated with the `deploy.sh` script. This script dynamically adapts the configuration to your hardware, network environment, and secrets.
#### Key Technologies
- **NixOS:** The declarative Linux distribution. For an easy management of Linux systems. Deploy, maintain, and update your system like a breeze.
- **Nix Flakes:** Used for reproducible builds and dependency management.
- **Docker & Docker Compose:** For running containerised services with the Traefik reverse proxy.
- **Sops-nix:** For managing secrets.
- **NixOS-anywhere:** For the first deployment of the NixOS configuration to a remote machine.
- **Disko:** For declarative disk partitioning.
**1. Clone the Repository:**
## Get started
```bash
git clone https://git.numbus.eu/raphael/numbus-server.git
cd numbus-server
```
The primary workflow for this project is centred around the **`deploy.sh`** script. This script automates the entire process of deploying the **`numbus-server`** configuration to a new machine.
**2. Run the Deployment Script:**
NixOS does the **heavy lifting** when it comes to system configuration but there are still **changes** that need to be made **dynamically** to adapt to your system : for example, your **hardware** configuration, **keys** and **secrets**, **network** environment, etc.
```bash
sudo bash deploy.sh
```
#### Deployment modes
**3. Follow the Prompts:**
The deployment process is handled by the **`deploy.sh`** script. This script can be run in three modes:
The script will guide you through the setup process, including choosing a deployment mode and providing the necessary information. Once completed, the script will:
1. **Interactive Mode:** The script will prompt for all necessary configuration values, such as the target host's IP address, the disk to install on, domain names, and API tokens.
2. **Non-interactive automated Mode:** The script can read configuration values from a file, allowing for non-interactive deployments.
3. **Update and maintain mode**: The script will update a remote system on which this NixOS configuration has already been deployed.
- Adapt the configuration to your machine.
- Generate SSH and `sops` keys.
- Encrypt secrets for secure storage.
- Generate configuration files for Docker services.
- Deploy the NixOS configuration using `nixos-anywhere`.
- Verify the deployment and guide you through the final setup of the web UIs.
#### To run the deployment:
## 🔧 Deployment Modes
1. Get the repository by cloning it:
The `deploy.sh` script offers three modes to suit your needs:
```bash
git clone https://git.numbus.eu/raphael/numbus-server.git
```
2. Run the deployment script:
```bash
sudo bash deploy.sh
```
3. Follow the on-screen prompts to choose the deployment mode and provide the required information.
1. **Interactive Mode:** The script will prompt you for all necessary configuration values, such as the target host's IP address, the disk to install on, domain names, and API tokens.
2. **Non-interactive Automated Mode:** The script can read configuration values from a file, allowing for unattended deployments.
3. **Update and Maintain Mode:** This mode allows you to update a remote system on which this NixOS configuration has already been deployed.
The script will then perform the following actions:
## 🤝 Contributing
- Adapt the configuration to the current machine.
- Generate SSH and `sops` keys.
- Gather secrets locally and encrypt them on the remote machine.
- Generate configuration files for Docker services.
- Use `nixos-anywhere` to deploy the NixOS configuration from the `flake.nix` file to the target machine.
- Check that the deployment succeeded by SSHing into the new installation.
- Guiding the user through the (pretty easy) setup of all the web UIs.
Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request.
## 📄 License
This project is licensed under the AGPLv3. See the [LICENSE](LICENSE) file for details.