diff --git a/.gitignore b/.gitignore
index 9f2913e..87d4030 100644
--- a/.gitignore
+++ b/.gitignore
@@ -122,4 +122,5 @@ prisma_test.js
database/
data/
.vscode
-hemmelig.backup.db
\ No newline at end of file
+hemmelig.backup.db
+client/build/
diff --git a/Dockerfile b/Dockerfile
index 9ec8498..6c7f975 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -25,8 +25,7 @@ FROM node:20-alpine
WORKDIR /home/node/hemmelig
-RUN mkdir build
-COPY --from=0 /usr/src/app/build build/
+COPY --from=0 /usr/src/app/client/build client/build
COPY package*.json ./
diff --git a/cli.js b/cli.js
index bf28ab4..b510658 100644
--- a/cli.js
+++ b/cli.js
@@ -3,7 +3,7 @@
import meow from 'meow';
import fetch from 'node-fetch';
import YAML from 'yaml';
-import { generateKey, encrypt } from './src/shared/helpers/crypto.js';
+import { encrypt, generateKey } from './shared/helpers/crypto.js';
// Adding this hack to make it work for pkg
// https://github.com/vercel/pkg/issues/1291#issuecomment-1360586986
diff --git a/src/client/actions/index.js b/client/actions/index.js
similarity index 100%
rename from src/client/actions/index.js
rename to client/actions/index.js
diff --git a/src/client/admin-shell.jsx b/client/admin-shell.jsx
similarity index 100%
rename from src/client/admin-shell.jsx
rename to client/admin-shell.jsx
diff --git a/src/client/api/account.js b/client/api/account.js
similarity index 100%
rename from src/client/api/account.js
rename to client/api/account.js
diff --git a/src/client/api/authentication.js b/client/api/authentication.js
similarity index 100%
rename from src/client/api/authentication.js
rename to client/api/authentication.js
diff --git a/src/client/api/secret.js b/client/api/secret.js
similarity index 100%
rename from src/client/api/secret.js
rename to client/api/secret.js
diff --git a/src/client/api/settings.js b/client/api/settings.js
similarity index 100%
rename from src/client/api/settings.js
rename to client/api/settings.js
diff --git a/src/client/api/upload.js b/client/api/upload.js
similarity index 100%
rename from src/client/api/upload.js
rename to client/api/upload.js
diff --git a/src/client/api/users.js b/client/api/users.js
similarity index 100%
rename from src/client/api/users.js
rename to client/api/users.js
diff --git a/src/client/app-shell.jsx b/client/app-shell.jsx
similarity index 100%
rename from src/client/app-shell.jsx
rename to client/app-shell.jsx
diff --git a/src/client/app.jsx b/client/app.jsx
similarity index 100%
rename from src/client/app.jsx
rename to client/app.jsx
diff --git a/src/client/components/error-box/index.jsx b/client/components/error-box/index.jsx
similarity index 100%
rename from src/client/components/error-box/index.jsx
rename to client/components/error-box/index.jsx
diff --git a/src/client/components/header/index.jsx b/client/components/header/index.jsx
similarity index 100%
rename from src/client/components/header/index.jsx
rename to client/components/header/index.jsx
diff --git a/src/client/components/header/logo.jsx b/client/components/header/logo.jsx
similarity index 100%
rename from src/client/components/header/logo.jsx
rename to client/components/header/logo.jsx
diff --git a/src/client/components/header/nav.jsx b/client/components/header/nav.jsx
similarity index 100%
rename from src/client/components/header/nav.jsx
rename to client/components/header/nav.jsx
diff --git a/src/client/components/header/style.module.css b/client/components/header/style.module.css
similarity index 100%
rename from src/client/components/header/style.module.css
rename to client/components/header/style.module.css
diff --git a/src/client/components/qrlink/index.jsx b/client/components/qrlink/index.jsx
similarity index 100%
rename from src/client/components/qrlink/index.jsx
rename to client/components/qrlink/index.jsx
diff --git a/src/client/components/qrlink/style.module.css b/client/components/qrlink/style.module.css
similarity index 100%
rename from src/client/components/qrlink/style.module.css
rename to client/components/qrlink/style.module.css
diff --git a/src/client/components/quill/index.jsx b/client/components/quill/index.jsx
similarity index 100%
rename from src/client/components/quill/index.jsx
rename to client/components/quill/index.jsx
diff --git a/src/client/components/settings/main-links.jsx b/client/components/settings/main-links.jsx
similarity index 100%
rename from src/client/components/settings/main-links.jsx
rename to client/components/settings/main-links.jsx
diff --git a/src/client/components/settings/secondary-links.jsx b/client/components/settings/secondary-links.jsx
similarity index 100%
rename from src/client/components/settings/secondary-links.jsx
rename to client/components/settings/secondary-links.jsx
diff --git a/src/client/components/spinner/index.jsx b/client/components/spinner/index.jsx
similarity index 100%
rename from src/client/components/spinner/index.jsx
rename to client/components/spinner/index.jsx
diff --git a/src/client/components/spinner/style.module.css b/client/components/spinner/style.module.css
similarity index 100%
rename from src/client/components/spinner/style.module.css
rename to client/components/spinner/style.module.css
diff --git a/src/client/components/success-box/index.jsx b/client/components/success-box/index.jsx
similarity index 100%
rename from src/client/components/success-box/index.jsx
rename to client/components/success-box/index.jsx
diff --git a/src/client/config.js b/client/config.js
similarity index 100%
rename from src/client/config.js
rename to client/config.js
diff --git a/src/client/config/default.js b/client/config/default.js
similarity index 100%
rename from src/client/config/default.js
rename to client/config/default.js
diff --git a/src/client/helpers/configureStore.js b/client/helpers/configureStore.js
similarity index 100%
rename from src/client/helpers/configureStore.js
rename to client/helpers/configureStore.js
diff --git a/src/client/helpers/cookie.js b/client/helpers/cookie.js
similarity index 100%
rename from src/client/helpers/cookie.js
rename to client/helpers/cookie.js
diff --git a/src/client/helpers/file-encryption.js b/client/helpers/file-encryption.js
similarity index 100%
rename from src/client/helpers/file-encryption.js
rename to client/helpers/file-encryption.js
diff --git a/src/client/helpers/zip.js b/client/helpers/zip.js
similarity index 100%
rename from src/client/helpers/zip.js
rename to client/helpers/zip.js
diff --git a/src/i18n.js b/client/i18n.js
similarity index 95%
rename from src/i18n.js
rename to client/i18n.js
index 5ba7e2e..0bd2f5a 100644
--- a/src/i18n.js
+++ b/client/i18n.js
@@ -3,7 +3,7 @@ import LanguageDetector from 'i18next-browser-languagedetector';
import HttpApi from 'i18next-http-backend';
import { initReactI18next } from 'react-i18next';
-import config from './client/config';
+import config from './config';
function getLanguage() {
const language = config.get('settings.forcedLanguage');
diff --git a/src/client/index.css b/client/index.css
similarity index 67%
rename from src/client/index.css
rename to client/index.css
index 006fa39..d115a2e 100644
--- a/src/client/index.css
+++ b/client/index.css
@@ -3,14 +3,14 @@
font-style: normal;
font-weight: 100;
font-display: swap;
- src: url('/fonts/Inter-Thin.woff2') format('woff2');
+ src: url('/static/fonts/Inter-Thin.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 100;
font-display: swap;
- src: url('/fonts/Inter-ThinItalic.woff2') format('woff2');
+ src: url('/static/fonts/Inter-ThinItalic.woff2') format('woff2');
}
@font-face {
@@ -18,14 +18,14 @@
font-style: normal;
font-weight: 200;
font-display: swap;
- src: url('/fonts/Inter-ExtraLight.woff2') format('woff2');
+ src: url('/static/fonts/Inter-ExtraLight.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 200;
font-display: swap;
- src: url('/fonts/Inter-ExtraLightItalic.woff2') format('woff2');
+ src: url('/static/fonts/Inter-ExtraLightItalic.woff2') format('woff2');
}
@font-face {
@@ -33,14 +33,14 @@
font-style: normal;
font-weight: 300;
font-display: swap;
- src: url('/fonts/Inter-Light.woff2') format('woff2');
+ src: url('/static/fonts/Inter-Light.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 300;
font-display: swap;
- src: url('/fonts/Inter-LightItalic.woff2') format('woff2');
+ src: url('/static/fonts/Inter-LightItalic.woff2') format('woff2');
}
@font-face {
@@ -48,14 +48,14 @@
font-style: normal;
font-weight: 400;
font-display: swap;
- src: url('/fonts/Inter-Regular.woff2') format('woff2');
+ src: url('/static/fonts/Inter-Regular.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 400;
font-display: swap;
- src: url('/fonts/Inter-Italic.woff2') format('woff2');
+ src: url('/static/fonts/Inter-Italic.woff2') format('woff2');
}
@font-face {
@@ -63,14 +63,14 @@
font-style: normal;
font-weight: 500;
font-display: swap;
- src: url('/fonts/Inter-Medium.woff2') format('woff2');
+ src: url('/static/fonts/Inter-Medium.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 500;
font-display: swap;
- src: url('/fonts/Inter-MediumItalic.woff2') format('woff2');
+ src: url('/static/fonts/Inter-MediumItalic.woff2') format('woff2');
}
@font-face {
@@ -78,14 +78,14 @@
font-style: normal;
font-weight: 600;
font-display: swap;
- src: url('/fonts/Inter-SemiBold.woff2') format('woff2');
+ src: url('/static/fonts/Inter-SemiBold.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 600;
font-display: swap;
- src: url('/fonts/Inter-SemiBoldItalic.woff2') format('woff2');
+ src: url('/static/fonts/Inter-SemiBoldItalic.woff2') format('woff2');
}
@font-face {
@@ -93,14 +93,14 @@
font-style: normal;
font-weight: 700;
font-display: swap;
- src: url('/fonts/Inter-Bold.woff2') format('woff2');
+ src: url('/static/fonts/Inter-Bold.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 700;
font-display: swap;
- src: url('/fonts/Inter-BoldItalic.woff2') format('woff2');
+ src: url('/static/fonts/Inter-BoldItalic.woff2') format('woff2');
}
@font-face {
@@ -108,14 +108,14 @@
font-style: normal;
font-weight: 800;
font-display: swap;
- src: url('/fonts/Inter-ExtraBold.woff2') format('woff2');
+ src: url('/static/fonts/Inter-ExtraBold.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 800;
font-display: swap;
- src: url('/fonts/Inter-ExtraBoldItalic.woff2') format('woff2');
+ src: url('/static/fonts/Inter-ExtraBoldItalic.woff2') format('woff2');
}
@font-face {
@@ -123,14 +123,14 @@
font-style: normal;
font-weight: 900;
font-display: swap;
- src: url('/fonts/Inter-Black.woff2') format('woff2');
+ src: url('/static/fonts/Inter-Black.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 900;
font-display: swap;
- src: url('/fonts/Inter-BlackItalic.woff2') format('woff2');
+ src: url('/static/fonts/Inter-BlackItalic.woff2') format('woff2');
}
html {
diff --git a/src/index.jsx b/client/index.jsx
similarity index 82%
rename from src/index.jsx
rename to client/index.jsx
index 9befca5..c33e13f 100644
--- a/src/index.jsx
+++ b/client/index.jsx
@@ -5,9 +5,9 @@ import { Provider } from 'react-redux';
import { LoadingOverlay } from '@mantine/core';
import './i18n';
-import HemmeligApplication from './client/app';
-import configureStore from './client/helpers/configureStore';
-import './client/index.css';
+import HemmeligApplication from './app';
+import configureStore from './helpers/configureStore';
+import './index.css';
const store = configureStore();
diff --git a/src/client/reducers/index.js b/client/reducers/index.js
similarity index 100%
rename from src/client/reducers/index.js
rename to client/reducers/index.js
diff --git a/src/client/routes.jsx b/client/routes.jsx
similarity index 100%
rename from src/client/routes.jsx
rename to client/routes.jsx
diff --git a/src/client/routes/account/account.jsx b/client/routes/account/account.jsx
similarity index 100%
rename from src/client/routes/account/account.jsx
rename to client/routes/account/account.jsx
diff --git a/src/client/routes/account/account.module.css b/client/routes/account/account.module.css
similarity index 100%
rename from src/client/routes/account/account.module.css
rename to client/routes/account/account.module.css
diff --git a/src/client/routes/account/index.jsx b/client/routes/account/index.jsx
similarity index 100%
rename from src/client/routes/account/index.jsx
rename to client/routes/account/index.jsx
diff --git a/src/client/routes/account/secrets.jsx b/client/routes/account/secrets.jsx
similarity index 100%
rename from src/client/routes/account/secrets.jsx
rename to client/routes/account/secrets.jsx
diff --git a/src/client/routes/account/settings.jsx b/client/routes/account/settings.jsx
similarity index 100%
rename from src/client/routes/account/settings.jsx
rename to client/routes/account/settings.jsx
diff --git a/src/client/routes/account/users.jsx b/client/routes/account/users.jsx
similarity index 100%
rename from src/client/routes/account/users.jsx
rename to client/routes/account/users.jsx
diff --git a/src/client/routes/api-docs/index.jsx b/client/routes/api-docs/index.jsx
similarity index 100%
rename from src/client/routes/api-docs/index.jsx
rename to client/routes/api-docs/index.jsx
diff --git a/src/client/routes/home/index.jsx b/client/routes/home/index.jsx
similarity index 100%
rename from src/client/routes/home/index.jsx
rename to client/routes/home/index.jsx
diff --git a/src/client/routes/home/style.module.css b/client/routes/home/style.module.css
similarity index 100%
rename from src/client/routes/home/style.module.css
rename to client/routes/home/style.module.css
diff --git a/src/client/routes/privacy/index.jsx b/client/routes/privacy/index.jsx
similarity index 100%
rename from src/client/routes/privacy/index.jsx
rename to client/routes/privacy/index.jsx
diff --git a/src/client/routes/public/index.jsx b/client/routes/public/index.jsx
similarity index 100%
rename from src/client/routes/public/index.jsx
rename to client/routes/public/index.jsx
diff --git a/src/client/routes/secret/index.jsx b/client/routes/secret/index.jsx
similarity index 100%
rename from src/client/routes/secret/index.jsx
rename to client/routes/secret/index.jsx
diff --git a/src/client/routes/signin/index.jsx b/client/routes/signin/index.jsx
similarity index 100%
rename from src/client/routes/signin/index.jsx
rename to client/routes/signin/index.jsx
diff --git a/src/client/routes/signout/index.jsx b/client/routes/signout/index.jsx
similarity index 96%
rename from src/client/routes/signout/index.jsx
rename to client/routes/signout/index.jsx
index 1a44c93..54eb8c2 100644
--- a/src/client/routes/signout/index.jsx
+++ b/client/routes/signout/index.jsx
@@ -40,7 +40,7 @@ const SignOut = () => {