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](https://dioxuslabs.com/) (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](https://dioxuslabs.com/learn/0.7/getting_started) (`dx`) - MongoDB - Keycloak - SearXNG (optional) - Ollama (optional) ### Setup ```bash # 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](https://www.conventionalcommits.org/) are required for all commit messages - We follow [SemVer](https://semver.org/) for versioning ## CI CI runs on Gitea Actions with runner tag `docker`. ---Built with Rust, Dioxus, and a commitment to data sovereignty.