diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index c9a244dd65..0000000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "app/console"] - path = app/console - url = https://github.com/appwrite/console - branch = 1.6.x diff --git a/app/console b/app/console deleted file mode 160000 index f978cecfaf..0000000000 --- a/app/console +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f978cecfafe55e85fcd20fe90fc020e78a7c7952 diff --git a/app/controllers/web/console.php b/app/controllers/web/console.php index fac8d21261..a4c76a9a35 100644 --- a/app/controllers/web/console.php +++ b/app/controllers/web/console.php @@ -16,8 +16,7 @@ App::init() ; }); -App::get('/console/*') - ->alias('/') +App::get('/') ->alias('auth/*') ->alias('/invite') ->alias('/login') @@ -31,45 +30,13 @@ App::get('/console/*') ->inject('request') ->inject('response') ->action(function (Request $request, Response $response) { - $fallback = file_get_contents(__DIR__ . '/../../../console/index.html'); - - // Card SSR - if (\str_starts_with($request->getURI(), '/card')) { - $urlCunks = \explode('/', $request->getURI()); - $userId = $urlCunks[\count($urlCunks) - 1] ?? ''; - - $domain = $request->getProtocol() . '://' . $request->getHostname(); - - if (!empty($userId)) { - $ogImageUrl = $domain . '/v1/cards/cloud-og?userId=' . $userId; - } else { - $ogImageUrl = $domain . '/v1/cards/cloud-og?mock=normal'; - } - - $ogTags = [ - 'Appwrite Cloud Card', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - '', - ]; - - $fallback = \str_replace('', \implode('', $ogTags), $fallback); + $url = parse_url($request->getURI()); + $target = "/console{$url['path']}"; + if ($url['query'] ?? false) { + $target .= "?{$url['query']}"; } - - $response->html($fallback); + if ($url['fragment'] ?? false) { + $target .= "#{$url['fragment']}"; + } + $response->redirect($target); }); diff --git a/app/views/install/compose.phtml b/app/views/install/compose.phtml index fb88db4f39..4dcc24d909 100644 --- a/app/views/install/compose.phtml +++ b/app/views/install/compose.phtml @@ -49,7 +49,7 @@ $image = $this->getParam('image', ''); - traefik.enable=true - traefik.constraint-label-stack=appwrite - traefik.docker.network=appwrite - - traefik.http.services.appwrite_api.loadbalancer.server.port=80 + - traefik.http.services.appwrite_api.loadbalancer.server.port=3000 #http - traefik.http.routers.appwrite_api_http.entrypoints=appwrite_web - traefik.http.routers.appwrite_api_http.rule=PathPrefix(`/`) @@ -163,6 +163,26 @@ $image = $this->getParam('image', ''); - _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET - _APP_ASSISTANT_OPENAI_API_KEY + appwrite-console: + <<: *x-logging + container_name: appwrite-console + image: /console:latest //TODO: fix tomorrow + restart: unless-stopped + labels: + - "traefik.enable=true" + - "traefik.constraint-label-stack=appwrite" + - "traefik.docker.network=appwrite" + - "traefik.http.services.appwrite_console.loadbalancer.server.port=80" + #ws + - traefik.http.routers.appwrite_console_http.entrypoints=appwrite_web + - traefik.http.routers.appwrite_console_http.rule=PathPrefix(`/console`) + - traefik.http.routers.appwrite_console_http.service=appwrite_console + # wss + - traefik.http.routers.appwrite_console_https.entrypoints=appwrite_websecure + - traefik.http.routers.appwrite_console_https.rule=PathPrefix(`/console`) + - traefik.http.routers.appwrite_console_https.service=appwrite_console + - traefik.http.routers.appwrite_console_https.tls=true + appwrite-realtime: image: /: entrypoint: realtime diff --git a/docker-compose.yml b/docker-compose.yml index 7be1225eaa..588d3fa526 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -52,7 +52,7 @@ services: DEBUG: false TESTING: true VERSION: dev - ports: + ports: - 9501:80 networks: - appwrite @@ -192,6 +192,26 @@ services: - _APP_EXPERIMENT_LOGGING_CONFIG - _APP_DATABASE_SHARED_TABLES + appwrite-console: + <<: *x-logging + container_name: appwrite-console + image: appwrite/console:dev + restart: unless-stopped + labels: + - "traefik.enable=true" + - "traefik.constraint-label-stack=appwrite" + - "traefik.docker.network=appwrite" + - "traefik.http.services.appwrite_console.loadbalancer.server.port=3000" + #ws + - traefik.http.routers.appwrite_console_http.entrypoints=appwrite_web + - traefik.http.routers.appwrite_console_http.rule=PathPrefix(`/console`) + - traefik.http.routers.appwrite_console_http.service=appwrite_console + # wss + - traefik.http.routers.appwrite_console_https.entrypoints=appwrite_websecure + - traefik.http.routers.appwrite_console_https.rule=PathPrefix(`/console`) + - traefik.http.routers.appwrite_console_https.service=appwrite_console + - traefik.http.routers.appwrite_console_https.tls=true + appwrite-realtime: entrypoint: realtime <<: *x-logging