diff --git a/README.md b/README.md index c93a9ea69..ec4185422 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ docker network create mono-network # run postgres docker run --rm -it -d --name mono-pg --network mono-network -v /tmp/data/mono/pg-data:/var/lib/postgresql/data -p 5432:5432 mono-pg:0.1-pre-release docker run --rm -it -d --name mono-engine --network mono-network -v /tmp/data/mono/mono-data:/opt/mega -p 8000:8000 mono-engine:0.1-pre-release -docker run --rm -it -d --name mono-ui --network mono-network -e MEGA_INTERNAL_HOST=http://mono-engine:8000 -e MEGA_HOST=http://localhost:8000 -e MOON_HOST=http://localhost:3000 -p 3000:3000 mono-ui:0.1-pre-release +docker run --rm -it -d --name mono-ui --network mono-network -e MEGA_INTERNAL_HOST=http://mono-engine:8000 -e MEGA_HOST=http://localhost:8000 -p 3000:3000 mono-ui:0.1-pre-release ``` ## Quick Review of Architecture diff --git a/docker/README.md b/docker/README.md index c48b7f8aa..9e0fe68ef 100644 --- a/docker/README.md +++ b/docker/README.md @@ -43,7 +43,7 @@ docker network create mono-network # run postgres docker run --rm -it -d --name mono-pg --network mono-network -v /tmp/data/mono/pg-data:/var/lib/postgresql/data -p 5432:5432 mono-pg:0.1-pre-release docker run --rm -it -d --name mono-engine --network mono-network -v /tmp/data/mono/mono-data:/opt/mega -p 8000:8000 mono-engine:0.1-pre-release -docker run --rm -it -d --name mono-ui --network mono-network -e MEGA_INTERNAL_HOST=http://mono-engine:8000 -e MEGA_HOST=http://localhost:8000 -e MOON_HOST=http://localhost:3000 -p 3000:3000 mono-ui:0.1-pre-release +docker run --rm -it -d --name mono-ui --network mono-network -e MEGA_INTERNAL_HOST=http://mono-engine:8000 -e MEGA_HOST=http://localhost:8000 -p 3000:3000 mono-ui:0.1-pre-release ``` [3] Start whole mono engine stack on server with domain @@ -55,7 +55,7 @@ docker network create mono-network # run postgres docker run --rm -it -d --name mono-pg --network mono-network -v /mnt/data/mono/pg-data:/var/lib/postgresql/data -p 5432:5432 mono-pg:0.1-pre-release docker run --rm -it -d --name mono-engine --network mono-network -v /mnt/data/mono/mono-data:/opt/mega -p 8000:8000 -p 22:9000 mono-engine:0.1-pre-release -docker run --rm -it -d --name mono-ui --network mono-network -e MEGA_INTERNAL_HOST=http://mono-engine:8000 -e MEGA_HOST=https://git.gitmono.com -e MOON_HOST=https://console.gitmono.com -p 3000:3000 mono-ui:0.1-pre-release +docker run --rm -it -d --name mono-ui --network mono-network -e MEGA_INTERNAL_HOST=http://mono-engine:8000 -e MEGA_HOST=https://git.gitmono.com -p 3000:3000 mono-ui:0.1-pre-release ``` ## Test aries engine diff --git a/docker/start-moon.sh b/docker/start-moon.sh index 91a13d5f3..6bb3a597e 100755 --- a/docker/start-moon.sh +++ b/docker/start-moon.sh @@ -1,6 +1,6 @@ #!/bin/bash -# user must set the MEGA_HOST,MEGA_INTERNAL_HOST and MOON_HOST +# user must set the MEGA_HOST,MEGA_INTERNAL_HOST if [ -z "$MEGA_HOST" ]; then echo "MEGA_HOST is not set" exit 1 @@ -11,9 +11,4 @@ if [ -z "$MEGA_INTERNAL_HOST" ]; then exit 1 fi -if [ -z "$MOON_HOST" ]; then - echo "MOON_HOST is not set" - exit 1 -fi - exec node server.js \ No newline at end of file diff --git a/moon/.env b/moon/.env index fe8d83a10..a2e042e52 100644 --- a/moon/.env +++ b/moon/.env @@ -2,10 +2,9 @@ # Variables not prefixed with NEXT_PUBLIC_ are only available on the server side. -# add MEGA_HOST, MEGA_INTERNAL_HOST and MOON_HOST to your enviroment for development -# MEGA_HOST and MEGA_INTERNAL_HOST default to http://localhost:8000, MOON_HOST default to http://localhost:3000 +# add MEGA_HOST, MEGA_INTERNAL_HOST to your enviroment for development +# MEGA_HOST and MEGA_INTERNAL_HOST default to http://localhost:8000 MEGA_HOST=$MEGA_HOST MEGA_INTERNAL_HOST=$MEGA_INTERNAL_HOST -CALLBACK_URL=$MOON_HOST/auth/github/callback SECRET_KEY=$YOUR_SECRET_KEY #(not prefixed with NEXT_PUBLIC_ ) \ No newline at end of file diff --git a/moon/README.md b/moon/README.md index db3853f38..0165ade8d 100644 --- a/moon/README.md +++ b/moon/README.md @@ -7,7 +7,6 @@ In the root directory of your project, three environment variables are required in the `.env` file: - **MEGA_HOST**: Used for redirecting to public backend routes during the OAuth process. -- **MOON_HOST**: Provides the callback URL to the authentication provider. - **MEGA_INTERNAL_HOST**: Utilized for internal API requests. Given that the application uses SSR and Next.js Route Handlers, this variable allows you to specify a domain name within the container network. ### Environment Handling diff --git a/moon/next.config.js b/moon/next.config.js index 96885d902..d9f02c93a 100644 --- a/moon/next.config.js +++ b/moon/next.config.js @@ -12,25 +12,6 @@ const nextConfig = { }, ], }, - async redirects() { - return [ - { - source: '/auth/github', - destination: process.env.MEGA_HOST + '/auth/github', - permanent: false, - }, - { - source: '/auth/authorized', - destination: process.env.MEGA_HOST + '/auth/authorized', - permanent: false, - }, - { - source: '/auth/logout', - destination: process.env.MEGA_HOST + '/auth/logout', - permanent: false, - } - ] - }, reactStrictMode: true, transpilePackages: [ // antd & deps diff --git a/moon/src/app/auth/authorized/route.ts b/moon/src/app/auth/authorized/route.ts new file mode 100644 index 000000000..23a31f32e --- /dev/null +++ b/moon/src/app/auth/authorized/route.ts @@ -0,0 +1,18 @@ +export const revalidate = 0 +export const dynamic = 'force-dynamic' // defaults to auto + +import { NextRequest, NextResponse } from 'next/server'; + +export async function GET(request: NextRequest) { + const endpoint = process.env.MEGA_HOST; + + const currentUrl = new URL(request.url); + + const redirectUrl = new URL(`${endpoint}/auth/authorized`, request.url); + + currentUrl.searchParams.forEach((value, key) => { + redirectUrl.searchParams.set(key, value); + }); + + return NextResponse.redirect(redirectUrl.toString()); +} \ No newline at end of file diff --git a/moon/src/app/auth/github/route.ts b/moon/src/app/auth/github/route.ts new file mode 100644 index 000000000..7c38f8b5b --- /dev/null +++ b/moon/src/app/auth/github/route.ts @@ -0,0 +1,9 @@ +import { redirect } from 'next/navigation' + +export const revalidate = 0 +export const dynamic = 'force-dynamic' // defaults to auto + +export async function GET() { + const endpoint = process.env.MEGA_HOST; + redirect(`${endpoint}/auth/github`) +} \ No newline at end of file diff --git a/moon/src/app/auth/logout/route.ts b/moon/src/app/auth/logout/route.ts new file mode 100644 index 000000000..64dffef81 --- /dev/null +++ b/moon/src/app/auth/logout/route.ts @@ -0,0 +1,8 @@ +import { redirect } from 'next/navigation' +export const revalidate = 0 +export const dynamic = 'force-dynamic' // defaults to auto + +export async function GET() { + const endpoint = process.env.MEGA_HOST; + redirect(`${endpoint}/auth/logout`) +} \ No newline at end of file