Huge update to organization. Added future numbus projects.
This commit is contained in:
@@ -1,54 +1,109 @@
|
||||
# ☁️ Numbus Server: Your Personal Cloud, Simplified 🚀
|
||||
# ☁️ Welcome to Numbus 🚀
|
||||
|
||||
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.
|
||||
|
||||
## ✨ Features
|
||||
|
||||
- 🌐 **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.
|
||||
|
||||
## 🛠️ Key Technologies
|
||||
|
||||
- **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.
|
||||
Welcome to the **Numbus Server** project! This repository provides a complete selection of highly customizable NixOS configurations to deploy **home servers**, **backup servers**, **computers**, **TVs** in an automated manner. Deploy devices in hours instead of days !
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
The entire deployment process is automated with the `deploy.sh` script. This script dynamically adapts the configuration to your hardware, network environment, and secrets.
|
||||
The entire deployment process is automated around a bash script. It helps to dynamically adapt the configuration to your hardware, network environment, and secrets.
|
||||
|
||||
**1. Clone the Repository:**
|
||||
### Requirements :
|
||||
#### For numbus-server :
|
||||
- A NixOS-based machine to deploy from
|
||||
- A NixOS-based live machine to deploy to
|
||||
- An email address with automated mail sending support
|
||||
- A valid, public domain name
|
||||
|
||||
|
||||
#### For numbus-backup-server :
|
||||
- A NixOS-based machine to deploy from
|
||||
- A NixOS-based live machine to deploy to
|
||||
- An email address with automated mail sending support
|
||||
- A valid domain name
|
||||
|
||||
#### For numbus-computer :
|
||||
- A NixOS-based machine to deploy from
|
||||
- A NixOS-based live machine to deploy to
|
||||
|
||||
#### For numbus-tv :
|
||||
- A NixOS-based machine to deploy from
|
||||
- A NixOS-based live machine to deploy to
|
||||
|
||||
### On your Nix-based machine :
|
||||
|
||||
**1. Clone the Repository :**
|
||||
|
||||
```bash
|
||||
git clone https://git.numbus.eu/raphael/numbus-server.git
|
||||
cd numbus-server
|
||||
git clone https://git.numbus.eu/raphael/numbus.git
|
||||
cd numbus
|
||||
```
|
||||
|
||||
**2. Run the Deployment Script:**
|
||||
**2. (Optional) Fill in the configuration file :**
|
||||
|
||||
This step is globally recommended as it reduces the risks of typos in the credentials. It also is better suited for repeated deployments to multiple machines.
|
||||
|
||||
```bash
|
||||
nano $your_choosed_device.conf
|
||||
```
|
||||
|
||||
Example: if you want to deploy a server
|
||||
|
||||
```bash
|
||||
nano numbus-server.conf
|
||||
```
|
||||
|
||||
**3. Run the Deployment Script :**
|
||||
|
||||
```bash
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
**3. Follow the Prompts:**
|
||||
**4. Follow the script's Prompts :**
|
||||
|
||||
> If you followed **step 2**, then choose non-interactive mode.
|
||||
|
||||
> If you skipped **step 2**, then choose interactive mode.
|
||||
|
||||
The script will guide you through the setup process, including choosing a deployment mode and providing the necessary information. Once completed, the script will:
|
||||
|
||||
- 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`.
|
||||
- Generate configuration files for Podman services.
|
||||
- Deploy the NixOS configuration to the remote using `nixos-anywhere`.
|
||||
- Verify the deployment and guide you through the final setup of the web UIs.
|
||||
|
||||
## ✨ Features
|
||||
|
||||
- 🌐 **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.
|
||||
|
||||
## 🛠️ Key Technologies
|
||||
|
||||
#### Global project :
|
||||
- **[NixOS](https://nixos.org):** A declarative Linux distribution that makes system management a breeze.
|
||||
- **[Nix Flakes](https://wiki.nixos.org/wiki/Flakes):** For reproducible builds and dependency management.
|
||||
- **[Sops-nix](https://github.com/Mic92/sops-nix):** For secure and convenient management of secrets.
|
||||
- **[NixOS-anywhere](https://github.com/nix-community/nixos-anywhere):** For seamless initial deployment to any machine.
|
||||
- **[Disko](https://github.com/nix-community/disko):** For declarative and predictable disk partitioning.
|
||||
|
||||
#### Server-centric features :
|
||||
- **[SnapRAID](https://www.snapraid.it):** Keep your data safe.
|
||||
- **[Qemu/KVM](https://www.qemu.org):** Run virtual with near-native performance.
|
||||
- **[Podman](https://podman.io):** Run rootless, containerized services with ease.
|
||||
- **[Traefik](https://traefik.io/traefik):** A modern reverse proxy for securely exposing services.
|
||||
|
||||
#### Desktop-centric features :
|
||||
- **[GNOME](https://www.gnome.org):** A modern, elegant desktop environment.
|
||||
- **[KDE Plasma](https://kde.org):** A full-featured and highly customizable desktop environment.
|
||||
|
||||
#### TV-centric features :
|
||||
- **[KDE Plasma Bigscreen](https://plasma-bigscreen.org):** An open-source TV interface for Linux.
|
||||
|
||||
|
||||
## 🔧 Deployment Modes
|
||||
|
||||
The `deploy.sh` script offers three modes to suit your needs:
|
||||
|
||||
Reference in New Issue
Block a user