🚀 SparkLumina - Quick Start Guide
Get started with SparkLumina in 5 minutes!
📋 General Prerequisites
- ✅ Node.js 18+ (Download)
- ✅ npm (included with Node.js)
Verify versions:
node -v # v18.0.0 or higher required
npm -v # 9.0.0 or higher required
1️⃣ Local Quick Start via ./start.sh
Dependencies
| Dependency | Description |
|---|---|
| Node.js 18+ | Runtime for frontend and backend |
| npm | Package manager |
| Python 3 | Required for AI teaching / AI assets / TTS |
| FFmpeg | Required for recording/export MP4 transcoding (WebM → MP4) |
AI service Python dependencies (first time using AI features):
pip3 install -r backend/src/ai_agent_service/requirements.txt
MP4 transcoding (recording/export video):
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Or specify custom path via .env
# FFMPEG_PATH=/usr/local/bin/ffmpeg
If not installed, the backend will try node_modules/ffmpeg-static; if still unavailable, saving as MP4 will fail.
Startup
# 1. Enter project directory
cd /path/to/SparkLumina
# 2. One-click start (auto-install deps, start frontend + backend + AI service)
./start.sh
The script will automatically:
- Check Node.js version
- Install npm dependencies (root, frontend, backend)
- Start AI Agent service (port 8652)
- Start frontend (8051) and backend (8056)
Access URL: http://localhost:8051
Optional flags:
./start.sh --no-install: Skip dependency install for faster restarts- Env vars:
FRONTEND_HOST,FRONTEND_PORT,BACKEND_HOST,BACKEND_PORT,AI_PORTfor custom addresses
2️⃣ App Deployment
./release.sh is SparkLumina's unified release entry, supporting desktop installers (Electron) and Android APK.
Dependencies
| Platform | Dependencies |
|---|---|
| Electron Desktop | Node.js 18+, npm, electron-builder |
| macOS DMG | Build only on macOS |
| Windows exe | Native Windows or cross-compile on macOS |
| Android APK | Node.js 18+, JDK 17+, Android SDK (with ANDROID_HOME) |
Environment variables (.env):
cp .env.example .env
| Variable | Description | Default |
|---|---|---|
VITE_API_BASE | Backend API URL | http://123.57.244.242:8056 |
VITE_AI_AGENT_SERVICE_BASE | AI teaching service URL | http://123.57.244.242:8652 |
Startup
Electron Desktop:
./release.sh mac # macOS DMG
./release.sh windows # Windows exe
./release.sh desktop # Both DMG + exe on macOS
Android APK:
- JDK 17 (macOS):
brew install openjdk@17
export JAVA_HOME="$(brew --prefix openjdk@17)"
-
Android SDK: Install Android Studio or
brew install --cask android-commandlinetools, setANDROID_HOMEand installplatforms;android-36,build-tools;36.0.0. -
Build:
./release.sh android
Output: app/release/SparkLumina-{version}-android.apk.
release.sh quick reference:
| target | Description | Output |
|---|---|---|
mac | macOS DMG | app/release/SparkLumina-{version}-macos-{arch}.dmg |
windows | Windows installer | app/release/SparkLumina-{version}-windows.exe |
desktop | Mac + Windows (macOS only) | Both above |
android | Android APK (debug) | app/release/SparkLumina-{version}-android.apk |
all | Full: Docker + desktop + Android | All for current system |
3️⃣ Docker Deployment
Dependencies
| Dependency | Description |
|---|---|
| Docker | Build and run containers |
| Docker Compose | Multi-service orchestration |
| .env | ACR config (when building images) |
Prepare .env:
cp .env.example .env
| Variable | Description | Example |
|---|---|---|
ACR_REGISTRY | Image registry URL | registry.cn-beijing.aliyuncs.com |
ACR_NAMESPACE | Namespace | your-namespace |
IMAGE_TAG | Image tag (optional) | 1.0.0 |
Startup
Image build (push to ACR):
./release.sh docker # Build and push
./release.sh docker --no-push # Local build only
./release.sh docker --platform arm64
./release.sh docker --platform both # Multi-arch
Image list:
{ACR_REGISTRY}/{ACR_NAMESPACE}/frontend_server:{IMAGE_TAG}{ACR_REGISTRY}/{ACR_NAMESPACE}/backend_server:{IMAGE_TAG}{ACR_REGISTRY}/{ACR_NAMESPACE}/ai_agent_server:{IMAGE_TAG}
Deploy on server with Docker Compose:
-
Prepare deploy dir: Put
docker-compose.ymland.envin the same directory (e.g./deploy/). -
Configure .env: Ensure
ACR_REGISTRY,ACR_NAMESPACE,IMAGE_TAGmatch the build. -
Pull and start:
cd /deploy
docker compose pull
docker compose up -d
docker compose ps
Port mapping:
| Service | Port | Purpose |
|---|---|---|
| frontend | 8051 | Frontend UI |
| backend | 8056 | API, Socket.IO |
| ai | 8652 | AI teaching service |
Visit http://<server-IP>:8051 to use.
Made with ❤️ for educators and learners worldwide