2024-05-25 02:37:22 +02:00

2024-05-24 22:58:25 +02:00
# ConvertX
2024-05-26 21:01:42 +02:00
[](https://github.com/C4illin/ConvertX/actions/workflows/docker-publish.yml)
2024-06-01 00:18:48 +02:00
[](https://github.com/C4illin/ConvertX/pkgs/container/convertx)
2024-05-30 16:13:59 +02:00

2024-05-31 16:42:15 +02:00

2024-06-01 13:07:22 +02:00

2024-05-31 16:42:15 +02:00

2024-05-24 22:58:25 +02:00
2024-06-01 13:02:31 +02:00
A self-hosted online file converter. Supports 831 different formats. Written with TypeScript, Bun and Elysia.
2024-05-25 15:56:34 +02:00
2024-05-24 22:58:25 +02:00
## Features
- Convert files to different formats
- Password protection
- Multiple accounts
## Converters supported
2024-05-31 16:27:24 +02:00
| Converter | Use case | Converts from | Converts to |
|------------------------------------------------------------------------------|---------------|---------------|-------------|
2024-06-20 20:23:34 +02:00
| [libjxl ](https://github.com/libjxl/libjxl ) | JPEG XL | 11 | 11 |
2024-06-11 19:36:19 +02:00
| [Vips ](https://github.com/libvips/libvips ) | Images | 45 | 23 |
2024-06-27 23:26:46 +02:00
| [XeLaTeX ](https://tug.org/xetex/ ) | Documents | 1 | 1 |
2024-05-31 16:27:24 +02:00
| [Pandoc ](https://pandoc.org/ ) | Documents | 43 | 65 |
| [GraphicsMagick ](http://www.graphicsmagick.org/ ) | Images | 166 | 133 |
| [FFmpeg ](https://ffmpeg.org/ ) | Video | ~473 | ~280 |
2024-05-25 00:59:28 +02:00
<!-- many ffmpeg fileformats are duplicates -->
2024-05-24 22:58:25 +02:00
2024-07-03 00:31:54 +02:00
Any missing converter? Open an issue or pull request!
2024-05-24 22:58:25 +02:00
## Deployment
```yml
# docker-compose.yml
services :
convertx :
2024-05-30 14:36:05 +02:00
image : ghcr.io/c4illin/convertx
2024-05-24 22:58:25 +02:00
ports :
- "3000:3000"
2024-05-29 13:52:00 +02:00
environment : # Defaults are listed below. All are optional.
2024-05-29 12:04:07 +02:00
- 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)
2024-05-29 13:52:00 +02:00
- JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() by default
2024-05-29 10:08:37 +02:00
- HTTP_ALLOWED=false # setting this to true is unsafe, only set this to true locally
2024-05-24 22:58:25 +02:00
volumes :
2024-05-29 10:07:40 +02:00
- convertx:/app/data
2024-05-24 22:58:25 +02:00
```
<!-- or
```bash
docker run ghcr.io/c4illin/convertx:master -p 3000:3000 -e ACCOUNT_REGISTRATION=false -v /path/you/want:/app/data
``` -->
2024-05-25 02:48:30 +02:00
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.
2024-05-28 20:07:36 +02:00
If you get unable to open database file run `chown -R $USER:$USER path` on the path you choose.
2024-05-29 10:04:41 +02:00
### Tutorial
Tutorial in french: https://belginux.com/installer-convertx-avec-docker/
2024-05-25 02:48:30 +02:00
## Todo
2024-05-25 15:56:34 +02:00
- [x] Add messages for errors in converters
2024-05-25 02:48:30 +02:00
- [ ] Add options for converters
- [ ] Add more converters
- [ ] Divide index.tsx into smaller components
2024-05-25 17:29:52 +02:00
- [ ] Add tests
2024-05-26 21:01:42 +02:00
- [ ] Add searchable list of formats
2024-06-01 13:02:31 +02:00
- [ ] Make the upload button nicer and more easy to drop files on. Support copy paste as well if possible.
2024-05-29 10:13:11 +02:00
2024-05-29 10:14:23 +02:00
## Contributors
<a href="https://github.com/C4illin/ConvertX/graphs/contributors">
<img src="https://contrib.rocks/image?repo=C4illin/ConvertX" />
</a>
2024-05-29 10:13:11 +02:00
## Star History
<a href="https://github.com/C4illin/ConvertX/stargazers">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=C4illin/ConvertX&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=C4illin/ConvertX&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=C4illin/ConvertX&type=Date" />
</picture>
</a>