first commit
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.env
|
||||||
|
*.log
|
||||||
|
.env*
|
||||||
42
README.md
Normal file
42
README.md
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# Homepage
|
||||||
|
|
||||||
|
A modern, secure, highly customizable application dashboard.
|
||||||
|
|
||||||
|
## 📋 Configuration Notes
|
||||||
|
|
||||||
|
### **Environment Variables**
|
||||||
|
The following environment variables are used in the configuration:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
PUID
|
||||||
|
PGID
|
||||||
|
TZ
|
||||||
|
HOMEPAGE_ALLOWED_HOSTS
|
||||||
|
```
|
||||||
|
|
||||||
|
### **Setup Details**
|
||||||
|
- **Domain**: configured in `docker-compose.yaml` (uses `${DOMAIN}` variable)
|
||||||
|
- **Port**: `3000` (container internal)
|
||||||
|
- **Volumes**:
|
||||||
|
- `/srv/homelab/volumes/homepage/config`
|
||||||
|
- `/var/run/docker.sock` (read-only, for Docker integration)
|
||||||
|
- **Networks**: `proxy` (external)
|
||||||
|
|
||||||
|
### **Important URLs**
|
||||||
|
- **Dashboard**: `https://homepage.${DOMAIN}`
|
||||||
|
|
||||||
|
### **Customizations**
|
||||||
|
- **Reverse Proxy**: Traefik with Cloudflare DNS challenge for SSL.
|
||||||
|
- **Docker Integration**: Access to Docker socket for container monitoring.
|
||||||
|
- **Allowed Hosts**: Restricted to `${DOMAIN}` via environment variable.
|
||||||
|
|
||||||
|
## 🚀 Deployment
|
||||||
|
|
||||||
|
Deployed via Docker Compose / Portainer.
|
||||||
|
|
||||||
|
## 🔧 Service Details
|
||||||
|
|
||||||
|
- **Container**: `homepage`
|
||||||
|
- **Image**: `ghcr.io/gethomepage/homepage:latest`
|
||||||
|
- **Health Check**: Native application health monitoring (wget)
|
||||||
|
- **Logging**: JSON format, 10MB rotation
|
||||||
37
docker-compose.yaml
Normal file
37
docker-compose.yaml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
services:
|
||||||
|
homepage:
|
||||||
|
image: ghcr.io/gethomepage/homepage:latest
|
||||||
|
container_name: homepage
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
volumes:
|
||||||
|
- /srv/homelab/volumes/homepage/config:/app/config
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=America/Sao_Paulo
|
||||||
|
- HOMEPAGE_ALLOWED_HOSTS=${DOMAIN}
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.homepage.rule=Host(`homepage.${DOMAIN}`)"
|
||||||
|
- "traefik.http.routers.homepage.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.homepage.tls.certresolver=cloudflare"
|
||||||
|
- "traefik.http.routers.homepage.tls=true"
|
||||||
|
- "traefik.docker.network=proxy"
|
||||||
|
- "traefik.http.services.homepage.loadbalancer.server.port=3000"
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "wget", "--spider", "-q", "http://localhost:3000" ]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
Reference in New Issue
Block a user