Deploy ConvertX
Self-hosted online file converter. Supports 1000+ formats
convertx
Just deployed
/app/data
Deploy and Host ConvertX on Railway
ConvertX is a self-hosted online file conversion service that lets users convert files between supported formats through a web interface. It runs as a Docker-based application and provides configurable authentication, registration, sharing, automatic file cleanup, and conversion settings. ConvertX is designed for users who want to run their own private or shared file-conversion service.
About Hosting ConvertX
Hosting ConvertX on Railway requires a single Docker service and a persistent Railway Volume. Deploy the c4illin/convertx:latest image and expose port 3000 through Railway's public networking. ConvertX stores its application files in /app/data, so a Railway Volume must be mounted at that path to preserve data across deployments and container restarts.
No PostgreSQL, Redis, MongoDB, Dockerfile, or Nixpacks configuration is required for this deployment. Railway provides the public domain and HTTPS, while ConvertX handles file conversion inside the application container. Configure JWT_SECRET as a secure application secret and set LANGUAGE=en for the default interface language. Optional variables can enable account registration, unauthenticated access, automatic cleanup, history visibility, and other application behavior.
Common Use Cases
- Private File Conversion: Run a self-hosted conversion service for personal or internal use.
- Team File Conversion: Allow users to upload and convert files through a shared web application with account-based access.
- Public Conversion Service: Configure optional unauthenticated access when you want visitors to use ConvertX without creating accounts.
Dependencies for ConvertX Hosting
- ConvertX Docker Image:
c4illin/convertx:latest - Railway Volume: Required and mounted at
/app/datafor persistent application data and files. - JWT Secret: Required for application authentication and session security.
- Railway Public Networking: Required to expose ConvertX on port
3000.
Deployment Dependencies
Implementation Details
Docker
Create a Railway service using:
c4illin/convertx:latest
No Dockerfile, Nixpacks configuration, or custom build process is required.
Public Networking
Configure the ConvertX service to expose:
| Setting | Value |
|---|---|
| Proxy Type | HTTP Proxy |
| Target Port | 3000 |
| Application Port | 3000 |
| HTTPS | Railway-managed |
In Railway, open ConvertX → Settings → Networking → Generate Domain.
The application will then be available through the generated Railway HTTPS domain.
Environment Variables
Configure the required variables:
| Variable | Required | Description |
|---|---|---|
JWT_SECRET | Yes | Long random secret used by ConvertX for authentication/session security. |
LANGUAGE | Yes | Default application language. Set to en. |
Raw Editor example:
JWT_SECRET=
LANGUAGE=en
Generate a strong random value for JWT_SECRET and store it as a Railway secret. Do not commit the value to source control.
Optional Variables
Account registration can be enabled with:
ACCOUNT_REGISTRATION=true
For a service that allows use without user accounts:
ALLOW_UNAUTHENTICATED=true
For a private or account-based deployment, leave ALLOW_UNAUTHENTICATED unset.
Automatic file cleanup can be configured with:
AUTO_DELETE_EVERY_N_HOURS=24
Additional documented configuration can include:
HIDE_HISTORY=true
FFMPEG_ARGS=-preset veryfast
WEBROOT=/convert
UNAUTHENTICATED_USER_SHARING=true
Only enable optional settings that match the intended ConvertX deployment.
Persistent Storage
A Railway Volume is required.
Open:
ConvertX → Settings → Volumes → Add Volume
Set the mount path to:
/app/data
ConvertX uses this directory for its persistent application data and files. The volume ensures data is retained when the container is restarted, redeployed, or replaced.
Do not mount the volume at a different path unless ConvertX documentation specifies an alternative data directory.
Database
No external database service is required for this deployment.
Do not add PostgreSQL, Redis, or MongoDB. The supplied deployment configuration uses ConvertX's application storage under:
/app/data
and persists it using a Railway Volume.
Build & Start
No custom build or start command is required.
Railway should deploy:
c4illin/convertx:latest
using the Docker image's default startup configuration.
Do not configure Docker Compose, Nixpacks, or a separate application server.
Accessing the Application
After deployment:
- Open the ConvertX service in Railway.
- Go to Settings → Networking.
- Generate a Railway Domain.
- Wait for the deployment to complete.
- Open the generated HTTPS URL.
The resulting address will use Railway's generated domain, for example:
https://YOUR-CONVERTX-DOMAIN.up.railway.app
If account registration is disabled, users should use the authentication/access configuration provided by the deployment.
For a public conversion service, enable:
ALLOW_UNAUTHENTICATED=true
For a private deployment, leave it disabled and use the application's authentication features.
Recommended Production Configuration
A minimal production deployment is:
Service: ConvertX
Image: c4illin/convertx:latest
Port: 3000
Volume: /app/data
Required variables:
JWT_SECRET=
LANGUAGE=en
Optional configuration:
ACCOUNT_REGISTRATION=true
ALLOW_UNAUTHENTICATED=true
AUTO_DELETE_EVERY_N_HOURS=24
HIDE_HISTORY=true
FFMPEG_ARGS=-preset veryfast
WEBROOT=/convert
UNAUTHENTICATED_USER_SHARING=true
For a private deployment, keep ALLOW_UNAUTHENTICATED disabled. For a shared service, enable account registration only if users should be able to create their own accounts.
Why Deploy ConvertX on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying ConvertX on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
convertx
c4illin/convertx:latest