# ConvertX

Self-hosted file converter web app for many document, image, audio and video formats.

- Replaces: [CloudConvert](https://openlogs.fyi/alternatives/cloudconvert)
- Summary: Paid file conversion services, such as CloudConvert.
- Stack: TypeScript (language)
- Deployment: docker_compose
- License: AGPL-3.0 (osi) [source](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/LICENSE)
- Business model: unknown. The README at the pinned commit does not state a business model, so it stays unknown. ([source](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md), read 2026-10-22)
- Difficulty: easy. 1 service, 1 volume mount, no env values to set, no elevated host access. Heuristic score 0 of 11: easy.
- Requirements: not stated
- Repository: [C4illin/ConvertX](https://github.com/C4illin/ConvertX)

## Install

1. Docker with the Compose plugin ([source](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md#L62-L77))

   ```text
   A host with Docker and the Docker Compose plugin. This entry runs from a compose file.
   ```

2. Save the code block as docker-compose.yml ([source](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md))

   ```yaml
   # docker-compose.yml
   services:
     convertx:
       image: ghcr.io/c4illin/convertx
       container_name: convertx
       restart: unless-stopped
       ports:
         - "3000:3000"
       environment:
         - PUID=1000 # user id for file permissions (should match your host user id)
         - JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() if unset
         # - HTTP_ALLOWED=true # uncomment this if accessing it over a non-https connection
       volumes:
         - ./data:/app/data
   ```

3. What the compose file check ran with ([source](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md#L62-L77))

   ```text
   This compose file is copied unchanged from the code block in https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md#L62-L77. The check ran on that block alone. The README shows this docker-compose.yml in its Deployment section.
   ```

4. Start it ([source](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md))

   ```bash
   docker compose up -d
   ```

5. Open the app ([source](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md))

   ```text
   Open http://localhost:3000. The compose file publishes host port 3000 for the convertx service. The README says to visit this address and create an account.
   ```

Compose file check: config_ok on 2026-10-22.

## Gotchas and maintenance

### Gotchas

- Some images use the latest tag or no tag: Images without a pinned version: convertx: ghcr.io/c4illin/convertx (no tag). A later pull can get a different version. ([source](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md), checked 2026-10-22)
- The compose file publishes host ports: Host ports: 3000 (convertx). A port without a host address listens on all host network interfaces. ([source](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md), checked 2026-10-22)
- The compose file mounts host folders: Host paths mounted into containers: ./data at /app/data (convertx). ([source](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md), checked 2026-10-22)

### Signals

Computed from a GitHub snapshot taken 2026-10-22.

- Open issues and pull requests: 117
- Stars: 19184, forks: 1096
- Last push: 2026-10-22 (0 days ago)
- Latest release: v0.19.0 on 2026-09-26 (26 days ago)

## Sources

- [Repository: https://github.com/C4illin/ConvertX](https://github.com/C4illin/ConvertX)
- [License: https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/LICENSE](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/LICENSE)
- [Business model: https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md)
- [Install step: https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md#L62-L77](https://github.com/C4illin/ConvertX/blob/550f83855bf75ab60a24eeaf3efb6ec924a84098/README.md#L62-L77)

---
Canonical: https://openlogs.fyi/tools/convertx  
Last updated: 2026-10-22
