massive changes and it works

This commit is contained in:
2025-11-23 10:58:24 -06:00
parent 30aa969433
commit 2a0ff98834
3499 changed files with 7770 additions and 634687 deletions

View File

@@ -1,10 +1,10 @@
# Fuego - Blender Render Farm
# JiggaBlend - Blender Render Farm
A distributed Blender render farm system built with Go. The system consists of a manager server that handles job submission, file storage, and runner coordination, and runner clients that execute Blender renders on Linux amd64 systems.
## Architecture
- **Manager**: Central server with REST API, web UI, SQLite database, and local file storage
- **Manager**: Central server with REST API, web UI, DuckDB database, and local file storage
- **Runner**: Linux amd64 client that connects to manager, receives jobs, executes Blender renders, and reports back
## Features
@@ -20,7 +20,7 @@ A distributed Blender render farm system built with Go. The system consists of a
### Manager
- Go 1.21 or later
- SQLite3
- DuckDB (via Go driver)
### Runner
- Linux amd64
@@ -32,7 +32,7 @@ A distributed Blender render farm system built with Go. The system consists of a
1. Clone the repository:
```bash
git clone <repository-url>
cd fuego
cd jiggablend
```
2. Install dependencies:
@@ -44,9 +44,10 @@ go mod download
### Manager
Set the following environment variables for OAuth (optional):
Set the following environment variables for authentication (optional):
```bash
# OAuth Providers (optional)
export GOOGLE_CLIENT_ID="your-google-client-id"
export GOOGLE_CLIENT_SECRET="your-google-client-secret"
export GOOGLE_REDIRECT_URL="http://localhost:8080/api/auth/google/callback"
@@ -54,6 +55,14 @@ export GOOGLE_REDIRECT_URL="http://localhost:8080/api/auth/google/callback"
export DISCORD_CLIENT_ID="your-discord-client-id"
export DISCORD_CLIENT_SECRET="your-discord-client-secret"
export DISCORD_REDIRECT_URL="http://localhost:8080/api/auth/discord/callback"
# Local Authentication (optional)
export ENABLE_LOCAL_AUTH="true"
# Test User (optional, for testing only)
# Creates a local user on startup if it doesn't exist
export LOCAL_TEST_EMAIL="test@example.com"
export LOCAL_TEST_PASSWORD="testpassword"
```
### Runner
@@ -72,7 +81,7 @@ make run-manager
go run ./cmd/manager
# With custom options
go run ./cmd/manager -port 8080 -db fuego.db -storage ./storage
go run ./cmd/manager -port 8080 -db jiggablend.db -storage ./storage
```
The manager will start on `http://localhost:8080` by default.
@@ -122,14 +131,14 @@ make build-runner
## Project Structure
```
fuego/
jiggablend/
├── cmd/
│ ├── manager/ # Manager server application
│ └── runner/ # Runner client application
├── internal/
│ ├── api/ # REST API handlers
│ ├── auth/ # OAuth authentication
│ ├── database/ # SQLite database models and migrations
│ ├── database/ # DuckDB database models and migrations
│ ├── queue/ # Job queue management
│ ├── storage/ # File storage operations
│ └── runner/ # Runner management logic
@@ -160,9 +169,9 @@ fuego/
- `GET /api/jobs/{id}/files/{fileId}/download` - Download job file
### Runners
- `GET /api/runners` - List all runners
- `POST /api/runner/register` - Register a runner
- `POST /api/runner/heartbeat` - Update runner heartbeat
- `GET /api/admin/runners` - List all runners (admin only)
- `POST /api/runner/register` - Register a runner (uses registration token)
- `POST /api/runner/heartbeat` - Update runner heartbeat (runner authenticated)
- `GET /api/runner/tasks` - Get pending tasks for runner
- `POST /api/runner/tasks/{id}/complete` - Mark task as complete
- `GET /api/runner/files/{jobId}/{fileName}` - Download file for runner