| title |
aliases |
tags |
created |
updated |
| BAIC — Client Knowledge |
| baic-dashboard |
| baic-deploy |
|
| client-knowledge |
| baic |
| deploy |
| rsync |
| azure-ad |
|
2026-05-06 |
2026-05-10 |
BAIC
BAIC is a Chinese automotive brand. Oliver Agency maintains the BAIC Dashboard — an internal analytics/reporting tool hosted on the main Oliver web server (baic SSH alias).
Key Facts
- SSH alias:
baic → vadym.samoilenko@10.220.72.13 (same server as many Oliver projects — see wiki/infrastructure/server-baic)
- URL:
https://baic.oliver.solutions/dashboard/
- Auth: Azure AD / Microsoft SSO via MSAL
- Stack: React + Vite (frontend) + FastAPI (backend)
Deploy Process
[!important] No git on server — deploy via rsync only
# 1. Build locally
npm run build
# 2. Sync dist/ to server (no git pull on server)
rsync -avz --delete dist/ baic:/var/vhosts/baic.oliver.solutions/htdocs/dashboard/
- Remote path:
/var/vhosts/baic.oliver.solutions/htdocs/dashboard/
- Backend systemd service:
baic_dashboard.service (underscore, not hyphen)
# Restart backend after Python changes
ssh baic "sudo systemctl restart baic_dashboard.service"
# Check status
ssh baic "sudo systemctl status baic_dashboard.service"
Deploy Gotchas
| Issue |
Detail |
No .env file needed |
Backend reads env vars with OS defaults directly in app.py — do not create .env on server |
| rsync "failed to set times" warning |
rsync warns about directory timestamp permission — benign; content copies correctly |
deploy.sh is initial setup only |
Script in repo targets first-time setup (wrong service name, interactive prompts) — never use for updates |
| Old Vite hashes accumulate |
assets/ on the server grows with each deploy (old content-hash files never cleaned); manually prune if needed |
Known Gotchas
Features
| Feature |
Detail |
Added |
| Per-User Report tab |
CSV export for Michael (client stakeholder) — replaces manual Python script previously run ad-hoc |
2026-05-06 |
Pending
Related