AUDIT — VPS Welife vs APP_DESIGN_BUILD
Ngày: 2026-07-31
VPS: root@180.93.146.58 · host Megahost.1785139359 · app /opt/welife
Tham chiếu: D:\APP_DESIGN_BUILD (HomeFix / Construction platform)
Welife repo: D:\welife
0. Verdict ngắn
| Câu hỏi |
Kết luận |
| Máy chủ Welife đang có gì? |
API + Postgres/PostGIS + Redis + MinIO + Mailpit · Nginx HTTPS · health OK |
| Còn trống gì trên VPS? |
2 env trống: MAPBOX_ACCESS_TOKEN, OPENAI_API_KEY · thiếu key Pay/SMS live |
| Thiếu so với APP_DESIGN_BUILD? |
Không cùng sản phẩm — APP = xây dựng/CRM/AI design (~162 feature); Welife = siêu ứng dụng đời sống (rides/FNB/rentals/…) |
| Cần làm gì tiếp (Welife)? |
Harden prod (Pay/SMS) · optional AI · deploy dashboard static · (sau) OSRM self-host |
Không copy nguyên APP_DESIGN_BUILD vào Welife — domain nghiệp vụ khác nhau.
1. Máy chủ Welife — đang có
1.1 Containers (docker compose)
| Container |
Status |
Port (host) |
welife-api |
Up |
127.0.0.1:3000 |
welife-postgres |
healthy |
127.0.0.1:5432 |
welife-redis |
healthy |
127.0.0.1:6380→6379 |
welife-minio |
healthy |
127.0.0.1:9000–9001 |
welife-mailpit |
healthy |
(SMTP OTP inbox) |
1.2 Domains (HTTP 200)
| URL |
Vai trò |
https://api.minhtien.cloud |
Nest API + WS |
https://admin.minhtien.cloud |
Admin UI |
https://docs.minhtien.cloud |
Docs |
https://www.minhtien.cloud / https://minhtien.cloud |
Web |
Health: {"status":"ok","service":"welife-api","env":"production"}
1.3 API runtime
- 328 ops / 0 STUB / 34 tags (local audit)
- Modules: auth, wallet, pay, rides, driver, FNB/merchants, hotels, rentals, pharmacy, medical, schools, park/fuel/atm, chat, social, routing (OSRM live), places, …
- Routing:
provider=welife-osrm (không cần Mapbox)
1.4 Surfaces trên VPS filesystem
| Path |
Trên VPS? |
Ghi chú |
/opt/welife/api |
Có |
Source + container |
mobile / driver / partner |
Không trên VPS |
Đúng — Expo client build local/EAS, không cần copy lên API host |
dashboard |
Không dưới /opt/welife |
Admin đang phục vụ qua Nginx (build tĩnh riêng) |
docs |
Không trong tree depth-2 |
Docs domain riêng |
2. Env VPS — đầy / trống
| Nhóm |
Trạng thái |
| JWT / DB / Redis / S3 |
Đầy (53 key có giá trị) |
| SMTP / OTP email / Mailpit |
Đầy (OTP_CHANNEL=email) |
| OSRM / Nominatim |
Đầy (ROUTING_PROVIDER=auto) |
MAPBOX_ACCESS_TOKEN |
EMPTY — OK (đã có OSRM) |
OPENAI_API_KEY |
EMPTY — assistant AI yếu / tắt |
| MoMo / VNPay keys |
MISSING — PAYMENTS_MOCK đang bật |
| eSMS / Twilio |
MISSING — SMS_PROVIDER console/không SMS live |
Đếm: ~53 filled · 2 empty (Mapbox, OpenAI) · Pay/SMS live chưa cấu hình.
3. APP_DESIGN_BUILD là gì (tham chiếu)
|
APP_DESIGN_BUILD |
WELIFE |
| Sản phẩm |
Construction / HomeFix |
Lifestyle super-app |
| Prod |
homefix.asia |
minhtien.cloud |
| FE |
Expo Router monorepo (~630 screens, 162 feature-map) |
Expo apps tách: mobile / driver / partner |
| BE |
Nest + Perfex CRM + Strapi + AI gateway + LiveKit… |
Nest monorepo api/ (1 stack) |
| Roles |
customer · worker · contractor · engineer |
USER · DRIVER · PARTNER · ADMIN |
| Domain chính |
Dự án, chấm công, CRM, VLXD, AI design, live công trình |
Đặt xe, FNB, KS, phòng trọ, y tế, ví, social |
Feature APP có — Welife không nhắm (ngoài scope)
- Construction progress / camera công trình / LiveKit live site
- Labor payroll · attendance · contractor CRM (Perfex)
- AI design studio · architect visualizer · Gemini
- Marketplace nội thất / VLXD chi tiết
- Google OAuth + Firebase client keys trên FE
- Stripe publishable · GetOTP
- AR viewer · as-built · change-order
Pattern APP có — Welife đã có tương đương / một phần
| APP |
Welife |
| Chat WS |
Chat WS |
| Map / geo |
Places + Routing OSRM + RN Maps |
| Orders / cart / payments |
Cart · Orders · Payments (mock) |
| Auth OTP |
Auth OTP email (+ SMS stub) |
| Admin dashboard |
dashboard/ + admin.minhtien.cloud |
| AI assistant |
Assistant module (cần OPENAI_API_KEY) |
| Notifications |
Notifications |
| Profile / KYC |
User · KYC |
Welife có — APP không (siêu app đời sống)
Rides + Driver · Parking · Fuel · ATM · Hotels · Rentals · Pharmacy · Medical · Schools · Social · Wallet transfer · Partner multi-vertical · Grocery/FNB marketplace kiểu Grab.
4. Còn thiếu / cần làm (Welife only)
P0 — Harden production (OWNER)
| # |
Việc |
Lý do |
| 1 |
Pay live: MoMo/VNPay + PAYMENTS_MOCK=false |
Hiện mock |
| 2 |
SMS OTP live (eSMS/Twilio) nếu bỏ email-only |
Hiện email/Mailpit |
| 3 |
OPENAI_API_KEY nếu muốn assistant thật |
Đang trống |
| 4 |
Tắt / siết ALLOW_INTERNAL_WALLET_CREDIT nếu còn true |
Rủi ro ví |
P1 — Infra / UX
| # |
Việc |
| 5 |
(Optional) Self-host OSRM thay router.project-osrm.org |
| 6 |
Deploy/cập nhật pipeline dashboard → admin.minhtien.cloud từ CI |
| 7 |
EAS build mobile/driver/partner (APP có eas.json; Welife chưa) |
| 8 |
Monitoring stack (APP có monitoring/) — Welife chưa bắt buộc |
P2 — Không làm trừ khi đổi product brief
- Port construction/CRM/AI-design từ APP_DESIGN_BUILD
- Copy 162 feature-map HomeFix vào Welife
5. Checklist “máy chủ đủ cho Welife MVP?”
| Hạng mục |
Đủ? |
| API HTTPS + health |
✅ |
| DB PostGIS + Redis + MinIO |
✅ |
| OTP email |
✅ |
| Directions đường thật (OSRM) |
✅ |
| Admin web |
✅ (HTTP 200) |
| Consumer/Driver/Partner native |
⚠️ Build trên máy/EAS — không nằm VPS |
| Pay / SMS live |
❌ OWNER |
| AI assistant live |
❌ OWNER (key) |
| Mapbox |
Không bắt buộc |
Kết luận máy chủ: đủ chạy Welife MVP production API. Chưa đủ parity với APP_DESIGN_BUILD vì đó là app xây dựng khác — và cũng chưa đủ “full harden” (pay/SMS/AI).
ENV packaging (2026-07-31): xem ENV-PACKAGING.md · npm run env:bootstrap · npm run env:check.
6. Next khuyến nghị
- Không merge APP_DESIGN_BUILD → Welife.
- Owner điền Pay/SMS/OpenAI nếu go-live cứng.
- Giữ OSRM; Mapbox optional.
- Nếu muốn “giống APP về mặt vận hành”: thêm EAS + monitoring — riêng WP.
Audit: VPS Welife vs APP_DESIGN_BUILD
Status: DIFFERENT_PRODUCTS · VPS_MVP_OK · HARDEN_OWNER
Empty env: MAPBOX · OPENAI
Missing live: Pay · SMS