A web service platform for BA-Modding-Toolkit, supporting multi-user self-service usage.
- Mod Update - Update game mod files to the latest version
- Asset Pack - Pack resource files into game bundles
- Asset Extract - Extract assets from game bundles
- CRC Tool - Calculate and fix CRC checksums
| Component | Technology |
|---|---|
| Backend | FastAPI + SQLAlchemy + SQLite |
| Frontend | Vue 3 + Vite + Element Plus |
| Deployment | Docker Compose |
Build frontend and start backend, all services run on port 8000:
# 1. Build frontend
cd frontend
npm install
npm run build
cd ..
# 2. Start backend (automatically serves frontend static files)
cd backend
uv sync
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000
cd ..Visit http://localhost:8000
Run frontend and backend separately with hot reload:
Terminal 1 - Start backend:
cd backend
uv sync
uv run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000Terminal 2 - Start frontend:
cd frontend
npm install
npm run dev- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Frontend automatically proxies
/apirequests to backend
docker-compose up --buildVisit http://localhost
Pull from GitHub Container Registry:
# Pull image
docker pull ghcr.io/jacksen168sub/ba-modding-toolkit-web:latest
# Run container
docker run -d \
--name bamt-web \
-p 80:80 \
-v ./storage:/app/storage \
-v ./data:/app/data \
ghcr.io/jacksen168sub/ba-modding-toolkit-web:latestVisit http://localhost
| Parameter | Description |
|---|---|
-p 80:80 |
Port mapping, format: host_port:container_port |
-v ./storage:/app/storage |
Persistent file storage |
-v ./data:/app/data |
Persistent database |
Also available on Docker Hub:
docker pull jacksen168/ba-modding-toolkit-web:latestBA-Modding-Toolkit-Web/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── main.py # Application entry
│ │ ├── routers/ # API routes
│ │ ├── services/ # Business logic
│ │ ├── models/ # Data models
│ │ └── utils/ # Utilities
│ └── pyproject.toml
├── frontend/ # Vue 3 frontend
│ ├── src/
│ │ ├── pages/ # Page components
│ │ ├── components/ # Common components
│ │ ├── api/ # API wrappers
│ │ └── stores/ # State management
│ └── package.json
├── storage/ # File storage
│ ├── uploads/ # User uploads
│ └── outputs/ # Processing results
├── data/ # SQLite database
└── upstream/ # BA-Modding-Toolkit submodule
- Python >= 3.10
- Node.js >= 18
- uv (Python package manager)
Backend configuration is located in backend/app/config.py, supports environment variables:
| Variable | Description | Default |
|---|---|---|
| UPLOAD_DIR | Upload directory | storage/uploads |
| OUTPUT_DIR | Output directory | storage/outputs |
| SESSION_EXPIRE_HOURS | Session expiration time | 24 |
| CLI_COMPRESSION | Bundle compression method (lzma, lz4, original, none) | lzma |
The interface supports multiple languages:
- English (en-US)
- 简体中文 (zh-CN)
- 繁體中文 (zh-TW)
- 日本語 (ja-JP)
- 한국어 (ko-KR)
- Español (es-ES)
- Français (fr-FR)
- Русский (ru-RU)
- العربية (ar-SA)
- हिन्दी (hi-IN)
- বাংলা (bn-BD)
- ไทย (th-TH)
- BA-Modding-Toolkit - The upstream CLI tool
GNU General Public License v3.0