Homepage/README.md
Alexis Bruneteau 50f5234488 init
2025-09-04 17:17:18 +02:00

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