Fix local admin routing and landing styles
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
NEXT_PUBLIC_SITE_URL="http://mohfarawati.localhost:3000"
|
||||
NEXT_PUBLIC_ADMIN_URL="http://rootmohfarawati.localhost:3000"
|
||||
NEXT_PUBLIC_SITE_URL="http://localhost:3014"
|
||||
NEXT_PUBLIC_ADMIN_URL="http://rootmohfarawati.localhost:3014"
|
||||
ADMIN_HOST="rootmohfarawati.localhost"
|
||||
|
||||
@@ -25,8 +25,8 @@ ps:
|
||||
docker compose ps
|
||||
|
||||
port:
|
||||
@echo "Site: $${NEXT_PUBLIC_SITE_URL:-https://mohfarawati.de}"
|
||||
@echo "Admin: $${NEXT_PUBLIC_ADMIN_URL:-https://root.mohfarawati.de}"
|
||||
@echo "Site: http://localhost:3014"
|
||||
@echo "Admin: http://rootmohfarawati.localhost:3014"
|
||||
|
||||
clean-orphans:
|
||||
docker compose up -d --remove-orphans
|
||||
|
||||
@@ -14,7 +14,7 @@ pnpm dev
|
||||
bun dev
|
||||
```
|
||||
|
||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||
Open [http://localhost:3014](http://localhost:3014) with your browser to see the result.
|
||||
|
||||
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
||||
|
||||
|
||||
@@ -7,7 +7,9 @@ import { SiteLogo } from "@/components/layout/site-logo";
|
||||
type AsciiWaterRippleProps = {
|
||||
lightLogoUrl?: string | null;
|
||||
darkLogoUrl?: string | null;
|
||||
logoAlt: string;
|
||||
logoAlt?: string;
|
||||
showLogo?: boolean;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
const glyphs = [".", ":", "+", "*", "o"];
|
||||
@@ -38,10 +40,12 @@ const ripplePoints = buildRipplePoints();
|
||||
export function AsciiWaterRipple({
|
||||
lightLogoUrl,
|
||||
darkLogoUrl,
|
||||
logoAlt,
|
||||
logoAlt = "",
|
||||
showLogo = true,
|
||||
className,
|
||||
}: AsciiWaterRippleProps) {
|
||||
return (
|
||||
<div className="relative flex h-[14rem] w-full items-center justify-center overflow-visible sm:h-[17rem] lg:h-[20rem]">
|
||||
<div className={className ?? "relative flex h-[14rem] w-full items-center justify-center overflow-visible sm:h-[17rem] lg:h-[20rem]"}>
|
||||
<motion.div
|
||||
animate={{
|
||||
scale: [0.96, 1.08, 0.98],
|
||||
@@ -104,27 +108,29 @@ export function AsciiWaterRipple({
|
||||
))}
|
||||
</motion.div>
|
||||
|
||||
<motion.div
|
||||
animate={{
|
||||
boxShadow: [
|
||||
"0 0 0 1px hsl(var(--primary) / 0.24), 0 0 42px hsl(var(--primary) / 0.22)",
|
||||
"0 0 0 1px hsl(var(--primary) / 0.34), 0 0 84px hsl(var(--primary) / 0.34)",
|
||||
"0 0 0 1px hsl(var(--primary) / 0.24), 0 0 42px hsl(var(--primary) / 0.22)",
|
||||
],
|
||||
scale: [1, 1.02, 1],
|
||||
y: [0, -3, 0],
|
||||
}}
|
||||
transition={{ duration: 4.8, repeat: Number.POSITIVE_INFINITY, ease: "easeInOut" }}
|
||||
className="relative z-10 flex h-28 w-28 items-center justify-center rounded-full border border-primary/30 bg-background/92 p-2 backdrop-blur-xl sm:h-32 sm:w-32 lg:h-40 lg:w-40"
|
||||
>
|
||||
<SiteLogo
|
||||
lightLogoUrl={lightLogoUrl}
|
||||
darkLogoUrl={darkLogoUrl}
|
||||
alt={logoAlt}
|
||||
priority
|
||||
className="h-full w-full object-center"
|
||||
/>
|
||||
</motion.div>
|
||||
{showLogo && (
|
||||
<motion.div
|
||||
animate={{
|
||||
boxShadow: [
|
||||
"0 0 0 1px hsl(var(--primary) / 0.24), 0 0 42px hsl(var(--primary) / 0.22)",
|
||||
"0 0 0 1px hsl(var(--primary) / 0.34), 0 0 84px hsl(var(--primary) / 0.34)",
|
||||
"0 0 0 1px hsl(var(--primary) / 0.24), 0 0 42px hsl(var(--primary) / 0.22)",
|
||||
],
|
||||
scale: [1, 1.02, 1],
|
||||
y: [0, -3, 0],
|
||||
}}
|
||||
transition={{ duration: 4.8, repeat: Number.POSITIVE_INFINITY, ease: "easeInOut" }}
|
||||
className="relative z-10 flex h-28 w-28 items-center justify-center rounded-full border border-primary/30 bg-background/92 p-2 backdrop-blur-xl sm:h-32 sm:w-32 lg:h-40 lg:w-40"
|
||||
>
|
||||
<SiteLogo
|
||||
lightLogoUrl={lightLogoUrl}
|
||||
darkLogoUrl={darkLogoUrl}
|
||||
alt={logoAlt}
|
||||
priority
|
||||
className="h-full w-full object-center"
|
||||
/>
|
||||
</motion.div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
+2
-12
@@ -26,19 +26,12 @@ services:
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
start_period: 20s
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=proxy"
|
||||
- "traefik.http.routers.sass-mohfarawati.rule=Host(`mohfarawati.de`) || Host(`www.mohfarawati.de`) || Host(`root.mohfarawati.de`)"
|
||||
- "traefik.http.routers.sass-mohfarawati.entrypoints=websecure"
|
||||
- "traefik.http.routers.sass-mohfarawati.tls=true"
|
||||
- "traefik.http.routers.sass-mohfarawati.tls.certresolver=cf"
|
||||
- "traefik.http.services.sass-mohfarawati.loadbalancer.server.port=3000"
|
||||
ports:
|
||||
- "${PORT:-3014}:3000"
|
||||
volumes:
|
||||
- media_uploads:/app/public/uploads/media
|
||||
networks:
|
||||
- appnet
|
||||
- proxy
|
||||
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
@@ -63,6 +56,3 @@ volumes:
|
||||
|
||||
networks:
|
||||
appnet:
|
||||
proxy:
|
||||
external: true
|
||||
name: proxy
|
||||
|
||||
+6
-6
@@ -30,12 +30,12 @@
|
||||
},
|
||||
"comingSoon": {
|
||||
"badge": "قريباً",
|
||||
"kicker": "مرحبا، أنا محمد",
|
||||
"titleLineOne": "الموقع",
|
||||
"titleLineTwo": "رح يفتح",
|
||||
"titleLineThree": "قريباً.",
|
||||
"description": "عم حضّر الموقع بحلّة جديدة، محتوى أوضح، وتجربة أرتب من أولها لآخرها.",
|
||||
"note": "إذا حابب تبلّش من هلق، ابعتلي ومنحكي بالتفاصيل.",
|
||||
"kicker": "شيء جديد عم يتشكّل",
|
||||
"titleLineOne": "نسخة",
|
||||
"titleLineTwo": "أقوى",
|
||||
"titleLineThree": "بالطريق.",
|
||||
"description": "عم بشتغل على نسخة جديدة — هوية أقوى، شغل أوضح، وتجربة مبنية من الأساس.",
|
||||
"note": "",
|
||||
"primaryCta": "تواصل معي",
|
||||
"secondaryCta": "العودة للرئيسية"
|
||||
},
|
||||
|
||||
+8
-8
@@ -29,14 +29,14 @@
|
||||
}
|
||||
},
|
||||
"comingSoon": {
|
||||
"badge": "Coming Soon",
|
||||
"kicker": "Hi, ich bin Moh",
|
||||
"titleLineOne": "Eine klarere",
|
||||
"titleLineTwo": "nächste Version",
|
||||
"titleLineThree": "ist unterwegs.",
|
||||
"description": "Die neue Version entsteht gerade mit stärkerer Identität, klarerem Inhalt und einer fokussierteren Erfahrung von Anfang bis Ende.",
|
||||
"note": "Wenn du schon ein Projekt im Kopf hast, kannst du dich jetzt melden und wir starten früh ins Gespräch.",
|
||||
"primaryCta": "Kontakt aufnehmen",
|
||||
"badge": "Demnächst",
|
||||
"kicker": "Etwas Neues nimmt Form an",
|
||||
"titleLineOne": "Eine stärkere",
|
||||
"titleLineTwo": "Version",
|
||||
"titleLineThree": "kommt.",
|
||||
"description": "Die nächste Iteration dieser Seite entsteht mit Bedacht — schärfere Arbeiten, eine klarere Identität und ein Auftritt, der wirklich zeigt, was ich tue.",
|
||||
"note": "",
|
||||
"primaryCta": "Schreib mir",
|
||||
"secondaryCta": "Zur Startseite"
|
||||
},
|
||||
"homepage": {
|
||||
|
||||
+7
-7
@@ -30,13 +30,13 @@
|
||||
},
|
||||
"comingSoon": {
|
||||
"badge": "Coming Soon",
|
||||
"kicker": "Hi, I am Moh",
|
||||
"titleLineOne": "A clearer",
|
||||
"titleLineTwo": "next version",
|
||||
"titleLineThree": "is on the way.",
|
||||
"description": "The new version is being shaped with a stronger identity, cleaner content, and a more focused experience from top to bottom.",
|
||||
"note": "If you already have a project in mind, you can reach out now and we can start the conversation early.",
|
||||
"primaryCta": "Contact me",
|
||||
"kicker": "Something new is taking shape",
|
||||
"titleLineOne": "A stronger",
|
||||
"titleLineTwo": "version",
|
||||
"titleLineThree": "is coming.",
|
||||
"description": "The next iteration of this site is being built with intention — sharper work, a clearer identity, and an experience that actually reflects what I do.",
|
||||
"note": "",
|
||||
"primaryCta": "Get in touch",
|
||||
"secondaryCta": "Back to homepage"
|
||||
},
|
||||
"homepage": {
|
||||
|
||||
Reference in New Issue
Block a user