6067368ace50e945f1871a9d6d28fb364604e231
All checks were successful
CI / Format (push) Successful in 3s
CI / Format (pull_request) Successful in 3s
CI / Clippy (pull_request) Successful in 2m49s
CI / Security Audit (pull_request) Has been skipped
CI / Clippy (push) Successful in 2m53s
CI / Security Audit (push) Has been skipped
CI / Tests (push) Has been skipped
CI / Tests (pull_request) Has been skipped
CI / Deploy (push) Has been skipped
CI / Deploy (pull_request) Has been skipped
CI / E2E Tests (push) Has been skipped
CI / E2E Tests (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CERTifAI
Self-hosted, GDPR-compliant GenAI infrastructure dashboard
About
CERTifAI is a SaaS dashboard for administering self-hosted private GenAI infrastructure. It gives companies and individuals a single pane of glass to manage LLMs, Agents, MCP Servers, and other GenAI-related services -- without sending data to non-EU cloud providers.
Why? Protect your intellectual property from being used as training data. Stay fully GDPR-compliant with infrastructure you own.
Features
| Area | Capabilities |
|---|---|
| User Management | Add, remove, set roles, permissions, and restrictions |
| SSO / OAuth / LDAP | Connect to company identity providers and sync users |
| Feature Flags | Toggle GenAI features on or off per-org |
| Billing | View seat usage and token consumption per billing cycle |
| Support | Request support or new features via feedback form |
| GenAI Tools | Manage LLMs, Agents, MCP Servers; launch Langchain, Langfuse, Tavily; view endpoints and generate API keys |
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
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | Dioxus 0.7 (fullstack + router), Tailwind CSS 4, DaisyUI 5 |
| Backend | Axum, tower-sessions, Dioxus server functions |
| Database | MongoDB |
| Auth | Keycloak 26+ (OAuth2 + PKCE, Organizations) |
| Search | SearXNG (meta-search) |
| LLM | Ollama (local inference) |
Getting Started
Prerequisites
- Rust 1.89+
- Dioxus CLI (
dx) - MongoDB
- Keycloak
- SearXNG (optional)
- Ollama (optional)
Setup
# Clone the repository
git clone https://gitea.meghsakha.com/sharang/certifai.git
cd certifai
# Configure environment
cp .env.example .env
# Edit .env with your Keycloak, MongoDB, and service URLs
# Run the dev server
dx serve
External Services
| Service | Purpose | Default URL |
|---|---|---|
| Keycloak | Identity provider / SSO | http://localhost:8080 |
| MongoDB | User data and preferences | mongodb://localhost:27017 |
| SearXNG | Meta-search engine for news | http://localhost:8888 |
| Ollama | Local LLM for summarization | http://localhost:11434 |
Project Structure
src/
components/ Frontend-only reusable UI components
infrastructure/ Server-side: auth, config, DB, server functions
models/ Shared data models (web + server)
pages/ Full page views composing components + models
assets/ Static assets (CSS, icons, manifest)
styles/ Tailwind/DaisyUI input stylesheet
bin/ Binary entrypoint
Git Workflow
We follow the feature branch workflow. The main branch is the default and protected branch.
- Conventional Commits are required for all commit messages
- We follow SemVer for versioning
CI
CI runs on Gitea Actions with runner tag docker.
Built with Rust, Dioxus, and a commitment to data sovereignty.
Description
The purpose of
https://dash-dev.meghsakha.com
CERTifAIis to provide self-hosted and GDPR-Compliant 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.
Languages
Rust
47.4%
CSS
26.3%
HTML
18.9%
JavaScript
4%
TypeScript
3.1%
Other
0.3%