Marketing site (bargevasat.ir) + admin-editable store links + subdomain split
- New standalone Next.js marketing site under site/ (static export, SEO): landing, download/install guide (Bazaar/Myket/iOS-PWA/web), FAQ (JSON-LD), privacy, terms, support, /admin link editor. fa RTL, sitemap/robots/manifest. - Backend: SiteLinksService (JSON-file persisted) + GET /api/site/links (public) + POST /api/admin/site/links (X-Admin-Token). ADMIN_TOKEN + Site__DataDir via env. - compose: hokm-site service (:1520) + hokm_data volume for links JSON. - CI deploy job builds + deploys the site container. - deploy/SUBDOMAIN_SPLIT.md: nginx blocks, cert reissue, DNS, ENV split. - Exclude site/ from root tsc + web docker context. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -132,7 +132,7 @@ jobs:
|
||||
if [ -n "$CURRENT" ]; then docker tag "$CURRENT" hokm-server:rollback && echo "rollback tag = $CURRENT"; fi
|
||||
|
||||
- name: Build images
|
||||
run: docker compose build --parallel server web
|
||||
run: docker compose build --parallel server web site
|
||||
env:
|
||||
DOCKER_BUILDKIT: 1
|
||||
COMPOSE_DOCKER_CLI_BUILD: 1
|
||||
@@ -182,6 +182,22 @@ jobs:
|
||||
sleep 5
|
||||
done
|
||||
|
||||
- name: Deploy marketing site (stop + rm + up, no force-recreate)
|
||||
run: |
|
||||
docker stop hokm-site 2>/dev/null || true
|
||||
docker rm hokm-site 2>/dev/null || true
|
||||
docker compose up -d --no-deps site
|
||||
|
||||
- name: Wait for site healthy
|
||||
run: |
|
||||
for i in $(seq 1 18); do
|
||||
S=$(docker inspect --format='{{.State.Health.Status}}' hokm-site 2>/dev/null || echo missing)
|
||||
echo " [$i/18] site: $S"
|
||||
[ "$S" = "healthy" ] && { echo "OK hokm-site healthy"; break; }
|
||||
[ "$i" = "18" ] && { echo "TIMEOUT hokm-site"; docker compose logs --tail=40 site; exit 1; }
|
||||
sleep 5
|
||||
done
|
||||
|
||||
- name: Prune dangling images
|
||||
if: success()
|
||||
run: docker image prune -f
|
||||
|
||||
Reference in New Issue
Block a user