ConvertX¶
ConvertX is a self-hosted online file convert. Supports 1000+ formats.
Installation¶
Default Port: 3000
Config¶
homelab/docker/convertx/.env
homelab/docker/convertx/compose.yaml
---
services:
convertx:
container_name: "${CONTAINER_NAME}"
image: "ghcr.io/c4illin/convertx:v0.14.1"
env_file:
- .env
ports:
- '3000:3000'
restart: always
environment:
- HTTP_ALLOWED=true
- ALLOW_UNAUTHENTICATED=true
# - "JWT_SECRET=${JWT_SECRET}"
volumes:
- data:/app/data
# https://offen.github.io/docker-volume-backup/
backup: &backup_service
image: offen/docker-volume-backup:v2.43.4
environment: &backup_environment
BACKUP_FILENAME: backup-%Y-%m-%dT%H-%M-%S.tar.gz
BACKUP_LATEST_SYMLINK: backup-latest.tar.gz
BACKUP_PRUNING_PREFIX: backup-
BACKUP_RETENTION_DAYS: '14'
AGE_PUBLIC_KEYS: "${AGE_PUBLIC_KEYS}"
BACKUP_STOP_DURING_BACKUP_LABEL: service
volumes:
- data:/backup/my-app-backup:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ${HOME}/backups:/archive
# - /mnt/storage/backup/reactive-resume:/archive
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
volumes:
data:
Traefik¶
homelab/pve/traefik/conf.d/convertx.yaml
---
http:
#region routers
routers:
convertx:
entryPoints:
- "websecure"
rule: "Host(`convertx.l.nicholaswilde.io`)"
middlewares:
- default-headers@file
- https-redirectscheme@file
tls: {}
service: convertx
#endregion
#region services
services:
convertx:
loadBalancer:
servers:
- url: "http://192.168.2.144:3000"
passHostHeader: true
#endregion
Task List¶
task: Available tasks for this project:
* backup: Backup volume data
* decrypt: Decrypt .env using SOPS
* encrypt: Encrypt .env using SOPS
* export: Export the task list
* init: Init .env file
* pull: Pull docker images
* restart: Restart Docker containers
* status: Docker container status
* stop: Stop Docker containers
* up: Run Docker compose in the foreground.
* up-d: Run Docker compose in the background.
* update: Update running containers
* upgrade: Upgrade Docker containers
* watch: Watch Docker container logs