chore: add tutorial link
This commit is contained in:
parent
43497ad8d1
commit
24bea6e4d2
1 changed files with 125 additions and 124 deletions
249
README.md
249
README.md
|
|
@ -1,124 +1,125 @@
|
||||||

|

|
||||||
|
|
||||||
# ConvertX
|
# ConvertX
|
||||||
|
|
||||||
[](https://github.com/C4illin/ConvertX/actions/workflows/docker-publish.yml)
|
[](https://github.com/C4illin/ConvertX/actions/workflows/docker-publish.yml)
|
||||||
[](https://github.com/C4illin/ConvertX/pkgs/container/convertx)
|
[](https://github.com/C4illin/ConvertX/pkgs/container/convertx)
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
A self-hosted online file converter. Supports over a thousand different formats. Written with TypeScript, Bun and Elysia.
|
A self-hosted online file converter. Supports over a thousand different formats. Written with TypeScript, Bun and Elysia.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Convert files to different formats
|
- Convert files to different formats
|
||||||
- Process multiple files at once
|
- Process multiple files at once
|
||||||
- Password protection
|
- Password protection
|
||||||
- Multiple accounts
|
- Multiple accounts
|
||||||
|
|
||||||
## Converters supported
|
## Converters supported
|
||||||
|
|
||||||
| Converter | Use case | Converts from | Converts to |
|
| Converter | Use case | Converts from | Converts to |
|
||||||
|------------------------------------------------------------------------------|---------------|---------------|-------------|
|
|------------------------------------------------------------------------------|---------------|---------------|-------------|
|
||||||
| [libjxl](https://github.com/libjxl/libjxl) | JPEG XL | 11 | 11 |
|
| [libjxl](https://github.com/libjxl/libjxl) | JPEG XL | 11 | 11 |
|
||||||
| [resvg](https://github.com/RazrFalcon/resvg) | SVG | 1 | 1 |
|
| [resvg](https://github.com/RazrFalcon/resvg) | SVG | 1 | 1 |
|
||||||
| [Vips](https://github.com/libvips/libvips) | Images | 45 | 23 |
|
| [Vips](https://github.com/libvips/libvips) | Images | 45 | 23 |
|
||||||
| [Assimp](https://github.com/assimp/assimp) | 3D Assets | 70 | 24 |
|
| [Assimp](https://github.com/assimp/assimp) | 3D Assets | 70 | 24 |
|
||||||
| [XeLaTeX](https://tug.org/xetex/) | LaTeX | 1 | 1 |
|
| [XeLaTeX](https://tug.org/xetex/) | LaTeX | 1 | 1 |
|
||||||
| [Pandoc](https://pandoc.org/) | Documents | 43 | 65 |
|
| [Pandoc](https://pandoc.org/) | Documents | 43 | 65 |
|
||||||
| [GraphicsMagick](http://www.graphicsmagick.org/) | Images | 166 | 133 |
|
| [GraphicsMagick](http://www.graphicsmagick.org/) | Images | 166 | 133 |
|
||||||
| [FFmpeg](https://ffmpeg.org/) | Video | ~473 | ~280 |
|
| [FFmpeg](https://ffmpeg.org/) | Video | ~473 | ~280 |
|
||||||
|
|
||||||
<!-- many ffmpeg fileformats are duplicates -->
|
<!-- many ffmpeg fileformats are duplicates -->
|
||||||
|
|
||||||
Any missing converter? Open an issue or pull request!
|
Any missing converter? Open an issue or pull request!
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
# docker-compose.yml
|
# docker-compose.yml
|
||||||
services:
|
services:
|
||||||
convertx:
|
convertx:
|
||||||
image: ghcr.io/c4illin/convertx
|
image: ghcr.io/c4illin/convertx
|
||||||
container_name: convertx
|
container_name: convertx
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "3000:3000"
|
- "3000:3000"
|
||||||
environment:
|
environment:
|
||||||
- JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() if unset
|
- JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() if unset
|
||||||
volumes:
|
volumes:
|
||||||
- convertx:/app/data
|
- convertx:/app/data
|
||||||
```
|
```
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -p 3000:3000 -v ./data:/app/data ghcr.io/c4illin/convertx
|
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.
|
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.
|
If you get unable to open database file run `chown -R $USER:$USER path` on the path you choose.
|
||||||
|
|
||||||
### Environment variables
|
### Environment variables
|
||||||
|
|
||||||
All are optional, JWT_SECRET is recommended to be set.
|
All are optional, JWT_SECRET is recommended to be set.
|
||||||
|
|
||||||
| Name | Default | Description |
|
| 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 |
|
| 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 |
|
| ACCOUNT_REGISTRATION | false | Allow users to register accounts |
|
||||||
| HTTP_ALLOWED | false | Allow HTTP connections, only set this to true locally |
|
| 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 |
|
| 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 |
|
| 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/" |
|
| WEBROOT | "" | The address to the root path setting this to "/convert" will serve the website on "example.com/convert/" |
|
||||||
|
|
||||||
### Tutorial
|
### Tutorial
|
||||||
|
|
||||||
Tutorial in french: <https://belginux.com/installer-convertx-avec-docker/>
|
Tutorial in french: <https://belginux.com/installer-convertx-avec-docker/>
|
||||||
|
Tutorial in chinese: <https://xzllll.com/24092901/>
|
||||||
## Screenshots
|
|
||||||
|
## Screenshots
|
||||||

|
|
||||||
|

|
||||||
## Development
|
|
||||||
|
## Development
|
||||||
0. Install [Bun](https://bun.sh/) and Git
|
|
||||||
1. Clone the repository
|
0. Install [Bun](https://bun.sh/) and Git
|
||||||
2. `bun install`
|
1. Clone the repository
|
||||||
3. `bun run dev`
|
2. `bun install`
|
||||||
|
3. `bun run dev`
|
||||||
Pull requests are welcome! See below and open issues for the list of todos.
|
|
||||||
|
Pull requests are welcome! See below and open issues for the list of todos.
|
||||||
## Todo
|
|
||||||
|
## Todo
|
||||||
- [x] Add messages for errors in converters
|
|
||||||
- [x] Add searchable list of formats
|
- [x] Add messages for errors in converters
|
||||||
- [ ] Add options for converters
|
- [x] Add searchable list of formats
|
||||||
- [ ] Divide index.tsx into smaller components
|
- [ ] Add options for converters
|
||||||
- [ ] Add tests
|
- [ ] Divide index.tsx into smaller components
|
||||||
- [ ] Make the upload button nicer and more easy to drop files on. Support copy paste as well if possible.
|
- [ ] Add tests
|
||||||
- [ ] Make errors logs visible from the web ui
|
- [ ] Make the upload button nicer and more easy to drop files on. Support copy paste as well if possible.
|
||||||
- [ ] Add more converters:
|
- [ ] Make errors logs visible from the web ui
|
||||||
- [ ] [deark](https://github.com/jsummers/deark)
|
- [ ] Add more converters:
|
||||||
- [ ] LibreOffice
|
- [ ] [deark](https://github.com/jsummers/deark)
|
||||||
- [ ] [dvisvgm](https://github.com/mgieseki/dvisvgm)
|
- [ ] LibreOffice
|
||||||
|
- [ ] [dvisvgm](https://github.com/mgieseki/dvisvgm)
|
||||||
## Contributors
|
|
||||||
|
## Contributors
|
||||||
<a href="https://github.com/C4illin/ConvertX/graphs/contributors">
|
|
||||||
<img src="https://contrib.rocks/image?repo=C4illin/ConvertX" alt="Image with all contributors"/>
|
<a href="https://github.com/C4illin/ConvertX/graphs/contributors">
|
||||||
</a>
|
<img src="https://contrib.rocks/image?repo=C4illin/ConvertX" alt="Image with all contributors"/>
|
||||||
|
</a>
|
||||||
## Star History
|
|
||||||
|
## Star History
|
||||||
<a href="https://github.com/C4illin/ConvertX/stargazers">
|
|
||||||
<picture>
|
<a href="https://github.com/C4illin/ConvertX/stargazers">
|
||||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=C4illin/ConvertX&type=Date&theme=dark" />
|
<picture>
|
||||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=C4illin/ConvertX&type=Date" />
|
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=C4illin/ConvertX&type=Date&theme=dark" />
|
||||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=C4illin/ConvertX&type=Date" />
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=C4illin/ConvertX&type=Date" />
|
||||||
</picture>
|
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=C4illin/ConvertX&type=Date" />
|
||||||
</a>
|
</picture>
|
||||||
|
</a>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue