- 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.
90 lines
2.6 KiB
Markdown
90 lines
2.6 KiB
Markdown
# Setting Up Your Wild Cloud
|
|
|
|
## Set up your cloud bootstrapper
|
|
|
|
See [Dnsmasq Setup](./guides/dnsmasq-setup.md).
|
|
|
|
## Set up Control Nodes
|
|
|
|
### 2. Install K3s (Lightweight Kubernetes)
|
|
|
|
K3s provides a fully-compliant Kubernetes distribution in a small footprint:
|
|
|
|
```bash
|
|
# Install K3s without the default load balancer (we'll use MetalLB)
|
|
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode=644 --disable servicelb --disable metallb
|
|
|
|
# Set up kubectl configuration
|
|
mkdir -p ~/.kube
|
|
sudo cat /etc/rancher/k3s/k3s.yaml > ~/.kube/config
|
|
chmod 600 ~/.kube/config
|
|
```
|
|
|
|
## Install Infrastructure Components
|
|
|
|
One command sets up your entire cloud infrastructure:
|
|
|
|
```bash
|
|
./infrastructure_setup/setup-all.sh
|
|
```
|
|
|
|
This installs and configures:
|
|
|
|
- **MetalLB**: Provides IP addresses for services
|
|
- **LongHorn**: Provides distributed block storage on the cluster
|
|
- **Traefik**: Handles ingress (routing) with automatic HTTPS
|
|
- **cert-manager**: Manages TLS certificates automatically
|
|
- **CoreDNS**: Provides internal DNS resolution
|
|
- **ExternalDNS**: Updates DNS records automatically
|
|
- **Kubernetes Dashboard**: Web UI for managing your cluster
|
|
|
|
## Set up worker nodes
|
|
|
|
For larger workloads or high availability, you can add more nodes:
|
|
|
|
```bash
|
|
# On your master node, get the node token
|
|
NODE_TOKEN=`sudo cat /var/lib/rancher/k3s/server/node-token`
|
|
MASTER_IP=192.168.8.222
|
|
# On each new node, join the cluster
|
|
|
|
curl -sfL https://get.k3s.io | K3S_URL=https://$MASTER_IP:6443 K3S_TOKEN=$NODE_TOKEN sh -
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
Now that your infrastructure is set up, you can:
|
|
|
|
1. **Deploy Applications**: See [Applications Guide](./APPS.md) for deploying services and applications
|
|
2. **Access Dashboard**: Visit `https://dashboard.internal.yourdomain.com` and use the token from `./bin/dashboard-token`
|
|
3. **Validate Setup**: Run `./infrastructure_setup/validate_setup.sh` to ensure everything is working
|
|
|
|
## Validation and Troubleshooting
|
|
|
|
Run the validation script to ensure everything is working correctly:
|
|
|
|
```bash
|
|
./infrastructure_setup/validate_setup.sh
|
|
```
|
|
|
|
This script checks:
|
|
|
|
- All infrastructure components
|
|
- DNS resolution
|
|
- Service connectivity
|
|
- Certificate issuance
|
|
- Network configuration
|
|
|
|
If issues are found, the script provides specific remediation steps.
|
|
|
|
## What's Next?
|
|
|
|
Now that your personal cloud is running, consider:
|
|
|
|
- Setting up backups with [Velero](https://velero.io/)
|
|
- Adding monitoring with Prometheus and Grafana
|
|
- Deploying applications like Nextcloud, Home Assistant, or Gitea
|
|
- Exploring the Kubernetes Dashboard to monitor your services
|
|
|
|
Welcome to your personal cloud journey! You now have the foundation for hosting your own services and taking control of your digital life.
|