Self-hosted service
yangzongzhuan/RuoYi-Cloud avatar
yangzongzhuan/RuoYi-Cloud

RuoYi-Cloud for Distributed Java Administration Systems

:tada: (RuoYi)官方仓库 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统

1,799 stars930 forksJavaMIT

At a glance

What is it?
RuoYi-Cloud is an MIT-licensed Spring Boot and Spring Cloud system for organizations that need user, role, department, menu, logging, monitoring, and scheduling features across multiple services. Its main trade-off is the operational cost of assembling Nacos, Redis, Sentinel, Seata, and a frontend application.
Who is it for?
RuoYi-Cloud fits teams that already operate Java microservices and want a configurable administration foundation with RBAC, data-scope permissions, audit logs, monitoring, and scheduled jobs. It is a poor fit for a small system that needs one deployable process, because the default architecture adds Nacos, Redis, Sentinel, Seata, gateway, authentication, and business-service coordination.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 35 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Why RuoYi-Cloud Splits Administration into Services

RuoYi-Cloud addresses the administration layer of a multi-service Java system: system users, departments, posts, menus, roles, dictionaries, parameters, notices, and audit records. It is intended for developers who want these common control-plane functions instead of rebuilding them inside each business service. The repository also includes code generation, file handling, scheduled jobs, service monitoring, an online form builder, and connection-pool inspection.

The defining choice is separation. The README describes a front-end and back-end separated architecture, with the backend built on Spring Boot, Spring Cloud, and Spring Cloud Alibaba. This makes the platform suitable for organizations that already understand distributed applications. It also means an adopter is choosing a collection of processes and infrastructure dependencies, not merely downloading a reusable admin screen.

The platform supports organization-aware authorization. Roles receive menu permissions, while data-scope rules are assigned by organization. This is more specific than a simple user-to-role table: departments, posts, menus, button permission identifiers, and role-based data ranges are all represented as managed entities.

Gateway, Authentication, and Service Boundaries

Based on the repository layout, requests enter through `ruoyi-gateway`, documented at port `8080`. Authentication is separated into `ruoyi-auth`, documented at port `9200`, while the system business module, code generator, scheduler, and file service occupy ports `9201`, `9202`, `9203`, and `9300` respectively. `ruoyi-api` holds service-facing interfaces, including `ruoyi-api-system`, so internal contracts are not placed directly in the business implementation modules.

Shared behavior is packaged beneath `ruoyi-common`. The listed modules cover core code, data scope, multiple data sources, logging, Redis, Seata integration, security, sensitive-data handling, and Swagger. This division keeps cross-cutting concerns visible, but it also makes the platform a collection of compile-time dependencies and runtime contracts rather than an isolated authorization library.

Nacos supplies registration and configuration services, while Redis backs permission authentication. Sentinel is the selected traffic-control framework, and Seata handles distributed transactions. The gateway can therefore sit in front of independently deployable services, while policy, configuration, traffic controls, and transaction coordination depend on components outside the business modules themselves.

Backend Branches Change the Adoption Baseline

The default `master` branch is not a neutral baseline. The README assigns it Spring Boot 4.x, JDK 17+, and Nacos 3.x. Projects that remain on Spring Boot 3.x can use the `springboot3` branch, which also requires JDK 17+ and Nacos 3.x. The `springboot2` branch targets Spring Boot 2.x, JDK 8+, and Nacos 2.x. That difference affects build behavior, runtime compatibility, deployment infrastructure, and the versions of supporting components.

Frontend pairing is similarly a decision. `RuoYi-Cloud-Vue2` uses Vue 2, Vue CLI, Element UI, Vuex, and Vue Router 3. `RuoYi-Cloud-Vue3` uses Vue 3, Vite, Element Plus, Pinia, and Vue Router 4. `RuoYi-Cloud-Vue3-TypeScript` retains the Vue 3 stack while using TypeScript. The README says these variants can be mixed with the corresponding backend branches, but it does not provide a tested compatibility matrix beyond the listed framework choices.

This branch structure helps organizations migrate at their own pace, but it creates an explicit configuration decision before feature work begins. A team should first select one backend branch and one frontend variant, then verify the surrounding Nacos version rather than combining a branch and its dependencies by assumption.

Getting Started Through RuoYi Documentation

The README does not provide a local installation command sequence, build command, Docker invocation, or environment-variable template. It directs readers to the documentation at `http://doc.ruoyi.vip` and to the project homepage at `http://ruoyi.vip`. For that reason, this guide does not invent `mvn`, `npm`, Docker Compose, database initialization, or startup commands that are absent from the README.

The first real use begins with choosing the backend branch that matches the required Spring Boot, JDK, and Nacos combination. After obtaining that branch and the compatible frontend repository, the reader will still need the installation instructions in the linked documentation. The repository contains `docker/`, `sql/`, `bin/`, and a root `pom.xml`, but the README excerpt does not state which files must be run in which order.

The online demonstration lists `admin/admin123`. It is a public demonstration account, not an appropriate default for a deployed installation. Its appearance also confirms that the platform has an authentication and administration interface, but it does not describe any initialization wizard or production credential-rotation procedure.

Operational Boundaries of Nacos, Redis, Sentinel, and Seata

The largest limitation is the number of moving parts. Nacos is required for service registration and configuration, Redis for permission authentication, Sentinel for traffic control, and Seata for distributed transactions. A local or production deployment therefore depends on configuration consistency and service availability outside the main application modules. A stopped or misconfigured dependency can affect discovery, authentication, flow control, or transactions before the business code itself fails.

The platform also carries administrative complexity that a single-process application would avoid. Gateway routing, service names, data sources, logs, files, and scheduled tasks occupy separate modules. The built-in monitoring service at port `9100` and the connection-pool inspection feature can expose runtime information, but the README does not describe production hardening, alerting rules, backup procedures, or secret-management controls.

This makes RuoYi-Cloud unsuitable as a casual default for a small internal utility when only user and role tables are needed. Its feature set becomes worthwhile when a team accepts the deployment model and expects to customize several administrative domains.

Modular Monolith Alternative for Smaller Systems

The real alternative is a conventional Spring Boot modular monolith with the same RBAC entities embedded in one deployable application. Its approach differs at deployment and coordination boundaries. User, department, role, menu, and audit logic can still be organized into packages, but they share one process and normally do not require service discovery, a separate gateway, or inter-service interfaces for every internal call.

A monolith can be easier to start, deploy, inspect, and secure when the organization has a small service footprint. It does not, by itself, provide the distributed controls that RuoYi-Cloud selects through Nacos, Sentinel, Seata, and separate services. The choice is therefore not simply between richer features and fewer features. It is between a broad administration platform with distributed dependencies and a narrower application whose modules remain in one runtime.

RuoYi-Cloud is more appropriate where independent business services already exist and cross-service administration is part of the design. A monolith is usually more practical where the target system has one deployment unit and no immediate requirement for independent scaling or service-level routing.

Maintenance Signals and MIT Upgrade Responsibilities

The repository is not archived, and its last push was on 2026-09-18. The listed release history includes v3.6.8 on 2026-03-29, v3.6.7 on 2025-12-22, and v3.6.6 on 2025-05-30. The README also presents parallel backend branches for Spring Boot 2.x, 3.x, and 4.x, so upgrades involve branch and infrastructure compatibility rather than a single code path.

The repository is licensed under MIT. That permits use, modification, distribution, and sublicensing subject to the license conditions, but an adopter still needs to review dependency licenses and preserve required notices. The license does not remove the cost of maintaining custom generated modules, frontend changes, configuration, and database schemas across upgrades.

The README does not document a rollback procedure, migration guide for every branch transition, or production upgrade checklist. Those omissions should be treated as adoption boundaries, not as evidence that upgrades are automatic. The supported pairing of Spring Boot, JDK, Nacos, and frontend repository must be checked before changing versions.

Editorial conclusion

RuoYi-Cloud fits teams that already operate Java microservices and want a configurable administration foundation with RBAC, data-scope permissions, audit logs, monitoring, and scheduled jobs. It is a poor fit for a small system that needs one deployable process, because the default architecture adds Nacos, Redis, Sentinel, Seata, gateway, authentication, and business-service coordination. Before adoption, verify the branch and JDK pairing, inventory every required external service, replace the documented demonstration credentials, and confirm that the MIT dependencies and generated modules fit the intended distribution.

Frequently asked questions

Which Spring Boot version does RuoYi-Cloud master use?

The README lists the default `master` branch as Spring Boot 4.x with JDK 17+ and Nacos 3.x. Spring Boot 3.x is available through the `springboot3` branch, while Spring Boot 2.x is available through `springboot2` with JDK 8+ and Nacos 2.x.

Which services provide authentication and administration in RuoYi-Cloud?

The README lists `ruoyi-auth` at port `9200` for authentication and `ruoyi-system` at port `9201` for the system module. Nacos supplies registration and configuration, while Redis is used for permission authentication.

Does the README provide installation commands for RuoYi-Cloud?

No. The README links to `http://doc.ruoyi.vip` for documentation and does not give a local build command, startup command, database initialization sequence, or Docker command in the excerpt.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. yangzongzhuan/RuoYi-Cloud on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/yangzongzhuan-ruoyi-cloud.svg)](https://hysenlabs.com/projects/yangzongzhuan-ruoyi-cloud)

Was this useful?