跳到主要内容

BioF3 Deployment Layout Inventory

Date: 2026-06-13. Updated 2026-06-14 for remote archive actions. Scope: read-only inventory of local, ECS, and Dell deployment paths. Rule: do not delete, rename, or merge directories based on names alone. A cleanup candidate still needs a second check against PM2, Docker binds, nginx, cron, systemd, and current backup references.

Executive Summary

The runtime architecture is now standardized:

/api/platform/* -> ECS biof3-platform
/api/r/* -> Dell R compute API compatibility
/api/py/* -> Dell Python compute API compatibility
Database -> ECS Docker PostgreSQL container biof3-pg
Large artifacts -> Dell local storage + OSS

The directory layout is still historically noisy:

  • Local repo root mixes source, docs, deploy scripts, generated site exports, ignored local mirrors, and archives.
  • ECS still has old-looking /opt directories. Some are active production mounts, so they must not be removed by name.
  • Dell is correctly the compute node. It keeps R/Python compute, workers, large artifacts, cache/tmp, and tutorial/skills deploy support.

This document is the current authority for path ownership. When in doubt, mark the path as pending and verify references before changing it.

Current Production Authority

ECS: control plane, site edge, and PostgreSQL

Path / unitStatusEvidenceNotes
PM2 biof3-platformactivepm_cwd=/opt/biof3-platform/platform-server; script /opt/biof3-platform/platform-server/server.js; status onlineOwns /api/platform/*.
/opt/biof3-platformactivesize 148M; mtime 2026-06-10; PM2 cwd; PG bindPlatform deploy root. Contains platform-server, r-server, and pgdata.
/opt/biof3-platform/pgdataactive, criticalDocker bind biof3-pg: /opt/biof3-platform/pgdata -> /var/lib/postgresql/dataCurrent production database volume. Do not delete.
/opt/frp-serveractive, criticalsystemd frps.service runs /opt/frp-server/frps -c /opt/frp-server/frps.ini; active ports are 7000, 6022, 3001, 3002, 8787Dell tunnel server. Do not delete. Historical 8090, 5173, 18789, and public frp 5433 were removed 2026-06-13.
Docker biof3-pgactive, criticalbind aboveECS Docker PostgreSQL, not Aliyun managed RDS.
Docker biof3-nginxactivebinds /opt/biof3/app/nginx/biof3.conf, /opt/biof3/app/nginx/certs, /opt/biof3-tutorial/current-sitePublic edge.
/opt/biof3-tutorial/current-siteactivenginx static bind; /opt/biof3-tutorial size 3.0G; mtime 2026-06-13Static Docusaurus site.
/opt/biof3active support, do not deleteActive binds for nginx config/certs and Waline data; Waline cron calls /opt/biof3/waline-backup.shName looks generic but currently holds live nginx/Waline support files.
Docker biof3-walineactivebind /opt/biof3/waline-data -> /app/dataComments service data.
Docker halo / biof3-generator / halo-dbstopped, restart disabled2026-06-13 set restart=no and stopped; /blog-old/ now returns 410; data archived with /opt/_deprecated-20260613/old_biof3Do not restart unless explicitly rolling back legacy site data.
Cron /opt/biof3/waline-backup.shactivedaily 03:30, writes to /opt/biof3-backups/waline; manual run succeeded 2026-06-13Waline SQLite backup.
Cron /usr/local/bin/biof3-backup-ecs-pg.shactivedaily 03:10PG logical backup.
Cron /usr/local/bin/biof3-healthcheck.shactiveevery 2 minutesECS health monitoring.

ECS: pending or likely legacy paths

PathStatusEvidenceRequired before cleanup
/opt/biof3-r-serverarchived legacy candidateMoved 2026-06-13 to /opt/_deprecated-20260613/biof3-r-server; no ECS PM2/Docker/cron/systemd owner found before moveReversible archive only; do not delete until after a normal monitoring cycle.
/opt/biof3-py-serverarchived sensitive legacy candidateMoved 2026-06-14 to /opt/_deprecated-20260613/biof3-py-server; no ECS process/Docker/PM2/cron/systemd owner found; contained .env and old pyserver.dbReversible archive only; production /api/py still routes through frp to Dell.
/opt/old_biof3archived sensitive historical bundleMoved 2026-06-13 to /opt/_deprecated-20260613/old_biof3; size 1.7G; contains old app/db/env markersReversible archive only; do not use as compose source of truth and do not delete until after monitoring.
/opt/haloarchived legacy candidateMoved 2026-06-13 to /opt/_deprecated-20260613/halo after frps was migrated to /opt/frp-server; no process/Docker/cron/systemd owner found before moveReversible archive only; do not delete until after a normal monitoring cycle.
/opt/proxyactive system tool, not BioF3mihomo runs from /opt/proxy/mihomo, listening on 9981 and 198.18.0.1:2143; /usr/local/bin/proxy references itDo not archive as part of BioF3 cleanup unless the system proxy is intentionally retired.
/opt/biof3-ossarchived legacy candidateMoved 2026-06-13 to /opt/_deprecated-20260613/biof3-oss; no ECS PM2/Docker/cron/systemd owner found before moveReversible archive only; do not delete until after a normal monitoring cycle.

Dell: compute node and artifact storage

Path / unitStatusEvidenceNotes
PM2 biof3-r-serveractivepm_cwd=/opt/biof3-r-server; script /opt/biof3-r-server/server.js; status onlineR compute API mode.
PM2 biof3-r-workeractivepm_cwd=/opt/biof3-r-server; script /opt/biof3-r-server/worker.js; status onlineR worker claims PG tasks.
PM2 biof3-py-serveractivecwd /root; script /opt/biof3-py-server/start-py-server.sh; status onlinePython compute API mode.
PM2 biof3-py-workeractivepm_cwd=/opt/biof3-py-server; script /opt/biof3-py-server/worker.js; status onlinePython worker claims PG tasks.
/opt/biof3-r-serveractivesize 80M; mtime 2026-06-13; PM2 cwd/script; cron backup pathDo not stop or remove.
/opt/biof3-py-serveractivesize 50M; mtime 2026-06-13; PM2 script/cwdDo not stop or remove.
/etc/biof3.envactive, sensitiveroot-owned 600; used by Dell R server/worker and PG tunnel-aware runtimeDo not print contents.
/opt/biof3-py-server/.envactive, sensitiveroot-owned 600; used by Python server/workerDo not print contents.
/root/.pm2/dump.pm2active, sensitiveroot-owned 600; current PM2 resurrect snapshot with environment keysKeep for PM2 recovery; do not commit or print.
Docker omichub_react_backend_1activebinds /mnt/storage_16tb/omichub -> /app/data, R library, app logsR container/runtime.
Docker biof3_python_1activebinds /mnt/storage_16tb/omichub/biof3-py-tmp and /mnt/storage_16tb/omichub/biof3-tool-jobsPython runtime and tool-job artifacts.
/mnt/storage_16tb/omichubactive, criticalDocker data bindLarge result files, tool jobs, cache, tmp.
/opt/biof3-tutorialactivesize 445M; mtime 2026-06-08Site release/snapshot support.
/opt/biof3-tutorial-srcactivesize 495M; mtime 2026-06-08; cron biof3-skills-auto-deploy.shSkills auto-deploy source.
systemd biof3-pg-tunnel.serviceactivelocalhost:5433 -> ECS biof3-pg:5432Dell database access tunnel.
systemd frpc.serviceactivefrp client to Aliyun; active remote ports 6022, 3001, 3002, 8787Public compute routing. 5433 is handled by biof3-pg-tunnel.service, not frp.
Cron /opt/biof3-r-server/backup.shactivedaily 04:00Legacy SQLite backup remains as compatibility/rollback evidence.
Cron /usr/local/bin/biof3-skills-auto-deploy.shactiveweekly Monday 03:00Uses tutorial source/deploy paths.

Dell: pending or likely legacy paths

PathStatusEvidenceRequired before cleanup
/opt/biof3archived sensitive historical bundleMoved 2026-06-14 to /opt/_deprecated-20260613/biof3; no Docker mount, PM2 owner, process cwd, cron, or systemd owner found before move; contained old env/db/app markersReversible archive only; archive root is 700 and children are root-only. Do not delete until after monitoring.
/opt/biof3-frontendarchived legacy candidateMoved 2026-06-13 to /opt/_deprecated-20260613/biof3-frontend; no Dell PM2/Docker/cron/systemd owner found before moveReversible archive only; do not delete until after a normal monitoring cycle.
/opt/clash-for-linuxpending system toolsize 45M; old mtimeNot clearly BioF3. Leave unless system owner confirms.
/opt/htslibpending dependency/sourcesize 190M; old mtimeMay be bioinformatics dependency. Do not remove without tool checks.
/opt/quartopending dependency/sourcesize 419M; old mtimeMay be report-rendering dependency. Do not remove without tool checks.

Local Repository Layout

The local checkout is a monorepo plus generated/runtime artifacts. It is not a 1:1 mirror of either server, and that is expected.

Local pathStatusRole
src/, docs/, blog/, static/sourceDocusaurus site and content.
r-server/source/runtime packageShared Node backend code. Used by Dell R compute and by ECS platform through platform-server.
platform-server/source wrapperThin ECS platform entry. Sets BIOF3_RUN_MODE=platform and requires ../r-server/server.js.
py-server/source/runtime packagePython compute API and worker.
scripts/, deploy/, infra/, deploy.shsource/opsDeployment, smoke, backup, nginx, and operational tooling.
test/source/testLocal tests.
.kiro/local project memorySteering docs and progress records.
build/, .docusaurus/generated, ignoredDocusaurus build output/cache.
exports/, static/exports/generated, ignoredExport artifacts.
node_modules/, r-server/node_modules/, py-server/node_modules/dependencies, ignoredLocal install artifacts.
..r-server-remote/, .r-server-remote/, ..py-server-remote/ignored mirrorsLocal snapshots from remote servers, not source of truth.
.waline-data/local runtime, ignoredLocal Waline data.
_archive/ignored archiveOld patches/docs, not active source.
.biof3-secrets, .env*secrets, ignoredNever commit.

Current large local generated/ignored sizes:

PathSize
build/755M
exports/466M
static/686M
node_modules/3.3G in earlier audit

Standard Paths Going Forward

Use these paths for new deploy and operational work:

PurposeStandard path
ECS platform API/opt/biof3-platform
ECS platform entry/opt/biof3-platform/platform-server/server.js
ECS platform shared backend code/opt/biof3-platform/r-server
ECS PostgreSQL data/opt/biof3-platform/pgdata
ECS static site/opt/biof3-tutorial/current-site
ECS nginx/Waline support + stopped Halo data/opt/biof3
Dell R compute/opt/biof3-r-server
Dell Python compute/opt/biof3-py-server
Dell large artifacts/mnt/storage_16tb/omichub
Dell tutorial/skills source/opt/biof3-tutorial-src
Dell tutorial deploy support/opt/biof3-tutorial

Do not introduce new production roots such as /root/biof3, /opt/biof3-app, or another *-server directory unless there is a written migration plan.

Cleanup Safety Gate

Before changing any pending path, run the relevant checks and save the result in the cleanup note:

# Local
git status --short --ignored
rg -n "/opt/path-or-name|service-name" docs .kiro deploy.sh infra scripts

# ECS or Dell
pm2 jlist
docker inspect <container> --format '{{range .HostConfig.Binds}}{{println .}}{{end}}'
crontab -l
systemctl list-units --type=service --all --no-pager | grep -Ei 'biof3|frp|autossh|path-or-name'
find /etc/systemd /usr/local/bin /opt -maxdepth 3 -type f -print0 \
| xargs -0 grep -Il 'path-or-name' 2>/dev/null

If a path is referenced by any active process, Docker bind, cron, systemd unit, backup job, nginx config, or rollback runbook, it is not safe to remove.

Verification Commands Used

No secret values were read or printed. The audit used only process metadata, Docker binds, cron lines, systemd service names, directory sizes, and mtimes.

git status --short
git status --short --ignored
find docs/ops -maxdepth 2 -type f -print | sort
find . -maxdepth 2 -type d \( -name .git -o -name node_modules \) -prune -o -maxdepth 2 -type d -print | sort
du -sh .kiro docs r-server py-server platform-server scripts infra deploy test src static blog build exports _archive
ssh aliyun 'pm2 jlist; docker inspect ...; crontab -l; systemctl list-units ...; du -sh /opt/...; stat -c "%y %n" /opt/...'
ssh dell 'pm2 jlist; docker inspect ...; crontab -l; systemctl list-units ...; du -sh /opt/...; stat -c "%y %n" /opt/...'
AI 组学实践

让 AI 带我实战这一篇

AI 会读这篇文章后给你 3-5 步学习计划, 逐步带你学完,最后出 1-3 道题验证你掌握得怎么样。 登录后 AI 才能记住你的进度。

静态文件

离线资料下载

手册 HTML / PDF 已在后台预生成,点击后直接下载网站静态资源。