{"repo":"Tenon-Net/TenonAdmin","free":true,"listed":false,"github":"https://github.com/Tenon-Net/TenonAdmin","clone":"git clone https://github.com/Tenon-Net/TenonAdmin.git","description":"A zero-config, extensible ASP.NET Core admin system with RBAC, data permissions, and NuGet-first delivery. Two frontend templates: Vue 3 + Naive UI, React 19 + Ant Design.","language":"C#","stars":24,"topics":["admin-panel","admin-template","aspnetcore","csharp","data-permissions","dotnet","naive-ui","nuget-package","rbac","sqlsugar"],"license":"Apache-2.0","category":"dashboards-admin","readme_excerpt":"English 简体中文 日本語 TenonAdmin Three lines of code to add a complete, extensible RBAC access-management layer to your ASP.NET Core project. 🔗 Live Demo &nbsp;&nbsp;·&nbsp;&nbsp; 📖 Docs &nbsp;&nbsp;·&nbsp;&nbsp; 📋 Changelog --- 🎨 What is this? TenonAdmin packages the common back-office machinery as NuGet packages. Users, roles, menus, multi-org data permissions, dictionaries, config, operation logs, file uploads — everything every back office ends up rebuilding — comes in via dotnet add package . Three lines in Program.cs give you a complete admin API: - Runs by default — zero-config start: tables auto-created, seed data loaded, SQLite as the fallback. First run doesn't even need a database server. - Replace what you don't like — every built-in service is interface-based and registered with TryAdd . Register your own implementation and the built-in one steps aside. No forking. - Upgrading = bumping a package version — bug fixes and new features arrive as package updates; your business code doesn't move. The usual approach is cloning a template repo: hundreds of files become yours to maintain, business code and framework code end up tangled together, and when the framework ships a new version you're stuck merging diffs by hand. TenonAdmin flips that — the common machinery is a package dependency, and your business code stays your business code. The frontend is covered too: two feature-equivalent templates (Vue and React). Pick whichever feels right and use it as the starting p","default_branch":null,"files":null,"tree":[],"storefront":"/r/Tenon-Net","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Tenon-Net/TenonAdmin/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}