85 lines
2.1 KiB
Markdown
85 lines
2.1 KiB
Markdown
# Homepage K3s Configuration
|
|
|
|
A complete Kubernetes configuration for deploying [Homepage](https://gethomepage.dev/) dashboard on K3s clusters.
|
|
|
|
## Quick Start
|
|
|
|
Deploy Homepage to your K3s cluster:
|
|
|
|
```bash
|
|
kubectl apply -k k8s/
|
|
```
|
|
|
|
## Configuration
|
|
|
|
The configuration includes:
|
|
|
|
- **Namespace**: `homepage` namespace with service account
|
|
- **RBAC**: ClusterRole with permissions to read cluster resources
|
|
- **ConfigMap**: Pre-configured with widgets for K3s monitoring
|
|
- **Deployment**: Secure deployment with resource limits and health checks
|
|
- **Service**: ClusterIP service on port 3000
|
|
- **Ingress**: Traefik-compatible ingress with TLS support
|
|
|
|
## Access
|
|
|
|
After deployment, Homepage will be available at:
|
|
- HTTP: `http://sortifal.fr`
|
|
- HTTPS: `https://sortifal.fr` (with cert-manager)
|
|
|
|
Ensure your DNS points `sortifal.fr` to your K3s ingress IP.
|
|
|
|
## Customization
|
|
|
|
### Update Configuration
|
|
|
|
Edit the ConfigMap in `k8s/configmap.yaml` to customize:
|
|
- **services.yaml**: Your applications and services
|
|
- **bookmarks.yaml**: Quick links and bookmarks
|
|
- **widgets.yaml**: Dashboard widgets (cluster info, resources, etc.)
|
|
- **settings.yaml**: Theme, layout, and provider settings
|
|
|
|
Apply changes:
|
|
```bash
|
|
kubectl apply -k k8s/
|
|
kubectl rollout restart deployment/homepage -n homepage
|
|
```
|
|
|
|
### Change Domain
|
|
|
|
Update `sortifal.fr` in `k8s/ingress.yaml` and the `HOMEPAGE_ALLOWED_HOSTS` environment variable in `k8s/deployment.yaml`.
|
|
|
|
### Resource Limits
|
|
|
|
Adjust CPU/memory limits in `k8s/deployment.yaml` based on your needs.
|
|
|
|
## Monitoring
|
|
|
|
Homepage includes widgets for monitoring your K3s cluster:
|
|
- Cluster CPU and memory usage
|
|
- Node status and resources
|
|
- Pod information across namespaces
|
|
- System resources
|
|
|
|
## Troubleshooting
|
|
|
|
Check deployment status:
|
|
```bash
|
|
kubectl get pods -n homepage
|
|
kubectl logs -n homepage deployment/homepage
|
|
```
|
|
|
|
Verify RBAC permissions:
|
|
```bash
|
|
kubectl auth can-i get nodes --as=system:serviceaccount:homepage:homepage
|
|
```
|
|
|
|
## Security
|
|
|
|
The configuration follows security best practices:
|
|
- Non-root container execution
|
|
- Read-only root filesystem where possible
|
|
- Minimal RBAC permissions
|
|
- Resource limits
|
|
- Security contexts
|
|
- Dropped capabilities |