Keine Beschreibung

C4illin 3b2eee96a9 chore: update deps vor 8 Monaten
.github 43497ad8d1 ci: split docker hub description to separate workflow vor 9 Monaten
.vscode 27d4da8941 chore: add TypeScript settings vor 1 Jahr
images 88173891ba fix: wrong layout on search with few options vor 10 Monaten
public 4c05fd72bb fix: wait for both upload and selection vor 8 Monaten
src 465aacbf9b chore: update formats vor 8 Monaten
.dockerignore c599e98d9d chore: ignore more files vor 9 Monaten
.gitignore d2cd6706c9 chore: update @elysiajs/static vor 9 Monaten
CHANGELOG.md c3067ca12d chore(main): release 0.8.1 vor 10 Monaten
Dockerfile 834d19bcc6 chore(deps): update oven/bun docker tag to v1.1.36 vor 8 Monaten
LICENSE 16c1460620 Create LICENSE vor 1 Jahr
README.md 6808c4642c Update README.md vor 8 Monaten
biome.json 22f823c535 feat: ui remake with tailwind vor 10 Monaten
bun.lockb 3b2eee96a9 chore: update deps vor 8 Monaten
compose.yaml 36cb6cc589 feat: Allow to chose webroot vor 9 Monaten
eslint.config.js 5fb8c3575b chore: add eslint-plugin-readable-tailwind vor 10 Monaten
package.json 3b2eee96a9 chore: update deps vor 8 Monaten
postcss.config.cjs ee9207a7f4 chore: fix eslint rules vor 10 Monaten
prettier.config.js fa5446c446 chore: fix eslint config vor 10 Monaten
renovate.json d2cd6706c9 chore: update @elysiajs/static vor 9 Monaten
reset.d.ts a68046ecd6 jsx working vor 1 Jahr
tailwind.config.js ee9207a7f4 chore: fix eslint rules vor 10 Monaten
tsconfig.json e8ed10dde8 chore(deps): update @elysiajs/html to version 1.1.1 vor 9 Monaten

README.md

ConvertX

ConvertX

Docker ghcr.io Pulls GitHub Release GitHub commits since latest release GitHub repo size Docker container size

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
Inkscape Vector images 7 17
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/"

[!WARNING] If you can't login, make sure you are accessing the service over https or set HTTP_ALLOWED=true

Tutorial

Tutorial in french: https://belginux.com/installer-convertx-avec-docker/

Tutorial in chinese: https://xzllll.com/24092901/

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

Image with all contributors

Star History

Star History Chart