mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-09-15 17:24:10 +00:00
Docmost pins its package manager, so running pnpm goes through corepack, which asks before fetching the pinned version: Corepack is about to download .../pnpm-11.25.0.tgz ? Do you want to continue? [Y/n] The pnpm calls run under $STD, so with verbose off the question is never shown and the update sits on "Configuring Docmost" waiting for an answer nobody can see. With verbose on the same update completes, because the prompt is visible and gets answered, which is exactly what the reporter observed. Set COREPACK_ENABLE_DOWNLOAD_PROMPT=0 before the pnpm calls in both the install and the update, the way fifteen other ct scripts and ten install scripts already do.
81 lines
2.9 KiB
Bash
81 lines
2.9 KiB
Bash
#!/usr/bin/env bash
|
||
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||
# Copyright (c) 2021-2026 community-scripts ORG
|
||
# Author: MickLesk (CanbiZ)
|
||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||
# Source: https://docmost.com/ | Github: https://github.com/docmost/docmost
|
||
|
||
APP="Docmost"
|
||
var_tags="${var_tags:-documents}"
|
||
var_cpu="${var_cpu:-3}"
|
||
var_ram="${var_ram:-4096}"
|
||
var_disk="${var_disk:-8}"
|
||
var_os="${var_os:-debian}"
|
||
var_version="${var_version:-13}"
|
||
var_arm64="${var_arm64:-yes}"
|
||
|
||
header_info "$APP"
|
||
variables
|
||
color
|
||
catch_errors
|
||
|
||
function update_script() {
|
||
header_info
|
||
check_container_storage
|
||
check_container_resources
|
||
if [[ ! -d /opt/docmost ]]; then
|
||
msg_error "No ${APP} Installation Found!"
|
||
exit
|
||
fi
|
||
if ! command -v node >/dev/null || [[ "$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')" != "26" ]]; then
|
||
NODE_VERSION="26" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||
fi
|
||
export NODE_OPTIONS="--max_old_space_size=4096"
|
||
|
||
if check_for_gh_release "docmost" "docmost/docmost"; then
|
||
msg_info "Stopping Service"
|
||
systemctl stop docmost
|
||
msg_ok "Stopped Service"
|
||
|
||
create_backup /opt/docmost/.env /opt/docmost/data
|
||
|
||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "docmost" "docmost/docmost" "tarball"
|
||
|
||
restore_backup
|
||
|
||
# Fix: Docmost EE (audit logs etc.) lives in a git submodule that is NOT
|
||
# included in GitHub tarballs. The community NoopAuditService exists but
|
||
# is only exported by CoreModule – child modules such as UserModule cannot
|
||
# resolve it. Making CoreModule @Global() exposes the token app-wide.
|
||
if [[ ! -f /opt/docmost/apps/server/src/ee/ee.module.ts ]] &&
|
||
! grep -q '@Global()' /opt/docmost/apps/server/src/core/core.module.ts 2>/dev/null; then
|
||
sed -i '/^ Module,$/a\ Global,' /opt/docmost/apps/server/src/core/core.module.ts
|
||
sed -i '/^@Module({$/i @Global()' /opt/docmost/apps/server/src/core/core.module.ts
|
||
fi
|
||
|
||
msg_info "Configuring Docmost"
|
||
cd /opt/docmost
|
||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||
$STD pnpm install --force
|
||
$STD pnpm build
|
||
msg_ok "Configured Docmost"
|
||
|
||
msg_info "Starting Service"
|
||
systemctl start docmost
|
||
msg_ok "Started Service"
|
||
msg_ok "Updated successfully!"
|
||
fi
|
||
exit
|
||
}
|
||
|
||
start
|
||
build_container
|
||
description
|
||
|
||
msg_ok "Completed successfully!\n"
|
||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
|
||
echo -e "${GATEWAY}${BGN}http://${IP}:3000${CL}"
|