66 lines
3.2 KiB
Markdown
66 lines
3.2 KiB
Markdown
# ☁️ Numbus Server: Your Personal Cloud, Simplified 🚀
|
|
|
|
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.
|
|
|
|
## 🚀 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.
|
|
|
|
**1. Clone the Repository:**
|
|
|
|
```bash
|
|
git clone https://git.numbus.eu/raphael/numbus-server.git
|
|
cd numbus-server
|
|
```
|
|
|
|
**2. Run the Deployment Script:**
|
|
|
|
```bash
|
|
./deploy.sh
|
|
```
|
|
|
|
**3. Follow the Prompts:**
|
|
|
|
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`.
|
|
- Verify the deployment and guide you through the final setup of the web UIs.
|
|
|
|
## 🔧 Deployment Modes
|
|
|
|
The `deploy.sh` script offers three modes to suit your needs:
|
|
|
|
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.
|
|
|
|
## 🤝 Contributing
|
|
|
|
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. |