From 8eed99e732d62531e777d0d6d666c948d432610d Mon Sep 17 00:00:00 2001 From: C4illin Date: Mon, 7 Oct 2024 10:47:37 +0200 Subject: [PATCH 001/375] chore: fix drop done style --- src/public/script.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/public/script.js b/src/public/script.js index 2f65439..3ab8259 100644 --- a/src/public/script.js +++ b/src/public/script.js @@ -12,6 +12,10 @@ dropZone.addEventListener("dragleave", () => { dropZone.classList.remove("dragover"); }); +dropZone.addEventListener("drop", () => { + dropZone.classList.remove("dragover"); +}); + const selectContainer = document.querySelector("form .select_container"); const updateSearchBar = () => { @@ -112,12 +116,11 @@ fileInput.addEventListener("change", (e) => { row.innerHTML = ` ${file.name} ${(file.size / 1024).toFixed(2)} kB - Remove + Remove `; if (!fileType) { fileType = file.name.split(".").pop(); - console.log("fileType", fileType); fileInput.setAttribute("accept", `.${fileType}`); setTitle(); From 3112cd57f63ddabb2f2beb4233320738daa2d16f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 14:13:13 +0000 Subject: [PATCH 002/375] chore(deps): update oven/bun docker tag to v1.1.30 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7f0bed5..c7c9423 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.29-alpine AS base +FROM oven/bun:1.1.30-alpine AS base LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX" WORKDIR /app From 5b0d769c63e9ad71d0e795cd1a832b129b80aa26 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 07:56:43 +0000 Subject: [PATCH 003/375] chore(deps): update oven/bun docker tag to v1.1.31 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c7c9423..dca99c7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.30-alpine AS base +FROM oven/bun:1.1.31-alpine AS base LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX" WORKDIR /app From 5fe0b798029280e163e8434cba875bd803bd171a Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 18 Oct 2024 18:43:51 +0200 Subject: [PATCH 004/375] chore(deps): update dependencies to latest versions --- bun.lockb | Bin 192969 -> 189152 bytes package.json | 26 +++++++++++++------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/bun.lockb b/bun.lockb index a30146c742748281b267bf7070479168e6eb0d51..dc0b6f8bd44bb7bd19c91b82aee562d736b03424 100755 GIT binary patch delta 29650 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 WM#aK!{Le;J==L6YFa9le-v0sg8b6u< diff --git a/package.json b/package.json index a9d4cb5..69454e4 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@elysiajs/html": "1.0.2", "@elysiajs/jwt": "^1.1.1", "@elysiajs/static": "1.0.3", - "elysia": "^1.1.17" + "elysia": "^1.1.22" }, "module": "src/index.tsx", "type": "module", @@ -24,18 +24,18 @@ "start": "bun run src/index.tsx" }, "devDependencies": { - "@eslint/compat": "^1.1.1", + "@eslint/compat": "^1.2.0", "@eslint/js": "^9.12.0", "@ianvs/prettier-plugin-sort-imports": "^4.3.1", "@kitajs/ts-html-plugin": "^4.1.0", "@total-typescript/ts-reset": "^0.6.1", - "@types/bun": "^1.1.10", + "@types/bun": "^1.1.11", "@types/eslint": "^9.6.1", "@types/eslint-plugin-tailwindcss": "^3.17.0", "@types/eslint__js": "^8.42.3", - "@types/node": "^22.7.4", - "@typescript-eslint/eslint-plugin": "^8.7.0", - "@typescript-eslint/parser": "^8.7.0", + "@types/node": "^22.7.6", + "@typescript-eslint/eslint-plugin": "^8.10.0", + "@typescript-eslint/parser": "^8.10.0", "autoprefixer": "^10.4.20", "cssnano": "^7.0.6", "eslint": "^9.12.0", @@ -45,17 +45,17 @@ "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-readable-tailwind": "^1.8.1", "eslint-plugin-simple-import-sort": "^12.1.1", - "eslint-plugin-tailwindcss": "^3.17.4", - "globals": "^15.9.0", - "knip": "^5.30.6", - "npm-run-all2": "^6.2.3", + "eslint-plugin-tailwindcss": "^3.17.5", + "globals": "^15.11.0", + "knip": "^5.33.3", + "npm-run-all2": "^6.2.4", "postcss": "^8.4.47", "postcss-cli": "^11.0.0", "postcss-lightningcss": "^1.0.1", "prettier": "^3.3.3", "tailwind-scrollbar": "^3.1.0", - "tailwindcss": "^3.4.13", - "typescript": "^5.6.2", - "typescript-eslint": "^8.8.0" + "tailwindcss": "^3.4.14", + "typescript": "^5.6.3", + "typescript-eslint": "^8.10.0" } } \ No newline at end of file From e8ed10dde895bfae278162b805ed9fd4fdfba59e Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 18 Oct 2024 18:53:45 +0200 Subject: [PATCH 005/375] chore(deps): update @elysiajs/html to version 1.1.1 --- bun.lockb | Bin 189152 -> 187180 bytes package.json | 2 +- src/components/base.tsx | 7 ++++++- src/components/header.tsx | 19 ++++++++++++++----- src/index.tsx | 14 +++++++++++++- tsconfig.json | 2 +- 6 files changed, 35 insertions(+), 9 deletions(-) diff --git a/bun.lockb b/bun.lockb index dc0b6f8bd44bb7bd19c91b82aee562d736b03424..171ff68613835922703c834d49a40a7dc877c4b1 100755 GIT binary patch delta 34420 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 delta 35351 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 c^ ( +}: { + children: JSX.Element; + title?: string; +}) => ( diff --git a/src/components/header.tsx b/src/components/header.tsx index 5526d89..6e96e58 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -1,7 +1,12 @@ +import { Html } from "@kitajs/html"; + export const Header = ({ loggedIn, accountRegistration, -}: { loggedIn?: boolean; accountRegistration?: boolean }) => { +}: { + loggedIn?: boolean; + accountRegistration?: boolean; +}) => { let rightNav: JSX.Element; if (loggedIn) { rightNav = ( @@ -12,7 +17,8 @@ export const Header = ({ text-accent-600 transition-all hover:text-accent-500 hover:underline `} - href="/history"> + href="/history" + > History @@ -22,7 +28,8 @@ export const Header = ({ text-accent-600 transition-all hover:text-accent-500 hover:underline `} - href="/logoff"> + href="/logoff" + > Logout @@ -37,7 +44,8 @@ export const Header = ({ text-accent-600 transition-all hover:text-accent-500 hover:underline `} - href="/login"> + href="/login" + > Login @@ -48,7 +56,8 @@ export const Header = ({ text-accent-600 transition-all hover:text-accent-500 hover:underline `} - href="/register"> + href="/register" + > Register diff --git a/src/index.tsx b/src/index.tsx index 6191690..bd5761c 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -2,7 +2,7 @@ import { randomInt, randomUUID } from "node:crypto"; import { rmSync } from "node:fs"; import { mkdir, unlink } from "node:fs/promises"; import cookie from "@elysiajs/cookie"; -import { html } from "@elysiajs/html"; +import { html, Html } from "@elysiajs/html"; import { jwt, type JWTPayloadSpec } from "@elysiajs/jwt"; import { staticPlugin } from "@elysiajs/static"; import { Database } from "bun:sqlite"; @@ -131,6 +131,18 @@ const app = new Elysia({ prefix: "/", }), ) + .get("/test", () => { + return ( + + + Hello World + + +

Hello

+ + + ); + }) .get("/setup", ({ redirect }) => { if (!FIRST_RUN) { return redirect("/login", 302); diff --git a/tsconfig.json b/tsconfig.json index e88c4a9..500a42a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,4 +27,4 @@ "noImplicitOverride": true // "noImplicitReturns": true } -} \ No newline at end of file +} From d2cd6706c9f6f4a0aee9eb0a75456455509e6b16 Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 18 Oct 2024 19:32:42 +0200 Subject: [PATCH 006/375] chore: update @elysiajs/static --- .gitignore | 2 +- Dockerfile | 2 +- bun.lockb | Bin 187180 -> 186720 bytes package.json | 4 ++-- .../android-chrome-192x192.png | Bin .../android-chrome-512x512.png | Bin {src/public => public}/apple-touch-icon.png | Bin {src/public => public}/favicon-16x16.png | Bin {src/public => public}/favicon-32x32.png | Bin {src/public => public}/favicon.ico | Bin {src/public => public}/results.js | 0 {src/public => public}/robots.txt | 0 {src/public => public}/script.js | 0 {src/public => public}/site.webmanifest | 0 renovate.json | 6 +++++- src/index.tsx | 4 ++-- 16 files changed, 11 insertions(+), 7 deletions(-) rename {src/public => public}/android-chrome-192x192.png (100%) rename {src/public => public}/android-chrome-512x512.png (100%) rename {src/public => public}/apple-touch-icon.png (100%) rename {src/public => public}/favicon-16x16.png (100%) rename {src/public => public}/favicon-32x32.png (100%) rename {src/public => public}/favicon.ico (100%) rename {src/public => public}/results.js (100%) rename {src/public => public}/robots.txt (100%) rename {src/public => public}/script.js (100%) rename {src/public => public}/site.webmanifest (100%) diff --git a/.gitignore b/.gitignore index 50e7ce7..db36c85 100644 --- a/.gitignore +++ b/.gitignore @@ -48,4 +48,4 @@ package-lock.json /data /Bruno /tsconfig.tsbuildinfo -/src/public/generated.css \ No newline at end of file +/public/generated.css diff --git a/Dockerfile b/Dockerfile index dca99c7..8ebb307 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,7 +57,7 @@ RUN apk --no-cache add \ COPY --from=install /temp/prod/node_modules node_modules COPY --from=builder /root/.cargo/bin/resvg /usr/local/bin/resvg -COPY --from=prerelease /app/src/public/generated.css /app/src/public/ +COPY --from=prerelease /app/public/generated.css /app/public/ # COPY --from=prerelease /app/src/index.tsx /app/src/ # COPY --from=prerelease /app/package.json . COPY . . diff --git a/bun.lockb b/bun.lockb index 171ff68613835922703c834d49a40a7dc877c4b1..fb93e98937ca3866f408f3b9a4fb3d9805bcc2f4 100755 GIT binary patch delta 33016 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 MTO0H@tK9m(0MNC4hX4Qo delta 33417 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 diff --git a/package.json b/package.json index 3a08d44..783be87 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "dev": "bun run --watch src/index.tsx", "hot": "bun run --hot src/index.tsx", "format": "eslint --fix .", - "build": "postcss ./src/main.css -o ./src/public/generated.css", + "build": "postcss ./src/main.css -o ./public/generated.css", "lint": "run-p 'lint:*'", "lint:tsc": "tsc --noEmit", "lint:knip": "knip", @@ -15,7 +15,7 @@ "@elysiajs/cookie": "^0.8.0", "@elysiajs/html": "^1.1.1", "@elysiajs/jwt": "^1.1.1", - "@elysiajs/static": "1.0.3", + "@elysiajs/static": "^1.1.1", "elysia": "^1.1.22" }, "module": "src/index.tsx", diff --git a/src/public/android-chrome-192x192.png b/public/android-chrome-192x192.png similarity index 100% rename from src/public/android-chrome-192x192.png rename to public/android-chrome-192x192.png diff --git a/src/public/android-chrome-512x512.png b/public/android-chrome-512x512.png similarity index 100% rename from src/public/android-chrome-512x512.png rename to public/android-chrome-512x512.png diff --git a/src/public/apple-touch-icon.png b/public/apple-touch-icon.png similarity index 100% rename from src/public/apple-touch-icon.png rename to public/apple-touch-icon.png diff --git a/src/public/favicon-16x16.png b/public/favicon-16x16.png similarity index 100% rename from src/public/favicon-16x16.png rename to public/favicon-16x16.png diff --git a/src/public/favicon-32x32.png b/public/favicon-32x32.png similarity index 100% rename from src/public/favicon-32x32.png rename to public/favicon-32x32.png diff --git a/src/public/favicon.ico b/public/favicon.ico similarity index 100% rename from src/public/favicon.ico rename to public/favicon.ico diff --git a/src/public/results.js b/public/results.js similarity index 100% rename from src/public/results.js rename to public/results.js diff --git a/src/public/robots.txt b/public/robots.txt similarity index 100% rename from src/public/robots.txt rename to public/robots.txt diff --git a/src/public/script.js b/public/script.js similarity index 100% rename from src/public/script.js rename to public/script.js diff --git a/src/public/site.webmanifest b/public/site.webmanifest similarity index 100% rename from src/public/site.webmanifest rename to public/site.webmanifest diff --git a/renovate.json b/renovate.json index 83ae79a..2d3f60e 100644 --- a/renovate.json +++ b/renovate.json @@ -3,5 +3,9 @@ "extends": [ "config:recommended", ":disableDependencyDashboard" - ] + ], + "lockFileMaintenance": { + "enabled": true, + "automerge": true + } } \ No newline at end of file diff --git a/src/index.tsx b/src/index.tsx index bd5761c..8c6e936 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -127,8 +127,8 @@ const app = new Elysia({ ) .use( staticPlugin({ - assets: "src/public/", - prefix: "/", + assets: "public", + prefix: "", }), ) .get("/test", () => { From c599e98d9dc1108a3056a2f340c8eea3acf0fdfa Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 18 Oct 2024 20:03:19 +0200 Subject: [PATCH 007/375] chore: ignore more files --- .dockerignore | 26 +++++++++++++++----------- bun.lockb | Bin 186720 -> 186720 bytes 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.dockerignore b/.dockerignore index 7ac47b7..9976e9e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,16 +1,20 @@ -node_modules -Dockerfile* -docker-compose* .dockerignore +.editorconfig +.env .git .gitignore -README.md -LICENSE -.vscode -Makefile -helm-charts -.env -.editorconfig .idea +.vscode +CHANGELOG.md coverage* -data \ No newline at end of file +data +docker-compose* +Dockerfile* +eslint.config.js +helm-charts +LICENSE +Makefile +node_modules +prettier.config.js +README.md +renovate.json \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index fb93e98937ca3866f408f3b9a4fb3d9805bcc2f4..df24bb4080dbcac3337bec9a416dd903714e7c60 100755 GIT binary patch delta 25 fcmaE`iTlAO?uIRllCRhq;|%qHaJ#}QMu+zRhaCyI delta 25 dcmaE`iTlAO?uIRllCRjA7{Fk=!Yf9H_W*iZ2yFlW From 91c4a64284a491070ead9f15da8f61f43c058c5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emrik=20=C3=96stling?= Date: Fri, 18 Oct 2024 20:07:44 +0200 Subject: [PATCH 008/375] chore: add dev image size --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4553dec..8a7502d 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ ![GitHub commits since latest release](https://img.shields.io/github/commits-since/C4illin/ConvertX/latest) ![GitHub repo size](https://img.shields.io/github/repo-size/C4illin/ConvertX) ![Docker container size](https://ghcr-badge.egpl.dev/c4illin/convertx/size?color=%230375b6&tag=latest&label=image+size&trim=) +![Dev image size](https://ghcr-badge.egpl.dev/c4illin/convertx/size?color=%230375b6&tag=main&label=dev+image&trim=) ![GitHub top language](https://img.shields.io/github/languages/top/C4illin/ConvertX) A self-hosted online file converter. Supports over a thousand different formats. Written with TypeScript, Bun and Elysia. From 0c586e324b53e0aaccd92b4972ae0fe7208257b5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 23:14:26 +0000 Subject: [PATCH 009/375] chore(deps): update oven/bun docker tag to v1.1.32 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8ebb307..1645b7f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.31-alpine AS base +FROM oven/bun:1.1.32-alpine AS base LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX" WORKDIR /app From 9378ba920854b22293410259881f3cf6fd604b05 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 01:09:18 +0000 Subject: [PATCH 010/375] chore(deps): update dependency npm-run-all2 to v7 --- bun.lockb | Bin 186720 -> 187397 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index df24bb4080dbcac3337bec9a416dd903714e7c60..43cfc469f22387ae92cef1109d7a736d995a228d 100755 GIT binary patch delta 13704 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 Date: Thu, 24 Oct 2024 10:42:28 +0000 Subject: [PATCH 011/375] chore(deps): update oven/bun docker tag to v1.1.33 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 1645b7f..f7f4882 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.32-alpine AS base +FROM oven/bun:1.1.33-alpine AS base LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX" WORKDIR /app From 580a6a869a3864456358f40a05e59fe6fd5b693f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2024 06:59:17 +0000 Subject: [PATCH 012/375] chore(deps): update oven/bun docker tag to v1.1.34 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f7f4882..8e007d4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.33-alpine AS base +FROM oven/bun:1.1.34-alpine AS base LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX" WORKDIR /app From 36cb6cc589d80d0a87fa8dbe605db71a9a2570f9 Mon Sep 17 00:00:00 2001 From: C4illin Date: Wed, 6 Nov 2024 08:49:53 +0100 Subject: [PATCH 013/375] feat: Allow to chose webroot issue #180 --- README.md | 21 ++++-- compose.yaml | 1 + public/results.js | 4 +- public/script.js | 10 +-- src/components/base.tsx | 13 ++-- src/components/header.tsx | 12 ++-- src/index.tsx | 139 ++++++++++++++++++++------------------ 7 files changed, 114 insertions(+), 86 deletions(-) diff --git a/README.md b/README.md index 8a7502d..7ab0699 100644 --- a/README.md +++ b/README.md @@ -45,12 +45,8 @@ services: restart: unless-stopped ports: - "3000:3000" - environment: # Defaults are listed below. All are optional. - - ACCOUNT_REGISTRATION=false # true or false, doesn't matter for the first account (e.g. keep this to false if you only want one account) - - JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() by default - - HTTP_ALLOWED=false # setting this to true is unsafe, only set this to true locally - - ALLOW_UNAUTHENTICATED=false # allows anyone to use the service without logging in, only set this to true locally - - AUTO_DELETE_EVERY_N_HOURS=24 # checks every n hours for files older then n hours and deletes them, set to 0 to disable + environment: + - JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() if unset volumes: - convertx:/app/data ``` @@ -65,6 +61,19 @@ Then visit `http://localhost:3000` in your browser and create your account. Don' If you get unable to open database file run `chown -R $USER:$USER path` on the path you choose. +### Environment variables + +All are optional, JWT_SECRET is recommended to be set. + +| Name | Default | Description | +|---------------------------|---------|-------------| +| JWT_SECRET | when unset it will use the value from randomUUID() | A long and secret string used to sign the JSON Web Token | +| ACCOUNT_REGISTRATION | false | Allow users to register accounts | +| HTTP_ALLOWED | false | Allow HTTP connections, only set this to true locally | +| ALLOW_UNAUTHENTICATED | false | Allow unauthenticated users to use the service, only set this to true locally | +| AUTO_DELETE_EVERY_N_HOURS | 24 | Checks every n hours for files older then n hours and deletes them, set to 0 to disable | +| WEBROOT | "" | The address to the root path setting this to "/convert" will serve the website on "example.com/convert/" | + ### Tutorial Tutorial in french: https://belginux.com/installer-convertx-avec-docker/ diff --git a/compose.yaml b/compose.yaml index 89322d5..0238bf6 100644 --- a/compose.yaml +++ b/compose.yaml @@ -11,5 +11,6 @@ services: - HTTP_ALLOWED=true # setting this to true is unsafe, only set this to true locally - ALLOW_UNAUTHENTICATED=true # allows anyone to use the service without logging in, only set this to true locally - AUTO_DELETE_EVERY_N_HOURS=1 # checks every n hours for files older then n hours and deletes them, set to 0 to disable + - WEBROOT=/convertx # the root path of the web interface, leave empty to disable ports: - 3000:3000 diff --git a/public/results.js b/public/results.js index 71bce55..7659edb 100644 --- a/public/results.js +++ b/public/results.js @@ -1,3 +1,5 @@ +const webroot = document.querySelector("meta[name='webroot']").content; + window.downloadAll = function () { // Get all download links const downloadLinks = document.querySelectorAll("a[download]"); @@ -18,7 +20,7 @@ let progressElem = document.querySelector("progress"); const refreshData = () => { // console.log("Refreshing data...", progressElem.value, progressElem.max); if (progressElem.value !== progressElem.max) { - fetch(`/progress/${jobId}`, { + fetch(`${webroot}/progress/${jobId}`, { method: "POST", }) .then((res) => res.text()) diff --git a/public/script.js b/public/script.js index 3ab8259..9a8dfb8 100644 --- a/public/script.js +++ b/public/script.js @@ -1,3 +1,5 @@ +const webroot = document.querySelector("meta[name='webroot']").content; + // Select the file input element const fileInput = document.querySelector('input[type="file"]'); const dropZone = document.getElementById("dropzone"); @@ -132,7 +134,7 @@ fileInput.addEventListener("change", (e) => { // } // } - fetch("/conversions", { + fetch(`${webroot}/conversions`, { method: "POST", body: JSON.stringify({ fileType: fileType }), headers: { @@ -180,7 +182,7 @@ const deleteRow = (target) => { setTitle(); } - fetch("/delete", { + fetch(`${webroot}/delete`, { method: "POST", body: JSON.stringify({ filename: filename }), headers: { @@ -201,7 +203,7 @@ const uploadFiles = (files) => { formData.append("file", file, file.name); } - fetch("/upload", { + fetch(`${webroot}/upload`, { method: "POST", body: formData, }) @@ -212,7 +214,7 @@ const uploadFiles = (files) => { .catch((err) => console.log(err)); }; -const formConvert = document.querySelector("form[action='/convert']"); +const formConvert = document.querySelector(`form[action='${webroot}/convert']`); formConvert.addEventListener("submit", () => { const hiddenInput = document.querySelector("input[name='file_names']"); diff --git a/src/components/base.tsx b/src/components/base.tsx index 9c29dc0..b5e6c00 100644 --- a/src/components/base.tsx +++ b/src/components/base.tsx @@ -3,34 +3,37 @@ import { Html } from "@elysiajs/html"; export const BaseHtml = ({ children, title = "ConvertX", + webroot = "", }: { children: JSX.Element; title?: string; + webroot?: string; }) => ( + {title} - + - + {children} diff --git a/src/components/header.tsx b/src/components/header.tsx index 6e96e58..b1db00e 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -3,9 +3,11 @@ import { Html } from "@kitajs/html"; export const Header = ({ loggedIn, accountRegistration, + webroot = "", }: { loggedIn?: boolean; accountRegistration?: boolean; + webroot?: string; }) => { let rightNav: JSX.Element; if (loggedIn) { @@ -17,7 +19,7 @@ export const Header = ({ text-accent-600 transition-all hover:text-accent-500 hover:underline `} - href="/history" + href={`${webroot}/history`} > History @@ -28,7 +30,7 @@ export const Header = ({ text-accent-600 transition-all hover:text-accent-500 hover:underline `} - href="/logoff" + href={`${webroot}/logoff`} > Logout @@ -44,7 +46,7 @@ export const Header = ({ text-accent-600 transition-all hover:text-accent-500 hover:underline `} - href="/login" + href={`${webroot}/login`} > Login @@ -56,7 +58,7 @@ export const Header = ({ text-accent-600 transition-all hover:text-accent-500 hover:underline `} - href="/register" + href={`${webroot}/register`} > Register @@ -72,7 +74,7 @@ export const Header = ({ diff --git a/src/index.tsx b/src/index.tsx index 8c6e936..3250f5f 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -37,6 +37,8 @@ const AUTO_DELETE_EVERY_N_HOURS = process.env.AUTO_DELETE_EVERY_N_HOURS ? Number(process.env.AUTO_DELETE_EVERY_N_HOURS) : 24; +const WEBROOT = process.env.WEBROOT ?? "/convertx"; + // fileNames: fileNames, // filesToConvert: fileNames.length, // convertedFiles : 0, @@ -112,6 +114,7 @@ const app = new Elysia({ serve: { maxRequestBodySize: Number.MAX_SAFE_INTEGER, }, + prefix: WEBROOT, }) .use(cookie()) .use(html()) @@ -145,18 +148,18 @@ const app = new Elysia({ }) .get("/setup", ({ redirect }) => { if (!FIRST_RUN) { - return redirect("/login", 302); + return redirect(`${WEBROOT}/login`, 302); } return ( - +

Welcome to ConvertX!

Create your account
-
+