fix/m7.1-kc-dev-file
CI / Deploy (pull_request) Has been skipped
CI / E2E Tests (pull_request) Has been skipped
CI / Format (push) Successful in 15s
CI / Clippy (push) Successful in 2m17s
CI / Security Audit (push) Has been skipped
CI / Tests (push) Has been skipped
CI / Format (pull_request) Successful in 3s
CI / Clippy (pull_request) Successful in 2m13s
CI / Security Audit (pull_request) Has been skipped
CI / Tests (pull_request) Has been skipped
CI / Deploy (push) Has been skipped
CI / E2E Tests (push) Has been skipped
KC_DB was set to dev-mem (H2 in-memory) — every time the keycloak container went idle or restarted, the realm + the M7.1 test users dissolved and the next smoke run failed with token_not_found until realm-export was re-imported manually. Bit twice during the M7.1 testing session. dev-file points H2 at /opt/keycloak/data/h2/ and the new keycloak-data named volume keeps it across container lifecycles. The realm-export.json bind-mount is still read-only and re-imported on fresh starts via `--import-realm`, so a `docker compose down -v` is still the canonical "rebuild from scratch" lever. Co-Authored-By: Claude Opus 4.7 <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%