Skip to main content

ConvertX

Github

A self-hosted online file converter. Supports over a thousand different formats. Written with TypeScript, Bun and Elysia.

services:
  convertx:
    image: ghcr.io/c4illin/convertx
    container_name: convertx
    restart: unless-stopped
    ports:
      - "3800:3000"
    environment:
      - ACCOUNT_REGISTRATION=false
      - ALLOW_UNAUTHENTICATED=true
      - JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() if unset
      - HTTP_ALLOWED=true # uncomment this if accessing it over a non-https connection
    volumes:
      - /srv/Files/Convertx/data:/app/data

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/"
FFMPEG_ARGS   Arguments to pass to the input file of ffmpeg, e.g. -hwaccel vaapi. See #190 for more info about hw-acceleration.
FFMPEG_OUTPUT_ARGS   Arguments to pass to the output of ffmpeg, e.g. -preset veryfast
HIDE_HISTORY false Hide the history page
LANGUAGE en Language to format date strings in, specified as a BCP 47 language tag
UNAUTHENTICATED_USER_SHARING false Shares conversion history between all unauthenticated users
MAX_CONVERT_PROCESS 0 Maximum number of concurrent conversion processes allowed. Set to 0 for unlimited.