sol-cloud/README.md

171 lines
No EOL
5.3 KiB
Markdown

# Sol-Cloud
## Introduction
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.
## System Architecture
### Overall Architecture
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
### Microservices Architecture
- **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
## Technology Stack
### Frontend Technology Stack
- **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
### Backend Technology Stack
- **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
## Project Structure
### Frontend Structure
```
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
```
### Backend Structure
```
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
```
## Deployment Guide
### Environment Requirements
- Docker 20.10+
- Docker Compose 2.0+
- JDK 17+
- Node.js 20+
### Development Environment Deployment
1. Clone the repository
```bash
git clone https://github.com/yourusername/sol-cloud.git
cd sol-cloud
```
2. Start backend services
```bash
cd docker
docker-compose -f dev.docker-compose.yml up -d
```
> web-system and web-file need to be started manually
3. Start frontend development server
```bash
cd client
npm install
npm run dev
```
### Production Environment Deployment
1. Start all services
```bash
docker-compose up -d
```
2. Access the system
```
http://localhost:8080
```
3. 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
## Features
- [x] User Authentication and Authorization Management
- [x] Role and Permission Management
- [x] File Upload and Management
- [x] System Configuration Management
- [ ] Log Audit
## Development Guide
### Adding New Microservices
1. Create a new service module in the cloud directory
2. Add new service configuration in docker-compose.yml
3. Add new service routes in gateway configuration
### Frontend Development
1. Add new API interfaces in src/api
2. Create new page components in src/views
3. Configure new routes in src/router
## Contributing
1. Fork this repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the [LICENSE](LICENSE) License.