Sol-Cloud is a cloud service platform based on microservices architecture, adopting a front-end and back-end separation design pattern, providing core functions such as system management and file management. The project uses Docker containerization technology for deployment, featuring high availability, scalability, and security.
The project is divided into two main parts: frontend (client) and backend (cloud):
- Frontend: Single-page application based on Vue 3
- Backend: Microservices cluster based on Spring Cloud
- Deployment: Containerized deployment based on Docker
- API Gateway: Unified entry point, request routing and filtering
- System Service: System management functions including users, roles, and permissions
- File Service: File upload, download, and management functions
- Common Module: Shared components including utilities, constants, and base models
- Core Framework: Vue 3.5.12
- UI Component Library: Element Plus 2.8.8
- Build Tool: Vite 5.4.10
- Programming Language: TypeScript 5.6.3
- HTTP Client: Axios 1.7.7
- State Management: Pinia 2.2.6
- Router Management: Vue Router 4.4.5
- Core Framework: Spring Boot 3.3.4
- Microservices Framework: Spring Cloud 2023.0.3
- Microservices Components: Spring Cloud Alibaba 2023.0.1.0
- ORM Framework: MyBatis Plus 3.5.10.1
- Authentication Framework: Sa-Token 1.39.0
- Service Registry & Config Center: Nacos 2.5.0
- Database: PostgreSQL 17.2
- Cache: Redis 7.4.2
- Object Storage: MinIO RELEASE.2024-11-07T00-52-20Z
- Distributed Transaction: Seata 1.8.0.2
client/
βββ src/
β βββ api/ # API interface definitions
β βββ assets/ # Static resources
β βββ components/ # Reusable components
β βββ composables/ # Composition API
β βββ generated/ # Auto-generated code
β βββ pinia/ # State management
β βββ router/ # Route configuration
β βββ styles/ # Style files
β βββ util/ # Utility functions
β βββ views/ # Page view components
βββ public/ # Public static resources
βββ index.html # Entry HTML
βββ vite.config.ts # Vite configuration
cloud/
βββ common/ # Common modules
β βββ common-auth/ # Authentication and authorization
β βββ common-base-model/ # Base data models
β βββ common-base-web/ # Web base components
β βββ common-constant/ # Constant definitions
β βββ common-util/ # Common utilities
βββ model/ # Data model definitions
βββ plugin/ # Plugin modules
βββ web/ # Business service modules
β βββ web-system-8081/ # System management service
β βββ web-file-8082/ # File management service
βββ gateway-9527/ # API Gateway
- Docker 20.10+
- Docker Compose 2.0+
- JDK 17+
- Node.js 20+
-
Clone the repository
git clone https://github.com/yourusername/sol-cloud.git cd sol-cloud
-
Start backend services
Warning: First modify the SEATA_IP in dev.docker-compose.yml to your local IP
cd docker docker-compose -f dev.docker-compose.yml up -d
web-system and web-file need to be started manually
-
Start frontend development server
cd client npm install npm run dev
-
Start all services
docker-compose up -d
-
Access the system
http://localhost:8080
-
Security Considerations
Warning: When deploying to production, please note the following security considerations:
- Do not expose internal service components (such as Nacos, Redis, PostgreSQL, MinIO, etc.) directly to the public network
- Ensure only the API gateway and frontend application are accessible from outside
- Use firewalls to restrict access to internal services
- Enable HTTPS encryption for all external services
- Regularly update passwords and keys
- Consider using a reverse proxy (such as Nginx) as the only entry point for external access
- User Authentication and Authorization Management
- Role and Permission Management
- File Upload and Management
- System Configuration Management
- Log Audit
- Create a new service module in the cloud directory
- Add new service configuration in docker-compose.yml
- Add new service routes in gateway configuration
- Add new API interfaces in src/api
- Create new page components in src/views
- Configure new routes in src/router
- Fork this repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the LICENSE License.