Add dnsmasq and Talos setup documentation and configuration files

- Created `dnsmasq-setup.md` guide for setting up dnsmasq on hardware like Orange Pi Zero 3.
- Added `talos-setup.md` guide for an alternate setup using Talos and bare Kubernetes.
- Introduced configuration files for dnsmasq including `.not_logged_in_yet`, `bare-metal.yaml`, `boot.ipxe`, `dnsmasq.conf`, and `nginx.conf`.
- Implemented `setup.sh` script for automating the installation and configuration of dnsmasq and nginx.
- Updated example configuration in `config.example.yaml` to include Talos versioning.
- Modified README to reflect changes in Wild-Cloud app commands.
This commit is contained in:
2025-06-08 16:32:45 -07:00
parent 0971452900
commit 02a282899b
15 changed files with 1062 additions and 38 deletions

View File

@@ -1,38 +1,10 @@
# Setting Up Your Personal Cloud
# Setting Up Your Wild Cloud
Welcome to your journey toward digital independence! This guide will walk you through setting up your own personal cloud infrastructure using Kubernetes, providing you with privacy, control, and flexibility.
## Set up your cloud bootstrapper
## Hardware Recommendations
See [Dnsmasq Setup](./guides/dnsmasq-setup.md).
For a pleasant experience, we recommend:
- A dedicated mini PC, NUC, or old laptop with at least:
- 4 CPU cores
- 8GB RAM (16GB recommended)
- 128GB SSD (256GB or more recommended)
- A stable internet connection
- Optional: additional nodes for high availability
## Initial Setup
### 1. Prepare Environment Variables
First, create your environment configuration:
```bash
# Copy the example file and edit with your details
cp .env.example .env
nano .env
# Then load the environment variables
source load-env.sh
```
Important variables to set in your `.env` file:
- `DOMAIN`: Your domain name (e.g., `cloud.example.com`)
- `EMAIL`: Your email for Let's Encrypt certificates
- `CLOUDFLARE_API_TOKEN`: If using Cloudflare for DNS
## Set up Control Nodes
### 2. Install K3s (Lightweight Kubernetes)
@@ -48,7 +20,7 @@ sudo cat /etc/rancher/k3s/k3s.yaml > ~/.kube/config
chmod 600 ~/.kube/config
```
### 3. Install Infrastructure Components
## Install Infrastructure Components
One command sets up your entire cloud infrastructure:
@@ -66,7 +38,7 @@ This installs and configures:
- **ExternalDNS**: Updates DNS records automatically
- **Kubernetes Dashboard**: Web UI for managing your cluster
## Adding Additional Nodes (Optional)
## Set up worker nodes
For larger workloads or high availability, you can add more nodes:

View File

@@ -0,0 +1,48 @@
# Setting up Ambian on a pi
These are _raw_ notes. Instructions will need to be made friendly.
## Hardware requirements
- 32GB SD card
- SD to USB adapter
## Creating OS boot on SD
### References
- See [Armbian OS getting started](https://docs.armbian.com/User-Guide_Getting-Started/)
- See [Orange Pi Zero 3 setup](https://www.armbian.com/orange-pi-zero-3/)
### Steps
Prepare image:
- Download [OS image](https://www.armbian.com/download/).
- Install [usbimager](https://gitlab.com/bztsrc/usbimager).
- Insert SD card into USB adapter into ops computer.
- Launch `USB Imager` and use it to write your downloaded image to the SD card. It might take an hour.
- When written, copy infrastructure_setup/dnsmasq/.not_logged_in_yet to the sd's `root/` dir.
Boot:
- Put the SD card into the Pi and boot.
- Set config options.
- From your ops machine, ssh into the pi.
- Run `armbian-install`
- Select the option to put the boot loader on the sdcard
Configure:
```bash
# Block all suspend, hibernate, and sleep actions.
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
```
Update:
```bash
wget -qO - https://apt.armbian.com/armbian.key | gpg --dearmor | sudo tee /usr/share/keyrings/armbian.gpg >/dev/null
sudo apt update
sudo apt upgrade
```

View File

@@ -0,0 +1,8 @@
# Dnsmasq setup
Steps:
- Get some hardware. A $30 _Orange Pi Zero 3_ is good enough.
- See [Armbian Setup](./armbian-setup.md).
- From your wildcloud root, run `install-dnsmasq`. This will create the required installation files and copy them all to your dnsmasq server into `/tmp/dnsmasq-setup`.
- ssh into your dnsmasq server and run `/tmp/dnsmasq-setup/setup.sh`.