fix(affine): reduce runtime RAM, fix external URL, admin build, version tracking
This commit is contained in:
14
ct/affine.sh
14
ct/affine.sh
@@ -30,7 +30,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "affine" "toeverything/AFFiNE"; then
|
if check_for_gh_release "affine_app" "toeverything/AFFiNE"; then
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
systemctl stop affine-web affine-worker
|
systemctl stop affine-web affine-worker
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
@@ -42,7 +42,7 @@ function update_script() {
|
|||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "affine_app" "toeverything/AFFiNE" "tarball" "latest" "/opt/affine"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "affine_app" "toeverything/AFFiNE" "tarball" "latest" "/opt/affine"
|
||||||
|
|
||||||
msg_info "Rebuilding Application"
|
msg_info "Rebuilding Application (Patience)"
|
||||||
cd /opt/affine
|
cd /opt/affine
|
||||||
source /root/.profile
|
source /root/.profile
|
||||||
export PATH="/root/.cargo/bin:/root/.rbenv/shims:$PATH"
|
export PATH="/root/.cargo/bin:/root/.rbenv/shims:$PATH"
|
||||||
@@ -50,7 +50,7 @@ function update_script() {
|
|||||||
set -a && source /opt/affine/.env && set +a
|
set -a && source /opt/affine/.env && set +a
|
||||||
|
|
||||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||||
export VITE_CORE_COMMIT_SHA=$(get_latest_github_release "toeverything/AFFiNE")
|
export VITE_CORE_COMMIT_SHA=$(cat ~/.affine_app)
|
||||||
|
|
||||||
# Initialize git repo (required for build process)
|
# Initialize git repo (required for build process)
|
||||||
git init -q
|
git init -q
|
||||||
@@ -92,21 +92,19 @@ TURBO
|
|||||||
|
|
||||||
export NODE_OPTIONS="--max-old-space-size=4096"
|
export NODE_OPTIONS="--max-old-space-size=4096"
|
||||||
$STD yarn affine build -p @affine/web
|
$STD yarn affine build -p @affine/web
|
||||||
|
$STD yarn affine build -p @affine/admin
|
||||||
|
|
||||||
# Copy web assets
|
# Copy web assets
|
||||||
mkdir -p /opt/affine/packages/backend/server/static
|
mkdir -p /opt/affine/packages/backend/server/static
|
||||||
cp -r /opt/affine/packages/frontend/apps/web/dist/* /opt/affine/packages/backend/server/static/
|
cp -r /opt/affine/packages/frontend/apps/web/dist/* /opt/affine/packages/backend/server/static/
|
||||||
|
mkdir -p /opt/affine/packages/backend/server/static/admin
|
||||||
|
cp -r /opt/affine/packages/frontend/admin/dist/* /opt/affine/packages/backend/server/static/admin/
|
||||||
|
|
||||||
# Mobile manifest placeholder
|
# Mobile manifest placeholder
|
||||||
mkdir -p /opt/affine/packages/backend/server/static/mobile
|
mkdir -p /opt/affine/packages/backend/server/static/mobile
|
||||||
echo '{"publicPath":"/","js":[],"css":[],"gitHash":"","description":""}' \
|
echo '{"publicPath":"/","js":[],"css":[],"gitHash":"","description":""}' \
|
||||||
>/opt/affine/packages/backend/server/static/mobile/assets-manifest.json
|
>/opt/affine/packages/backend/server/static/mobile/assets-manifest.json
|
||||||
|
|
||||||
# Admin selfhost.html
|
|
||||||
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
|
|
||||||
|
|
||||||
# Run migrations
|
# Run migrations
|
||||||
cd /opt/affine/packages/backend/server
|
cd /opt/affine/packages/backend/server
|
||||||
set -a && source /opt/affine/.env && set +a
|
set -a && source /opt/affine/.env && set +a
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ msg_ok "Installed Dependencies"
|
|||||||
|
|
||||||
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
|
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
|
||||||
PG_DB_NAME="affine" PG_DB_USER="affine" setup_postgresql_db
|
PG_DB_NAME="affine" PG_DB_USER="affine" setup_postgresql_db
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
setup_rust
|
setup_rust
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "affine_app" "toeverything/AFFiNE" "tarball" "latest" "/opt/affine"
|
fetch_and_deploy_gh_release "affine_app" "toeverything/AFFiNE" "tarball" "latest" "/opt/affine"
|
||||||
@@ -43,23 +43,21 @@ cat <<EOF >/opt/affine/.env
|
|||||||
NODE_ENV=production
|
NODE_ENV=production
|
||||||
AFFINE_SERVER_PORT=3010
|
AFFINE_SERVER_PORT=3010
|
||||||
AFFINE_SERVER_HOST=${LOCAL_IP}
|
AFFINE_SERVER_HOST=${LOCAL_IP}
|
||||||
AFFINE_SERVER_EXTERNAL_URL=http://${LOCAL_IP}:3010
|
AFFINE_SERVER_EXTERNAL_URL=http://${LOCAL_IP}
|
||||||
DATABASE_URL=postgresql://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME}
|
DATABASE_URL=postgresql://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME}
|
||||||
REDIS_SERVER_HOST=localhost
|
REDIS_SERVER_HOST=localhost
|
||||||
REDIS_SERVER_PORT=6379
|
REDIS_SERVER_PORT=6379
|
||||||
AFFINE_INDEXER_ENABLED=false
|
AFFINE_INDEXER_ENABLED=false
|
||||||
NODE_OPTIONS=--max-old-space-size=6144
|
|
||||||
SECRET_KEY=${SECRET_KEY}
|
SECRET_KEY=${SECRET_KEY}
|
||||||
EOF
|
EOF
|
||||||
msg_ok "Configured Environment"
|
msg_ok "Configured Environment"
|
||||||
|
|
||||||
msg_info "Building AFFiNE"
|
msg_info "Building AFFiNE (Patience)"
|
||||||
cd /opt/affine
|
cd /opt/affine
|
||||||
source /root/.profile
|
source /root/.profile
|
||||||
export PATH="/root/.cargo/bin:$PATH"
|
export PATH="/root/.cargo/bin:$PATH"
|
||||||
set -a && source /opt/affine/.env && set +a
|
|
||||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||||
export VITE_CORE_COMMIT_SHA="v0.25.7"
|
export VITE_CORE_COMMIT_SHA=$(cat ~/.affine_app)
|
||||||
# # Initialize git repo (required for build process)
|
# # Initialize git repo (required for build process)
|
||||||
$STD git init -q
|
$STD git init -q
|
||||||
$STD git config user.email "build@local"
|
$STD git config user.email "build@local"
|
||||||
@@ -95,17 +93,16 @@ $STD yarn affine build -p @affine/reader
|
|||||||
$STD yarn affine build -p @affine/server
|
$STD yarn affine build -p @affine/server
|
||||||
export NODE_OPTIONS="--max-old-space-size=4096"
|
export NODE_OPTIONS="--max-old-space-size=4096"
|
||||||
$STD yarn affine build -p @affine/web
|
$STD yarn affine build -p @affine/web
|
||||||
|
$STD yarn affine build -p @affine/admin
|
||||||
mkdir -p /opt/affine/packages/backend/server/static
|
mkdir -p /opt/affine/packages/backend/server/static
|
||||||
cp -r /opt/affine/packages/frontend/apps/web/dist/* /opt/affine/packages/backend/server/static/
|
cp -r /opt/affine/packages/frontend/apps/web/dist/* /opt/affine/packages/backend/server/static/
|
||||||
|
mkdir -p /opt/affine/packages/backend/server/static/admin
|
||||||
|
cp -r /opt/affine/packages/frontend/admin/dist/* /opt/affine/packages/backend/server/static/admin/
|
||||||
# Create empty mobile manifest (server expects it but we don't build mobile)
|
# Create empty mobile manifest (server expects it but we don't build mobile)
|
||||||
mkdir -p /opt/affine/packages/backend/server/static/mobile
|
mkdir -p /opt/affine/packages/backend/server/static/mobile
|
||||||
cat <<'MANIFEST' >/opt/affine/packages/backend/server/static/mobile/assets-manifest.json
|
cat <<'MANIFEST' >/opt/affine/packages/backend/server/static/mobile/assets-manifest.json
|
||||||
{"publicPath":"/","js":[],"css":[],"gitHash":"","description":""}
|
{"publicPath":"/","js":[],"css":[],"gitHash":"","description":""}
|
||||||
MANIFEST
|
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_ok "Built AFFiNE"
|
||||||
|
|
||||||
msg_info "Running Initial Migration"
|
msg_info "Running Initial Migration"
|
||||||
@@ -126,6 +123,7 @@ Type=simple
|
|||||||
WorkingDirectory=/opt/affine/packages/backend/server
|
WorkingDirectory=/opt/affine/packages/backend/server
|
||||||
EnvironmentFile=/opt/affine/.env
|
EnvironmentFile=/opt/affine/.env
|
||||||
Environment=LD_PRELOAD=libjemalloc.so.2
|
Environment=LD_PRELOAD=libjemalloc.so.2
|
||||||
|
Environment=NODE_OPTIONS=--max-old-space-size=1024
|
||||||
ExecStart=/usr/bin/node ./dist/main.js
|
ExecStart=/usr/bin/node ./dist/main.js
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=10
|
RestartSec=10
|
||||||
@@ -137,7 +135,7 @@ EOF
|
|||||||
cat <<EOF >/etc/systemd/system/affine-worker.service
|
cat <<EOF >/etc/systemd/system/affine-worker.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=AFFiNE Background Worker
|
Description=AFFiNE Background Worker
|
||||||
After=network.target postgresql.service redis-server.service affine-web.service
|
After=network.target postgresql.service redis-server.service
|
||||||
Requires=postgresql.service redis-server.service
|
Requires=postgresql.service redis-server.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
@@ -145,6 +143,7 @@ Type=simple
|
|||||||
WorkingDirectory=/opt/affine/packages/backend/server
|
WorkingDirectory=/opt/affine/packages/backend/server
|
||||||
EnvironmentFile=/opt/affine/.env
|
EnvironmentFile=/opt/affine/.env
|
||||||
Environment=LD_PRELOAD=libjemalloc.so.2
|
Environment=LD_PRELOAD=libjemalloc.so.2
|
||||||
|
Environment=NODE_OPTIONS=--max-old-space-size=1024
|
||||||
ExecStart=/usr/bin/node ./dist/main.js --worker
|
ExecStart=/usr/bin/node ./dist/main.js --worker
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=10
|
RestartSec=10
|
||||||
|
|||||||
Reference in New Issue
Block a user