#!/usr/bin/env bash # Copyright (c) 2021-2026 community-scripts ORG # Author: MickLesk # License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE # Source: https://github.com/transmute-app/transmute source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" color verb_ip6 catch_errors setting_up_container network_check update_os UV_PYTHON="3.13" setup_uv NODE_VERSION="25" setup_nodejs setup_ffmpeg setup_gs msg_info "Installing Dependencies" $STD apt install -y \ inkscape \ tesseract-ocr \ libreoffice-impress \ libreoffice-common \ libmagic1 \ xvfb \ libpango-1.0-0 \ libopengl0 \ libpangocairo-1.0-0 \ libgdk-pixbuf-2.0-0 \ libffi-dev \ libcairo2 \ librsvg2-bin \ unar \ python3-numpy \ python3-lxml \ python3-tinycss2 \ python3-cssselect msg_ok "Installed Dependencies" msg_info "Installing Pandoc" PANDOC_VERSION=$(get_latest_github_release "jgm/pandoc") curl -fsSL "https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}/pandoc-${PANDOC_VERSION#v}-linux-amd64.tar.gz" -o /tmp/pandoc.tar.gz tar -xzf /tmp/pandoc.tar.gz -C /tmp cp /tmp/pandoc-*/bin/pandoc /usr/local/bin/pandoc chmod +x /usr/local/bin/pandoc rm -rf /tmp/pandoc* msg_ok "Installed Pandoc" fetch_and_deploy_gh_release "calibre" "kovidgoyal/calibre" "prebuild" "latest" "/opt/calibre" "calibre-*-x86_64.txz" ln -sf /opt/calibre/ebook-convert /usr/bin/ebook-convert fetch_and_deploy_gh_release "transmute" "transmute-app/transmute" "tarball" "latest" "/opt/transmute" msg_info "Setting up Python Backend" cd /opt/transmute $STD uv venv /opt/transmute/.venv $STD uv pip install --python /opt/transmute/.venv/bin/python -r requirements.txt ln -sf /opt/transmute/.venv/bin/weasyprint /usr/bin/weasyprint msg_ok "Set up Python Backend" msg_info "Configuring Transmute" SECRET_KEY=$(openssl rand -hex 64) cat </opt/transmute/backend/.env AUTH_SECRET_KEY=${SECRET_KEY} HOST=0.0.0.0 PORT=3313 DATA_DIR=/opt/transmute/data WEB_DIR=/opt/transmute/frontend/dist QT_QPA_PLATFORM=offscreen EOF mkdir -p /opt/transmute/data msg_ok "Configured Transmute" msg_info "Building Frontend" cd /opt/transmute/frontend $STD npm ci $STD npm run build msg_ok "Built Frontend" msg_info "Creating Service" cat </etc/systemd/system/transmute.service [Unit] Description=Transmute File Converter After=network.target [Service] Type=simple WorkingDirectory=/opt/transmute EnvironmentFile=/opt/transmute/backend/.env ExecStart=/usr/bin/xvfb-run -a -s "-screen 0 1024x768x24 -nolisten tcp" /opt/transmute/.venv/bin/python backend/main.py Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF systemctl enable -q --now transmute msg_ok "Created Service" motd_ssh customize cleanup_lxc