Allow address, phone, map, and related site chrome to be edited from contact/settings for all editors, and enlarge brand marks on login, header, and preloader.
Co-authored-by: Cursor <cursoragent@cursor.com>
On a shared Docker network (Dokploy) plain service names like web or api
also resolve to other stacks' containers, so the gateway balanced requests
across foreign containers and returned 502. Services reached by name now
carry an imen-* alias, used by the gateway upstreams and the service URLs.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- API: `pnpm build` bundles dist/ into apps/api/.output (esbuild), with
Linux musl native packages for sharp and argon2 kept alongside
- docker/api.Dockerfile copies that output; no pnpm install on the server
- add dist/migrate.js (prisma migrate deploy equivalent, same
_prisma_migrations table and lock) so the Prisma CLI is not needed at runtime
- pnpm-workspace: supportedArchitectures for linux/x64/musl
- admin: apps/admin/.env.production sets VITE_SITE_URL for the production build
- drop NPM_REGISTRY / SITE_URL build args from compose and .env.example
- gitignore: anchor node_modules rules so pre-built node_modules are committed
- README: describe the pre-built deploy flow
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Switch admin auth to mobile, restyle shell/login with Vuesax icons, and add product detail fields plus public product pages.
Co-authored-by: Cursor <cursoragent@cursor.com>
Restructure the repo into a pnpm + Turborepo monorepo:
- apps/web: Nuxt 4 site, now server-rendered and reading all content
from the API; pages cached with SWR and purged on content changes
- apps/api: NestJS 12 + Prisma 7 + PostgreSQL. Auth with short-lived
access tokens and rotating httpOnly refresh cookies, roles (ADMIN,
EDITOR), catalog, editable site sections, media upload to S3-compatible
storage (converted to WebP), contact messages, audit log
- apps/admin: Vue 3 admin panel (Ant Design Vue, Pinia, Tailwind) for
products, categories, site sections, messages, media and users
- packages/shared: Zod schemas and types shared by API and admin
Also:
- seed script that loads the original 8 categories / 89 products and
section content
- Docker images for api (with a one-off migrate service), web, admin,
and an nginx gateway for both domains
- dev and production compose files, daily database backup service
- API e2e tests
Removes the committed static out/ build and the old root Dockerfile.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Rebuild Docker setup with simplified nginx-only Dockerfile (build runs
on host). Add category detail pages, IRANSans font files, product
images, and update all landing sections.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Full 1:1 migration preserving all visuals, animations and behavior:
- Nuxt 4 + Vue 3 (script setup, TypeScript strict) with SSG output
- Tailwind CSS v4 with @tailwindcss/vite
- Ant Design Vue 4 (dark theme, RTL, Persian locale) for design system
- Pinia for state management (ui + contact stores)
- motion-v (framer-motion port) for all animations
- lucide-vue-next for icons
- SEO improvements: og:image, canonical fix, real 404 page, JSON-LD services
- JS bundle reduced from 302KB to 239KB gzip
- Docker/nginx deployment preserved (out/ -> nginx)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>