# lyadmin: a ThinkPHP admin panel whose Builder generates the form and list pages

> lyadmin is a Chinese admin panel system built on ThinkPHP and Bootstrap 3, whose distinguishing feature is a Builder layer that auto-generates the form and list pages of the backend so a developer writes neither the controller logic nor the template. It also ships a variant, lysite, aimed at building company sites and small blogs, and the whole thing runs on an old PHP framework stack with Bootstrap 3.

**ijry/lyadmin** — lyadmin是一套轻量级通用后台，采用ThinkPHP+Bootstrap3制作，内置系统设置、上传管理、权限管理、模块管理、插件管理等功能，独有的Builder页面自动生成技术节省50%开发成本，先进的模块化开发的支持让开发成本一降再降，致力于为个人和中小型企业打造全方位的PHP企业级开发解决方案。另外提供整套企业开发解决方案，集PC、手机、微信、App、小程序五端于一体，更有用户中心模块、门户模块、钱包支付中心模块、商城模块、OAuth2统一登陆、内部Git模块、Docker模块可供选择。 

- Repository: https://github.com/ijry/lyadmin
- Website: https://www.lingyun.net/lyadmin.html
- Stars: 1,059 · Forks: 359
- Language: JavaScript
- License: NOASSERTION
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/ijry-lyadmin

## What the Builder actually saves you from

The lyadmin project describes itself as a lightweight general purpose admin panel made with ThinkPHP and Bootstrap 3, with built-in system settings, upload management, permission management, module management and plugin management.

The feature it leads with is called the truly exclusive Builder page auto-generation, and the reasoning behind it is worth understanding rather than skipping.

The argument starts with the older Chinese CMS platforms. DedeCMS and the Emperor CMS family perfected the use of template tags, which made front end page development easy, but back end developers never got an equally good development model to free them from writing front end pages. The Builder exists to fix that asymmetry.

Then the MVC analysis. In a traditional MVC layering, the developer writes the model, controller and view. In ThinkPHP development the model layer can be skipped, because ThinkPHP separates the data layer and the ORM mode simplifies database operations, so having no data model is convenient. What remains is the controller and the view, and the observation is that in admin development the view layer is time-consuming, laborious and repetitive.

So two abstractions were built. FormBuilder helps back end developers auto-generate form pages, such as publishing or editing an article. ListBuilder helps auto-generate list pages, such as a user list or an article list. The stated premise is that admin pages early on have two core requirements, forms plus lists, and those two are what the Builder covers.

That is the honest boundary. It is a CRUD page generator, not a general layout engine, and the project says as much by naming exactly two builders.

The rest of the feature list is a modular design, with the system using modular, component and plugin based low coupling design, so that the application has rich functional modules, plugins and themes for flexible extension and secondary development. The front end is a Bootstrap 3 based theme called lyui, which the documentation says keeps a 100 percent Bootstrap experience while adding more front end components suited to Chinese users, with one codebase adapting to different screen sizes.

## The directory structure tells you the whole architecture

The README documents the directory layout, and for a project of this type the layout is the architecture. There is an index.php entry file, an admin.php alongside it, and a Framework directory holding the framework, a Public directory for application resource files, a Runtime directory for application runtime files, an Uploads directory as the upload root, an Addons directory for plugins, an Application directory for application modules, and a Data directory.

Inside Application there are four module types. The Admin module is the backend, with subdirectories for its configuration, common functions, controllers, models and view files. The Common module holds the shared code, and its description notes it cannot be accessed directly, which is a routing rule rather than a naming convention. Inside Common there are directories for behaviour extensions, the Builder, common function files, configuration, controllers, models and a Util directory for third party class libraries.

The Home module is the front end, and it has a TagLib directory for the front end tag library, which is the mechanism for the template tags that the older CMS platforms made central to their appeal. The Install module handles installation, with its own configuration, functions, controllers, models and views.

The Install module existing as a first class module is worth noting, because it means the system is installed through the application itself rather than by a command line script, and it implies a web reachable setup route that a production deployment has to protect.

The Application module list ends with an explicit note that further installable and removable functional modules can be added. That is the module system in practice, and it is the same mechanism that the feature description calls modular, component and plugin based.

The Public directory shows the asset pipeline. There is a libs directory for third party plugin libraries, and css and js directories described as the storage locations for gulp compiled style and script results. So the styles and scripts are not hand written, they are built with gulp, and the compiled output is what ships.

The repository listing matches: .gitignore, .htaccess, Addons/, Application/, Data/, Framework/, LICENCE.txt, Public/, README.md, Uploads/, admin.php, docs/, favicon.ico, index.php, logo.png and preview/.

## Where to get it, and the three version branches

The download information is given as Gitee tree links rather than release artefacts, which is a meaningful signal about where this project is distributed.

The versions listed are lyadmin 1.2.1 on the master branch, lysite 1.1.0 on the lysite branch, and lyadmin 2.0.0 on a 2.0 branch. So the project is not distributed through a package manager or a release page. There are no GitHub releases for it, and the three lines of development are branches in a Gitee repository.

That structure has consequences for adoption. A branch is not a version, so there is nothing to pin and no checksum to record, and a branch that is updated in place means your copy changes under you when you pull. If you need a reproducible deployment, you have to take a copy of the branch at a known moment and not pull again until you have tested.

The lysite branch deserves a note of its own, because the README explains it in more detail than the main project. lysite is a version branch of the open source admin panel, and in essence a module of lyadmin, intended to explore what users want from deeper level system requirements. It is a general site building system derived from the open source admin panel, whose main goal is a dedicated system for building enterprise websites and small blogs. It uses modular development and does not make any special modification to the lyadmin core, and it supports template functionality.

That last point is the interesting design claim. If lysite adds site building without touching the core, then the module system genuinely is decoupled, which is the thing the feature description claims when it says the system uses low coupling design.

The official project page is at lingyun.net, and the project is maintained by Nanjing Kesike Network Technology. The primary language in the repository metadata is JavaScript, which reflects the Bootstrap and jQuery front end rather than the PHP application code. The topic tags are bootstrap, ecshop, onethink, thinkphp, thinkphp5 and tpshop, which is a list of the ecosystems this admin system draws on and neighbours.

The repository is not archived and the last push was on 2026-06-07. There are no GitHub releases, so the branch links in the README are the whole distribution story.

## The licence is the one thing you must read yourself

The licence of this project is recorded as a custom one that GitHub could not classify, and the repository carries a LICENCE.txt file at the root.

That combination, a GPL-style or commercial dual licence or a bespoke agreement, matters more here than in most projects, and the reason is the licensing of the underlying pieces. lyadmin is built on ThinkPHP, and it acknowledges Bootstrap, jQuery and ThinkPHP in its acknowledgements section, alongside thanks to other projects listed without order. ThinkPHP in particular comes under its own licence, and a project that distributes the framework source inside its own Framework directory raises the question of whether those terms are met, and whether an end user of the admin panel is affected.

Those are questions for your own legal review rather than something this article can settle, and the LICENCE.txt file is the only authoritative statement. The point worth making is that the repository does not summarise the terms anywhere in the README, so you have to go and read the file rather than assume a permissive grant.

There is also a terms related item in the README that is worth a mention because it signals what the authors consider the commercial use story. The project includes a recommended relay service link, which is an advertisement for a third party service rather than a licence term, and the site page is at lingyun.net. The commercial context here is a company selling the system and hosting services around it, which is normal for this class of Chinese admin panel.

For a technical evaluation, the licence question is separate from the framework question, and both are separate from the more interesting structural issue, which is the age of the stack.

## Bootstrap 3 and ThinkPHP: the constraint that shapes everything

The most consequential fact about lyadmin is not in any feature list. It is the framework generation and the front end generation it is built on, and the documentation is explicit about both: ThinkPHP with Bootstrap 3, and a lyui theme custom built on Bootstrap 3.

Bootstrap 3 is the version that shipped in 2013. It uses a grid system based on percentage widths and float, it has no CSS custom properties, no flexbox or grid layout in the framework, and no CSS variables for theming. A theme built on it inherits those constraints, and a modern design system that assumes CSS custom properties or flexbox utilities will not compose cleanly with it. The documentation claims one codebase adapts to multiple screen sizes, and Bootstrap 3 does have a responsive grid, so the claim is fair, but the responsive behaviour is of 2013 vintage.

The ThinkPHP side matters for the same reason. The topic tags include both thinkphp and thinkphp5, so the project spans the ThinkPHP 3 and ThinkPHP 5 generations, and the directory structure, with Application modules containing Conf, Common, Controller, Model and View subdirectories, is the classic ThinkPHP application layout. The description also says that in ThinkPHP development the model layer can be skipped because the framework separates the data layer and the ORM mode simplifies database operations. That is a real property of the framework, and it is why the Builder only needs to cover controllers and views.

The other end of the stack is jQuery, acknowledged in the credits alongside Bootstrap and ThinkPHP. That is a coherent, self-consistent stack for a project of its era and market, and it is also a stack where a security reviewer will ask about the version of jQuery in the Public/libs directory and about the Bootstrap 3 JavaScript components.

The Upside of this consistency is that the whole system is one coherent design and the docs explain it, and the modular and plugin system means you can extend it without forking. The downside is that this is a stack where the question of your own maintenance burden depends on how long you intend to run it, and where a mismatch with your existing front end standards is likely to be a real cost rather than a theoretical one.

## Conclusion

lyadmin fits a PHP team that wants a complete admin panel with a CRUD page generator, a plugin and module system and a Chinese front end, and that is prepared to work within ThinkPHP's conventions rather than against them. It is the wrong choice for a project that needs a modern framework or a current front end toolkit, since the stack is ThinkPHP with Bootstrap 3, and the wrong choice for a team that will not read the Chinese documentation. Before adopting, read the LICENCE.txt file at the repository root yourself, since the licence is a custom one GitHub could not classify, check whether the master branch (1.2.1) or the 2.0 branch matches what you need, and confirm the Builder covers the specific page types you intend to generate.

## FAQ

### What does the Builder feature in lyadmin actually generate?

Two kinds of backend page. FormBuilder auto-generates form pages such as publishing and editing an article, and ListBuilder auto-generates list pages such as user lists and article lists. The reasoning is that in ThinkPHP the model layer can be skipped, leaving the view layer as the time-consuming, repetitive part of admin development.

### How do I download lyadmin?

From Gitee branches rather than release artefacts. lyadmin 1.2.1 is on the master branch, lysite 1.1.0 is on the lysite branch, and lyadmin 2.0.0 is on the 2.0 branch. There are no GitHub releases for the project, and the project page is at lingyun.net.

### What is the difference between lyadmin and lysite?

lysite is a version branch of lyadmin and in essence a module of it, a general site building system for enterprise websites and small blogs. It uses modular development and does not make any special modification to the lyadmin core, and it supports template functionality.

### What framework and front end does lyadmin use?

ThinkPHP with Bootstrap 3, plus a Bootstrap 3 based theme called lyui that adds components suited to Chinese users. The credits name Bootstrap, jQuery and ThinkPHP, and the directory layout includes Public/libs for third party libraries along with css and js directories holding gulp compiled output.

## Sources

- [ijry/lyadmin on GitHub](https://github.com/ijry/lyadmin)
- [Issues](https://github.com/ijry/lyadmin/issues)
- [Project website](https://www.lingyun.net/lyadmin.html)
- [README](https://github.com/ijry/lyadmin/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/ijry-lyadmin
