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