Hệ thống TTS (Text-to-Speech) tiếng Việt dạng SaaS: API backend, dashboard quản lý, engine VieNeu-TTS, wrapper chạy trên RunPod và tích hợp WordPress.
TTS/
├── backend/ # NestJS API (port 3000)
├── dashboard/ # Next.js dashboard (port 3001)
├── VieNeu-TTS/ # Engine TTS tiếng Việt (Python)
├── runpod-wrapper/ # FastAPI wrapper cho RunPod (port 8001)
├── integrations/
│ └── wordpress/
│ └── vieneu-tts-listen-post/ # Plugin "Nghe bài viết"
├── deploy/ # Dockerfile + docker-compose
└── docs/ # API versioning, OpenAPI
Backend + Dashboard + Postgres + Redis:
cd deploy
# chuẩn bị file deploy/.env với đầy đủ biến bắt buộc
docker compose up -d
SUPER_ADMIN_EMAIL và SUPER_ADMIN_PASSWORD trong biến môi trường (không có mặc định).Chi tiết biến môi trường xem trong deploy/docker-compose.yml.
cd backend
cp .env.example .env # chỉnh DATABASE_URL, REDIS_URL, ...
npm install
npm run start:dev
cd dashboard
npm install
npm run dev
Cấu hình NEXT_PUBLIC_API_URL trỏ tới backend (vd. http://localhost:3000/api).
Cần có VieNeu-TTS tại ../VieNeu-TTS hoặc set VIENEU_TTS_PATH:
cd runpod-wrapper
uv run uvicorn app.main:app --host 0.0.0.0 --port 8001
GET /healthz — health checkGET /readyz — model đã load chưaPOST /internal/v1/synthesize — synthesize (gọi từ VPS)Xem hướng dẫn đầy đủ trong VieNeu-TTS/README.md (cài đặt, Docker, fine-tune, model formats).
/api/v1/* (synthesize, jobs, auth, usage, …)/api/internal/v1/*Quy tắc versioning: docs/API-VERSIONING.md.
OpenAPI: docs/openapi/tts-api-v1.yaml.
Plugin VieNeu TTS - Nghe bài viết thêm nút nghe bài trên single post, gọi backend qua API key tenant.
https://your-vps-domain.com/api20 commits
Python
50.3%
TypeScript
25.4%
HTML
10.6%
Jupyter Notebook
6.8%
Shell
1.8%
Makefile
1.7%
PHP
1.4%
Hệ thống TTS (Text-to-Speech) tiếng Việt dạng SaaS: API backend, dashboard quản lý, engine VieNeu-TTS, wrapper chạy trên RunPod và tích hợp WordPress.
TTS/
├── backend/ # NestJS API (port 3000)
├── dashboard/ # Next.js dashboard (port 3001)
├── VieNeu-TTS/ # Engine TTS tiếng Việt (Python)
├── runpod-wrapper/ # FastAPI wrapper cho RunPod (port 8001)
├── integrations/
│ └── wordpress/
│ └── vieneu-tts-listen-post/ # Plugin "Nghe bài viết"
├── deploy/ # Dockerfile + docker-compose
└── docs/ # API versioning, OpenAPI
Backend + Dashboard + Postgres + Redis:
cd deploy
# chuẩn bị file deploy/.env với đầy đủ biến bắt buộc
docker compose up -d
SUPER_ADMIN_EMAIL và SUPER_ADMIN_PASSWORD trong biến môi trường (không có mặc định).Chi tiết biến môi trường xem trong deploy/docker-compose.yml.
cd backend
cp .env.example .env # chỉnh DATABASE_URL, REDIS_URL, ...
npm install
npm run start:dev
cd dashboard
npm install
npm run dev
Cấu hình NEXT_PUBLIC_API_URL trỏ tới backend (vd. http://localhost:3000/api).
Cần có VieNeu-TTS tại ../VieNeu-TTS hoặc set VIENEU_TTS_PATH:
cd runpod-wrapper
uv run uvicorn app.main:app --host 0.0.0.0 --port 8001
GET /healthz — health checkGET /readyz — model đã load chưaPOST /internal/v1/synthesize — synthesize (gọi từ VPS)Xem hướng dẫn đầy đủ trong VieNeu-TTS/README.md (cài đặt, Docker, fine-tune, model formats).
/api/v1/* (synthesize, jobs, auth, usage, …)/api/internal/v1/*Quy tắc versioning: docs/API-VERSIONING.md.
OpenAPI: docs/openapi/tts-api-v1.yaml.
Plugin VieNeu TTS - Nghe bài viết thêm nút nghe bài trên single post, gọi backend qua API key tenant.
https://your-vps-domain.com/api20 commits
Python
50.3%
TypeScript
25.4%
HTML
10.6%
Jupyter Notebook
6.8%
Shell
1.8%
Makefile
1.7%
PHP
1.4%