Marketing site (bargevasat.ir) + admin-editable store links + subdomain split
CI/CD / CI - API (dotnet build + engine sim) (push) Successful in 4m40s
CI/CD / CI - Web (tsc + next build) (push) Successful in 1m7s
CI/CD / Deploy - local stack (db + server + web) (push) Failing after 41s

- 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:
soroush.asadi
2026-06-08 07:19:43 +03:30
parent 8d0d4dc991
commit 5d38312ef0
39 changed files with 8207 additions and 2 deletions
+48
View File
@@ -0,0 +1,48 @@
import Link from "next/link";
import { Logo } from "./Logo";
import { BRAND } from "@/lib/site";
export function Footer() {
return (
<footer className="mt-24 border-t border-gold/10 bg-navy-950/60">
<div className="mx-auto grid max-w-6xl gap-8 px-4 py-12 sm:grid-cols-2 md:grid-cols-4">
<div className="sm:col-span-2 md:col-span-1">
<div className="flex items-center gap-2">
<Logo size={30} />
<span className="font-extrabold gold-text">{BRAND.nameFa}</span>
</div>
<p className="mt-3 max-w-xs text-sm leading-7 text-cream/60">{BRAND.descFa}</p>
</div>
<div>
<h4 className="mb-3 font-bold text-cream">بازی</h4>
<ul className="space-y-2 text-sm text-cream/65">
<li><Link href="/#features" className="hover:text-cream">ویژگیها</Link></li>
<li><Link href="/download" className="hover:text-cream">دانلود و نصب</Link></li>
<li><Link href="/faq" className="hover:text-cream">سوالهای متداول</Link></li>
</ul>
</div>
<div>
<h4 className="mb-3 font-bold text-cream">قوانین</h4>
<ul className="space-y-2 text-sm text-cream/65">
<li><Link href="/privacy" className="hover:text-cream">حریم خصوصی</Link></li>
<li><Link href="/terms" className="hover:text-cream">قوانین و مقررات</Link></li>
<li><Link href="/support" className="hover:text-cream">پشتیبانی</Link></li>
</ul>
</div>
<div>
<h4 className="mb-3 font-bold text-cream">ارتباط</h4>
<ul className="space-y-2 text-sm text-cream/65">
<li><a href={`mailto:${BRAND.email}`} className="hover:text-cream">{BRAND.email}</a></li>
</ul>
</div>
</div>
<div className="border-t border-gold/10 py-5 text-center text-xs text-cream/45">
© {new Date().getFullYear()} {BRAND.nameFa} همهٔ حقوق محفوظ است.
</div>
</footer>
);
}