From db30c2c63b1128ae1d2bda597adcce6759cb8d2e Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 19 Jan 2026 16:05:10 +0100 Subject: [PATCH] fix affine build (damn) --- ct/affine.sh | 2 +- install/affine-install.sh | 69 +++++++++++++++++++++++++++++++-------- 2 files changed, 57 insertions(+), 14 deletions(-) diff --git a/ct/affine.sh b/ct/affine.sh index 5282e7698..ba81b1a29 100644 --- a/ct/affine.sh +++ b/ct/affine.sh @@ -7,7 +7,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV APP="AFFiNE" var_tags="${var_tags:-knowledge;notes;workspace}" -var_cpu="${var_cpu:-4}" +var_cpu="${var_cpu:-6}" var_ram="${var_ram:-12288}" var_disk="${var_disk:-20}" var_os="${var_os:-debian}" diff --git a/install/affine-install.sh b/install/affine-install.sh index 80e803c13..e20596762 100644 --- a/install/affine-install.sh +++ b/install/affine-install.sh @@ -57,35 +57,78 @@ msg_info "Building AFFiNE (this will take 20-30 minutes)" cd /opt/affine source /root/.profile export PATH="/root/.cargo/bin:$PATH" - set -a && source /opt/affine/.env && set +a - export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 export VITE_CORE_COMMIT_SHA="v0.25.7" -export TURBO_CONCURRENCY="${TURBO_CONCURRENCY:-2}" -msg_info "Cleaning legacy Yarn config" -sed -i '/^parallelism:/d' /root/.yarnrc.yml 2>/dev/null || true -sed -i '/^parallelism=/d' /root/.yarnrc 2>/dev/null || true -sed -i '/^parallelism:/d' /opt/affine/.yarnrc.yml 2>/dev/null || true -msg_ok "Yarn config cleaned" +# Initialize git repo (required for build process) +git init -q +git config user.email "build@local" +git config user.name "Build" +git add -A +git commit -q -m "initial" + +# Force Turbo to run sequentially +mkdir -p /opt/affine/.turbo +cat </opt/affine/.turbo/config.json +{ + "concurrency": 1 +} +TURBO $STD corepack enable $STD corepack prepare yarn@4.12.0 --activate $STD yarn config set enableTelemetry 0 + +# Limit TypeScript memory per process +export NODE_OPTIONS="--max-old-space-size=2048" +export TSC_COMPILE_ON_ERROR=true + $STD yarn install -$STD yarn add -D typescript --workspace-root + +# Make TypeScript available via npx/yarn exec +$STD npm install -g typescript + $STD yarn affine @affine/native build $STD yarn affine @affine/server-native build + +# Create architecture-specific symlinks for server-native +ln -sf /opt/affine/packages/backend/native/server-native.node \ + /opt/affine/packages/backend/native/server-native.x64.node +ln -sf /opt/affine/packages/backend/native/server-native.node \ + /opt/affine/packages/backend/native/server-native.arm64.node +ln -sf /opt/affine/packages/backend/native/server-native.node \ + /opt/affine/packages/backend/native/server-native.armv7.node + $STD yarn affine init -$STD yarn affine build -p @affine/reader --deps -$STD yarn affine build -p @affine/server --deps -export NODE_OPTIONS=--max-old-space-size=6144 -$STD yarn affine build -p @affine/web --deps + +msg_info "Building packages sequentially (this takes a while)" +$STD yarn affine build -p @affine/reader +$STD yarn affine build -p @affine/server + +# Web build needs more memory +export NODE_OPTIONS="--max-old-space-size=4096" +$STD yarn affine build -p @affine/web + +# Copy web assets to server static directory +mkdir -p /opt/affine/packages/backend/server/static +cp -r /opt/affine/packages/frontend/apps/web/dist/* /opt/affine/packages/backend/server/static/ + +# Create empty mobile manifest (server expects it but we don't build mobile) +mkdir -p /opt/affine/packages/backend/server/static/mobile +cat <<'MANIFEST' >/opt/affine/packages/backend/server/static/mobile/assets-manifest.json +{"publicPath":"/","js":[],"css":[],"gitHash":"","description":""} +MANIFEST + +# Copy selfhost.html to admin directory +mkdir -p /opt/affine/packages/backend/server/static/admin +cp /opt/affine/packages/backend/server/static/selfhost.html \ + /opt/affine/packages/backend/server/static/admin/selfhost.html msg_ok "Built AFFiNE" msg_info "Running Initial Migration" cd /opt/affine/packages/backend/server +set -a && source /opt/affine/.env && set +a $STD node ./scripts/self-host-predeploy.js msg_ok "Ran Initial Migration"