diff --git a/Dockerfile b/Dockerfile
index 0d426df16fc1859511ccaf84dd3d2521ca69a320..86bf4b3ac357e5e1475c3d655a9c20890c855071 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -23,19 +23,26 @@ COPY --from=deps /app/refine/node_modules ./node_modules
 COPY . .
 
 
-ENV PORT 3000
+ENV PORT 8000
 ARG NEXT_PUBLIC_API_URL
 ARG KEY_CLOAK_CLIENT_SECRET
+ARG KEY_CLOAK_CLIENT_ID
+ARG KEY_CLOAK_ISSUER
 ARG NEXT_PUBLIC_HANDLE_SYSTEM_BASE_URI
 ARG NEXT_PUBLIC_HANDLE_SYSTEM_DOWNLOAD_PROXY
+ARG NEXTAUTH_URL
+ARG NEXTAUTH_URL_INTERNAL
+
+ENV KEY_CLOAK_ISSUER=${KEY_CLOAK_ISSUER}
+ENV KEY_CLOAK_CLIENT_SECRET=${KEY_CLOAK_CLIENT_SECRET}
+ENV KEY_CLOAK_CLIENT_ID=${KEY_CLOAK_CLIENT_ID}
 
 ENV NEXT_PUBLIC_HANDLE_SYSTEM_DOWNLOAD_PROXY=${NEXT_PUBLIC_HANDLE_SYSTEM_DOWNLOAD_PROXY}
 ENV NEXT_PUBLIC_HANDLE_SYSTEM_BASE_URI=${NEXT_PUBLIC_HANDLE_SYSTEM_BASE_URI}
 ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL:-"https://manager.testbed.pid.gwdg.de/api/v1"}
-ENV KEY_CLOAK_CLIENT_SECRET=${KEY_CLOAK_CLIENT_SECRET}
+ENV NEXTAUTH_URL=${NEXTAUTH_URL}
+ENV NEXTAUTH_URL_INTERNAL=${NEXTAUTH_URL_INTERNAL}
 
-#EXPOSE 3000
-#CMD ["npm", "run", "dev"]
 RUN npm run build
 
 FROM base AS runner
@@ -52,7 +59,11 @@ COPY --from=builder --chown=refine:nodejs /app/refine/.next/static ./.next/stati
 
 USER refine
 
-ENV PORT 3000
-ENV NEXT_PUBLIC_API_URL=http://localhost:8000/api/v1
-ENV KEY_CLOAK_CLIENT_SECRET ""
+ENV PORT 8000
+ENV KEY_CLOAK_ISSUER=${KEY_CLOAK_ISSUER}
+ENV KEY_CLOAK_CLIENT_SECRET=${KEY_CLOAK_CLIENT_SECRET}
+ENV KEY_CLOAK_CLIENT_ID=${KEY_CLOAK_CLIENT_ID}
+ENV NEXTAUTH_URL=${NEXTAUTH_URL}
+ENV NEXTAUTH_URL_INTERNAL=${NEXTAUTH_URL_INTERNAL}
+
 CMD ["node", "server.js"]
diff --git a/next.config.js b/next.config.js
index 9a289c5774e4658d8946ac1f7a0430b881ea1711..9450e3b7a8c59e8cc5655e5be200fea714d347fc 100644
--- a/next.config.js
+++ b/next.config.js
@@ -4,6 +4,14 @@ module.exports = {
   i18n,
   transpilePackages: ["@refinedev/nextjs-router"],
   output: "standalone",
+  env: {
+    KEY_CLOAK_ISSUER: process.env.KEY_CLOAK_ISSUER,
+    KEY_CLOAK_CLIENT_SECRET: process.env.KEY_CLOAK_CLIENT_SECRET,
+    KEY_CLOAK_CLIENT_ID: process.env.KEY_CLOAK_CLIENT_ID,
+    PORT: process.env.PORT,
+    NEXTAUTH_URL: process.env.NEXTAUTH_URL,
+    NEXTAUTH_URL_INTERNAL: process.env.NEXTAUTH_URL_INTERNAL,
+  },
   eslint: {
     ignoreDuringBuilds: true,
   },
diff --git a/pages/_app.tsx b/pages/_app.tsx
index 29745ff3bf6bb502fbfa141da2081b5a4d030ff2..edfa562956014208d84cec29893253651d5283d1 100644
--- a/pages/_app.tsx
+++ b/pages/_app.tsx
@@ -14,7 +14,7 @@ import {
 import type { NextPage } from 'next'
 import { SessionProvider, signIn, signOut, useSession } from 'next-auth/react'
 import { AppProps } from 'next/app'
-import { useRouter } from 'next/router'
+import { usePathname } from 'next/navigation'
 import React from 'react'
 
 import { Header } from '@components/header'
@@ -43,8 +43,7 @@ const App = (props: React.PropsWithChildren) => {
   const { t, i18n } = useTranslation()
 
   const { data, status } = useSession()
-  const router = useRouter()
-  const { to } = router.query
+  const to = usePathname()
 
   const i18nProvider = {
     translate: (key: string, params: object) => t(key, params),
@@ -60,7 +59,7 @@ const App = (props: React.PropsWithChildren) => {
     login: async () => {
       // console.log('login')
       signIn('keycloak', {
-        callbackUrl: to ? to.toString() : '/about',
+        callbackUrl: to ? to.toString() : '/fdo',
         redirect: true
       })
 
@@ -72,7 +71,7 @@ const App = (props: React.PropsWithChildren) => {
       // console.log('logout')
       signOut({
         redirect: true,
-        callbackUrl: '/about'
+        callbackUrl: '/fdo'
       })
 
       return {
diff --git a/pages/api/auth/[...nextauth].ts b/pages/api/auth/[...nextauth].ts
index b8a6f9166acafc23e24405cd23724c8c03c4cbc9..02a71c91783538a40d8a17d09ac7a0dc26f4a609 100644
--- a/pages/api/auth/[...nextauth].ts
+++ b/pages/api/auth/[...nextauth].ts
@@ -2,9 +2,9 @@ import NextAuth from 'next-auth'
 import KeycloakProvider from 'next-auth/providers/keycloak'
 
 const secretSessionKey = process.env.SECRET_SESSION_KEY || 'UItTuD1HcGXIj8ZfHUswhYdNd40Lc325R8VlxQPUoR0='
-const clientId = 'gwdg-fdoman-test'
+const clientId = process.env.KEY_CLOAK_CLIENT_ID || 'gwdg-fdoman-test'
 const clientSecret = process.env.KEY_CLOAK_CLIENT_SECRET || ''
-const issuer = 'https://keycloak.sso.gwdg.de/auth/realms/academiccloud'
+const issuer = process.env.KEY_CLOAK_ISSUER || 'https://keycloak.sso.gwdg.de/auth/realms/academiccloud'
 
 async function refreshAccessToken (token: any) {
   try {
@@ -29,7 +29,7 @@ async function refreshAccessToken (token: any) {
     if (!response.ok) {
       throw refreshedTokens
     }
-    // console.log('### refreshToken', new Date().toISOString(), refreshedTokens, '### ### ###')
+    console.log('### refreshToken', new Date().toISOString(), refreshedTokens, '### ### ###')
 
     return {
       ...token,
@@ -38,7 +38,7 @@ async function refreshAccessToken (token: any) {
       refreshToken: refreshedTokens.refresh_token ?? token.refreshToken // Fall back to old refresh token
     }
   } catch (error) {
-    // console.log('### RefreshAccessTokenError', error, '### ### ###')
+    console.log('### RefreshAccessTokenError', error, '### ### ###')
 
     return {
       ...token,
@@ -62,7 +62,7 @@ export const authOptions = {
       issuer,
       // authorization: { params: { scope: 'openid profile email' } },
       profile (profile) {
-        // console.log('### profile', profile, '### ### ###')
+        console.log('### profile', profile, '### ### ###')
         return {
           id: profile.sub,
           name: profile.name ?? profile.preferred_username
@@ -72,11 +72,11 @@ export const authOptions = {
   ],
   callbacks: {
     async signIn ({ user, account, profile, email, credentials }: any) {
-      // console.log('### signIn', user, account, profile, email, credentials, '### ### ###')
+      console.log('### signIn', user, account, profile, email, credentials, '### ### ###')
       return true
     },
     async session ({ session, user, token }: any) {
-      // console.log('### session', session, user, token, '### ### ###')
+      console.log('### session', session, user, token, '### ### ###')
 
       session.user = token.user
       session.accessToken = token.accessToken
@@ -85,11 +85,11 @@ export const authOptions = {
       return session
     },
     async redirect ({ url, baseUrl }: any) {
-      // console.log('### redirect', url, baseUrl, '### ### ###')
+      console.log('### redirect', url, baseUrl, '### ### ###')
       return Promise.resolve(url)
     },
     async jwt ({ token, user, account, profile, isNewUser }: any) {
-      // console.log('### jwt', token, user, account, profile, isNewUser, '### ### ###')
+      console.log('### jwt', token, user, account, profile, isNewUser, '### ### ###')
 
       // Initial sign in
       if (account && user) {