#!/usr/bin/env bash # Copyright (c) 2021-2026 community-scripts ORG # Author: MickLesk (CanbiZ) # License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE # Source: https://github.com/papra-hq/papra source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" color verb_ip6 catch_errors setting_up_container network_check update_os msg_info "Installing Dependencies" $STD apt install -y \ build-essential \ tesseract-ocr \ tesseract-ocr-all msg_ok "Installed Dependencies" NODE_VERSION="24" setup_nodejs RELEASE=$(curl -fsSL https://api.github.com/repos/papra-hq/papra/releases | grep -oP '"tag_name":\s*"\K@papra/docker@[^"]+' | head -n1) fetch_and_deploy_gh_release "papra" "papra-hq/papra" "tarball" "${RELEASE}" "/opt/papra" msg_info "Setup Papra" cd /opt/papra export COREPACK_ENABLE_NETWORK=1 $STD corepack enable $STD corepack prepare pnpm@10.19.0 --activate $STD pnpm install --frozen-lockfile $STD pnpm --filter "@papra/app-client..." run build $STD pnpm --filter "@papra/app-server..." run build msg_ok "Set up Papra" msg_info "Configuring Papra" DATA_DIR="/opt/papra_data" # Create persistent data directories (survive updates/CLEAN_INSTALL) mkdir -p "${DATA_DIR}/db" mkdir -p "${DATA_DIR}/documents" mkdir -p "${DATA_DIR}/ingestion" # Link client build to server public dir ln -sf /opt/papra/apps/papra-client/dist /opt/papra/apps/papra-server/public # Generate secret only on first install, preserve on updates if [[ ! -f "${DATA_DIR}/.auth_secret" ]]; then openssl rand -hex 32 > "${DATA_DIR}/.auth_secret" fi AUTH_SECRET=$(cat "${DATA_DIR}/.auth_secret") cat >/opt/papra/apps/papra-server/.env </etc/systemd/system/papra.service </opt/papra_version.txt msg_ok "Created and Started Papra Service" motd_ssh customize cleanup_lxc