![ConvertX](images/logo.png) # ConvertX [![Docker](https://github.com/C4illin/ConvertX/actions/workflows/docker-publish.yml/badge.svg?branch=main)](https://github.com/C4illin/ConvertX/actions/workflows/docker-publish.yml) A self-hosted online file converter. Supports 831 different formats. Written with Typescript, Bun and Elysia. ## Features - Convert files to different formats - Password protection - Multiple accounts ## Converters supported | Converter | Use case | Converts from | Converts to | |----------------|---------------|---------------|-------------| | Vips | Images (fast) | 45 | 23 | | PdfLaTeX | Documents | 1 | 1 | | Pandoc | Documents | 43 | 65 | | GraphicsMagick | Images | 166 | 133 | | FFmpeg | Video | ~473 | ~280 | ## Deployment ```yml # docker-compose.yml services: convertx: image: ghcr.io/c4illin/convertx:main 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 volumes: - convertx:/app/data ``` 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. ### Tutorial Tutorial in french: https://belginux.com/installer-convertx-avec-docker/ ## Todo - [x] Add messages for errors in converters - [ ] Add options for converters - [ ] Add more converters - [ ] Divide index.tsx into smaller components - [ ] Add tests - [ ] Add searchable list of formats ## Contributors ## Star History Star History Chart