kener

repository·main·Indexed 26 days ago

https://github.com/rajnandan1/kener

Kener is a modern, open-source status page application built with Node.js, SvelteKit, and Redis. It provides real-time monitoring, uptime tracking, incident management, and customizable branded dashboards for DevOps teams and SaaS providers. Version 4.1.2 supports deployment via Docker Compose, standalone Docker images, or local Node.js installation, and includes features such as custom evaluation functions for monitors and alerting triggers for Webhooks, Discord, and Slack.

Tokens
80.3K
Snippets
191
Records
520
Agent score
85%

What's inside kener

  1. Understand Kener Roles and Permissions

    main

    Kener uses a Role-Based Access Control (RBAC) system. Users are assigned one or more roles, which contain specific permissions following a domain.action format. Permissions are enforced at both the route level (UI access) and the action level (API operations).

    Built-in Roles

    Three readonly roles are provided by default and cannot be edited or deleted:

    • admin: Full access, including api_keys.delete.
    • editor: All permissions except api_keys.delete.
    • member: Read-only access (all .read permissions only).

    Permission Domains

    Permissions are grouped into the following domains:

    • monitors, incidents, maintenances, pages, triggers, alerts, subscribers, email_templates, images: Standard read/write actions.
    • api_keys: read, write, delete.
    • users: read, write.
    • settings: read, write.
    • roles: read, write, assign_permissions, assign_users.
  2. Evaluate Kener's unique capabilities

    main

    Kener is designed to provide a complete monitoring and status page ecosystem in a single self-hosted package. Key advantages include:

    • Comprehensive Monitoring: Supports 11 monitor types (API, TCP, DNS, SSL, Ping, SQL, gRPC, Heartbeat, GameDig, Group).
    • Full Incident Lifecycle: Manages incidents through stages: investigatingidentifiedmonitoringresolved.
    • Advanced Maintenance: Supports recurring maintenance windows using RRULE patterns.
    • Automated Incidents: Can automatically generate incidents from alerts.
    • Scalable Notifications: Provides unlimited subscriber email notifications.
    • Granular Access Control: Includes Role-Based Access Control (RBAC) with Admin, Editor, and Member roles.
    • Flexible Infrastructure: Supports multiple databases (SQLite, PostgreSQL, MySQL).
    • Extensibility: Offers 17+ REST API endpoints and embeddable widgets (status bars, latency charts, badges).
    • Customization: Allows custom CSS/JS injection, custom fonts, and custom theming.
  3. Understand the Kener folder structure

    main

    Kener's architecture consists of a SvelteKit frontend and a backend that hooks into monitor data. The key directories for configuration and data are:

    • src/lib/server/config: Contains your site.yaml and monitors.yaml configuration files.
    • src/lib/server/data: Internal location where server-computed data is stored. Do not touch this folder.
    • ./database: The primary directory where Kener stores its persistent data. Deleting this folder will reset the application to a fresh state.
  4. Understand Role-Based Access Control (RBAC) in Kener

    main

    Kener uses a permission-driven RBAC system where permissions follow a domain.action format (e.g., monitors.read, incidents.write).

    Built-in Roles:

    • admin: Full access to all permissions.
    • editor: Access to all permissions except api_keys.delete.
    • member: Read-only access.

    Key RBAC Concepts:

    • Permissions: There are 30+ permissions across domains like monitors, incidents, maintenances, pages, triggers, alerts, API keys, users, settings, subscribers, email templates, images, and roles.
    • Multi-role assignment: Users can be assigned multiple roles. Their effective permissions are the union of all permissions from their assigned roles.
    • Enforcement: Permissions are enforced at the route level (page access) and the action level (API operations).
    • Login Requirement: Users must have at least one active role assigned to them to sign in. If no active roles are assigned, login will be blocked.
  5. Install Kener via Docker

    main

    Use this method for production deployments. Pull the latest image and run it with volume mounts to persist the database and an environment variable for the secret key.

    # Pull the latest image
    docker pull rajnandan1/kener:latest
    
    # Run with volume mounts
    docker run -d \
      --name kener \
      -p 3000:3000 \
      -v $(pwd)/database:/app/database \
      -e KENER_SECRET_KEY=your-secret-key \
      rajnandan1/kener:latest
  6. Enable auto-generated incidents

    main

    To allow Kener to automatically create and manage incidents based on monitor failures, you must configure an alert to enable incident creation.

    1. Navigate to Manage > Alerts > Create Alert.
    2. Define your monitor, alert type (STATUS, LATENCY, or UPTIME), threshold, and severity.
    3. Set the Create Incident option to YES.

    Once enabled, an incident will be created when the alert's failure threshold is reached, provided no active incident already exists for that specific alert.

  7. Test RRULE patterns in the Kener dashboard

    main

    Before finalizing a maintenance schedule, you can verify your RRULE configuration using these methods:

    Using Dashboard Preview

    When configuring a maintenance in the dashboard, the generated RRULE is displayed at the bottom of the form. Use this to verify that your frequency, interval, and day selections match your intent.

    Checking Generated Events

    After creating a maintenance, you can verify the actual scheduled occurrences:

    1. Navigate to the maintenance edit page.
    2. Scroll to the Maintenance Events section.
    3. Confirm that events appear on the expected dates and times.

    Using Online RRULE Tools

    You can validate your RRULE string using external tools like the iCalendar.org Validator or RRULE Tool.

    Important: When using external tools, you must prefix your RRULE with DTSTART to ensure correct testing:

    DTSTART:20260515T030000Z
    RRULE:FREQ=WEEKLY;BYDAY=SU
  8. Manage User Accounts as an Admin

    main

    Admins can perform the following actions via the user settings page to maintain system security:

    • Email Verification: Trigger verification emails to users.
    • Password Reset: Reset passwords for other users.
    • Role Management: Change a user's role between Member and Editor.
    • Account Status: Activate or deactivate user accounts.