diff --git a/README.md b/README.md index ae443fd..0f6a5f8 100644 --- a/README.md +++ b/README.md @@ -1,124 +1,125 @@ -![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) -[![GitHub Release](https://img.shields.io/github/v/release/C4illin/ConvertX)](https://github.com/C4illin/ConvertX/pkgs/container/convertx) -![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. - -## 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](https://github.com/libjxl/libjxl) | JPEG XL | 11 | 11 | -| [resvg](https://github.com/RazrFalcon/resvg) | SVG | 1 | 1 | -| [Vips](https://github.com/libvips/libvips) | Images | 45 | 23 | -| [Assimp](https://github.com/assimp/assimp) | 3D Assets | 70 | 24 | -| [XeLaTeX](https://tug.org/xetex/) | LaTeX | 1 | 1 | -| [Pandoc](https://pandoc.org/) | Documents | 43 | 65 | -| [GraphicsMagick](http://www.graphicsmagick.org/) | Images | 166 | 133 | -| [FFmpeg](https://ffmpeg.org/) | Video | ~473 | ~280 | - - - -Any missing converter? Open an issue or pull request! - -## Deployment - -```yml -# 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 - -```bash -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: - -## Screenshots - -![ConvertX Preview](images/preview.png) - -## Development - -0. Install [Bun](https://bun.sh/) and Git -1. Clone the repository -2. `bun install` -3. `bun run dev` - -Pull requests are welcome! See below and open issues for the list of todos. - -## Todo - -- [x] Add messages for errors in converters -- [x] 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: - - [ ] [deark](https://github.com/jsummers/deark) - - [ ] LibreOffice - - [ ] [dvisvgm](https://github.com/mgieseki/dvisvgm) - -## Contributors - - - Image with all contributors - - -## Star History - - - - - - Star History Chart - - +![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) +[![GitHub Release](https://img.shields.io/github/v/release/C4illin/ConvertX)](https://github.com/C4illin/ConvertX/pkgs/container/convertx) +![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. + +## 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](https://github.com/libjxl/libjxl) | JPEG XL | 11 | 11 | +| [resvg](https://github.com/RazrFalcon/resvg) | SVG | 1 | 1 | +| [Vips](https://github.com/libvips/libvips) | Images | 45 | 23 | +| [Assimp](https://github.com/assimp/assimp) | 3D Assets | 70 | 24 | +| [XeLaTeX](https://tug.org/xetex/) | LaTeX | 1 | 1 | +| [Pandoc](https://pandoc.org/) | Documents | 43 | 65 | +| [GraphicsMagick](http://www.graphicsmagick.org/) | Images | 166 | 133 | +| [FFmpeg](https://ffmpeg.org/) | Video | ~473 | ~280 | + + + +Any missing converter? Open an issue or pull request! + +## Deployment + +```yml +# 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 + +```bash +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: +Tutorial in chinese: + +## Screenshots + +![ConvertX Preview](images/preview.png) + +## Development + +0. Install [Bun](https://bun.sh/) and Git +1. Clone the repository +2. `bun install` +3. `bun run dev` + +Pull requests are welcome! See below and open issues for the list of todos. + +## Todo + +- [x] Add messages for errors in converters +- [x] 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: + - [ ] [deark](https://github.com/jsummers/deark) + - [ ] LibreOffice + - [ ] [dvisvgm](https://github.com/mgieseki/dvisvgm) + +## Contributors + + + Image with all contributors + + +## Star History + + + + + + Star History Chart + +