🐛 fix: proxy requests through the web origin

This commit is contained in:
2026-08-13 02:19:14 +07:00
parent 1742f7321d
commit 83e52af412
7 changed files with 34 additions and 13 deletions
+1 -1
View File
@@ -33,7 +33,7 @@ services:
- KUBECONFIG=/home/dev/.kube/config
- DATABASE_URL=postgresql://postgres:postgres@db:5432/minikura?sslmode=disable
- WEB_URL=http://localhost:3001
- NEXT_PUBLIC_API_URL=http://localhost:3000
- API_URL=http://localhost:3000
- KUBERNETES_NAMESPACE=minikura
- ENABLE_CRD_REFLECTION=true
+2 -2
View File
@@ -6,8 +6,8 @@ DATABASE_URL="postgresql://user:password@localhost:5432/minikura"
# URL where the web frontend is running (used for CORS)
WEB_URL="http://localhost:3001"
# API URL that the web frontend should connect to
NEXT_PUBLIC_API_URL="http://localhost:3000"
# Internal API URL used by the Next.js server and same-origin browser proxy
API_URL="http://localhost:3000"
# Kubernetes Configuration
KUBERNETES_NAMESPACE="minikura"
+6 -4
View File
@@ -3,6 +3,8 @@ import { betterAuth } from "better-auth";
import { prismaAdapter } from "better-auth/adapters/prisma";
import { admin, openAPI } from "better-auth/plugins";
const webUrl = process.env.WEB_URL || "http://localhost:3001";
export const auth = betterAuth({
database: prismaAdapter(prisma, {
provider: "postgresql",
@@ -10,11 +12,11 @@ export const auth = betterAuth({
}),
emailAndPassword: { enabled: true },
plugins: [admin(), openAPI()],
trustedOrigins: [process.env.WEB_URL || "http://localhost:3001"],
session: {
cookieCache: { enabled: true, maxAge: 60 * 5 },
},
trustedOrigins: [webUrl],
basePath: "/auth",
advanced: {
useSecureCookies: webUrl.startsWith("https://"),
},
});
export type Auth = typeof auth;
+1 -1
View File
@@ -4,7 +4,7 @@ import { redirect } from "next/navigation";
export const dynamic = "force-dynamic";
const apiUrl = process.env.NEXT_PUBLIC_API_URL || "http://localhost:3000";
const apiUrl = process.env.API_URL || "http://localhost:3000";
const api = treaty<App>(apiUrl);
export default async function HomePage() {
+4 -1
View File
@@ -1,7 +1,10 @@
import { treaty } from "@elysiajs/eden";
import type { App } from "@minikura/backend";
const baseUrl = process.env.NEXT_PUBLIC_API_URL || "http://localhost:3000";
const baseUrl =
typeof window === "undefined"
? process.env.API_URL || "http://localhost:3000"
: window.location.origin;
export const api = treaty<App>(baseUrl, {
fetch: {
+3 -1
View File
@@ -2,9 +2,11 @@ import { adminClient } from "better-auth/client/plugins";
import { createAuthClient } from "better-auth/react";
export const authClient = createAuthClient({
baseURL: process.env.NEXT_PUBLIC_API_URL || "http://localhost:3000",
basePath: "/auth",
plugins: [adminClient()],
fetchOptions: {
credentials: "include",
},
});
export const { useSession, signIn, signOut, signUp } = authClient;
+17 -3
View File
@@ -4,7 +4,21 @@
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* config options here */
}
async rewrites() {
const apiUrl = (process.env.API_URL || process.env.NEXT_PUBLIC_API_URL || "http://localhost:3000")
.replace(/\/$/, "");
return [
{
source: "/auth/:path*",
destination: `${apiUrl}/auth/:path*`,
},
{
source: "/api/:path*",
destination: `${apiUrl}/api/:path*`,
},
];
},
};
export default nextConfig
export default nextConfig;