feat(deploy): production deployment setup and fixes
- Debian-based api image (bookworm-slim), docker/debian mirrors, prisma binaryTargets for openssl 3.0 - nginx: admin SPA under /admin, TLS via acme.sh (ZeroSSL) + auto-renewal cron, http->https redirect - prisma: add origin_goods.delisted migration, sync missing schema (good_image/tag_font_color/good_tags), fix users.createdAt Timestamptz - api: CORS wildcard reflection, helmet CORP cross-origin, price backfill in persistProductDetail, categoryIcon ancestor fallback, mediaByColor per-color gallery in public goods detail - admin: /admin base path (vite + router) - import-data.mjs: udt_name casting, serial sequence advance fix
This commit is contained in:
@@ -1,61 +1,61 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
@font-face {
|
||||
font-family: 'PingFang SC';
|
||||
src: url('/fonts/pingfang-sc-thin.ttf') format('truetype');
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-weight: 100;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'PingFang SC';
|
||||
src: url('/fonts/pingfang-sc-regular.ttf') format('truetype');
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'PingFang SC';
|
||||
src: url('/fonts/pingfang-sc-medium.ttf') format('truetype');
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'PingFang SC';
|
||||
src: url('/fonts/pingfang-sc-semibold.ttf') format('truetype');
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-weight: 600 900;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
||||
}
|
||||
|
||||
@theme {
|
||||
--color-inkreach-homepage-1: #f3f4f5;
|
||||
--color-inkreach-homepage-2: #f8f9fb;
|
||||
--color-inkreach-homepage-3: #fff6f0;
|
||||
--color-inkreach-homepage-4: #FF6800;
|
||||
--color-primary: #FF6800;
|
||||
--color-inkreach-homepage-5: #0C0501;
|
||||
|
||||
--animate-marquee: marquee-scroll 30s linear infinite;
|
||||
|
||||
--animate-pulse-animation: pulse-glow 2s ease-in-out infinite;
|
||||
|
||||
@keyframes marquee-scroll {
|
||||
0% { transform: translateX(0); }
|
||||
100% { transform: translateX(-50%); }
|
||||
}
|
||||
|
||||
@keyframes pulse-glow {
|
||||
0%, 100% { box-shadow: 0 0 0 0 rgba(255, 104, 0, 0.4); }
|
||||
50% { box-shadow: 0 0 0 12px rgba(255, 104, 0, 0); }
|
||||
}
|
||||
}
|
||||
@import "tailwindcss";
|
||||
|
||||
@font-face {
|
||||
font-family: 'PingFang SC';
|
||||
src: url('/fonts/pingfang-sc-thin.ttf') format('truetype');
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-weight: 100;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'PingFang SC';
|
||||
src: url('/fonts/pingfang-sc-regular.ttf') format('truetype');
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'PingFang SC';
|
||||
src: url('/fonts/pingfang-sc-medium.ttf') format('truetype');
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'PingFang SC';
|
||||
src: url('/fonts/pingfang-sc-semibold.ttf') format('truetype');
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
font-weight: 600 900;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
|
||||
}
|
||||
|
||||
@theme {
|
||||
--color-inkreach-homepage-1: #f3f4f5;
|
||||
--color-inkreach-homepage-2: #f8f9fb;
|
||||
--color-inkreach-homepage-3: #fff6f0;
|
||||
--color-inkreach-homepage-4: #FF6800;
|
||||
--color-primary: #FF6800;
|
||||
--color-inkreach-homepage-5: #0C0501;
|
||||
|
||||
--animate-marquee: marquee-scroll 30s linear infinite;
|
||||
|
||||
--animate-pulse-animation: pulse-glow 2s ease-in-out infinite;
|
||||
|
||||
@keyframes marquee-scroll {
|
||||
0% { transform: translateX(0); }
|
||||
100% { transform: translateX(-50%); }
|
||||
}
|
||||
|
||||
@keyframes pulse-glow {
|
||||
0%, 100% { box-shadow: 0 0 0 0 rgba(255, 104, 0, 0.4); }
|
||||
50% { box-shadow: 0 0 0 12px rgba(255, 104, 0, 0); }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user