From d36fae746cadf5b11c982ec8bb53eb0958081509 Mon Sep 17 00:00:00 2001 From: MIKE-4-prog Date: Thu, 29 Jan 2026 01:25:54 +0530 Subject: [PATCH 1/9] docs: revamp documentation information architecture --- opsimate-docs/.gitignore | Bin 233 -> 253 bytes opsimate-docs/docs/alerts/tv-mode-view.md | 8 + opsimate-docs/docs/contributing/index.md | 129 ++++++++++++++++ opsimate-docs/docs/core-features.md | 72 --------- opsimate-docs/docs/faq/index.md | 8 + .../docs/getting-started/configuration.md | 54 ------- opsimate-docs/docs/getting-started/deploy.md | 97 ------------ .../docs/getting-started/introduction.md | 94 ++++++++++++ .../docs/getting-started/quick-start.md | 141 ++++++++++++++++++ .../getting-started/system-requirements.md | 34 ----- opsimate-docs/docs/glossary/index.md | 8 + 11 files changed, 388 insertions(+), 257 deletions(-) create mode 100644 opsimate-docs/docs/alerts/tv-mode-view.md create mode 100644 opsimate-docs/docs/contributing/index.md delete mode 100644 opsimate-docs/docs/core-features.md create mode 100644 opsimate-docs/docs/faq/index.md delete mode 100644 opsimate-docs/docs/getting-started/configuration.md delete mode 100644 opsimate-docs/docs/getting-started/deploy.md create mode 100644 opsimate-docs/docs/getting-started/introduction.md create mode 100644 opsimate-docs/docs/getting-started/quick-start.md delete mode 100644 opsimate-docs/docs/getting-started/system-requirements.md create mode 100644 opsimate-docs/docs/glossary/index.md diff --git a/opsimate-docs/.gitignore b/opsimate-docs/.gitignore index b2d6de30624f651a6c584d4faefafceac6302be1..4d0aacd83c743a43f2957c4e12f2c220359204f3 100644 GIT binary patch delta 27 hcmaFK_?L0QOA$Q=JqCS-6o!0;WQJlOi delta 6 Ncmey%_>ytLO8^V017ZLG diff --git a/opsimate-docs/docs/alerts/tv-mode-view.md b/opsimate-docs/docs/alerts/tv-mode-view.md new file mode 100644 index 0000000..7334432 --- /dev/null +++ b/opsimate-docs/docs/alerts/tv-mode-view.md @@ -0,0 +1,8 @@ +--- +title: TV Mode View +sidebar_position: 4 +--- + +# TV Mode View + +This page will describe the TV Mode view for alerts. diff --git a/opsimate-docs/docs/contributing/index.md b/opsimate-docs/docs/contributing/index.md new file mode 100644 index 0000000..256746a --- /dev/null +++ b/opsimate-docs/docs/contributing/index.md @@ -0,0 +1,129 @@ +--- +title: Contributing Guide +sidebar_position: 1 +--- + +# Contributing Guide + +--- +title: Contributing to Opsimate +--- + +# Contributing to Opsimate + +We welcome contributions to the Opsimate documentation. Whether you are fixing typos, adding new guides, or improving existing content, your contributions help make Opsimate better for everyone. + +--- + +## Add Documentation + +To contribute new documentation to Opsimate, follow these steps: + +1. **Identify your audience and purpose** + Consider who will read your content and what they need to know. This will guide the scope, depth, and style of your contribution. + +2. **Select a content type** + - **Concepts**: Explain key Opsimate principles, features, or workflows. Link to related guides when needed. + - **Guides**: Provide step-by-step instructions for a task, such as setting up alerts or configuring pipelines. + - **Setup pages**: Focus on installing, configuring, and deploying Opsimate. + - **Reference pages**: Detailed technical information, like API references or configuration parameters. + - **FAQs**: Quick answers to common questions. + +3. **Plan your file structure** + - All files are written in **Markdown or MDX**. + - Use lowercase, hyphen-separated filenames (e.g., `external-auth.md`). + - Add front matter at the top of each file: + +```yaml +--- +title: Your Page Title +sidebar_label: Your Page Title +--- +``` +4. **Write your content** + +Follow the Opsimate style guide (see below) for language, tone, and formatting. Use Docusaurus MDX components for rich content, for example: + +```mdx +import Callout from '@site/src/components/Callout'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +This is an important note. + +``` +## Preview and Build Locally + +Before submitting a contribution, preview your changes locally to ensure everything looks correct. +**Using npm** +```bash +npm install +npm run build +npm run dev +``` +- The documentation will be available at http://localhost:8080 + +**Using Docker** +You can also use Docker for a clean, reproducible environment: +1. Build the Docker image: +```bash +cd opsimate-docs +docker build -t opsimate-docs . +``` +2. Run the container: +```bash +docker run -p 3000:3000 --env-file .env opsimate-docs +``` +- The documentation will be accessible at http://localhost:3000. + +## Audience and Intended Use + +Effective documentation starts with understanding your audience: + +- **Task-focused**: Provide steps for completing a task. +- **Concept-focused**: Explain prerequisites or conceptual information before the task. +- **Decision-making**: Provide the context and options to help users choose the correct approach. +- **Complex features**: Use diagrams or visual aids rather than long text explanations. + +## Style Guide + +Follow these guidelines when writing content: + +- **Language**: English only. +- **Sentence case** for body text. +- **Title case** for front matter titles. +- **Simple, present tense**. +- **Active voice**. +- Avoid “I” or “we”; address the user in the second person. +- Use **callouts** for warnings, notes, or tips. +- Clearly mark experimental or beta features. + +## Docusaurus Components and Tools + +Opsimate uses Docusaurus MDX components for rich content: + +- **Tabs**: Show multiple options in tabbed content. +- **Callouts**: Highlight important information. +- **Code blocks**: Syntax-highlighted examples. +- **Links**: Use relative linking between docs pages. + +Refer to existing Opsimate docs for examples of MDX usage. + +## Support and Community + +If you need help contributing or have questions: + +- **[Documentation](https://opsimate.vercel.app/)** – Comprehensive guides and API references. +- **[GitHub Issues](https://github.com/OpsiMate/documentation/issues)** – Bug reports and feature requests. +- **[Slack Community](https://opsimate.slack.com/ssb/redirect)** – Join discussions and get help. +- **[Website](https://www.opsimate.com/)** – Learn more about Opsimate. + +## Review Process + +All contributions are reviewed by Opsimate documentation maintainers to ensure clarity, accuracy, and consistency. Once reviewed and approved, your changes will be merged and appear on the documentation site. + +## Generated Docs + +Some content, like API references, may be automatically generated. Check the repository for details on contributing to these sections. + diff --git a/opsimate-docs/docs/core-features.md b/opsimate-docs/docs/core-features.md deleted file mode 100644 index 6400d46..0000000 --- a/opsimate-docs/docs/core-features.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -sidebar_position: 2 ---- - -# 🚀 Core Features - -OpsiMate is your alerts command center – bringing every signal from every source into one focused workspace. - -## 🔔 All Your Alerts in One Place - -**Centralize alerts from every source** -- Connect alerts from monitoring tools, cloud providers, and services -- Unify noisy, scattered alerts into a single, consistent view -- Filter by service, team, or severity to see what actually matters - -## 🕒 Learn from Historical Alerts - -**Study the past to build a better future** -- Browse historical alerts, including resolved and deleted ones -- Analyze trends and recurring patterns over time -- Generate reports to understand reliability, MTTR, and noisy sources - -## 📺 TV Mode Dashboards - -**Your alerts on the big screen** -- Display alerts on wall-mounted TVs in NOC or office spaces -- Create dedicated views for managers, NOC teams, and on-call engineers -- Build multiple dashboards for different stakeholders and contexts - -## 👥 Simple for Everyone - -**A view that works for technical and non-technical users** -- Clear, human-friendly summaries for managers and stakeholders -- Detailed, actionable context for engineers and on-call teams -- One shared view so everyone talks about the same reality - ---- - -## 🔮 Coming Soon - -### 🧑‍💼 Alert Ownership -- Assign alerts to on-call engineers or teams -- Add notes and context directly on the alert -- Keep a full alert activity log for better collaboration - -### ⚡ Actionable Alerts -- Attach runbooks, links, and actions to alerts -- Trigger predefined workflows to resolve incidents faster - -### 🏷️ Custom Fields & Labels -- Add custom fields to alerts to fit your processes -- Label and group alerts the way your teams work - -### 🤖 AI-Powered Alert Intelligence -- Detect anomalies and unusual patterns automatically -- Reduce noise by grouping related alerts -- Get AI-assisted suggestions to investigate and resolve issues - ---- - -## 🎯 Getting Started - -Ready to explore OpsiMate's capabilities? Start with: - -1. **[Deploy OpsiMate](getting-started/deploy)** - Set up your monitoring platform -2. **[Add Providers](providers-services/providers/add-provider)** - Connect your infrastructure -3. **[Configure Services](providers-services/services/add-services)** - Set up service monitoring -4. **[Create Alerts](alerts/adding-alerts)** - Get notified of issues - -:::tip -OpsiMate automatically discovers services when you add providers, making setup fast and comprehensive. -::: diff --git a/opsimate-docs/docs/faq/index.md b/opsimate-docs/docs/faq/index.md new file mode 100644 index 0000000..3cf0c25 --- /dev/null +++ b/opsimate-docs/docs/faq/index.md @@ -0,0 +1,8 @@ +--- +title: FAQ +sidebar_position: 1 +--- + +# FAQ + +This page will contain frequently asked questions. diff --git a/opsimate-docs/docs/getting-started/configuration.md b/opsimate-docs/docs/getting-started/configuration.md deleted file mode 100644 index f2884da..0000000 --- a/opsimate-docs/docs/getting-started/configuration.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: configuration -title: Configuration -sidebar_position: 3 ---- - -# Configuration - -OpsiMate uses a YAML configuration file to manage application settings. This guide covers all available configuration options. - -## Basic Configuration - -### Minimal Configuration - -```yaml title="configfile.yml" -# OpsiMate Configuration -# Simple configuration file with essential settings - -# Server configuration -server: - port: 3001 # Backend API server port - host: "localhost" # Use "0.0.0.0" for Docker - -# Client configuration -client: - port: 8080 # Frontend development server port - api_url: "http://localhost:3001/api/v1" # Backend API URL - -# Database configuration -database: - path: "/app/data/database/opsimate.db" # SQLite database file path (mounted volume) - -# Security configuration -security: - private_keys_path: "/app/data/private-keys" # SSH private keys directory (mounted volume) - -``` - -## Next Steps - -After configuring OpsiMate: - -1. **Restart the container** to apply changes -2. **Add providers** - [Learn how](../providers-services/providers/add-provider) -3. **Set up monitoring** - [Configure alerts](../alerts/adding-alerts.md) -4. **Start discovering services** - [Quick start guide](../providers-services/services/add-services) - -## Support - -If you need help with configuration: - -- Check the [deployment guide](deploy) for basic setup -- Join our [community discussions](https://github.com/opsimate/opsimate/discussions) -- Report configuration issues on [GitHub](https://github.com/opsimate/opsimate/issues) diff --git a/opsimate-docs/docs/getting-started/deploy.md b/opsimate-docs/docs/getting-started/deploy.md deleted file mode 100644 index 5c07fda..0000000 --- a/opsimate-docs/docs/getting-started/deploy.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: deploy -title: Deploy OpsiMate -sidebar_position: 2 ---- - -# Deploy OpsiMate - -OpsiMate is designed for easy deployment using Docker. This guide will walk you through deploying OpsiMate using Docker Compose or Docker run commands. - -:::info Before You Begin -Make sure your system meets the [system requirements](system-requirements) and that Docker is installed and running. -::: - -## Quick Start (Recommended) - -The easiest way to get started with OpsiMate is using our one-line installation script: - -```bash -curl -fsSL https://raw.githubusercontent.com/OpsiMate/OpsiMate/main/scripts/start-docker.sh | sh -``` - -This script will: -- Download the latest OpsiMate Docker Compose configuration -- Set up the necessary directories and permissions -- Start OpsiMate using Docker Compose -- Verify that all services are running correctly - -:::tip What happens next? -Once the script completes, OpsiMate will be running at `http://localhost:8080`. You'll be able to register your first admin user and start managing your infrastructure right away! -::: - -## Alternative Deployment Methods - -If you prefer more control over your deployment or need to customize the setup, you can use the Docker run command below. - -### Docker Run Command - -Deploy OpsiMate with a single Docker command: - -```bash -docker run -d \ - --name opsimate \ - --rm \ - -p 3001:3001 -p 8080:8080 \ - opsimate/opsimate -``` - -### Volume Mounts - -| Volume | Purpose | -|--------|---------| -| `/app/data/database` | SQLite database persistence | -| `/app/data/private-keys` | SSH private keys for authentication | -| `/app/config/config.yml` | Custom configuration | - -:::success -OpsiMate is now running at `http://localhost:8080` -Register a user for the first time - it will be the first admin user -::: - -### Verify Deployment - -```bash -# Check container status -docker ps | grep opsimate - -# View application logs -docker logs opsimate - -# Check health status -curl http://localhost:8080/health -``` - -## First Login - -When you first access OpsiMate at `http://localhost:8080`, you'll be prompted to create your first admin user: - -First Login Screen - -Simply fill in your email, full name, and password to create the initial admin account. This user will have full administrative privileges to configure providers, manage services, and access all OpsiMate features. - -## Next Steps - -After deployment: - -1. **Access OpsiMate** at `http://localhost:8080` -2. **Configure your settings** - [See configuration guide](configuration) -3. **Check system requirements** - [System requirements](system-requirements) - -## Support - -If you encounter issues during deployment: - -- Check the [configuration guide](configuration) -- Join our [community discussions](https://github.com/opsimate/opsimate/discussions) -- Report bugs on [GitHub Issues](https://github.com/opsimate/opsimate/issues) diff --git a/opsimate-docs/docs/getting-started/introduction.md b/opsimate-docs/docs/getting-started/introduction.md new file mode 100644 index 0000000..b5c5756 --- /dev/null +++ b/opsimate-docs/docs/getting-started/introduction.md @@ -0,0 +1,94 @@ +--- +id: introduction +slug: /getting-started/introduction +sidebar_position: 1 +--- + +# Welcome to OpsiMate + +
+
+

Simplify Your Infrastructure Management

+

One platform to monitor, manage, and optimize your entire infrastructure

+
+
+ +## 🚀 The OpsiMate Vision + +In today's complex infrastructure landscape, teams struggle with fragmented monitoring tools, scattered dashboards, and reactive incident management. **OpsiMate was born from a simple yet powerful idea**: *What if you could manage your entire infrastructure from a single, intuitive platform?* + +:::tip 💡 Our Mission +To transform how teams monitor and manage their infrastructure by providing a unified, intelligent platform that turns complexity into clarity. +::: + +## 🎯 Why OpsiMate Exists + +**The Problem We Solve:** +- 🔍 **Fragmented Visibility** - Multiple tools, multiple dashboards, no single source of truth +- ⚡ **Reactive Operations** - Discovering issues after they impact users +- 🔄 **Manual Processes** - Time-consuming manual tasks that could be automated +- 📊 **Data Silos** - Metrics, logs, and alerts scattered across different systems + +**Our Solution:** +OpsiMate unifies your entire infrastructure ecosystem into one intelligent platform that not only monitors but actively helps you manage and optimize your services. + +## Core Features + +OpsiMate brings everything together in one powerful platform - your complete infrastructure command center. + +## 🌐 All in the Same Place + +**Every Infrastructure, Everywhere** +- From bare metal servers to Kubernetes clusters +- AWS Lambda functions and cloud services +- Docker containers and virtual machines +- All your monitoring tools and 3rd party integrations +- One unified view of your entire technology stack + +## 💍 One Ring to Rule Them All + +**Control Everything from One Place** +- Want to run a script on a server? ✅ +- Need to restart a Docker container? ✅ +- Trigger a Jenkins pipeline? ✅ +- Scale your Kubernetes deployment? ✅ +- Execute any action across your entire infrastructure and toolchain + +## 👥 Simple for Everyone + +**User Interface Made for All** +- **Project Owners & Customers**: Clear status dashboards to understand system health +- **DevOps Engineers**: Powerful controls to manage and fix issues quickly +- **Software Engineers**: Easy access to logs, metrics, and troubleshooting tools +- **Non-Technical Users**: Simple, intuitive interface that anyone can understand + +## 📊 Unified Monitoring View + +**Connect All Your Tools** +- Integrate monitoring tools, alerts, metrics, and logs +- See exactly what impacts your environment +- Correlate data from multiple sources +- Get the complete picture in one consolidated view + +--- + +## 🎯 Getting Started + +Ready to explore OpsiMate's capabilities? Start with: + +1. **[Deploy OpsiMate](getting-started/quick-start)** - Set up your monitoring platform +2. **[Add Providers](providers-services/providers/add-provider)** - Connect your infrastructure +3. **[Configure Services](providers-services/services/add-services)** - Set up service monitoring +4. **[Create Alerts](monitoring/setting-up-alerts)** - Get notified of issues + +:::tip +OpsiMate automatically discovers services when you add providers, making setup fast and comprehensive. +::: + + +:::info 👥 Join Our Community +Have questions? Join our [Slack Community](https://join.slack.com/t/opsimate/shared_invite/zt-39bq3x6et-NrVCZzH7xuBGIXmOjJM7gA) or check out our [GitHub](https://github.com/Fifaboyz/OpsiMate) repository. +::: + +--- +*Ready to simplify your infrastructure management? Let's get started! 🚀* diff --git a/opsimate-docs/docs/getting-started/quick-start.md b/opsimate-docs/docs/getting-started/quick-start.md new file mode 100644 index 0000000..7530968 --- /dev/null +++ b/opsimate-docs/docs/getting-started/quick-start.md @@ -0,0 +1,141 @@ +--- +id: quick-start +slug: /getting-started/quick-start +sidebar_position: 2 +--- + +# Quick Start with OpsiMate + +This guide helps you **install, configure, and start using OpsiMate** quickly. + +## 1. System Requirements + +OpsiMate is lightweight and runs efficiently on minimal hardware. + +### 💻 Hardware Requirements + +| Component | Minimum | Recommended | +|-----------|---------|-------------| +| **CPU** | 1 vCPU | 2+ vCPUs | +| **RAM** | 512 MB | 2 GB+ | +| **Storage** | 1 GB | 10 GB+ | + +### 🐳 Software Requirements + +- **Docker** 20.10+ or Docker Desktop +- **Operating System**: Linux, macOS 10.15+, Windows 10+ (WSL2) + +### 🌐 Network Requirements + +- **Port 8080**: Web interface +- **Port 3001**: API server +- **Port 22**: SSH access to monitored servers +- Internet access for Docker images + +:::tip Ready to Deploy? +Once your system meets these requirements, you can move on to deployment and configuration below. +::: + +--- + +## 2. Installation & Configuration + +Before running OpsiMate, you need to ensure the configuration is ready. + +### Minimal Configuration + +OpsiMate uses a YAML configuration file to manage application settings. Create a file `config.yml` with the minimal required configuration: + +```yaml +# OpsiMate Configuration + +# Server configuration +server: + port: 3001 + host: "localhost" + +# Client configuration +client: + port: 8080 + api_url: "http://localhost:3001/api/v1" + +# Database configuration +database: + path: "/app/data/database/opsimate.db" + +# Security configuration +security: + private_keys_path: "/app/data/private-keys" +``` +## Next Steps +After configuring OpsiMate: + +1. **Ensure Docker is installed** on your system. + +2. **Prepare required directories** for database and private keys. + +## 3. Deployment +OpsiMate can be deployed easily using Docker. + +**Docker Run Command** + +Run OpsiMate with a single command: +```bash +docker run -d \ + --name opsimate \ + --rm \ + -p 3001:3001 -p 8080:8080 \ + -v /app/data/database:/app/data/database \ + -v /app/data/private-keys:/app/data/private-keys \ + -v /app/config/config.yml:/app/config/config.yml \ + opsimate/opsimate +``` +### Volume Mounts + +| Volume | Purpose | +|--------|---------| +| `/app/data/database` | SQLite database persistence | +| `/app/data/private-keys` | SSH private keys for authentication | +| `/app/config/config.yml` | Custom configuration | + +:::success +OpsiMate is now running at `http://localhost:8080` +Register a user for the first time - it will be the first admin user +::: + +### Verify Deployment + +```bash +# Check container status +docker ps | grep opsimate + +# View application logs +docker logs opsimate + +# Check health status +curl http://localhost:8080/health +``` + +## First Login + +When you first access OpsiMate at `http://localhost:8080`, you'll be prompted to create your first admin user: + +First Login Screen + +Simply fill in your email, full name, and password to create the initial admin account. This user will have full administrative privileges to configure providers, manage services, and access all OpsiMate features. + +## Next Steps + +After deployment: + +1. **Access OpsiMate** at `http://localhost:8080` +2. **Configure your settings** - [See configuration guide](configuration) +3. **Check system requirements** - [System requirements](system-requirements) + +## Support + +If you encounter issues during deployment: + +- Check the [configuration guide](configuration) +- Join our [community discussions](https://github.com/opsimate/opsimate/discussions) +- Report bugs on [GitHub Issues](https://github.com/opsimate/opsimate/issues) diff --git a/opsimate-docs/docs/getting-started/system-requirements.md b/opsimate-docs/docs/getting-started/system-requirements.md deleted file mode 100644 index 0ede511..0000000 --- a/opsimate-docs/docs/getting-started/system-requirements.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -id: system-requirements -title: System Requirements -sidebar_position: 3 ---- - -# System Requirements - -OpsiMate is lightweight and runs efficiently on minimal hardware. - -## 💻 Hardware Requirements - -| Component | Minimum | Recommended | -|-----------|---------|-------------| -| **CPU** | 1 vCPU | 2+ vCPUs | -| **RAM** | 512 MB | 2 GB+ | -| **Storage** | 1 GB | 10 GB+ | -## 🐳 Software Requirements - -- **Docker** 20.10+ or Docker Desktop -- **Operating System**: Linux, macOS 10.15+, Windows 10+ (WSL2) - -## 🌐 Network Requirements - -- **Port 8080**: Web interface -- **Port 3001**: API server -- **Port 22**: SSH access to monitored servers -- Internet access for Docker images - -:::tip Ready to Deploy? -Once your system meets these requirements, head to the [deployment guide](deploy) to get started! -::: - - diff --git a/opsimate-docs/docs/glossary/index.md b/opsimate-docs/docs/glossary/index.md new file mode 100644 index 0000000..e4dccec --- /dev/null +++ b/opsimate-docs/docs/glossary/index.md @@ -0,0 +1,8 @@ +--- +title: Glossary +sidebar_position: 1 +--- + +# Glossary + +This page will contain definitions of important terms. From 2905ffc3b4adbc45b761ed6c0d9428fa4713b5ce Mon Sep 17 00:00:00 2001 From: MIKE-4-prog Date: Wed, 4 Feb 2026 01:43:13 +0530 Subject: [PATCH 2/9] docs: IA revamp with glossary, FAQ, alerts updates, and MDX migration --- opsimate-docs/docs/alerts/tv-mode-view.md | 39 +++- opsimate-docs/docs/contributing/index.md | 8 - .../docs/dashboards/saved-dashboards.mdx | 36 ++++ opsimate-docs/docs/faq/index.md | 187 +++++++++++++++++- .../{introduction.md => introduction.mdx} | 5 +- .../{quick-start.md => quick-start.mdx} | 2 +- opsimate-docs/docs/glossary/index.md | 187 +++++++++++++++++- opsimate-docs/docs/integrations/gcp.mdx | 67 +++++++ .../docs/integrations/uptime-kuma.mdx | 73 +++++++ opsimate-docs/docs/integrations/zabbix.mdx | 155 +++++++++++++++ 10 files changed, 743 insertions(+), 16 deletions(-) create mode 100644 opsimate-docs/docs/dashboards/saved-dashboards.mdx rename opsimate-docs/docs/getting-started/{introduction.md => introduction.mdx} (99%) rename opsimate-docs/docs/getting-started/{quick-start.md => quick-start.mdx} (99%) create mode 100644 opsimate-docs/docs/integrations/gcp.mdx create mode 100644 opsimate-docs/docs/integrations/uptime-kuma.mdx create mode 100644 opsimate-docs/docs/integrations/zabbix.mdx diff --git a/opsimate-docs/docs/alerts/tv-mode-view.md b/opsimate-docs/docs/alerts/tv-mode-view.md index 7334432..2fc35ac 100644 --- a/opsimate-docs/docs/alerts/tv-mode-view.md +++ b/opsimate-docs/docs/alerts/tv-mode-view.md @@ -5,4 +5,41 @@ sidebar_position: 4 # TV Mode View -This page will describe the TV Mode view for alerts. +The **TV Mode** view is the simplest way to see the alert status of your organization at a glance. + +It is designed for **wall-mounted screens**, NOC rooms, and managers who want to understand +"what is the status of our systems right now?" in a single look. + +## Why TV Mode + +- Show the current alert situation on a dedicated screen +- Give managers and teams a clear, shared view of system health +- Reduce the need to click around dashboards during incidents + +## Views in TV Mode + +There are **two main views** available in TV Mode: + +### 1. Simple Grid View + +A clean grid that focuses on the most important information: + +- List of active alerts in a compact table-like layout +- Key fields only (service, status, severity, source, time since started) +- Optimized for readability from a distance on large screens + +Use this view when you want a straightforward overview that anyone can understand quickly. + +### 2. Map View (Beta) + +A **beta** visualization that shows alerts on a map-like layout: + +- Visual clusters of alerts to highlight problem areas +- Ability to **group alerts** by different dimensions (for example service, environment, or region) +- Quickly see where issues are concentrated and how they relate to each other + +Use this view when you want to explore patterns and relationships between alerts, +while still keeping a screen-friendly presentation. + +TV Mode is ideal for always-on displays and shared spaces, so everyone can see at a glance +**how your organization is doing right now**. diff --git a/opsimate-docs/docs/contributing/index.md b/opsimate-docs/docs/contributing/index.md index 256746a..f1128dd 100644 --- a/opsimate-docs/docs/contributing/index.md +++ b/opsimate-docs/docs/contributing/index.md @@ -3,18 +3,10 @@ title: Contributing Guide sidebar_position: 1 --- -# Contributing Guide - ---- -title: Contributing to Opsimate ---- - # Contributing to Opsimate We welcome contributions to the Opsimate documentation. Whether you are fixing typos, adding new guides, or improving existing content, your contributions help make Opsimate better for everyone. ---- - ## Add Documentation To contribute new documentation to Opsimate, follow these steps: diff --git a/opsimate-docs/docs/dashboards/saved-dashboards.mdx b/opsimate-docs/docs/dashboards/saved-dashboards.mdx new file mode 100644 index 0000000..afb8f9c --- /dev/null +++ b/opsimate-docs/docs/dashboards/saved-dashboards.mdx @@ -0,0 +1,36 @@ +--- +sidebar_position: 4 +--- + +# Saved Dashboards + +Saved Dashboards lets you store and reuse a dashboard configuration so you can quickly return to the same view. + +A saved dashboard includes: +- **Name** +- **Description** +- **Saved filters/search** +- **Table columns** (the selected/visible columns) +- **Tags** (for organization and filtering) + +
+ Saved Dashboards +

+ Saved Dashboards page with favorites, tags, search, and actions +

+
+ +### How to Save a Dashboard + +1. Click **New Dashboard** in the top-right corner. +2. You will be redirected back to the **Alerts** screen. +3. From there, you can filter or modify the search to shape your dashboard. +4. Update the dashboard name. +5. Save the dashboard. + +Once the process is complete, you will be able to see your saved dashboard. + **Save View**: Click "Save Current View" and provide a name diff --git a/opsimate-docs/docs/faq/index.md b/opsimate-docs/docs/faq/index.md index 3cf0c25..1209da3 100644 --- a/opsimate-docs/docs/faq/index.md +++ b/opsimate-docs/docs/faq/index.md @@ -4,5 +4,190 @@ sidebar_position: 1 --- # FAQ +Welcome to the OpsiMate FAQ 👋 +This section answers common questions about providers, services, alerts, integrations, and day-to-day usage. If you're ever unsure how something works, start here. -This page will contain frequently asked questions. +:::tip How to Use This FAQ +- **New to OpsiMate?** Start with the setup and provider questions +- **Setting up monitoring?** Jump to services, alerts, and integrations +- **Troubleshooting?** Check the alerts and connectivity sections +::: + + +## General + +### What is OpsiMate? +OpsiMate is an infrastructure monitoring and alert management platform that brings **services, alerts, and integrations** into one unified dashboard. + +Think of it as a **control center**: +- Your infrastructure runs the engines (services) +- External tools watch the engines (monitoring tools) +- OpsiMate shows everything clearly on one dashboard + +### Do I need external tools like Grafana or Zabbix to use OpsiMate? +Not necessarily. + +OpsiMate can monitor services directly (via SSH, Docker, or Kubernetes), but **integrations like Grafana, Zabbix, or Uptime Kuma** enhance it by providing advanced alerts and metrics. + +## Providers + +### What is a provider in OpsiMate? +A **provider** represents the infrastructure where your services run. + +Examples include: +- A Linux server (via SSH) +- A Kubernetes cluster (via kubeconfig) + +Providers are always the **first thing** you set up. + +👉 Learn more: [Adding Providers](http://localhost:3000/docs/providers-services/providers/add-provider) + +### What provider types does OpsiMate support? +Currently, OpsiMate supports: +- **Server Providers** (SSH-based) +- **Kubernetes Providers** (kubeconfig-based) + +Each provider type supports different service discovery methods. + +### Why can’t I add services before adding a provider? +Because services **must live somewhere**. + +A provider tells OpsiMate *where* to look. Services are then discovered or added **inside** that provider. + +## Services + +### What is considered a service in OpsiMate? +A service is any running component that delivers value, such as: +- Docker containers +- Systemd services +- Kubernetes pods + +**Analogy:** +Services are the engines. OpsiMate is the dashboard showing how they’re performing. + +### How does service auto-discovery work? +Auto-discovery allows OpsiMate to automatically detect: +- Docker containers on a server +- Pods in a Kubernetes cluster + +You simply select which detected services you want to monitor. + +### Can I manually add services? +Yes. + +Some services, like **systemd services**, require manual entry by providing the service name (e.g., `nginx`, `postgresql`). + +## Alerts + +### How does alerting work in OpsiMate? +OpsiMate does not create alerts by itself. Instead, it: +1. Connects to external monitoring tools (like Grafana or Zabbix) +2. Pulls alerts from those systems +3. Associates them with services using tags + +👉 Learn more: [Adding Alerts](/docs/alerts/adding-alerts) + +### What alert states are supported? +Alerts in OpsiMate can be: +- **Active** – Currently firing and needs attention +- **Dismissed** – Acknowledged by a user + +### Why aren’t my alerts showing up? +Common reasons include: +- The integration isn’t configured correctly +- Service tags don’t match alert tags +- The external alert provider isn’t firing alerts + +Double-check: +- Integration credentials +- Tag mappings +- Alert rules in the external system + +## Integrations + +### What is an integration? +An **integration** is a connection between OpsiMate and an external system that provides alerts, metrics, or dashboards. + +Examples include: +- Grafana +- Zabbix +- Uptime Kuma +- Kibana + +### What’s the difference between an integration and a provider? +- **Providers** tell OpsiMate *where services run* +- **Integrations** tell OpsiMate *where alerts and metrics come from* + +Both work together but serve different purposes. + +### What is a webhook and why is it needed? +A webhook allows external systems to **push alerts to OpsiMate in real time**. + +**Analogy:** +A webhook is like a mailman—it delivers alerts immediately when something happens. + +## Dashboards & Views + +### What is a saved dashboard? +A **saved dashboard** is a stored monitoring view that includes: +- Filters +- Visible columns +- Tags + +It lets you quickly return to the same view without rebuilding it. + +👉 Learn more: [Saved Dashboards](/docs/dashboards/saved-dashboards) + +### What is TV Mode? +TV Mode is a **full-screen alert display** designed for: +- Monitoring rooms +- NOC displays +- Shared team screens + +It shows active and dismissed alerts in real time. + +👉 Learn more: [TV Mode View](http://localhost:3000/docs/alerts/tv-mode-view) + +## Access & Control + +### Why does OpsiMate need SSH access? +SSH allows OpsiMate to: +- Check service status +- Start, stop, or restart services +- Monitor server-based infrastructure securely + +SSH keys are recommended for better security. + +### Can OpsiMate control Kubernetes pods? +Yes. + +OpsiMate uses standard **kubectl commands** to manage Kubernetes pods through configured providers. + +## Troubleshooting + +### What should I check if a provider fails to connect? +Start with: +- Network access +- SSH credentials or kubeconfig validity +- Firewall rules +- Correct host, port, and permissions + +### Is OpsiMate suitable for production environments? +Yes. + +OpsiMate is designed to support production, staging, and development environments through: +- Role-based access +- Tag-based filtering +- Saved dashboards +- External alert integrations + +## Still Have Questions? + +If your question isn’t answered here: +1. Use the documentation search +2. Check provider- or integration-specific guides +3. Review alert configurations in your external tools + +:::info Help Improve the Docs +If you notice a missing question or unclear explanation, consider contributing to the documentation. Great FAQs are built from real user questions! +::: diff --git a/opsimate-docs/docs/getting-started/introduction.md b/opsimate-docs/docs/getting-started/introduction.mdx similarity index 99% rename from opsimate-docs/docs/getting-started/introduction.md rename to opsimate-docs/docs/getting-started/introduction.mdx index b5c5756..0139241 100644 --- a/opsimate-docs/docs/getting-started/introduction.md +++ b/opsimate-docs/docs/getting-started/introduction.mdx @@ -4,7 +4,7 @@ slug: /getting-started/introduction sidebar_position: 1 --- -# Welcome to OpsiMate +# Introduction
@@ -70,8 +70,6 @@ OpsiMate brings everything together in one powerful platform - your complete inf - Correlate data from multiple sources - Get the complete picture in one consolidated view ---- - ## 🎯 Getting Started Ready to explore OpsiMate's capabilities? Start with: @@ -90,5 +88,4 @@ OpsiMate automatically discovers services when you add providers, making setup f Have questions? Join our [Slack Community](https://join.slack.com/t/opsimate/shared_invite/zt-39bq3x6et-NrVCZzH7xuBGIXmOjJM7gA) or check out our [GitHub](https://github.com/Fifaboyz/OpsiMate) repository. ::: ---- *Ready to simplify your infrastructure management? Let's get started! 🚀* diff --git a/opsimate-docs/docs/getting-started/quick-start.md b/opsimate-docs/docs/getting-started/quick-start.mdx similarity index 99% rename from opsimate-docs/docs/getting-started/quick-start.md rename to opsimate-docs/docs/getting-started/quick-start.mdx index 7530968..dd4ee05 100644 --- a/opsimate-docs/docs/getting-started/quick-start.md +++ b/opsimate-docs/docs/getting-started/quick-start.mdx @@ -4,7 +4,7 @@ slug: /getting-started/quick-start sidebar_position: 2 --- -# Quick Start with OpsiMate +# Quick Start This guide helps you **install, configure, and start using OpsiMate** quickly. diff --git a/opsimate-docs/docs/glossary/index.md b/opsimate-docs/docs/glossary/index.md index e4dccec..9e8803e 100644 --- a/opsimate-docs/docs/glossary/index.md +++ b/opsimate-docs/docs/glossary/index.md @@ -4,5 +4,190 @@ sidebar_position: 1 --- # Glossary +Welcome to the OpsiMate glossary! This page explains the key terms and concepts you'll encounter while using OpsiMate. Think of this as your quick reference guide whenever you run into unfamiliar terminology. + +:::tip How to Use This Glossary +- **New to OpsiMate?** Browse through to get familiar with core concepts. +- **Reading documentation?** Use this page as a quick reference when a term is unclear. +- **Setting up monitoring?** Return here to clarify concepts before proceeding. +::: + +### A-C + +#### Active Alert +An alert in **Active** state is currently firing and requires your attention. +- See also [TV Mode](http://localhost:3000/docs/alerts/tv-mode-view) for full-screen monitoring. + +#### Alerts +Notifications generated when service health or metrics cross predefined thresholds. +- Can come from OpsiMate or integrated tools like [Grafana](../integrations/grafana), [Zabbix](../integrations/zabbix), or [Uptime Kuma](../integrations/uptime-kuma). +> Think of alerts as your system’s “check engine” light. + +#### API Token +A secret key used to securely authenticate requests between OpsiMate and external integrations. +- Example usage: configuring [Uptime Kuma webhooks](../integrations/uptime-kuma). + +#### Auto-discovery +OpsiMate automatically detects available services (like Docker containers or Kubernetes pods) under a configured provider. +- This saves time and ensures you don’t miss any critical services. + +#### Alerts Dismissed +A status indicating that an alert has been acknowledged or resolved. + +### D-F + +#### Dashboard +A visual interface displaying alerts, service status, and metrics. +- Can be saved, tagged, and filtered for quick access. +- Related guide: [Saved Dashboards](http://localhost:3000/docs/dashboards/saved-dashboards). + +#### Docker Commands +SSH-based commands used to control Docker containers monitored by OpsiMate: + +```bash +docker start container-name +docker stop container-name +docker restart container-name +``` +### E–F + +#### External System / Integration +External tools connected to **OpsiMate** to provide alerts, metrics, logs, or dashboards. + +Common examples include: +- [Grafana](https://grafana.com/) +- [Datadog](https://www.datadoghq.com/) +- [Kibana](https://www.elastic.co/kibana/) +- [Zabbix](https://www.zabbix.com/) + +**Analogy:** Think of integrations as OpsiMate’s *helpers*—they do the monitoring work and send the important information back to OpsiMate to organize and display. + +### G–L + +#### Integration +An **integration** is the actual connection between OpsiMate and an external system. Once connected, OpsiMate can pull in alerts, metrics, or logs and manage them from a single place. + +If *External Systems* are the helpers, **integrations** are the handshakes that allow them to talk to OpsiMate. + +#### Kubernetes Pods +Pods are the **smallest deployable units in Kubernetes**, each containing one or more containers that run together. + +OpsiMate can automatically discover and monitor pods when connected to a Kubernetes provider. + +Learn more: +- [Kubernetes Pods Documentation](https://kubernetes.io/docs/concepts/workloads/pods/) + +#### Kubectl Commands +`kubectl` is the command-line tool used to manage Kubernetes clusters, pods, and resources. + +Common examples include: +```bash +kubectl get pods -n namespace +kubectl delete pod pod-name -n namespace +``` +These commands allow you to inspect and control Kubernetes workloads that OpsiMate is monitoring. + +### Providers +Providers represent the infrastructure where your services live—such as servers, Kubernetes clusters, or cloud platforms. + +Providers are the **starting point** when connecting your infrastructure to OpsiMate. + +Learn more: +- [Adding Providers](http://localhost:3000/docs/providers-services/providers/add-provider) + +### M–O + +#### Saved Dashboard +A **saved dashboard** is a stored monitoring view that includes selected filters, visible columns, and tags. + +This allows you to quickly return to your preferred monitoring setup without rebuilding it each time. + +:::tip Pro Tip +Save dashboards for frequently checked environments like production, staging, or critical services. +::: + +#### Service +A **service** is any running application, process, container, or pod that delivers value within your system. + +Services are the core units monitored and controlled in OpsiMate. + +**Analogy:** +Services are the *engines*, and OpsiMate is the *dashboard* showing how they’re performing. + +#### Service Tags +Service tags are labels applied to services to help organize, filter, and associate them with alerts. + +Common examples include: +- `environment` (production, staging) +- `team` +- `criticality` + +Tags play a key role in alert correlation and filtering across dashboards. + +### P–R + +#### SSH (Secure Shell) +SSH is a secure protocol used to remotely access and manage servers. + +OpsiMate relies on SSH to monitor and control **server-based providers**. + +Learn more: +- [What is SSH?](https://www.ssh.com/academy/ssh) + +#### Systemd Service +A **systemd service** is a Linux system service managed by `systemd`. + +OpsiMate allows you to monitor and control systemd services using SSH-based commands: +```bash +sudo systemctl start service-name +sudo systemctl stop service-name +sudo systemctl restart service-name +``` +This makes it easy to manage core server services directly from OpsiMate. + +### S–Z + +#### TV Mode +TV Mode is a **full-screen alert display** designed for shared screens or monitoring rooms. + +It shows: +- Active alerts +- Dismissed alerts +- Real-time service health at a glance + +Learn more: +- [TV Mode View](http://localhost:3000/docs/alerts/tv-mode-view) + +#### Webhook +A **webhook** is an HTTP callback that allows external systems to push alerts to OpsiMate in real time. + +Tools like [Uptime Kuma](https://uptime.kuma.pet/) and [Zabbix](https://www.zabbix.com/) use webhooks to notify OpsiMate when issues occur. + +**Analogy:** +A webhook is like a *mailman*—it automatically delivers messages the moment something happens. + +#### Zabbix +Zabbix is an enterprise monitoring platform used for tracking networks, servers, and applications. + +When integrated with OpsiMate, Zabbix sends alerts via webhooks for centralized alert management. + +Learn more: +- [Zabbix Documentation](https://www.zabbix.com/documentation) + +### How These Terms Fit Together +Understanding how these concepts connect helps you get the most out of OpsiMate: + +- **Providers** host your infrastructure +- **Services** run on providers +- **Service tags** help group and correlate services with alerts +- **Integrations** pull alerts and metrics from external systems +- **Webhooks** push alerts into OpsiMate in real time +- **Dashboards** and **TV Mode** visualize system health +- **SSH** and **Kubectl commands** allow service-level control + +:::success Learning Path +Start by adding Providers and Services, set up Dashboards, then connect integrations for alerting. Once comfortable, explore advanced monitoring with auto-discovery and webhooks. +::: + + -This page will contain definitions of important terms. diff --git a/opsimate-docs/docs/integrations/gcp.mdx b/opsimate-docs/docs/integrations/gcp.mdx new file mode 100644 index 0000000..f4ab1a1 --- /dev/null +++ b/opsimate-docs/docs/integrations/gcp.mdx @@ -0,0 +1,67 @@ +--- +id: gcp +title: GCP Integration +slug: /integrations/gcp +sidebar_label: GCP Integration +sidebar_position: 3 +tags: [Alerts] +--- + +# GCP Integration + +The **GCP integration** lets you send alerts from **Google Cloud Platform** into OpsiMate using webhook-based push notifications. + +Instead of OpsiMate pulling alerts from GCP, your GCP alerting policies push alerts directly to OpsiMate. + +## Webhook URL + +Configure your GCP notification channel to send alerts to your OpsiMate server: + +```pgsql +http://localhost:3001/api/v1/alerts/custom/gcp?api_token={your_api_token} +``` + +> Replace `{your_api_token}` with the API token configured in your OpsiMate server. + +## API Token Configuration + +The API token used in the webhook URL is managed by OpsiMate through an environment variable: + +- **Env var:** `API_TOKEN` +- **Default value:** `opsimate` + +This value is also used as the default for the `api_token` query parameter in the webhook URL. + +If you are using the simple deployment (via the provided `docker-compose.yml`), the `API_TOKEN` environment variable is already defined there for you. + +Make sure your OpsiMate server is started with `API_TOKEN` set (or rely on the default), and use the same value in the GCP webhook URL. + +## Setting Up the Webhook in GCP + +To send alerts from GCP to OpsiMate via webhook: + +1. In the **Google Cloud Console**, go to **Monitoring → Alerting**. +2. Open **Notification channels**. +3. Create or edit a **Webhook notification channel**. +4. Set the **Webhook URL** to your OpsiMate endpoint, for example: + +```pgsql +http://your-opsimate-host/api/v1/alerts/custom/gcp?api_token={your_api_token} +``` + +5. Save the notification channel. +6. Attach this webhook notification channel to the alerting policies you want to forward to OpsiMate. + +## Important Disclaimer + +GCP sends alerts via webhook **only to publicly reachable HTTP endpoints**. + +- If you are running OpsiMate locally (for example at `http://localhost:3001`), GCP cannot call this URL directly from the internet. +- For production use, deploy OpsiMate behind a publicly accessible URL (or expose it securely via tunneling / reverse proxy) so that GCP can reach the webhook endpoint. + +Once configured, alerts pushed from GCP will appear in the **alerts table** in OpsiMate with the **GCP integration icon**, so you can easily identify their source. + + + + + diff --git a/opsimate-docs/docs/integrations/uptime-kuma.mdx b/opsimate-docs/docs/integrations/uptime-kuma.mdx new file mode 100644 index 0000000..0cc5c91 --- /dev/null +++ b/opsimate-docs/docs/integrations/uptime-kuma.mdx @@ -0,0 +1,73 @@ +--- +id: uptime-kuma +title: Uptime Kuma Integration +slug: /integrations/uptime-kuma +sidebar_label: Uptime Kuma Integration +sidebar_position: 4 +tags: [Alerts] +--- + +# Uptime Kuma Integration + +The **Uptime Kuma integration** lets you send alerts from **Uptime Kuma** into OpsiMate using webhook-based push notifications. + +Instead of OpsiMate pulling status from Uptime Kuma, your Uptime Kuma notifications push alerts directly to OpsiMate. + +## Webhook URL + +Configure your Uptime Kuma notification to send alerts to your OpsiMate server. + +Use your OpsiMate alerts webhook endpoint, for example: + +```pgsql +http://localhost:3001/api/v1/alerts/custom/uptime-kuma?api_token={your_api_token} +``` + +> Replace `{your_api_token}` with the API token configured in your OpsiMate server. + +The exact path segment (for example `uptime-kuma`) should match how the Uptime Kuma integration is configured in your OpsiMate backend. + +## API Token Configuration + +The API token used in the webhook URL is managed by OpsiMate through an environment variable: + +- **Env var:** `API_TOKEN` +- **Default value:** `opsimate` + +This value is also used as the default for the `api_token` query parameter in the webhook URL. + +If you are using the simple deployment (via the provided `docker-compose.yml`), the `API_TOKEN` environment variable is already defined there for you. + +Make sure your OpsiMate server is started with `API_TOKEN` set (or rely on the default), and use the same value in the Uptime Kuma webhook URL. + +## Setting Up the Webhook in Uptime Kuma + +To send alerts from Uptime Kuma to OpsiMate via webhook: + +1. In **Uptime Kuma**, go to **Settings → Notifications**. +2. Click **Add New Notification**. +3. Choose **Webhook** as the notification type. +4. Set the URL to your OpsiMate endpoint, for example: + +```pgsql +http://your-opsimate-host/api/v1/alerts/custom/uptime-kuma?api_token={your_api_token} +``` + +5. Keep the HTTP method as **POST**. +6. *(Optional)* Adjust the payload/template only if you have customized parsing on the OpsiMate side; otherwise, use the default JSON payload from Uptime Kuma. +7. Save the notification. +8. Attach this notification to the monitors you want to forward to OpsiMate. + +## Important Disclaimer + +Uptime Kuma sends webhooks **only to publicly reachable HTTP endpoints**. + +- If you are running OpsiMate locally (for example at `http://localhost:3001`), Uptime Kuma running on a different machine or in the cloud may not be able to call this URL directly. +- For production use, deploy OpsiMate behind a publicly reachable URL (or expose it securely via tunneling / reverse proxy) so that Uptime Kuma can reach the webhook endpoint. + +Once configured, alerts pushed from Uptime Kuma will appear in the **alerts table** in OpsiMate with the **Uptime Kuma integration icon**, so you can easily identify their source. + + + + + diff --git a/opsimate-docs/docs/integrations/zabbix.mdx b/opsimate-docs/docs/integrations/zabbix.mdx new file mode 100644 index 0000000..6365a37 --- /dev/null +++ b/opsimate-docs/docs/integrations/zabbix.mdx @@ -0,0 +1,155 @@ +--- +id: zabbix +title: Zabbix Integration +slug: /integrations/zabbix +sidebar_label: Zabbix Integration +sidebar_position: 6 +tags: [Alerts] +--- + + +# Zabbix Integration + +The **Zabbix integration** lets you send alerts from Zabbix into OpsiMate using **webhook-based push notifications**. + +Instead of OpsiMate pulling alerts from Zabbix, your Zabbix media type **pushes alerts** directly to OpsiMate. + +## Webhook URL + +Configure your Zabbix media type to send alerts to your OpsiMate server: + +```text +http://localhost:3001/api/v1/alerts/custom/zabbix?api_token={your_api_token} +``` + +Replace `{your_api_token}` with the API token configured in your OpsiMate server (default: `opsimate`). + +## API Token Configuration + +The API token used in the webhook URL is managed by OpsiMate through an environment variable: + +- **Env var**: `API_TOKEN` +- **Default value**: `opsimate` + +This value is also used as the default for the `api_token` query parameter in the webhook URL. + +If you are using the **simple deployment** (via the provided `docker-compose.yml`), the `API_TOKEN` environment variable is already defined there for you. + +Make sure your OpsiMate server is started with `API_TOKEN` set (or rely on the default), and use the same value in the Zabbix webhook URL. + +## Setting Up the Webhook in Zabbix + +### Step 1: Create a New Media Type + +1. In **Zabbix**, go to **Administration → Media types**. +2. Click **Create media type**. +3. Set the following: + - **Name**: `OpsiMate` + - **Type**: `Webhook` + +### Step 2: Add the Webhook Script + +Copy this JavaScript code into the **Script** field: + +```javascript +try { + var params = JSON.parse(value); + var req = new HttpRequest(); + req.addHeader('Content-Type: application/json'); + + var payload = { + event_id: params.event_id, + event_name: params.event_name, + host_name: params.host_name, + host_ip: params.host_ip, + trigger_id: params.trigger_id, + trigger_name: params.trigger_name, + trigger_severity: params.trigger_severity, + trigger_status: params.trigger_status, + event_date: params.event_date, + event_time: params.event_time, + event_value: params.event_value, + event_tags: params.event_tags, + item_name: params.item_name, + item_value: params.item_value, + alert_message: params.alert_message, + event_recovery_date: params.event_recovery_date, + event_recovery_time: params.event_recovery_time, + zabbix_url: params.zabbix_url, + trigger_url: params.trigger_url + }; + + var response = req.post(params.URL, JSON.stringify(payload)); + + if (req.getStatus() != 200) { + throw 'HTTP error: ' + req.getStatus(); + } + + return 'OK'; +} catch (error) { + throw 'OpsiMate webhook error: ' + error; +} +``` + +### Step 3: Add Parameters + +Add the following parameters in the **Parameters** section of the media type: + +| Parameter Name | Value (Zabbix Macro) | +|----------------|----------------------| +| `URL` | `http://localhost:3001/api/v1/alerts/custom/zabbix?api_token={your_api_token}` | +| `event_id` | `{EVENT.ID}` | +| `event_name` | `{EVENT.NAME}` | +| `host_name` | `{HOST.NAME}` | +| `host_ip` | `{HOST.IP}` | +| `trigger_id` | `{TRIGGER.ID}` | +| `trigger_name` | `{TRIGGER.NAME}` | +| `trigger_severity` | `{TRIGGER.SEVERITY}` | +| `trigger_status` | `{TRIGGER.STATUS}` | +| `event_date` | `{EVENT.DATE}` | +| `event_time` | `{EVENT.TIME}` | +| `event_value` | `{EVENT.VALUE}` | +| `event_tags` | `{EVENT.TAGS}` | +| `item_name` | `{ITEM.NAME}` | +| `item_value` | `{ITEM.VALUE}` | +| `alert_message` | `{ALERT.MESSAGE}` | +| `event_recovery_date` | `{EVENT.RECOVERY.DATE}` | +| `event_recovery_time` | `{EVENT.RECOVERY.TIME}` | +| `zabbix_url` | `https://your-zabbix-server.com` | +| `trigger_url` | `{TRIGGER.URL}` | + +:::important +Set `zabbix_url` to your actual Zabbix server URL so alerts in OpsiMate can link back to Zabbix. +::: + +### Step 4: Assign Media Type to Users + +1. Go to **Administration → Users**. +2. Select the user that should receive notifications. +3. Go to the **Media** tab. +4. Click **Add** and select **OpsiMate** as the media type. +5. Set **Send to** to any value (e.g., `opsimate`). +6. Configure the severity levels you want to forward. +7. Save the user. + +### Step 5: Create an Action + +1. Go to **Configuration → Actions → Trigger actions**. +2. Create or edit an action. +3. In the **Operations** tab, add an operation that sends a message via the **OpsiMate** media type. +4. Save the action. + +## Features + +- **Auto-resolve**: Alerts are automatically archived when resolved in Zabbix +- **Deep links**: Click alerts in OpsiMate to jump directly to Zabbix +- **Rich tags**: Host, severity, and custom tags are preserved + +## Important Disclaimer + +Zabbix sends webhooks to **HTTP endpoints that must be reachable from the Zabbix server**. + +- If you are running OpsiMate locally (for example at `http://localhost:3001`), Zabbix running on a different machine may **not** be able to call this URL directly. +- For production use, deploy OpsiMate behind a **reachable URL** (or expose it securely via tunneling / reverse proxy) so that Zabbix can reach the webhook endpoint. + +Once configured, alerts pushed from Zabbix will appear in the **alerts table** in OpsiMate with the **Zabbix integration icon**, so you can easily identify their source. \ No newline at end of file From f6b3905d510eae80046d0c19d18154b0deb2bb10 Mon Sep 17 00:00:00 2001 From: MIKE-4-prog Date: Wed, 4 Feb 2026 17:04:55 +0530 Subject: [PATCH 3/9] Fix localhost URLs and code formatting issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace hardcoded localhost URLs with relative paths - Fix code block language identifiers (pgsql → text) - Replace :::important with :::caution admonition --- opsimate-docs/docs/faq/index.md | 4 ++-- opsimate-docs/docs/glossary/index.md | 8 ++++---- opsimate-docs/docs/integrations/gcp.mdx | 8 ++++---- opsimate-docs/docs/integrations/uptime-kuma.mdx | 8 ++++---- opsimate-docs/docs/integrations/zabbix.mdx | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/opsimate-docs/docs/faq/index.md b/opsimate-docs/docs/faq/index.md index 1209da3..462a83b 100644 --- a/opsimate-docs/docs/faq/index.md +++ b/opsimate-docs/docs/faq/index.md @@ -40,7 +40,7 @@ Examples include: Providers are always the **first thing** you set up. -👉 Learn more: [Adding Providers](http://localhost:3000/docs/providers-services/providers/add-provider) +👉 Learn more: [Adding Providers](/docs/docs/providers-services/providers/add-provider) ### What provider types does OpsiMate support? Currently, OpsiMate supports: @@ -146,7 +146,7 @@ TV Mode is a **full-screen alert display** designed for: It shows active and dismissed alerts in real time. -👉 Learn more: [TV Mode View](http://localhost:3000/docs/alerts/tv-mode-view) +👉 Learn more: [TV Mode View](/docs/docs/alerts/tv-mode-view) ## Access & Control diff --git a/opsimate-docs/docs/glossary/index.md b/opsimate-docs/docs/glossary/index.md index 9e8803e..1ab364e 100644 --- a/opsimate-docs/docs/glossary/index.md +++ b/opsimate-docs/docs/glossary/index.md @@ -16,7 +16,7 @@ Welcome to the OpsiMate glossary! This page explains the key terms and concepts #### Active Alert An alert in **Active** state is currently firing and requires your attention. -- See also [TV Mode](http://localhost:3000/docs/alerts/tv-mode-view) for full-screen monitoring. +- See also [TV Mode](/docs/docs/alerts/tv-mode-view) for full-screen monitoring. #### Alerts Notifications generated when service health or metrics cross predefined thresholds. @@ -39,7 +39,7 @@ A status indicating that an alert has been acknowledged or resolved. #### Dashboard A visual interface displaying alerts, service status, and metrics. - Can be saved, tagged, and filtered for quick access. -- Related guide: [Saved Dashboards](http://localhost:3000/docs/dashboards/saved-dashboards). +- Related guide: [Saved Dashboards](/docs/docs/dashboards/saved-dashboards). #### Docker Commands SSH-based commands used to control Docker containers monitored by OpsiMate: @@ -93,7 +93,7 @@ Providers represent the infrastructure where your services live—such as server Providers are the **starting point** when connecting your infrastructure to OpsiMate. Learn more: -- [Adding Providers](http://localhost:3000/docs/providers-services/providers/add-provider) +- [Adding Providers](/docs/docs/providers-services/providers/add-provider) ### M–O @@ -156,7 +156,7 @@ It shows: - Real-time service health at a glance Learn more: -- [TV Mode View](http://localhost:3000/docs/alerts/tv-mode-view) +- [TV Mode View](/docs/docs/alerts/tv-mode-view) #### Webhook A **webhook** is an HTTP callback that allows external systems to push alerts to OpsiMate in real time. diff --git a/opsimate-docs/docs/integrations/gcp.mdx b/opsimate-docs/docs/integrations/gcp.mdx index f4ab1a1..42d8fdb 100644 --- a/opsimate-docs/docs/integrations/gcp.mdx +++ b/opsimate-docs/docs/integrations/gcp.mdx @@ -17,8 +17,8 @@ Instead of OpsiMate pulling alerts from GCP, your GCP alerting policies push ale Configure your GCP notification channel to send alerts to your OpsiMate server: -```pgsql -http://localhost:3001/api/v1/alerts/custom/gcp?api_token={your_api_token} +```text +/api/v1/alerts/custom/gcp?api_token={your_api_token} ``` > Replace `{your_api_token}` with the API token configured in your OpsiMate server. @@ -45,7 +45,7 @@ To send alerts from GCP to OpsiMate via webhook: 3. Create or edit a **Webhook notification channel**. 4. Set the **Webhook URL** to your OpsiMate endpoint, for example: -```pgsql +```text http://your-opsimate-host/api/v1/alerts/custom/gcp?api_token={your_api_token} ``` @@ -56,7 +56,7 @@ http://your-opsimate-host/api/v1/alerts/custom/gcp?api_token={your_api_token} GCP sends alerts via webhook **only to publicly reachable HTTP endpoints**. -- If you are running OpsiMate locally (for example at `http://localhost:3001`), GCP cannot call this URL directly from the internet. +- If you are running OpsiMate locally (for example at ``), GCP cannot call this URL directly from the internet. - For production use, deploy OpsiMate behind a publicly accessible URL (or expose it securely via tunneling / reverse proxy) so that GCP can reach the webhook endpoint. Once configured, alerts pushed from GCP will appear in the **alerts table** in OpsiMate with the **GCP integration icon**, so you can easily identify their source. diff --git a/opsimate-docs/docs/integrations/uptime-kuma.mdx b/opsimate-docs/docs/integrations/uptime-kuma.mdx index 0cc5c91..0c5047b 100644 --- a/opsimate-docs/docs/integrations/uptime-kuma.mdx +++ b/opsimate-docs/docs/integrations/uptime-kuma.mdx @@ -19,8 +19,8 @@ Configure your Uptime Kuma notification to send alerts to your OpsiMate server. Use your OpsiMate alerts webhook endpoint, for example: -```pgsql -http://localhost:3001/api/v1/alerts/custom/uptime-kuma?api_token={your_api_token} +```text +/api/v1/alerts/custom/uptime-kuma?api_token={your_api_token} ``` > Replace `{your_api_token}` with the API token configured in your OpsiMate server. @@ -49,7 +49,7 @@ To send alerts from Uptime Kuma to OpsiMate via webhook: 3. Choose **Webhook** as the notification type. 4. Set the URL to your OpsiMate endpoint, for example: -```pgsql +```text http://your-opsimate-host/api/v1/alerts/custom/uptime-kuma?api_token={your_api_token} ``` @@ -62,7 +62,7 @@ http://your-opsimate-host/api/v1/alerts/custom/uptime-kuma?api_token={your_api_t Uptime Kuma sends webhooks **only to publicly reachable HTTP endpoints**. -- If you are running OpsiMate locally (for example at `http://localhost:3001`), Uptime Kuma running on a different machine or in the cloud may not be able to call this URL directly. +- If you are running OpsiMate locally (for example at ``), Uptime Kuma running on a different machine or in the cloud may not be able to call this URL directly. - For production use, deploy OpsiMate behind a publicly reachable URL (or expose it securely via tunneling / reverse proxy) so that Uptime Kuma can reach the webhook endpoint. Once configured, alerts pushed from Uptime Kuma will appear in the **alerts table** in OpsiMate with the **Uptime Kuma integration icon**, so you can easily identify their source. diff --git a/opsimate-docs/docs/integrations/zabbix.mdx b/opsimate-docs/docs/integrations/zabbix.mdx index 6365a37..ee0b048 100644 --- a/opsimate-docs/docs/integrations/zabbix.mdx +++ b/opsimate-docs/docs/integrations/zabbix.mdx @@ -118,7 +118,7 @@ Add the following parameters in the **Parameters** section of the media type: | `zabbix_url` | `https://your-zabbix-server.com` | | `trigger_url` | `{TRIGGER.URL}` | -:::important +:::caution Set `zabbix_url` to your actual Zabbix server URL so alerts in OpsiMate can link back to Zabbix. ::: @@ -152,4 +152,4 @@ Zabbix sends webhooks to **HTTP endpoints that must be reachable from the Zabbix - If you are running OpsiMate locally (for example at `http://localhost:3001`), Zabbix running on a different machine may **not** be able to call this URL directly. - For production use, deploy OpsiMate behind a **reachable URL** (or expose it securely via tunneling / reverse proxy) so that Zabbix can reach the webhook endpoint. -Once configured, alerts pushed from Zabbix will appear in the **alerts table** in OpsiMate with the **Zabbix integration icon**, so you can easily identify their source. \ No newline at end of file +Once configured, alerts pushed from Zabbix will appear in the **alerts table** in OpsiMate with the **Zabbix integration icon**, so you can easily identify their source. From abd98261440354622618cbfad9bd814d1414cbf5 Mon Sep 17 00:00:00 2001 From: MIKE-4-prog Date: Wed, 4 Feb 2026 17:21:40 +0530 Subject: [PATCH 4/9] Fix all PR issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix relative links in introduction.mdx (add /docs/ prefix) - Fix duplicate /docs/docs/ paths in FAQ and Glossary - Update Node.js version in workflow to 20 (Docusaurus 3.9.2 requirement) - Fix localhost URLs in integrations and glossary - Fix code block language identifiers (pgsql → text) - Fix admonition type (:::important → :::caution) - Resolve merge conflicts from IA revamp --- .github/workflows/link-check.yml | 3 ++- opsimate-docs/docs/faq/index.md | 4 ++-- opsimate-docs/docs/getting-started/introduction.mdx | 8 ++++---- opsimate-docs/docs/glossary/index.md | 9 +++++---- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml index 3f34230..90d4286 100644 --- a/.github/workflows/link-check.yml +++ b/.github/workflows/link-check.yml @@ -28,7 +28,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '18' + node-version: '20' cache: 'npm' cache-dependency-path: 'opsimate-docs/package-lock.json' @@ -71,3 +71,4 @@ jobs: echo "## Link Check Passed ✅" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "All documentation links are valid!" >> $GITHUB_STEP_SUMMARY + diff --git a/opsimate-docs/docs/faq/index.md b/opsimate-docs/docs/faq/index.md index 462a83b..9c91711 100644 --- a/opsimate-docs/docs/faq/index.md +++ b/opsimate-docs/docs/faq/index.md @@ -40,7 +40,7 @@ Examples include: Providers are always the **first thing** you set up. -👉 Learn more: [Adding Providers](/docs/docs/providers-services/providers/add-provider) +👉 Learn more: [Adding Providers](/docs/providers-services/providers/add-provider) ### What provider types does OpsiMate support? Currently, OpsiMate supports: @@ -146,7 +146,7 @@ TV Mode is a **full-screen alert display** designed for: It shows active and dismissed alerts in real time. -👉 Learn more: [TV Mode View](/docs/docs/alerts/tv-mode-view) +👉 Learn more: [TV Mode View](/docs/alerts/tv-mode-view) ## Access & Control diff --git a/opsimate-docs/docs/getting-started/introduction.mdx b/opsimate-docs/docs/getting-started/introduction.mdx index 0139241..be175b9 100644 --- a/opsimate-docs/docs/getting-started/introduction.mdx +++ b/opsimate-docs/docs/getting-started/introduction.mdx @@ -74,10 +74,10 @@ OpsiMate brings everything together in one powerful platform - your complete inf Ready to explore OpsiMate's capabilities? Start with: -1. **[Deploy OpsiMate](getting-started/quick-start)** - Set up your monitoring platform -2. **[Add Providers](providers-services/providers/add-provider)** - Connect your infrastructure -3. **[Configure Services](providers-services/services/add-services)** - Set up service monitoring -4. **[Create Alerts](monitoring/setting-up-alerts)** - Get notified of issues +1. **[Deploy OpsiMate](/docs/getting-started/quick-start)** - Set up your monitoring platform +2. **[Add Providers](/docs/providers-services/providers/add-provider)** - Connect your infrastructure +3. **[Configure Services](/docs/providers-services/services/add-services)** - Set up service monitoring +4. **[Create Alerts](/docs/alerts/adding-alerts)** - Get notified of issues :::tip OpsiMate automatically discovers services when you add providers, making setup fast and comprehensive. diff --git a/opsimate-docs/docs/glossary/index.md b/opsimate-docs/docs/glossary/index.md index 1ab364e..74bd966 100644 --- a/opsimate-docs/docs/glossary/index.md +++ b/opsimate-docs/docs/glossary/index.md @@ -16,7 +16,7 @@ Welcome to the OpsiMate glossary! This page explains the key terms and concepts #### Active Alert An alert in **Active** state is currently firing and requires your attention. -- See also [TV Mode](/docs/docs/alerts/tv-mode-view) for full-screen monitoring. +- See also [TV Mode](/docs/alerts/tv-mode-view) for full-screen monitoring. #### Alerts Notifications generated when service health or metrics cross predefined thresholds. @@ -39,7 +39,7 @@ A status indicating that an alert has been acknowledged or resolved. #### Dashboard A visual interface displaying alerts, service status, and metrics. - Can be saved, tagged, and filtered for quick access. -- Related guide: [Saved Dashboards](/docs/docs/dashboards/saved-dashboards). +- Related guide: [Saved Dashboards](/docs/dashboards/saved-dashboards). #### Docker Commands SSH-based commands used to control Docker containers monitored by OpsiMate: @@ -93,7 +93,7 @@ Providers represent the infrastructure where your services live—such as server Providers are the **starting point** when connecting your infrastructure to OpsiMate. Learn more: -- [Adding Providers](/docs/docs/providers-services/providers/add-provider) +- [Adding Providers](/docs/providers-services/providers/add-provider) ### M–O @@ -156,7 +156,7 @@ It shows: - Real-time service health at a glance Learn more: -- [TV Mode View](/docs/docs/alerts/tv-mode-view) +- [TV Mode View](/docs/alerts/tv-mode-view) #### Webhook A **webhook** is an HTTP callback that allows external systems to push alerts to OpsiMate in real time. @@ -191,3 +191,4 @@ Start by adding Providers and Services, set up Dashboards, then connect integrat + From b5372e95a7b3bd9dc6a21ecda556a2747f058df7 Mon Sep 17 00:00:00 2001 From: MIKE-4-prog Date: Wed, 4 Feb 2026 17:57:26 +0530 Subject: [PATCH 5/9] Fix remaining CodeRabbit issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix branding: 'Opsimate' → 'OpsiMate' in contributing guide - Remove non-existent Callout component import and usage - Fix inconsistent port numbers in local preview instructions - Remove orphaned content in saved-dashboards.mdx - Fix dark mode contrast in custom.css sidebar text --- opsimate-docs/docs/contributing/index.md | 33 ++++++++++--------- .../docs/dashboards/saved-dashboards.mdx | 1 + opsimate-docs/src/css/custom.css | 7 ++-- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/opsimate-docs/docs/contributing/index.md b/opsimate-docs/docs/contributing/index.md index f1128dd..1899ce7 100644 --- a/opsimate-docs/docs/contributing/index.md +++ b/opsimate-docs/docs/contributing/index.md @@ -3,21 +3,21 @@ title: Contributing Guide sidebar_position: 1 --- -# Contributing to Opsimate +# Contributing to OpsiMate -We welcome contributions to the Opsimate documentation. Whether you are fixing typos, adding new guides, or improving existing content, your contributions help make Opsimate better for everyone. +We welcome contributions to the OpsiMate documentation. Whether you are fixing typos, adding new guides, or improving existing content, your contributions help make OpsiMate better for everyone. ## Add Documentation -To contribute new documentation to Opsimate, follow these steps: +To contribute new documentation to OpsiMate, follow these steps: 1. **Identify your audience and purpose** Consider who will read your content and what they need to know. This will guide the scope, depth, and style of your contribution. 2. **Select a content type** - - **Concepts**: Explain key Opsimate principles, features, or workflows. Link to related guides when needed. + - **Concepts**: Explain key OpsiMate principles, features, or workflows. Link to related guides when needed. - **Guides**: Provide step-by-step instructions for a task, such as setting up alerts or configuring pipelines. - - **Setup pages**: Focus on installing, configuring, and deploying Opsimate. + - **Setup pages**: Focus on installing, configuring, and deploying OpsiMate. - **Reference pages**: Detailed technical information, like API references or configuration parameters. - **FAQs**: Quick answers to common questions. @@ -34,7 +34,7 @@ sidebar_label: Your Page Title ``` 4. **Write your content** -Follow the Opsimate style guide (see below) for language, tone, and formatting. Use Docusaurus MDX components for rich content, for example: +Follow the OpsiMate style guide (see below) for language, tone, and formatting. Use Docusaurus MDX components for rich content, for example: ```mdx import Callout from '@site/src/components/Callout'; @@ -54,18 +54,18 @@ npm install npm run build npm run dev ``` -- The documentation will be available at http://localhost:8080 +- The documentation will be available at http://localhost:3000 **Using Docker** You can also use Docker for a clean, reproducible environment: 1. Build the Docker image: ```bash -cd opsimate-docs -docker build -t opsimate-docs . +cd OpsiMate-docs +docker build -t OpsiMate-docs . ``` 2. Run the container: ```bash -docker run -p 3000:3000 --env-file .env opsimate-docs +docker run -p 3000:3000 --env-file .env OpsiMate-docs ``` - The documentation will be accessible at http://localhost:3000. @@ -93,29 +93,30 @@ Follow these guidelines when writing content: ## Docusaurus Components and Tools -Opsimate uses Docusaurus MDX components for rich content: +OpsiMate uses Docusaurus MDX components for rich content: - **Tabs**: Show multiple options in tabbed content. - **Callouts**: Highlight important information. - **Code blocks**: Syntax-highlighted examples. - **Links**: Use relative linking between docs pages. -Refer to existing Opsimate docs for examples of MDX usage. +Refer to existing OpsiMate docs for examples of MDX usage. ## Support and Community If you need help contributing or have questions: -- **[Documentation](https://opsimate.vercel.app/)** – Comprehensive guides and API references. +- **[Documentation](https://OpsiMate.vercel.app/)** – Comprehensive guides and API references. - **[GitHub Issues](https://github.com/OpsiMate/documentation/issues)** – Bug reports and feature requests. -- **[Slack Community](https://opsimate.slack.com/ssb/redirect)** – Join discussions and get help. -- **[Website](https://www.opsimate.com/)** – Learn more about Opsimate. +- **[Slack Community](https://OpsiMate.slack.com/ssb/redirect)** – Join discussions and get help. +- **[Website](https://www.OpsiMate.com/)** – Learn more about OpsiMate. ## Review Process -All contributions are reviewed by Opsimate documentation maintainers to ensure clarity, accuracy, and consistency. Once reviewed and approved, your changes will be merged and appear on the documentation site. +All contributions are reviewed by OpsiMate documentation maintainers to ensure clarity, accuracy, and consistency. Once reviewed and approved, your changes will be merged and appear on the documentation site. ## Generated Docs Some content, like API references, may be automatically generated. Check the repository for details on contributing to these sections. + diff --git a/opsimate-docs/docs/dashboards/saved-dashboards.mdx b/opsimate-docs/docs/dashboards/saved-dashboards.mdx index afb8f9c..1e11a6c 100644 --- a/opsimate-docs/docs/dashboards/saved-dashboards.mdx +++ b/opsimate-docs/docs/dashboards/saved-dashboards.mdx @@ -34,3 +34,4 @@ A saved dashboard includes: Once the process is complete, you will be able to see your saved dashboard. **Save View**: Click "Save Current View" and provide a name + diff --git a/opsimate-docs/src/css/custom.css b/opsimate-docs/src/css/custom.css index 6daa98e..7459c6a 100644 --- a/opsimate-docs/src/css/custom.css +++ b/opsimate-docs/src/css/custom.css @@ -15,16 +15,16 @@ --ifm-background-surface-color: #f8f9fa; --ifm-font-color-base: #000000; --ifm-heading-color: #1a237e; - --ifm-navbar-background-color: #000000; + --ifm-navbar-background-color: var(--ifm-font-color-base); --ifm-footer-background-color: #3949ab; } [data-theme="dark"] { - --ifm-background-color: #000000; + --ifm-background-color: var(--ifm-font-color-base); --ifm-background-surface-color: #111111; --ifm-font-color-base: #e6eef6; --ifm-heading-color: #ffffff; - --ifm-navbar-background-color: #000000; + --ifm-navbar-background-color: var(--ifm-font-color-base); --ifm-footer-background-color: #3949ab; } @@ -879,3 +879,4 @@ button[class*="toggle"] { } + From 6d84ad2d111856fd8c4179bbce8ae929239c3a82 Mon Sep 17 00:00:00 2001 From: MIKE-4-prog Date: Wed, 4 Feb 2026 18:07:15 +0530 Subject: [PATCH 6/9] Fix dark theme CSS variables (final fix) - Set explicit dark colors for background and navbar (#000000) - Ensure dark theme has dark backgrounds with light text - Fix variable dependency issue that caused light background in dark mode --- opsimate-docs/src/css/custom.css | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/opsimate-docs/src/css/custom.css b/opsimate-docs/src/css/custom.css index 7459c6a..dfe7db4 100644 --- a/opsimate-docs/src/css/custom.css +++ b/opsimate-docs/src/css/custom.css @@ -15,16 +15,16 @@ --ifm-background-surface-color: #f8f9fa; --ifm-font-color-base: #000000; --ifm-heading-color: #1a237e; - --ifm-navbar-background-color: var(--ifm-font-color-base); + --ifm-navbar-background-color: #000000; --ifm-footer-background-color: #3949ab; } [data-theme="dark"] { - --ifm-background-color: var(--ifm-font-color-base); + --ifm-background-color: #000000; --ifm-background-surface-color: #111111; --ifm-font-color-base: #e6eef6; --ifm-heading-color: #ffffff; - --ifm-navbar-background-color: var(--ifm-font-color-base); + --ifm-navbar-background-color: #000000; --ifm-footer-background-color: #3949ab; } @@ -880,3 +880,4 @@ button[class*="toggle"] { + From 72526032c775d3c5f5f15e8322c79370ea4bd281 Mon Sep 17 00:00:00 2001 From: MIKE-4-prog Date: Wed, 4 Feb 2026 18:14:14 +0530 Subject: [PATCH 7/9] Remove duplicate CSS variable declarations - Fix duplicate --ifm-background-color and --ifm-navbar-background-color lines - Keep only the explicit dark color values (#000000) - Ensure dark theme works correctly --- opsimate-docs/src/css/custom.css | 1 + 1 file changed, 1 insertion(+) diff --git a/opsimate-docs/src/css/custom.css b/opsimate-docs/src/css/custom.css index dfe7db4..7017221 100644 --- a/opsimate-docs/src/css/custom.css +++ b/opsimate-docs/src/css/custom.css @@ -881,3 +881,4 @@ button[class*="toggle"] { + From 9148851b967e4a5ac966db7653f80f33785f227d Mon Sep 17 00:00:00 2001 From: MIKE-4-prog Date: Wed, 4 Feb 2026 18:21:56 +0530 Subject: [PATCH 8/9] Remove duplicate .md files causing build errors - Remove old .md files that conflict with new .mdx versions: - saved-dashboards.md (duplicate of .mdx) - gcp.md (duplicate of .mdx) - uptime-kuma.md (duplicate of .mdx) - zabbix.md (duplicate of .mdx) - Fix Docusaurus error: 'Docs should have distinct ids' - Keep only the updated .mdx versions for consistency --- .../docs/dashboards/saved-dashboards.md | 30 ---- opsimate-docs/docs/integrations/gcp.md | 54 ------- .../docs/integrations/uptime-kuma.md | 60 ------- opsimate-docs/docs/integrations/zabbix.md | 150 ------------------ 4 files changed, 294 deletions(-) delete mode 100644 opsimate-docs/docs/dashboards/saved-dashboards.md delete mode 100644 opsimate-docs/docs/integrations/gcp.md delete mode 100644 opsimate-docs/docs/integrations/uptime-kuma.md delete mode 100644 opsimate-docs/docs/integrations/zabbix.md diff --git a/opsimate-docs/docs/dashboards/saved-dashboards.md b/opsimate-docs/docs/dashboards/saved-dashboards.md deleted file mode 100644 index 6e8238d..0000000 --- a/opsimate-docs/docs/dashboards/saved-dashboards.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Saved Dashboards - -Saved Dashboards lets you store and reuse a dashboard configuration so you can quickly return to the same view. - -A saved dashboard includes: -- **Name** -- **Description** -- **Saved filters/search** -- **Table columns** (the selected/visible columns) -- **Tags** (for organization and filtering) - -
- Saved Dashboards -

Saved Dashboards page with favorites, tags, search, and actions

-
- - -### How to Save a Dashboard - -1. Click **New Dashboard** in the top-right corner. -2. You will be redirected back to the **Alerts** screen. -3. From there, you can filter or modify the search to shape your dashboard. -4. Update the dashboard name. -5. Save the dashboard. - -Once the process is complete, you will be able to see your saved dashboard. diff --git a/opsimate-docs/docs/integrations/gcp.md b/opsimate-docs/docs/integrations/gcp.md deleted file mode 100644 index df1dcca..0000000 --- a/opsimate-docs/docs/integrations/gcp.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -sidebar_position: 4 -tags: [Alerts] ---- - -# GCP Integration - -The **GCP integration** lets you send alerts from Google Cloud Platform into OpsiMate using **webhook-based push notifications**. - -Instead of OpsiMate pulling alerts from GCP, your GCP alerting policies **push alerts** directly to OpsiMate. - -## Webhook URL - -Configure your GCP notification channel to send alerts to your OpsiMate server: - -```text -http://localhost:3001/api/v1/alerts/custom/gcp?api_token={your_api_token} -``` - -Replace `{your_api_token}` with the API token configured in your OpsiMate server. - -## API Token Configuration - -The API token used in the webhook URL is managed by OpsiMate through an environment variable: - -- **Env var**: `API_TOKEN` -- **Default value**: `opsimate` - -This value is also used as the default for the `api_token` query parameter in the webhook URL. - -If you are using the **simple deployment** (via the provided `docker-compose.yml`), the `API_TOKEN` environment variable is already defined there for you. - -Make sure your OpsiMate server is started with `API_TOKEN` set (or rely on the default), and use the same value in the GCP webhook URL. - -## Setting Up the Webhook in GCP - -To send alerts from GCP to OpsiMate via webhook: - -1. In the **Google Cloud Console**, go to **Monitoring → Alerting**. -2. Open **Notification channels**. -3. Create or edit a **Webhook** notification channel. -4. Set the **Webhook URL** to your OpsiMate endpoint, for example: - - `http://your-opsimate-host/api/v1/alerts/custom/gcp?api_token={your_api_token}` -5. Save the notification channel. -6. Attach this webhook notification channel to the alerting policies you want to forward to OpsiMate. - -## Important Disclaimer - -GCP sends alerts via webhook only to **publicly reachable HTTP endpoints**. - -- If you are running OpsiMate locally (for example at `http://localhost:3001`), GCP **cannot** call this URL directly from the internet. -- For production use, deploy OpsiMate behind a **publicly accessible URL** (or expose it securely via tunneling / reverse proxy) so that GCP can reach the webhook endpoint. - -Once configured, alerts pushed from GCP will appear in the **alerts table** in OpsiMate with the **GCP integration icon**, so you can easily identify their source. diff --git a/opsimate-docs/docs/integrations/uptime-kuma.md b/opsimate-docs/docs/integrations/uptime-kuma.md deleted file mode 100644 index 193dbf0..0000000 --- a/opsimate-docs/docs/integrations/uptime-kuma.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -sidebar_position: 5 -tags: [Alerts] ---- - -# Uptime Kuma Integration - -The **Uptime Kuma integration** lets you send alerts from Uptime Kuma into OpsiMate using **webhook-based push notifications**. - -Instead of OpsiMate pulling status from Uptime Kuma, your Uptime Kuma notifications **push alerts** directly to OpsiMate. - -## Webhook URL - -Configure your Uptime Kuma notification to send alerts to your OpsiMate server. - -Use your OpsiMate alerts webhook endpoint, for example: - -```text -http://localhost:3001/api/v1/alerts/custom/uptime-kuma?api_token={your_api_token} -``` - -Replace `{your_api_token}` with the API token configured in your OpsiMate server. - -> The exact path segment (for example `uptime-kuma`) should match how the Uptime Kuma integration is configured in your OpsiMate backend. - -## API Token Configuration - -The API token used in the webhook URL is managed by OpsiMate through an environment variable: - -- **Env var**: `API_TOKEN` -- **Default value**: `opsimate` - -This value is also used as the default for the `api_token` query parameter in the webhook URL. - -If you are using the **simple deployment** (via the provided `docker-compose.yml`), the `API_TOKEN` environment variable is already defined there for you. - -Make sure your OpsiMate server is started with `API_TOKEN` set (or rely on the default), and use the same value in the Uptime Kuma webhook URL. - -## Setting Up the Webhook in Uptime Kuma - -To send alerts from Uptime Kuma to OpsiMate via webhook: - -1. In **Uptime Kuma**, go to **Settings → Notifications**. -2. Click **Add New Notification**. -3. Choose **Webhook** as the notification type. -4. Set the **URL** to your OpsiMate endpoint, for example: - - `http://your-opsimate-host/api/v1/alerts/custom/uptime-kuma?api_token={your_api_token}` -5. Keep the **HTTP method** as `POST`. -6. (Optional) Adjust the **payload/template** only if you have customized parsing on the OpsiMate side; otherwise, use the default JSON payload from Uptime Kuma. -7. Save the notification. -8. Attach this notification to the monitors you want to forward to OpsiMate. - -## Important Disclaimer - -Uptime Kuma sends webhooks to **publicly reachable HTTP endpoints**. - -- If you are running OpsiMate locally (for example at `http://localhost:3001`), Uptime Kuma running on a different machine or in the cloud may **not** be able to call this URL directly. -- For production use, deploy OpsiMate behind a **reachable URL** (or expose it securely via tunneling / reverse proxy) so that Uptime Kuma can reach the webhook endpoint. - -Once configured, alerts pushed from Uptime Kuma will appear in the **alerts table** in OpsiMate with the **Uptime Kuma integration icon**, so you can easily identify their source. diff --git a/opsimate-docs/docs/integrations/zabbix.md b/opsimate-docs/docs/integrations/zabbix.md deleted file mode 100644 index 7f063f8..0000000 --- a/opsimate-docs/docs/integrations/zabbix.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -sidebar_position: 6 -tags: [Alerts] ---- - -# Zabbix Integration - -The **Zabbix integration** lets you send alerts from Zabbix into OpsiMate using **webhook-based push notifications**. - -Instead of OpsiMate pulling alerts from Zabbix, your Zabbix media type **pushes alerts** directly to OpsiMate. - -## Webhook URL - -Configure your Zabbix media type to send alerts to your OpsiMate server: - -```text -http://localhost:3001/api/v1/alerts/custom/zabbix?api_token={your_api_token} -``` - -Replace `{your_api_token}` with the API token configured in your OpsiMate server (default: `opsimate`). - -## API Token Configuration - -The API token used in the webhook URL is managed by OpsiMate through an environment variable: - -- **Env var**: `API_TOKEN` -- **Default value**: `opsimate` - -This value is also used as the default for the `api_token` query parameter in the webhook URL. - -If you are using the **simple deployment** (via the provided `docker-compose.yml`), the `API_TOKEN` environment variable is already defined there for you. - -Make sure your OpsiMate server is started with `API_TOKEN` set (or rely on the default), and use the same value in the Zabbix webhook URL. - -## Setting Up the Webhook in Zabbix - -### Step 1: Create a New Media Type - -1. In **Zabbix**, go to **Administration → Media types**. -2. Click **Create media type**. -3. Set the following: - - **Name**: `OpsiMate` - - **Type**: `Webhook` - -### Step 2: Add the Webhook Script - -Copy this JavaScript code into the **Script** field: - -```javascript -try { - var params = JSON.parse(value); - var req = new HttpRequest(); - req.addHeader('Content-Type: application/json'); - - var payload = { - event_id: params.event_id, - event_name: params.event_name, - host_name: params.host_name, - host_ip: params.host_ip, - trigger_id: params.trigger_id, - trigger_name: params.trigger_name, - trigger_severity: params.trigger_severity, - trigger_status: params.trigger_status, - event_date: params.event_date, - event_time: params.event_time, - event_value: params.event_value, - event_tags: params.event_tags, - item_name: params.item_name, - item_value: params.item_value, - alert_message: params.alert_message, - event_recovery_date: params.event_recovery_date, - event_recovery_time: params.event_recovery_time, - zabbix_url: params.zabbix_url, - trigger_url: params.trigger_url - }; - - var response = req.post(params.URL, JSON.stringify(payload)); - - if (req.getStatus() != 200) { - throw 'HTTP error: ' + req.getStatus(); - } - - return 'OK'; -} catch (error) { - throw 'OpsiMate webhook error: ' + error; -} -``` - -### Step 3: Add Parameters - -Add the following parameters in the **Parameters** section of the media type: - -| Parameter Name | Value (Zabbix Macro) | -|----------------|----------------------| -| `URL` | `http://localhost:3001/api/v1/alerts/custom/zabbix?api_token={your_api_token}` | -| `event_id` | `{EVENT.ID}` | -| `event_name` | `{EVENT.NAME}` | -| `host_name` | `{HOST.NAME}` | -| `host_ip` | `{HOST.IP}` | -| `trigger_id` | `{TRIGGER.ID}` | -| `trigger_name` | `{TRIGGER.NAME}` | -| `trigger_severity` | `{TRIGGER.SEVERITY}` | -| `trigger_status` | `{TRIGGER.STATUS}` | -| `event_date` | `{EVENT.DATE}` | -| `event_time` | `{EVENT.TIME}` | -| `event_value` | `{EVENT.VALUE}` | -| `event_tags` | `{EVENT.TAGS}` | -| `item_name` | `{ITEM.NAME}` | -| `item_value` | `{ITEM.VALUE}` | -| `alert_message` | `{ALERT.MESSAGE}` | -| `event_recovery_date` | `{EVENT.RECOVERY.DATE}` | -| `event_recovery_time` | `{EVENT.RECOVERY.TIME}` | -| `zabbix_url` | `https://your-zabbix-server.com` | -| `trigger_url` | `{TRIGGER.URL}` | - -:::important -Set `zabbix_url` to your actual Zabbix server URL so alerts in OpsiMate can link back to Zabbix. -::: - -### Step 4: Assign Media Type to Users - -1. Go to **Administration → Users**. -2. Select the user that should receive notifications. -3. Go to the **Media** tab. -4. Click **Add** and select **OpsiMate** as the media type. -5. Set **Send to** to any value (e.g., `opsimate`). -6. Configure the severity levels you want to forward. -7. Save the user. - -### Step 5: Create an Action - -1. Go to **Configuration → Actions → Trigger actions**. -2. Create or edit an action. -3. In the **Operations** tab, add an operation that sends a message via the **OpsiMate** media type. -4. Save the action. - -## Features - -- **Auto-resolve**: Alerts are automatically archived when resolved in Zabbix -- **Deep links**: Click alerts in OpsiMate to jump directly to Zabbix -- **Rich tags**: Host, severity, and custom tags are preserved - -## Important Disclaimer - -Zabbix sends webhooks to **HTTP endpoints that must be reachable from the Zabbix server**. - -- If you are running OpsiMate locally (for example at `http://localhost:3001`), Zabbix running on a different machine may **not** be able to call this URL directly. -- For production use, deploy OpsiMate behind a **reachable URL** (or expose it securely via tunneling / reverse proxy) so that Zabbix can reach the webhook endpoint. - -Once configured, alerts pushed from Zabbix will appear in the **alerts table** in OpsiMate with the **Zabbix integration icon**, so you can easily identify their source. From de903325fd52436bd9391f20660d7e33714228a0 Mon Sep 17 00:00:00 2001 From: MIKE-4-prog Date: Wed, 4 Feb 2026 18:28:17 +0530 Subject: [PATCH 9/9] Fix sidebars.js with correct IA revamp structure - Remove references to deleted files: core-features, configuration, deploy, system-requirements - Add new IA structure: Providers & Services, updated categories - Align sidebar with actual document files - Previously fixed: duplicate .md files, dark theme CSS, localhost URLs --- opsimate-docs/sidebars.js | 85 +++++++++++++++++++++++++++++---------- 1 file changed, 63 insertions(+), 22 deletions(-) diff --git a/opsimate-docs/sidebars.js b/opsimate-docs/sidebars.js index f0abd3c..48ba719 100644 --- a/opsimate-docs/sidebars.js +++ b/opsimate-docs/sidebars.js @@ -1,32 +1,52 @@ -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ - +// sidebars.js // @ts-check /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const sidebars = { tutorialSidebar: [ - 'intro', - 'core-features', + // Getting Started { type: 'category', label: 'Getting Started', + collapsed: false, + items: [ + 'getting-started/introduction', + 'getting-started/quick-start', + ], + }, + + // Providers & Services + { + type: 'category', + label: 'Providers & Services', collapsed: true, items: [ - 'getting-started/deploy', - 'getting-started/configuration', - 'getting-started/system-requirements', + 'providers-services/overview', + { + type: 'category', + label: 'Providers', + collapsed: true, + items: [ + 'providers-services/providers/add-provider', + 'providers-services/providers/server-provider', + 'providers-services/providers/kubernetes-provider', + ], + }, + { + type: 'category', + label: 'Services', + collapsed: true, + items: [ + 'providers-services/services/add-services', + 'providers-services/services/container-services', + 'providers-services/services/systemd-services', + 'providers-services/services/kubernetes-pods', + ], + }, ], }, + // Integrations { type: 'category', label: 'Integrations', @@ -34,34 +54,55 @@ const sidebars = { items: [ 'integrations/overview', 'integrations/grafana', + 'integrations/datadog', 'integrations/gcp', 'integrations/uptime-kuma', - 'integrations/datadog', 'integrations/zabbix', ], }, + + // Dashboards { type: 'category', - label: 'Dashboard', + label: 'Dashboards', collapsed: true, items: [ 'dashboards/saved-dashboards', ], }, + + // Alerts { type: 'category', label: 'Alerts', collapsed: true, - items: ['alerts/adding-alerts', 'alerts/alert-management', 'alerts/archived-alerts', 'alerts/tv-mode'], + items: [ + 'alerts/adding-alerts', + 'alerts/alert-management', + 'alerts/archived-alerts', + 'alerts/tv-mode-view', + ], }, + + // User Management { type: 'category', - label: 'User Management & Security', + label: 'User Management', collapsed: true, - items: ['user-management/register-login', 'user-management/admin-panel', 'user-management/audit-logs'], + items: [ + 'user-management/register-login', + 'user-management/admin-panel', + 'user-management/audit-logs', + ], }, + + // Single-page sections (not collapsible) 'development', + 'contributing/index', + 'glossary/index', + 'faq/index', + 'legal/privacy', ], }; -module.exports = sidebars; +module.exports = sidebars; \ No newline at end of file