From e435dbd2cb86097cfd9b14c8a6792ea2f68068db Mon Sep 17 00:00:00 2001 From: DarkSky Date: Tue, 20 Dec 2022 15:22:36 +0800 Subject: [PATCH 1/8] feat: api routing in docker image --- .github/deployment/Caddyfile | 39 +++++++++++++++++++++++++++++++++++ .github/deployment/Dockerfile | 14 ++++++++++--- .github/deployment/nginx.conf | 29 -------------------------- 3 files changed, 50 insertions(+), 32 deletions(-) create mode 100644 .github/deployment/Caddyfile delete mode 100644 .github/deployment/nginx.conf diff --git a/.github/deployment/Caddyfile b/.github/deployment/Caddyfile new file mode 100644 index 0000000000..d261c7aa26 --- /dev/null +++ b/.github/deployment/Caddyfile @@ -0,0 +1,39 @@ +:80 { + root /* ./dist + + file_server { + # precompressed br + } + + encode { + zstd + gzip 9 + } + + header { + # 7 days + Cache-Control "public, max-age=86400, must-revalidate" + } + + handle_path /api/* { + reverse_proxy {$API_SERVER} { + @error status 500 502 503 503 + handle_response @error { + root * /dist + rewrite * /50x.html + file_server + } + } + } + + @notStatic { + not path /_next/static/* + } + + handle @notStatic { + header { + Cache-Control "no-cache, no-store, must-revalidate" + } + try_files {path} /index.html + } +} diff --git a/.github/deployment/Dockerfile b/.github/deployment/Dockerfile index 0e55124132..d163afda15 100644 --- a/.github/deployment/Dockerfile +++ b/.github/deployment/Dockerfile @@ -1,5 +1,13 @@ -FROM nginx:alpine +FROM node:16-alpine as relocate +WORKDIR /app +COPY ./packages/app/out ./dist +COPY ./.github/deployment/Caddyfile ./Caddyfile -COPY ./packages/app/out /usr/share/nginx/html +FROM caddy:2.6.2-alpine +ARG API_SERVER +WORKDIR /app +COPY --from=relocate /app . -COPY ./.github/deployment/nginx.conf /etc/nginx/conf.d/default.conf +EXPOSE 80 +ENV API_SERVER=$API_SERVER +CMD ["caddy", "run"] \ No newline at end of file diff --git a/.github/deployment/nginx.conf b/.github/deployment/nginx.conf deleted file mode 100644 index 7441f6f8f3..0000000000 --- a/.github/deployment/nginx.conf +++ /dev/null @@ -1,29 +0,0 @@ -server { - listen 80; - listen [::]:80; - server_name localhost; - - #access_log /var/log/nginx/host.access.log main; - - root /usr/share/nginx/html; - index index.html index.htm; - - location /_next/static { - # 7 days - add_header Cache-Control "max-age=86400"; - } - - location / { - try_files $uri $uri.html /$uri /index.html - add_header Cache-Control "no-cache"; - } - - #error_page 404 /404.html; - - # redirect server error pages to the static page /50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /usr/share/nginx/html; - } -} From 4acf6c99a712156cdda402915af751b1210559d4 Mon Sep 17 00:00:00 2001 From: Lin Onetwo Date: Mon, 19 Dec 2022 16:40:07 +0800 Subject: [PATCH 2/8] chore: allow assing basePath from parent repo --- packages/app/next.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/app/next.config.js b/packages/app/next.config.js index 93226e064f..92d847d315 100644 --- a/packages/app/next.config.js +++ b/packages/app/next.config.js @@ -14,6 +14,7 @@ const nextConfig = { VERSION: getGitVersion(), COMMIT_HASH: getCommitHash(), }, + basePath: process.env.BASE_PATH, }; module.exports = nextConfig; From 0240feb7f1c47aba06254e979b4c8bbfa494f8e8 Mon Sep 17 00:00:00 2001 From: Lin Onetwo Date: Mon, 19 Dec 2022 16:43:53 +0800 Subject: [PATCH 3/8] feat: allow header to be dragged in client --- packages/app/src/components/Header/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/src/components/Header/index.tsx b/packages/app/src/components/Header/index.tsx index 2c2eef8484..9f7c828d67 100644 --- a/packages/app/src/components/Header/index.tsx +++ b/packages/app/src/components/Header/index.tsx @@ -109,7 +109,7 @@ export const Header = () => { } }, [editor]); return ( - + { setShowWarning(false); From 3c582b03d742f3ac1e2641ca36fa60b22dbc7e2c Mon Sep 17 00:00:00 2001 From: Lin Onetwo Date: Mon, 19 Dec 2022 22:36:18 +0800 Subject: [PATCH 4/8] feat: is inside a tauri app then don't show warning --- packages/app/src/components/Header/utils.tsx | 1 + packages/app/src/styles/types.ts | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/packages/app/src/components/Header/utils.tsx b/packages/app/src/components/Header/utils.tsx index b93cacef93..dd9ff50127 100644 --- a/packages/app/src/components/Header/utils.tsx +++ b/packages/app/src/components/Header/utils.tsx @@ -13,6 +13,7 @@ const minimumChromeVersion = 102; export const shouldShowWarning = () => { return ( + !window.CLIENT_APP && !getIsMobile() && (!getIsChrome() || getChromeVersion() < minimumChromeVersion) ); diff --git a/packages/app/src/styles/types.ts b/packages/app/src/styles/types.ts index 155842eebc..e5a2c3ecd5 100644 --- a/packages/app/src/styles/types.ts +++ b/packages/app/src/styles/types.ts @@ -121,3 +121,9 @@ export interface AffineThemeCSSVariables { declare module '@emotion/react' { export interface Theme extends AffineTheme {} } + +declare global { + interface Window { + CLIENT_APP?: boolean; + } +} From 3a13f3e9a2f9b14a3b727a82d8bee92b380d18ed Mon Sep 17 00:00:00 2001 From: Lin Onetwo Date: Mon, 19 Dec 2022 22:44:34 +0800 Subject: [PATCH 5/8] feat: allow drag when in an app --- packages/app/src/pages/affine.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/src/pages/affine.tsx b/packages/app/src/pages/affine.tsx index a0c3ee1cd1..4ac65fd360 100644 --- a/packages/app/src/pages/affine.tsx +++ b/packages/app/src/pages/affine.tsx @@ -16,7 +16,7 @@ const Affine = () => { const [show, setShow] = useState(false); return ( <> - +