No description
Find a file
2024-11-06 08:49:53 +01:00
.github/workflows chore: move to renovate 2024-08-06 22:06:45 +02:00
.vscode chore: add TypeScript settings 2024-07-29 23:03:24 +02:00
images fix: wrong layout on search with few options 2024-09-26 23:37:19 +02:00
public feat: Allow to chose webroot 2024-11-06 08:49:53 +01:00
src feat: Allow to chose webroot 2024-11-06 08:49:53 +01:00
.dockerignore chore: ignore more files 2024-10-18 20:03:19 +02:00
.gitignore chore: update @elysiajs/static 2024-10-18 19:32:42 +02:00
biome.json feat: ui remake with tailwind 2024-09-23 03:58:29 +02:00
bun.lockb chore(deps): update dependency npm-run-all2 to v7 2024-10-22 01:09:18 +00:00
CHANGELOG.md chore(main): release 0.8.1 2024-10-06 00:49:06 +02:00
compose.yaml feat: Allow to chose webroot 2024-11-06 08:49:53 +01:00
Dockerfile chore(deps): update oven/bun docker tag to v1.1.34 2024-11-02 06:59:17 +00:00
eslint.config.js chore: add eslint-plugin-readable-tailwind 2024-10-05 01:01:00 +02:00
LICENSE Create LICENSE 2024-05-24 23:28:00 +02:00
package.json chore(deps): update dependency npm-run-all2 to v7 2024-10-22 01:09:18 +00:00
postcss.config.cjs chore: fix eslint rules 2024-10-05 00:43:24 +02:00
prettier.config.js chore: fix eslint config 2024-09-25 23:46:21 +02:00
README.md feat: Allow to chose webroot 2024-11-06 08:49:53 +01:00
renovate.json chore: update @elysiajs/static 2024-10-18 19:32:42 +02:00
reset.d.ts jsx working 2024-05-19 00:07:56 +02:00
tailwind.config.js chore: fix eslint rules 2024-10-05 00:43:24 +02:00
tsconfig.json chore(deps): update @elysiajs/html to version 1.1.1 2024-10-18 18:53:45 +02:00

ConvertX

ConvertX

Docker GitHub Release GitHub commits since latest release GitHub repo size Docker container size Dev image size GitHub top language

A self-hosted online file converter. Supports over a thousand different formats. Written with TypeScript, Bun and Elysia.

Features

  • Convert files to different formats
  • Process multiple files at once
  • Password protection
  • Multiple accounts

Converters supported

Converter Use case Converts from Converts to
libjxl JPEG XL 11 11
resvg SVG 1 1
Vips Images 45 23
Assimp 3D Assets 70 24
XeLaTeX LaTeX 1 1
Pandoc Documents 43 65
GraphicsMagick Images 166 133
FFmpeg Video ~473 ~280

Any missing converter? Open an issue or pull request!

Deployment

# docker-compose.yml
services:
  convertx: 
    image: ghcr.io/c4illin/convertx
    container_name: convertx
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() if unset
    volumes:
      - convertx:/app/data

or

docker run -p 3000:3000 -v ./data:/app/data ghcr.io/c4illin/convertx

Then visit http://localhost:3000 in your browser and create your account. Don't leave it unconfigured and open, as anyone can register the first account.

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/

Screenshots

ConvertX Preview

Development

  1. Install Bun and Git
  2. Clone the repository
  3. bun install
  4. bun run dev

Pull requests are welcome! See below and open issues for the list of todos.

Todo

  • Add messages for errors in converters
  • Add searchable list of formats
  • Add options for converters
  • Divide index.tsx into smaller components
  • Add tests
  • Make the upload button nicer and more easy to drop files on. Support copy paste as well if possible.
  • Make errors logs visible from the web ui
  • Add more converters:

Contributors

Star History

Star History Chart