System Requirements
Hardware Requirements
- CPU: 4+ cores recommended
- RAM: Minimum 8GB, 16GB recommended
- Storage: 20GB+ free disk space
- Network: Stable internet connection for pulling Docker images
Software Requirements
- Operating System: Linux, macOS, or Windows with WSL2
- Docker: Version 20.10 or later
- Docker Compose: Version 2.0 or later
- Git: Version 2.30 or later
Installation Methods
Step-by-Step Installation
Install Docker and Docker Compose
Linux
macOS
Windows (WSL2)
- Install WSL2: https://docs.microsoft.com/en-us/windows/wsl/install
- Install Docker Desktop for Windows
- Enable WSL2 integration in Docker Desktop settings
- Verify installation in WSL2 terminal:
Prepare the Config Repository
SGIVU uses centralized configuration stored in a separate Git repository. For development, you can use the native profile to load configs from the local filesystem.The Docker Compose dev setup uses the
native profile and mounts the config directory automatically.Configure Environment Variables
Navigate to the Docker Compose directory:For development:For production:Edit the environment file with your preferred editor:Key variables to configure (see Configuration for details):
SERVICE_INTERNAL_SECRET_KEY- Secret for service-to-service communicationREDIS_PASSWORD- Redis authentication passwordPOSTGRES_PASSWORD- PostgreSQL passwordMYSQL_ROOT_PASSWORD- MySQL root passwordJWT_KEYSTORE_PASSWORD- JWT keystore passwordSGIVU_GATEWAY_SECRET- OAuth2 client secret
Generate JWT Keystore (Production Only)
For production deployments, generate a custom JWT keystore:Place the keystore in the auth service resources directory:Update the environment variables:
JWT_KEYSTORE_LOCATION=classpath:keystore.jksJWT_KEYSTORE_PASSWORD=YOUR_KEYSTORE_PASSWORDJWT_KEY_ALIAS=sgivu-jwtJWT_KEY_PASSWORD=YOUR_KEY_PASSWORD
Configure AWS S3 (Production Only)
For vehicle image storage, configure AWS S3:
- Create an S3 bucket:
- Create an IAM user with S3 access and generate access keys
- Update environment variables:
- Configure bucket CORS policy to allow frontend access
Initialize Databases (Optional)
The Docker Compose setup automatically initializes databases. For manual setup:Flyway migrations run automatically when services start.
Post-Installation Configuration
Configure Nginx (Production)
For production deployments, configure Nginx as the public entry point:Set Up Monitoring
Access Zipkin for distributed tracing:Troubleshooting
Docker Issues
Problem: Docker daemon not runningPort Conflicts
Problem: Ports already in useService Startup Issues
Problem: Config Server not accessibleDatabase Issues
Problem: Database connection failuresNext Steps
Configuration
Learn about all configuration options
Docker Deployment
Understand the Docker architecture
API Reference
Explore the API documentation
Architecture
Understand the system architecture