135 lines
3.8 KiB
Markdown
135 lines
3.8 KiB
Markdown
# ACC Server Manager
|
|
|
|
A comprehensive web-based management system for Assetto Corsa Competizione (ACC) dedicated servers.
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Prerequisites
|
|
- Windows 10/11 or Windows Server 2016+
|
|
- Go 1.23.0+
|
|
- Administrative privileges
|
|
|
|
### Installation
|
|
|
|
1. **Clone and Build**
|
|
```bash
|
|
git clone <repository-url>
|
|
cd acc-server-manager
|
|
go mod download
|
|
go build -o api.exe cmd/api/main.go
|
|
```
|
|
|
|
2. **Set Environment Variables**
|
|
```powershell
|
|
# Set tool paths (optional - defaults will be used if not set)
|
|
$env:STEAMCMD_PATH = "C:\steamcmd\steamcmd.exe"
|
|
$env:NSSM_PATH = ".\nssm.exe"
|
|
```
|
|
|
|
3. **Generate Configuration**
|
|
```powershell
|
|
# Windows PowerShell
|
|
.\scripts\generate-secrets.ps1
|
|
|
|
# Or manually copy and edit
|
|
copy .env.example .env
|
|
```
|
|
|
|
4. **Run Application**
|
|
```bash
|
|
./api.exe
|
|
```
|
|
|
|
Access at: http://localhost:3000
|
|
|
|
## ✨ Key Features
|
|
|
|
- **Multi-Server Management** - Manage multiple ACC servers from one interface
|
|
- **Steam Integration** - Automated server installation and updates
|
|
- **Real-time Monitoring** - Live server status and performance metrics
|
|
- **Advanced Security** - JWT authentication, role-based access, rate limiting
|
|
- **Configuration Management** - Web-based configuration editor
|
|
- **Service Integration** - Windows Service management
|
|
|
|
## 🔧 Configuration
|
|
|
|
### Environment Variables
|
|
The application uses environment variables for tool configuration:
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `STEAMCMD_PATH` | Path to SteamCMD executable | `c:\steamcmd\steamcmd.exe` |
|
|
| `NSSM_PATH` | Path to NSSM executable | `.\nssm.exe` |
|
|
|
|
For detailed configuration information, see [Environment Variables Documentation](documentation/ENVIRONMENT_VARIABLES.md).
|
|
|
|
## 🏗️ Architecture
|
|
|
|
- **Backend**: Go + Fiber web framework
|
|
- **Database**: SQLite with GORM
|
|
- **Authentication**: JWT with bcrypt
|
|
- **API**: RESTful with Swagger documentation
|
|
|
|
## 📚 Documentation
|
|
|
|
Comprehensive documentation is available in the [`documentation/`](documentation/) folder:
|
|
|
|
- **[Detailed README](documentation/DETAILED_README.md)** - Complete setup and usage guide
|
|
- **[Logging System](documentation/LOGGING_IMPLEMENTATION_SUMMARY.md)** - Enhanced error handling and logging
|
|
- **[Security Guide](documentation/SECURITY.md)** - Security features and best practices
|
|
- **[Configuration](documentation/CONFIGURATION.md)** - Advanced configuration options
|
|
- **[API Documentation](documentation/API.md)** - Complete API reference
|
|
- **[Deployment Guide](documentation/DEPLOYMENT.md)** - Production deployment instructions
|
|
- **[Migration Guides](documentation/)** - Database and feature migration instructions
|
|
|
|
## 🔒 Security Features
|
|
|
|
- JWT token authentication
|
|
- Role-based access control
|
|
- AES-256 encryption for sensitive data
|
|
- Comprehensive input validation
|
|
- Rate limiting and DoS protection
|
|
- Security headers and CORS protection
|
|
|
|
## 🛠️ Development
|
|
|
|
```bash
|
|
# Development with hot reload
|
|
go install github.com/cosmtrek/air@latest
|
|
air
|
|
|
|
# Run tests
|
|
go test ./...
|
|
|
|
# API Documentation
|
|
# Visit: http://localhost:3000/swagger/
|
|
```
|
|
|
|
## 📝 Environment Variables
|
|
|
|
Required variables (auto-generated by scripts):
|
|
- `JWT_SECRET` - JWT signing secret
|
|
- `APP_SECRET` - Application secret key
|
|
- `ENCRYPTION_KEY` - AES encryption key
|
|
|
|
Optional:
|
|
- `PORT` - HTTP port (default: 3000)
|
|
- `DB_NAME` - Database file (default: acc.db)
|
|
- `CORS_ALLOWED_ORIGIN` - CORS origins
|
|
|
|
## 🤝 Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create feature branch: `git checkout -b feature/name`
|
|
3. Make changes and add tests
|
|
4. Submit pull request
|
|
|
|
## 📄 License
|
|
|
|
MIT License - see [LICENSE](LICENSE) file for details.
|
|
|
|
---
|
|
|
|
For detailed documentation, troubleshooting, and advanced configuration, see the [`documentation/`](documentation/) folder.
|
|
|
|
**Happy Racing! 🏁** |