mirror of
https://github.com/rajnandan1/kener.git
synced 2026-06-23 04:10:22 +00:00
161 lines
7.5 KiB
YAML
161 lines
7.5 KiB
YAML
# yaml-language-server: $schema=https://schema.zeabur.app/template.json
|
|
apiVersion: zeabur.com/v1
|
|
kind: Template
|
|
metadata:
|
|
name: Kener
|
|
spec:
|
|
description: Stunning status pages, batteries included!
|
|
icon: https://raw.githubusercontent.com/rajnandan1/kener/main/static/kener.svg
|
|
coverImage: https://raw.githubusercontent.com/rajnandan1/kener/main/static/og.jpg
|
|
tags:
|
|
- Uptime
|
|
- Monitor
|
|
- Status Page
|
|
- Incident Management
|
|
- DevOps
|
|
- SvelteKit
|
|
- Open Source
|
|
- Dashboard
|
|
readme: "# Kener\n\nKener is a sleek and lightweight status page system built with SvelteKit and NodeJS. It's not here to replace heavyweights like Datadog or Atlassian but rather to offer a simple, modern, and hassle-free way to set up a great-looking status page with minimal effort.\n\nDesigned with ease of use and customization in mind, Kener provides all the essential features you'd expect from a status page—without unnecessary complexity.\n\n[\U0001F3E0 Homepage](https://kener.ing/) | [GitHub](https://github.com/rajnandan1/kener)\n\n## Why Kener?\n\n- Real-time monitoring (API, Ping, TCP, DNS, SSL, SQL, and more)\n- Uptime tracking and latency metrics\n- Incident and maintenance management\n- Customizable dashboards with theming\n- Internationalization (20+ languages)\n- Embeddable widgets and status badges\n- Email notifications (SMTP / Resend)\n- Webhook and Slack/Discord alerts\n\n## After Deployment\n\n1. Open your Kener domain in a browser.\n2. Complete the initial setup wizard to create your admin account.\n3. Add your first monitor from the management dashboard.\n\n## Documentation\n\nFull docs: [https://kener.ing/docs](https://kener.ing/docs)\n\n## Support Kener\n\nKener is built and maintained by Rajnandan1. If you find it useful, consider supporting the project:\n\n- [GitHub Sponsors](https://github.com/sponsors/rajnandan1)\n- [Buy Me a Coffee](https://www.buymeacoffee.com/rajnandan1)\n- [PayPal](https://www.paypal.com/paypalme/rajnandan1)\n- [Star on GitHub](https://github.com/rajnandan1/kener)\n"
|
|
variables:
|
|
- key: PUBLIC_DOMAIN
|
|
type: DOMAIN
|
|
name: Public Domain
|
|
description: The URL of Kener
|
|
services:
|
|
- name: Kener
|
|
icon: https://raw.githubusercontent.com/rajnandan1/kener/main/static/kener.svg
|
|
dependencies:
|
|
- postgresql
|
|
- redis
|
|
template: PREBUILT
|
|
spec:
|
|
source:
|
|
image: rajnandan1/kener:latest
|
|
ports:
|
|
- id: web
|
|
port: 3000
|
|
type: HTTP
|
|
env:
|
|
DATABASE_URL:
|
|
default: ${POSTGRES_CONNECTION_STRING}
|
|
KENER_SECRET_KEY:
|
|
default: ${PASSWORD}
|
|
ORIGIN:
|
|
default: https://${ZEABUR_WEB_DOMAIN}
|
|
REDIS_URL:
|
|
default: ${REDIS_CONNECTION_STRING}
|
|
domainKey: PUBLIC_DOMAIN
|
|
- name: postgresql
|
|
icon: https://cdn.zeabur.com/marketplace/postgresql.svg
|
|
template: PREBUILT
|
|
spec:
|
|
source:
|
|
image: postgres:18
|
|
ports:
|
|
- id: database
|
|
port: 5432
|
|
type: TCP
|
|
volumes:
|
|
- id: data
|
|
dir: /var/lib/postgresql/data
|
|
instructions:
|
|
- title: Connection String
|
|
content: postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DATABASE}
|
|
- title: PostgreSQL Connect Command
|
|
content: psql "postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DATABASE}"
|
|
- title: PostgreSQL username
|
|
content: ${POSTGRES_USERNAME}
|
|
- title: PostgreSQL password
|
|
content: ${POSTGRES_PASSWORD}
|
|
- title: PostgreSQL database
|
|
content: ${POSTGRES_DATABASE}
|
|
- title: PostgreSQL host
|
|
content: ${PORT_FORWARDED_HOSTNAME}
|
|
- title: PostgreSQL port
|
|
content: ${DATABASE_PORT_FORWARDED_PORT}
|
|
env:
|
|
PGDATA:
|
|
default: /var/lib/postgresql/data/pgdata
|
|
expose: false
|
|
POSTGRES_CONNECTION_STRING:
|
|
default: postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}
|
|
expose: true
|
|
POSTGRES_DATABASE:
|
|
default: ${POSTGRES_DB}
|
|
expose: true
|
|
POSTGRES_DB:
|
|
default: kener
|
|
POSTGRES_HOST:
|
|
default: ${CONTAINER_HOSTNAME}
|
|
expose: true
|
|
POSTGRES_PASSWORD:
|
|
default: ${PASSWORD}
|
|
expose: true
|
|
POSTGRES_PORT:
|
|
default: ${DATABASE_PORT}
|
|
expose: true
|
|
POSTGRES_URI:
|
|
default: ${POSTGRES_CONNECTION_STRING}
|
|
expose: true
|
|
POSTGRES_USER:
|
|
default: root
|
|
POSTGRES_USERNAME:
|
|
default: ${POSTGRES_USER}
|
|
expose: true
|
|
- name: redis
|
|
icon: https://raw.githubusercontent.com/zeabur/service-icons/main/marketplace/redis.svg
|
|
template: PREBUILT
|
|
spec:
|
|
source:
|
|
image: redis/redis-stack-server:latest
|
|
ports:
|
|
- id: database
|
|
port: 6379
|
|
type: TCP
|
|
volumes:
|
|
- id: data
|
|
dir: /data
|
|
instructions:
|
|
- title: Command to connect to your Redis
|
|
content: redis-cli -h ${PORT_FORWARDED_HOSTNAME} -p ${DATABASE_PORT_FORWARDED_PORT} -a ${REDIS_PASSWORD}
|
|
- title: Redis Connection String
|
|
content: redis://:${REDIS_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}
|
|
- title: Redis password
|
|
content: ${REDIS_PASSWORD}
|
|
- title: Redis host
|
|
content: ${PORT_FORWARDED_HOSTNAME}
|
|
- title: Redis port
|
|
content: ${DATABASE_PORT_FORWARDED_PORT}
|
|
env:
|
|
CONFFILE:
|
|
default: /etc/redis-stack.conf
|
|
REDIS_ARGS:
|
|
default: --requirepass ${REDIS_PASSWORD}
|
|
REDIS_CONNECTION_STRING:
|
|
default: redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}
|
|
expose: true
|
|
REDIS_HOST:
|
|
default: ${CONTAINER_HOSTNAME}
|
|
expose: true
|
|
REDIS_PASSWORD:
|
|
default: ${PASSWORD}
|
|
expose: true
|
|
REDIS_PORT:
|
|
default: ${DATABASE_PORT}
|
|
expose: true
|
|
REDIS_URI:
|
|
default: ${REDIS_CONNECTION_STRING}
|
|
expose: true
|
|
configs:
|
|
- path: /etc/redis-stack.conf
|
|
template: |
|
|
port 6379
|
|
daemonize no
|
|
permission: null
|
|
envsubst: null
|
|
instructions:
|
|
- type: DOMAIN
|
|
title: Kener Status Page
|
|
content: ${PUBLIC_DOMAIN}
|