Lumenvil is a complete build automation solution designed for game development teams. Run Unity builds on a dedicated machine, monitor progress in real-time from any device, and deploy directly to Steam.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Dashboard │◄────►│ Backend │◄────►│ Build Agent │
│ (Next.js) │ │ (.NET API) │ │ (Win/Mac/Linux)
└─────────────┘ └─────────────┘ └─────────────┘
Any Device SignalR Unity + Steam
- IL2CPP & Mono scripting backend support
- Git integration with branch selection and commit tracking
- Cross-platform build agent (Windows, macOS, Linux)
- Queue system for managing multiple builds
- Pre-build processes - run tasks before Unity starts building
- Post-build processes - run tasks after build completes
- Define symbols - add or remove scripting defines per build
- Player settings - modify company name, version, screen settings
- Scene list - configure which scenes to include
- Custom code - execute C# scripts during build
- Shell commands - run external scripts or commands
- File operations - copy/move files as part of the pipeline
- Save configurations as reusable templates
- Quick builds - start builds with one click
- Branch + backend + pipeline combinations saved
- Live build logs streaming via SignalR
- Progress tracking with stage indicators
- Toast notifications for build events
- Multi-client sync - watch from multiple devices
- Automatic upload via SteamCMD
- Branch selection (default, beta, staging)
- Upload status tracking in dashboard
- Discord webhooks with rich embeds
- Slack webhooks with formatted messages
- Custom webhooks with HMAC signing
- Per-project overrides for notification settings
- Automatic cleanup of old builds
- Disk space monitoring with alerts
- Configurable retention (by age or count)
- Steam upload protection - keep deployed builds
- Role-based access: Admin, Developer, Viewer
- JWT authentication
- User invitation system
| Component | Technology |
|---|---|
| Backend | .NET 6 Web API, SignalR, Entity Framework Core |
| Dashboard | Next.js 14, TypeScript, Tailwind CSS, shadcn/ui |
| Build Agent | .NET 6 Console App (cross-platform) |
| Database | SQLite |
| Real-time | SignalR WebSockets |
- .NET 6 SDK
- Node.js 18+
- Unity (on build machine)
- Git
git clone https://github.com/yourusername/lumenvil.git
cd lumenvil
# Backend
cd src/Backend
cp .env.example .env # Edit with your settings
dotnet restore
# Dashboard
cd ../Dashboard
npm install./start.shOr manually:
# Terminal 1: Backend
cd src/Backend && dotnet run
# Terminal 2: Dashboard
cd src/Dashboard && npm run dev
# Terminal 3: Build Agent
cd src/BuildAgent && dotnet runOpen http://localhost:3000
Default credentials:
- Username:
admin - Password:
admin123
lumenvil/
├── src/
│ ├── Backend/ # .NET Web API
│ │ ├── Controllers/ # REST endpoints
│ │ │ ├── AuthController.cs
│ │ │ ├── BuildController.cs
│ │ │ ├── BuildTemplateController.cs
│ │ │ ├── GitController.cs
│ │ │ ├── PipelineController.cs
│ │ │ ├── ProjectController.cs
│ │ │ ├── SettingsController.cs
│ │ │ └── UserController.cs
│ │ ├── Hubs/ # SignalR hub
│ │ ├── Models/ # Data models
│ │ └── Services/
│ │ ├── Notifications/ # Discord, Slack, Webhooks
│ │ └── Platforms/ # Steam uploader
│ │
│ ├── BuildAgent/ # Cross-platform build service
│ │ └── Services/
│ │ ├── UnityBuildRunner.cs
│ │ ├── GitService.cs
│ │ └── AgentHubClient.cs
│ │
│ └── Dashboard/ # Next.js frontend
│ ├── app/
│ │ └── dashboard/
│ │ ├── builds/
│ │ ├── pipelines/
│ │ ├── projects/
│ │ ├── settings/
│ │ ├── templates/
│ │ └── users/
│ ├── components/
│ └── lib/
│
├── database/ # SQLite database
└── start.sh # Development startup script
# JWT
JWT_KEY=your-super-secret-key-min-32-characters
JWT_ISSUER=Lumenvil
JWT_AUDIENCE=Lumenvil
# Admin
ADMIN_USERNAME=admin
ADMIN_PASSWORD=change-this-password
ADMIN_EMAIL=admin@example.com
# Database
DATABASE_PATH=../database/buildautomation.db{
"HubUrl": "http://localhost:5000/hubs/build",
"AgentName": "build-agent-01",
"UnityHubPath": "C:\\Program Files\\Unity\\Hub\\Editor",
"BuildOutputBase": "./builds",
"WorkspacePath": "./workspace"
}Unity Hub paths by platform:
- Windows:
C:\Program Files\Unity\Hub\Editor - macOS:
/Applications/Unity/Hub/Editor - Linux:
~/Unity/Hub/Editor
cloudflared tunnel run lumenvilAccess via https://lumenvil.yourdomain.com
Install on all devices, access via Tailscale network.
Open ports 3000 (Dashboard) and 5000 (API) on your router.
| Endpoint | Method | Description |
|---|---|---|
/api/auth/login |
POST | User login |
| Endpoint | Method | Description |
|---|---|---|
/api/project |
GET | List all projects |
/api/project |
POST | Create project |
/api/project/{id} |
GET | Get project details |
/api/project/{id} |
PUT | Update project |
/api/project/{id} |
DELETE | Delete project |
| Endpoint | Method | Description |
|---|---|---|
/api/build |
GET | List builds |
/api/build |
POST | Start new build |
/api/build/{id} |
GET | Get build details + logs |
/api/build/{id}/cancel |
POST | Cancel build |
| Endpoint | Method | Description |
|---|---|---|
/api/buildtemplate |
GET | List templates |
/api/buildtemplate |
POST | Create template |
/api/buildtemplate/{id}/build |
POST | Start build from template |
| Endpoint | Method | Description |
|---|---|---|
/api/pipeline |
GET | List pipelines |
/api/pipeline |
POST | Create pipeline |
/api/pipeline/{id} |
GET | Get pipeline details |
/api/pipeline/{id}/processes |
POST | Add process to pipeline |
| Endpoint | Method | Description |
|---|---|---|
/api/settings/steam |
GET/PUT | Steam configuration |
/api/settings/cleanup |
GET/PUT | Cleanup settings |
/api/settings/disk |
GET | Disk space info |
/api/settings/notifications |
GET/PUT | Notification settings |
| Endpoint | Method | Description |
|---|---|---|
/api/git/branches |
GET | List branches for repository |
Full API documentation available at /swagger when running in development.
- Parallel builds with library caching
- Email notifications (SMTP)
- Build analytics & statistics
- Windows Service installer
- Docker deployment
- macOS/Linux builds (currently agent supports all platforms)
MIT License - see LICENSE for details.
This project is free and open source. If you're using Lumenvil commercially or as part of a paid service, I'd love to hear from you! While not required, reaching out helps me understand how the project is being used and prioritize features.
Contact: aygunozmen@gmail.com
Built for game developers, by game developers






