No description
- JavaScript 85.7%
- CSS 10.8%
- Dockerfile 1.8%
- HTML 1.7%
| public | ||
| .dockerignore | ||
| Dockerfile | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| server.js | ||
knet-homepage
Run locally (with proxy)
Start the local server:
node server.js
Docker
Build the image:
docker build -t knet-homepage .
Run the container:
docker run --rm -p 8000:8000 -e PORT=8000 knet-homepage
Coolify
- Create a new application and connect this Git repo.
- Build pack: Dockerfile.
- Exposed port: 8000.
- Optional environment variables:
PORT(default8000)DEBUG_PINGS=trueto log ping diagnostics
Status data
Service and resource checks are configured only through JSON files in data/.
ICMP checks for resources
Add pingHost to any resource in data/resources.json:
{
"id": "r1",
"name": "Osiris",
"type": "compute",
"location": "helsinki",
"notes": "Primary Compute",
"pingHost": "10.0.0.10",
"pingTimeoutMs": 1000
}
The server uses system ping (ICMP) and marks resources up or down. If pingHost is missing, it falls back to the resource status field or pending.
Per-service health checks
Edit data/services.json and set pingUrl per service. The server will call each pingUrl and compare the response body to pingExpect (default OK). Example:
{
"id": "s1",
"name": "Jellyfin",
"host": "Aegis",
"status": "up",
"description": "Media streaming",
"pingUrl": "https://jellyfin.karmacoma.dev/health",
"pingExpect": "OK",
"pingTimeoutMs": 5000
}
The frontend uses /api/service-status to fetch health checks and will fall back to data/status.json if a service does not have pingUrl set.