Files
certifai/README.md
Sharang Parnerkar 5399afd748
All checks were successful
CI / Format (push) Successful in 2s
CI / Clippy (push) Successful in 2m18s
CI / Security Audit (push) Successful in 1m40s
CI / Tests (push) Successful in 2m51s
CI / Deploy (push) Successful in 2s
feat(dashboard): added dashboard content and features (#7)
Co-authored-by: Sharang Parnerkar <parnerkarsharang@gmail.com>
Reviewed-on: #7
2026-02-19 19:23:06 +00:00

4.4 KiB

CERTifAI

CI Rust Dioxus License GDPR

This project is a SaaS application dashboard for administation of self-hosted private GenAI (generative AI) toolbox for companies and individuals. The purpose of the dashboard is to manage LLMs, Agents, MCP Servers and other GenAI related features.

The purpose of CERTifAIis to provide self-hosted or GDPR-Conform GenAI infrastructure to companies who do not wish to subscribe to non-EU cloud providers to protect their intellectual property from being used as training data.

Overview

The SaaS application dashboard is the landing page for the company admin to view, edit and manage the company internal GenAI tools. The following tasks can be performed by the administrator:

  • User management: Can add, remove, set roles, permissions and add restrictions for other users.
  • SSO/Oauth/LDAP: Can connect to company internal SSO/LDAP or other identity provider to load users and their respective permissions.
  • Turn features on/off: Turn off/on different GenAI features
  • Billing: View the current seats being used and token usage per seat for any given billing cycle
  • Request support: Request support or new features using feedback form
  • GenAI: View currently running LLMs, Agents, MCP Servers. Modify or add more resources, switch to a different model, launch tools like Langchain + Langfuse for creating new agents,tavily for internet search or more complex tools for use with GenAI. View endpoints and generate API Keys for integrations in other applications.

Dashboard

The main dashboard provides a news feed powered by SearXNG and Ollama:

  • Topic-based search: Browse AI, Technology, Science, Finance and custom topics. Add or remove topics on the fly; selections persist in localStorage.
  • Article detail + AI summary: Click any card to open a split-view panel. The full article is fetched, summarized by Ollama, and a follow-up chat lets you ask questions.
  • Sidebar (visible when no article is selected):
    • Ollama Status -- green/red indicator with the list of loaded models.
    • Trending -- keywords extracted from recent news headlines via SearXNG.
    • Recent Searches -- last 10 topics you searched, persisted in localStorage.

Development environment

This project is written in Dioxus 0.7 with fullstack and router features. MongoDB is used as a database for maintaining user state. Keycloak is used as identity provider for user management.

External services

Service Purpose Default URL
Keycloak Identity provider / SSO http://localhost:8080
SearXNG Meta-search engine for news http://localhost:8888
Ollama Local LLM for summarization http://localhost:11434

Copy .env.example to .env and adjust the URLs and model name to match your setup.

Code structure

The following folder structure is maintained for separation of concerns:

  • src/components/*.rs : All components that are required to be rendered are placed here. These are frontend only, reusable components that are specific for the application.
  • src/infrastructure/*.rs : All backend related functions from the dioxus fullstack are placed here. This entire module is behind the feature "server".
  • src/models/*.rs : All data models for use by the frontend pages and components.
  • src/pages/*.rs : All view pages for the website, which utilize components, models to render the entire page. The pages are more towards the user as they group user-centered functions together in one view.

Git Workflow

We follow feature branch workflow for Git and bringing in new features. The main branch is the default and protected branch. Conventional commits MUST be used for writing commit messages. We follow semantic versioning as per SemVer

CI

The CI is run on gitea actions with runner tags docker.