Polish business FA layout and wire special-group keys plus SSL sync.

RTL carousels/FABs, special key+title fields, slider gallery fixes, and dashboard SSL sync agent for super-admin.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-03 00:06:44 +03:30
co-authored by Cursor
parent 66004a0fba
commit 672091d1f5
113 changed files with 4154 additions and 1451 deletions
+41 -3
View File
@@ -15,10 +15,48 @@ API: `https://api.meshkee.com/api/v1` (separate server).
1. Add business + domain in Super Admin (apex, e.g. `sanihome.ir`)
2. Add Arvan **A** records (DNS-only): `business` + `customer` → dashboards VPS IP
3. Within ~2 hours, `/opt/meshkee/dashboards/scripts/ssl-sync.sh` expands the cert via
`GET https://api.meshkee.com/api/v1/internal/ssl/hosts` (`X-SSL-Sync-Token`)
3. In Super Admin → **Websites****Sync SSL now** (or wait for cron ~2h)
Manual: `sudo /opt/meshkee/dashboards/scripts/ssl-sync.sh`
Manual on the VPS: `sudo /opt/meshkee/dashboards/deploy/ssl-sync.sh`
Cron (root):
```
0 */2 * * * /opt/meshkee/dashboards/deploy/ssl-sync.sh >> /var/log/meshkee-ssl-sync.log 2>&1
```
### SSL sync agent (on-demand from Super Admin)
Small Node agent on the dashboards VPS; Nest calls it after the button is clicked.
1. Files under `/opt/meshkee/dashboards/deploy/`: `ssl-sync.sh`, `ssl-sync-agent.mjs`, `meshkee-ssl-sync-agent.service`
2. Make the script executable: `chmod +x /opt/meshkee/dashboards/deploy/ssl-sync.sh`
3. Agent env `/etc/meshkee/ssl-sync-agent.env`:
```
SSL_SYNC_AGENT_TOKEN=<secret>
SSL_SYNC_SCRIPT=/opt/meshkee/dashboards/deploy/ssl-sync.sh
PORT=9051
BIND=0.0.0.0
```
4. Install + start:
```bash
cp /opt/meshkee/dashboards/deploy/meshkee-ssl-sync-agent.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable --now meshkee-ssl-sync-agent
ufw allow from 185.164.72.119 to any port 9051 proto tcp comment 'SSL sync agent from API'
```
5. API `.env`:
```
SSL_SYNC_AGENT_URL=http://45.149.76.52:9051/ssl-sync
SSL_SYNC_AGENT_TOKEN=<same secret>
```
Endpoint used by the UI: `POST /api/v1/domains/ssl-sync` (super-admin JWT).
## Redeploy frontends
+1 -1
View File
@@ -492,7 +492,7 @@ Migration: `database/migrations/033_business_favicon.sql`
| API | `https://api.meshkee.com/api/v1` (host `185.164.72.119`) |
| Docs | `docs/DEPLOY.md` |
SSL: Certbot cert `meshkee-dashboards` + cron `ssl-sync.sh` every 2h (option A: `GET /api/v1/internal/ssl/hosts`).
SSL: Certbot cert `meshkee-dashboards` + cron `ssl-sync.sh` every 2h + Super Admin **Sync SSL now** (`POST /domains/ssl-sync` → dashboards agent).
---