[{"data":1,"prerenderedAt":2049},["ShallowReactive",2],{"install-content":3},{"en":4,"cn":1129},{"id":5,"title":6,"body":7,"description":1120,"extension":1121,"meta":1122,"navigation":1123,"path":1125,"seo":1126,"stem":1127,"__hash__":1128},"content\u002Finstall\u002Findex_en.md","OrthoVennPlus Installation",{"type":8,"value":9,"toc":1107},"minimark",[10,14,18,23,26,36,39,83,87,92,95,140,167,170,178,185,188,210,214,225,241,244,413,417,420,423,439,442,456,459,472,481,485,496,499,511,517,535,538,551,558,650,654,657,663,666,684,688,693,790,794,797,800,808,811,874,877,937,940,947,950,963,966,972,975,978,984,987,993,996,1035,1038,1053,1056,1100,1103],[11,12,6],"h1",{"id":13},"orthovennplus-installation",[15,16,17],"p",{},"This guide covers the normal installation path for OrthoVennPlus from the deployment package. It focuses on preparing the deployment directory, starting the platform, creating the administrator account, and checking that the workflow service is ready.",[19,20,22],"h2",{"id":21},"requirements","Requirements",[15,24,25],{},"Before installation, prepare:",[27,28,29,33],"ul",{},[30,31,32],"li",{},"Docker and Docker Compose",[30,34,35],{},"A Linux, macOS, or server host with enough CPU, memory, and disk space",[15,37,38],{},"Recommended minimum for a small test deployment:",[40,41,42,55],"table",{},[43,44,45],"thead",{},[46,47,48,52],"tr",{},[49,50,51],"th",{},"Resource",[49,53,54],{},"Recommendation",[56,57,58,67,75],"tbody",{},[46,59,60,64],{},[61,62,63],"td",{},"CPU",[61,65,66],{},"8 cores",[46,68,69,72],{},[61,70,71],{},"Memory",[61,73,74],{},"16 GB",[46,76,77,80],{},[61,78,79],{},"Disk",[61,81,82],{},"100 GB free space",[19,84,86],{"id":85},"quick-start","Quick Start",[88,89,91],"h3",{"id":90},"_1-get-the-deployment-package","1. Get the Deployment Package",[15,93,94],{},"Clone or unpack the deployment package on the server. Choose one source:",[96,97,102],"pre",{"className":98,"code":99,"language":100,"meta":101,"style":101},"language-bash shiki shiki-themes github-light github-dark","# GitHub\ngit clone https:\u002F\u002Fgithub.com\u002FYonkers\u002Forthovennplus.git orthovennplus-docker\ncd orthovennplus-docker\n","bash","",[103,104,105,114,131],"code",{"__ignoreMap":101},[106,107,110],"span",{"class":108,"line":109},"line",1,[106,111,113],{"class":112},"sJ8bj","# GitHub\n",[106,115,117,121,125,128],{"class":108,"line":116},2,[106,118,120],{"class":119},"sScJk","git",[106,122,124],{"class":123},"sZZnC"," clone",[106,126,127],{"class":123}," https:\u002F\u002Fgithub.com\u002FYonkers\u002Forthovennplus.git",[106,129,130],{"class":123}," orthovennplus-docker\n",[106,132,134,138],{"class":108,"line":133},3,[106,135,137],{"class":136},"sj4cs","cd",[106,139,130],{"class":123},[96,141,143],{"className":98,"code":142,"language":100,"meta":101,"style":101},"# Gitee mirror, recommended for mainland China\ngit clone https:\u002F\u002Fgitee.com\u002Fleeoluo\u002Forthovennplus-docker.git orthovennplus-docker\ncd orthovennplus-docker\n",[103,144,145,150,161],{"__ignoreMap":101},[106,146,147],{"class":108,"line":109},[106,148,149],{"class":112},"# Gitee mirror, recommended for mainland China\n",[106,151,152,154,156,159],{"class":108,"line":116},[106,153,120],{"class":119},[106,155,124],{"class":123},[106,157,158],{"class":123}," https:\u002F\u002Fgitee.com\u002Fleeoluo\u002Forthovennplus-docker.git",[106,160,130],{"class":123},[106,162,163,165],{"class":108,"line":133},[106,164,137],{"class":136},[106,166,130],{"class":123},[15,168,169],{},"The deployment directory should use this layout:",[96,171,176],{"className":172,"code":174,"language":175,"meta":101},[173],"language-text","orthovennplus-docker\u002F\n|-- data\u002F\n|   |-- refdb\u002F\n|   |   |-- go-basic.obo\n|   |   |-- go_terms.tsv\n|   |   |-- uniprot_sprot_annotation.dmnd\n|   |   |-- uniprot_sprot_annotation.tsv\n|   |   |-- sonicparanoid2\u002F     # optional\n|-- run.sh\n|-- docker-compose.yaml\n|-- .env.example\n|-- install_refdb.sh\n|-- install_sonic_pfam_profiles.sh\n|-- setup_uniprot_refdb.py\n|-- README.md\n","text",[103,177,174],{"__ignoreMap":101},[15,179,180,181,184],{},"The files under ",[103,182,183],{},"data\u002Frefdb"," are used by GO annotation and DIAMOND-based annotation. They are distributed as release assets instead of Git-tracked files, so the repository stays small while installation remains reproducible.",[15,186,187],{},"If the scripts are not executable after cloning or unpacking a release package, set the executable bit before running any installer or startup script:",[96,189,191],{"className":98,"code":190,"language":100,"meta":101,"style":101},"chmod +x run.sh install_refdb.sh install_sonic_pfam_profiles.sh\n",[103,192,193],{"__ignoreMap":101},[106,194,195,198,201,204,207],{"class":108,"line":109},[106,196,197],{"class":119},"chmod",[106,199,200],{"class":123}," +x",[106,202,203],{"class":123}," run.sh",[106,205,206],{"class":123}," install_refdb.sh",[106,208,209],{"class":123}," install_sonic_pfam_profiles.sh\n",[88,211,213],{"id":212},"_2-create-the-environment-file","2. Create the Environment File",[15,215,216,217,220,221,224],{},"The deployment package includes ",[103,218,219],{},".env.example",". Copy it to ",[103,222,223],{},".env",":",[96,226,228],{"className":98,"code":227,"language":100,"meta":101,"style":101},"cp .env.example .env\n",[103,229,230],{"__ignoreMap":101},[106,231,232,235,238],{"class":108,"line":109},[106,233,234],{"class":119},"cp",[106,236,237],{"class":123}," .env.example",[106,239,240],{"class":123}," .env\n",[15,242,243],{},"Then replace passwords, and the secret key. Review these key startup settings:",[96,245,249],{"className":246,"code":247,"language":248,"meta":101,"style":101},"language-dotenv shiki shiki-themes github-light github-dark","ORTHOVENN_IMAGE_TAG=latest\n\nAPI_PORT=18008\n# Web port opened by users in the browser.\nNGINX_PORT=18088\nPOSTGRES_PORT=15435\nREDIS_PORT=16379\n\nPOSTGRES_USER=orthovennplus\n# Replace with a strong database password.\nPOSTGRES_PASSWORD=change-this-postgres-password\nPOSTGRES_DB=orthovennplus\n\n# Required for login tokens. Use a long random value.\nSECRET_KEY=change-this-secret-key\nACCESS_TOKEN_EXPIRE_MINUTES=4320\nFIRST_REGISTERED_USER_AS_ADMIN=true\n\nCELERY_CONCURRENCY=3\nINTERACTIVE_WORKER_CONCURRENCY=2\nSELECTION_WORKER_CONCURRENCY=1\n# Default CPU threads used by analysis modules.\nMODULE_DEFAULT_THREADS=16\nMODULE_THREAD_EDITABLE=true\n\nUPLOAD_MAX_FILE_SIZE=10737418240\n# 0 means no species count limit.\nPROJECT_SPECIES_LIMIT=20\n","dotenv",[103,250,251,256,262,267,273,279,285,291,296,302,308,314,320,325,331,337,343,349,354,360,366,372,378,384,390,395,401,407],{"__ignoreMap":101},[106,252,253],{"class":108,"line":109},[106,254,255],{},"ORTHOVENN_IMAGE_TAG=latest\n",[106,257,258],{"class":108,"line":116},[106,259,261],{"emptyLinePlaceholder":260},true,"\n",[106,263,264],{"class":108,"line":133},[106,265,266],{},"API_PORT=18008\n",[106,268,270],{"class":108,"line":269},4,[106,271,272],{},"# Web port opened by users in the browser.\n",[106,274,276],{"class":108,"line":275},5,[106,277,278],{},"NGINX_PORT=18088\n",[106,280,282],{"class":108,"line":281},6,[106,283,284],{},"POSTGRES_PORT=15435\n",[106,286,288],{"class":108,"line":287},7,[106,289,290],{},"REDIS_PORT=16379\n",[106,292,294],{"class":108,"line":293},8,[106,295,261],{"emptyLinePlaceholder":260},[106,297,299],{"class":108,"line":298},9,[106,300,301],{},"POSTGRES_USER=orthovennplus\n",[106,303,305],{"class":108,"line":304},10,[106,306,307],{},"# Replace with a strong database password.\n",[106,309,311],{"class":108,"line":310},11,[106,312,313],{},"POSTGRES_PASSWORD=change-this-postgres-password\n",[106,315,317],{"class":108,"line":316},12,[106,318,319],{},"POSTGRES_DB=orthovennplus\n",[106,321,323],{"class":108,"line":322},13,[106,324,261],{"emptyLinePlaceholder":260},[106,326,328],{"class":108,"line":327},14,[106,329,330],{},"# Required for login tokens. Use a long random value.\n",[106,332,334],{"class":108,"line":333},15,[106,335,336],{},"SECRET_KEY=change-this-secret-key\n",[106,338,340],{"class":108,"line":339},16,[106,341,342],{},"ACCESS_TOKEN_EXPIRE_MINUTES=4320\n",[106,344,346],{"class":108,"line":345},17,[106,347,348],{},"FIRST_REGISTERED_USER_AS_ADMIN=true\n",[106,350,352],{"class":108,"line":351},18,[106,353,261],{"emptyLinePlaceholder":260},[106,355,357],{"class":108,"line":356},19,[106,358,359],{},"CELERY_CONCURRENCY=3\n",[106,361,363],{"class":108,"line":362},20,[106,364,365],{},"INTERACTIVE_WORKER_CONCURRENCY=2\n",[106,367,369],{"class":108,"line":368},21,[106,370,371],{},"SELECTION_WORKER_CONCURRENCY=1\n",[106,373,375],{"class":108,"line":374},22,[106,376,377],{},"# Default CPU threads used by analysis modules.\n",[106,379,381],{"class":108,"line":380},23,[106,382,383],{},"MODULE_DEFAULT_THREADS=16\n",[106,385,387],{"class":108,"line":386},24,[106,388,389],{},"MODULE_THREAD_EDITABLE=true\n",[106,391,393],{"class":108,"line":392},25,[106,394,261],{"emptyLinePlaceholder":260},[106,396,398],{"class":108,"line":397},26,[106,399,400],{},"UPLOAD_MAX_FILE_SIZE=10737418240\n",[106,402,404],{"class":108,"line":403},27,[106,405,406],{},"# 0 means no species count limit.\n",[106,408,410],{"class":108,"line":409},28,[106,411,412],{},"PROJECT_SPECIES_LIMIT=20\n",[88,414,416],{"id":415},"_3-install-reference-data","3. Install Reference Data",[15,418,419],{},"Install the required reference data. By default, the installer downloads from the official OrthoVennPlus web source and falls back to GitHub or Gitee if the official source is unavailable:",[15,421,422],{},"To force GitHub release downloads:",[96,424,426],{"className":98,"code":425,"language":100,"meta":101,"style":101},".\u002Finstall_refdb.sh --source github\n",[103,427,428],{"__ignoreMap":101},[106,429,430,433,436],{"class":108,"line":109},[106,431,432],{"class":119},".\u002Finstall_refdb.sh",[106,434,435],{"class":136}," --source",[106,437,438],{"class":123}," github\n",[15,440,441],{},"For servers in mainland China, you can use the Gitee release source:",[96,443,445],{"className":98,"code":444,"language":100,"meta":101,"style":101},".\u002Finstall_refdb.sh --source gitee\n",[103,446,447],{"__ignoreMap":101},[106,448,449,451,453],{"class":108,"line":109},[106,450,432],{"class":119},[106,452,435],{"class":136},[106,454,455],{"class":123}," gitee\n",[15,457,458],{},"If the release asset is unavailable and you need to generate the UniProt reference files manually, run:",[96,460,462],{"className":98,"code":461,"language":100,"meta":101,"style":101},"python setup_uniprot_refdb.py\n",[103,463,464],{"__ignoreMap":101},[106,465,466,469],{"class":108,"line":109},[106,467,468],{"class":119},"python",[106,470,471],{"class":123}," setup_uniprot_refdb.py\n",[15,473,474,475,480],{},"SonicParanoid2 works in graph-only mode by default. If you plan to use full SonicParanoid2 architecture\u002Fdomain mode, install the optional Pfam profile database later from ",[476,477,479],"a",{"href":478},"#optional-sonicparanoid2-pfam-profile-db","Optional SonicParanoid2 Pfam Profile DB",".",[88,482,484],{"id":483},"_4-start-with-runsh","4. Start with run.sh",[15,486,487,488,491,492,495],{},"The recommended startup command is ",[103,489,490],{},"run.sh",". On most servers, run it with ",[103,493,494],{},"sudo"," unless your user already has Docker permissions. The script creates required data directories, pulls images, runs database migrations, normalizes writable data directory permissions, and starts the Docker Compose services:",[15,497,498],{},"Start the services:",[96,500,502],{"className":98,"code":501,"language":100,"meta":101,"style":101},"sudo .\u002Frun.sh\n",[103,503,504],{"__ignoreMap":101},[106,505,506,508],{"class":108,"line":109},[106,507,494],{"class":119},[106,509,510],{"class":123}," .\u002Frun.sh\n",[15,512,513,514,516],{},"By default, ",[103,515,490],{}," pulls images from Docker Hub. If the server is in mainland China or Docker Hub access is slow, use the Aliyun mirror registry:",[96,518,520],{"className":98,"code":519,"language":100,"meta":101,"style":101},"sudo .\u002Frun.sh --registry aliyun\n",[103,521,522],{"__ignoreMap":101},[106,523,524,526,529,532],{"class":108,"line":109},[106,525,494],{"class":119},[106,527,528],{"class":123}," .\u002Frun.sh",[106,530,531],{"class":136}," --registry",[106,533,534],{"class":123}," aliyun\n",[15,536,537],{},"Check the available options:",[96,539,541],{"className":98,"code":540,"language":100,"meta":101,"style":101},".\u002Frun.sh --help\n",[103,542,543],{"__ignoreMap":101},[106,544,545,548],{"class":108,"line":109},[106,546,547],{"class":119},".\u002Frun.sh",[106,549,550],{"class":136}," --help\n",[15,552,553,554,557],{},"If upload fails after a previous root-owned startup, repair the writable data directories. Do not change ",[103,555,556],{},"data\u002Fpostgres"," ownership:",[96,559,561],{"className":98,"code":560,"language":100,"meta":101,"style":101},"sudo chown -R $USER:$(id -gn) data\u002Fuploads data\u002Fprojects data\u002Ftmp data\u002Flogs\nsudo chmod -R u+rwX,g+rwX data\u002Fuploads data\u002Fprojects data\u002Ftmp data\u002Flogs\nsudo chmod -R a+rwX data\u002Fuploads\u002Ftus\nsudo .\u002Frun.sh --skip-pull --skip-migrate\n",[103,562,563,603,624,638],{"__ignoreMap":101},[106,564,565,567,570,573,577,579,582,585,588,591,594,597,600],{"class":108,"line":109},[106,566,494],{"class":119},[106,568,569],{"class":123}," chown",[106,571,572],{"class":136}," -R",[106,574,576],{"class":575},"sVt8B"," $USER",[106,578,224],{"class":123},[106,580,581],{"class":575},"$(",[106,583,584],{"class":119},"id",[106,586,587],{"class":136}," -gn",[106,589,590],{"class":575},") ",[106,592,593],{"class":123},"data\u002Fuploads",[106,595,596],{"class":123}," data\u002Fprojects",[106,598,599],{"class":123}," data\u002Ftmp",[106,601,602],{"class":123}," data\u002Flogs\n",[106,604,605,607,610,612,615,618,620,622],{"class":108,"line":116},[106,606,494],{"class":119},[106,608,609],{"class":123}," chmod",[106,611,572],{"class":136},[106,613,614],{"class":123}," u+rwX,g+rwX",[106,616,617],{"class":123}," data\u002Fuploads",[106,619,596],{"class":123},[106,621,599],{"class":123},[106,623,602],{"class":123},[106,625,626,628,630,632,635],{"class":108,"line":133},[106,627,494],{"class":119},[106,629,609],{"class":123},[106,631,572],{"class":136},[106,633,634],{"class":123}," a+rwX",[106,636,637],{"class":123}," data\u002Fuploads\u002Ftus\n",[106,639,640,642,644,647],{"class":108,"line":269},[106,641,494],{"class":119},[106,643,528],{"class":123},[106,645,646],{"class":136}," --skip-pull",[106,648,649],{"class":136}," --skip-migrate\n",[88,651,653],{"id":652},"_5-open-the-website","5. Open the Website",[15,655,656],{},"After the services start, open:",[96,658,661],{"className":659,"code":660,"language":175,"meta":101},[173],"http:\u002F\u002F\u003Cserver-ip>:5920\n",[103,662,660],{"__ignoreMap":101},[15,664,665],{},"Check service status when needed:",[96,667,669],{"className":98,"code":668,"language":100,"meta":101,"style":101},"sudo docker compose ps\n",[103,670,671],{"__ignoreMap":101},[106,672,673,675,678,681],{"class":108,"line":109},[106,674,494],{"class":119},[106,676,677],{"class":123}," docker",[106,679,680],{"class":123}," compose",[106,682,683],{"class":123}," ps\n",[88,685,687],{"id":686},"manual-docker-compose-startup","Manual Docker Compose Startup",[15,689,690,691,224],{},"Use this only when you do not want to use ",[103,692,490],{},[96,694,696],{"className":98,"code":695,"language":100,"meta":101,"style":101},"mkdir -p data\u002Fprojects data\u002Fuploads data\u002Fuploads\u002Ftus data\u002Ftmp data\u002Flogs data\u002Frefdb data\u002Fbuiltin_db data\u002Fpostgres\nmkdir -p data\u002Frefdb\u002Fsonicparanoid2\ndocker compose up -d postgres redis\ndocker compose run --rm backend alembic upgrade head\ndocker compose up -d\n",[103,697,698,727,736,755,779],{"__ignoreMap":101},[106,699,700,703,706,708,710,713,715,718,721,724],{"class":108,"line":109},[106,701,702],{"class":119},"mkdir",[106,704,705],{"class":136}," -p",[106,707,596],{"class":123},[106,709,617],{"class":123},[106,711,712],{"class":123}," data\u002Fuploads\u002Ftus",[106,714,599],{"class":123},[106,716,717],{"class":123}," data\u002Flogs",[106,719,720],{"class":123}," data\u002Frefdb",[106,722,723],{"class":123}," data\u002Fbuiltin_db",[106,725,726],{"class":123}," data\u002Fpostgres\n",[106,728,729,731,733],{"class":108,"line":116},[106,730,702],{"class":119},[106,732,705],{"class":136},[106,734,735],{"class":123}," data\u002Frefdb\u002Fsonicparanoid2\n",[106,737,738,741,743,746,749,752],{"class":108,"line":133},[106,739,740],{"class":119},"docker",[106,742,680],{"class":123},[106,744,745],{"class":123}," up",[106,747,748],{"class":136}," -d",[106,750,751],{"class":123}," postgres",[106,753,754],{"class":123}," redis\n",[106,756,757,759,761,764,767,770,773,776],{"class":108,"line":269},[106,758,740],{"class":119},[106,760,680],{"class":123},[106,762,763],{"class":123}," run",[106,765,766],{"class":136}," --rm",[106,768,769],{"class":123}," backend",[106,771,772],{"class":123}," alembic",[106,774,775],{"class":123}," upgrade",[106,777,778],{"class":123}," head\n",[106,780,781,783,785,787],{"class":108,"line":275},[106,782,740],{"class":119},[106,784,680],{"class":123},[106,786,745],{"class":123},[106,788,789],{"class":136}," -d\n",[19,791,793],{"id":792},"administrator-account","Administrator Account",[15,795,796],{},"You need one administrator account to manage users, settings, workers, project cleanup, and gallery projects.",[15,798,799],{},"By default, the first registered user becomes the administrator:",[96,801,802],{"className":246,"code":348,"language":248,"meta":101,"style":101},[103,803,804],{"__ignoreMap":101},[106,805,806],{"class":108,"line":109},[106,807,348],{},[15,809,810],{},"You can also create an administrator with the backend CLI:",[96,812,814],{"className":98,"code":813,"language":100,"meta":101,"style":101},"docker compose exec backend \\\n  env ORTHOVENN_ADMIN_PASSWORD='your-strong-password' \\\n  python -m app.cli create-admin \\\n  --username admin \\\n  --email admin@example.com\n",[103,815,816,830,840,856,866],{"__ignoreMap":101},[106,817,818,820,822,825,827],{"class":108,"line":109},[106,819,740],{"class":119},[106,821,680],{"class":123},[106,823,824],{"class":123}," exec",[106,826,769],{"class":123},[106,828,829],{"class":136}," \\\n",[106,831,832,835,838],{"class":108,"line":116},[106,833,834],{"class":123},"  env",[106,836,837],{"class":123}," ORTHOVENN_ADMIN_PASSWORD='your-strong-password'",[106,839,829],{"class":136},[106,841,842,845,848,851,854],{"class":108,"line":133},[106,843,844],{"class":123},"  python",[106,846,847],{"class":136}," -m",[106,849,850],{"class":123}," app.cli",[106,852,853],{"class":123}," create-admin",[106,855,829],{"class":136},[106,857,858,861,864],{"class":108,"line":269},[106,859,860],{"class":136},"  --username",[106,862,863],{"class":123}," admin",[106,865,829],{"class":136},[106,867,868,871],{"class":108,"line":275},[106,869,870],{"class":136},"  --email",[106,872,873],{"class":123}," admin@example.com\n",[15,875,876],{},"To promote an existing user:",[96,878,880],{"className":98,"code":879,"language":100,"meta":101,"style":101},"docker compose exec backend \\\n  env ORTHOVENN_ADMIN_PASSWORD='your-strong-password' \\\n  python -m app.cli create-admin \\\n  --username existing-user \\\n  --email existing@example.com \\\n  --promote-existing\n",[103,881,882,894,902,914,923,932],{"__ignoreMap":101},[106,883,884,886,888,890,892],{"class":108,"line":109},[106,885,740],{"class":119},[106,887,680],{"class":123},[106,889,824],{"class":123},[106,891,769],{"class":123},[106,893,829],{"class":136},[106,895,896,898,900],{"class":108,"line":116},[106,897,834],{"class":123},[106,899,837],{"class":123},[106,901,829],{"class":136},[106,903,904,906,908,910,912],{"class":108,"line":133},[106,905,844],{"class":123},[106,907,847],{"class":136},[106,909,850],{"class":123},[106,911,853],{"class":123},[106,913,829],{"class":136},[106,915,916,918,921],{"class":108,"line":269},[106,917,860],{"class":136},[106,919,920],{"class":123}," existing-user",[106,922,829],{"class":136},[106,924,925,927,930],{"class":108,"line":275},[106,926,870],{"class":136},[106,928,929],{"class":123}," existing@example.com",[106,931,829],{"class":136},[106,933,934],{"class":108,"line":281},[106,935,936],{"class":136},"  --promote-existing\n",[19,938,479],{"id":939},"optional-sonicparanoid2-pfam-profile-db",[15,941,942,943,946],{},"SonicParanoid2 uses ",[103,944,945],{},"graph-only"," mode by default and does not need the Pfam profile database. Install the Pfam MMseqs profile database only if you plan to disable graph-only mode and run the full architecture\u002Fdomain workflow.",[15,948,949],{},"Check the current status from the deployment directory:",[96,951,953],{"className":98,"code":952,"language":100,"meta":101,"style":101},".\u002Finstall_sonic_pfam_profiles.sh status\n",[103,954,955],{"__ignoreMap":101},[106,956,957,960],{"class":108,"line":109},[106,958,959],{"class":119},".\u002Finstall_sonic_pfam_profiles.sh",[106,961,962],{"class":123}," status\n",[15,964,965],{},"The script only uses these paths:",[96,967,970],{"className":968,"code":969,"language":175,"meta":101},[173],"data\u002Frefdb\u002Fsonicparanoid2\u002Fdownloads\u002F\ndata\u002Frefdb\u002Fsonicparanoid2\u002Fpfam_profile_db\u002F\n",[103,971,969],{"__ignoreMap":101},[15,973,974],{},"The recommended path is manual download first, then local install.",[15,976,977],{},"Manual download address:",[96,979,982],{"className":980,"code":981,"language":175,"meta":101},[173],"https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1eV3t2FINOUPJI1132w3bmBrHnO3_bpfJ\u002Fview?usp=sharing\n",[103,983,981],{"__ignoreMap":101},[15,985,986],{},"Save the archive as:",[96,988,991],{"className":989,"code":990,"language":175,"meta":101},[173],"data\u002Frefdb\u002Fsonicparanoid2\u002Fdownloads\u002Fsonicparanoid2_pfam_mmseqs_profile_db.tar.gz\n",[103,992,990],{"__ignoreMap":101},[15,994,995],{},"Then verify and install:",[96,997,999],{"className":98,"code":998,"language":100,"meta":101,"style":101},"mkdir -p data\u002Frefdb\u002Fsonicparanoid2\u002Fdownloads\ntar -tzf data\u002Frefdb\u002Fsonicparanoid2\u002Fdownloads\u002Fsonicparanoid2_pfam_mmseqs_profile_db.tar.gz >\u002Fdev\u002Fnull\n.\u002Finstall_sonic_pfam_profiles.sh install\n",[103,1000,1001,1010,1028],{"__ignoreMap":101},[106,1002,1003,1005,1007],{"class":108,"line":109},[106,1004,702],{"class":119},[106,1006,705],{"class":136},[106,1008,1009],{"class":123}," data\u002Frefdb\u002Fsonicparanoid2\u002Fdownloads\n",[106,1011,1012,1015,1018,1021,1025],{"class":108,"line":116},[106,1013,1014],{"class":119},"tar",[106,1016,1017],{"class":136}," -tzf",[106,1019,1020],{"class":123}," data\u002Frefdb\u002Fsonicparanoid2\u002Fdownloads\u002Fsonicparanoid2_pfam_mmseqs_profile_db.tar.gz",[106,1022,1024],{"class":1023},"szBVR"," >",[106,1026,1027],{"class":123},"\u002Fdev\u002Fnull\n",[106,1029,1030,1032],{"class":108,"line":133},[106,1031,959],{"class":119},[106,1033,1034],{"class":123}," install\n",[15,1036,1037],{},"If the archive was downloaded to another location:",[96,1039,1041],{"className":98,"code":1040,"language":100,"meta":101,"style":101},".\u002Finstall_sonic_pfam_profiles.sh install \u002Fpath\u002Fto\u002Fsonicparanoid2_pfam_mmseqs_profile_db.tar.gz\n",[103,1042,1043],{"__ignoreMap":101},[106,1044,1045,1047,1050],{"class":108,"line":109},[106,1046,959],{"class":119},[106,1048,1049],{"class":123}," install",[106,1051,1052],{"class":123}," \u002Fpath\u002Fto\u002Fsonicparanoid2_pfam_mmseqs_profile_db.tar.gz\n",[15,1054,1055],{},"If the server can access Google Drive directly, you can try downloading with curl:",[96,1057,1059],{"className":98,"code":1058,"language":100,"meta":101,"style":101},"mkdir -p data\u002Frefdb\u002Fsonicparanoid2\u002Fdownloads\ncurl -L \\\n  'https:\u002F\u002Fdrive.google.com\u002Fuc?id=1eV3t2FINOUPJI1132w3bmBrHnO3_bpfJ' \\\n  -o data\u002Frefdb\u002Fsonicparanoid2\u002Fdownloads\u002Fsonicparanoid2_pfam_mmseqs_profile_db.tar.gz\n.\u002Finstall_sonic_pfam_profiles.sh install\n",[103,1060,1061,1069,1079,1086,1094],{"__ignoreMap":101},[106,1062,1063,1065,1067],{"class":108,"line":109},[106,1064,702],{"class":119},[106,1066,705],{"class":136},[106,1068,1009],{"class":123},[106,1070,1071,1074,1077],{"class":108,"line":116},[106,1072,1073],{"class":119},"curl",[106,1075,1076],{"class":136}," -L",[106,1078,829],{"class":136},[106,1080,1081,1084],{"class":108,"line":133},[106,1082,1083],{"class":123},"  'https:\u002F\u002Fdrive.google.com\u002Fuc?id=1eV3t2FINOUPJI1132w3bmBrHnO3_bpfJ'",[106,1085,829],{"class":136},[106,1087,1088,1091],{"class":108,"line":269},[106,1089,1090],{"class":136},"  -o",[106,1092,1093],{"class":123}," data\u002Frefdb\u002Fsonicparanoid2\u002Fdownloads\u002Fsonicparanoid2_pfam_mmseqs_profile_db.tar.gz\n",[106,1095,1096,1098],{"class":108,"line":275},[106,1097,959],{"class":119},[106,1099,1034],{"class":123},[15,1101,1102],{},"If graph-only mode is disabled but the profile database is missing, the SonicParanoid2 task will stop early and report the missing profile database path.",[1104,1105,1106],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":101,"searchDepth":116,"depth":116,"links":1108},[1109,1110,1118,1119],{"id":21,"depth":116,"text":22},{"id":85,"depth":116,"text":86,"children":1111},[1112,1113,1114,1115,1116,1117],{"id":90,"depth":133,"text":91},{"id":212,"depth":133,"text":213},{"id":415,"depth":133,"text":416},{"id":483,"depth":133,"text":484},{"id":652,"depth":133,"text":653},{"id":686,"depth":133,"text":687},{"id":792,"depth":116,"text":793},{"id":939,"depth":116,"text":479},"Install OrthoVennPlus with run.sh or Docker Compose, create the first administrator account, and verify the deployment.","md",{},{"title":1124,"order":109},"Installation","\u002Finstall\u002Findex_en",{"title":6,"description":1120},"install\u002Findex_en","GDq7btsqIGkjMmHbDZSwCDrARvUIS4ZJUZwjMXBJiFM",{"id":1130,"title":1131,"body":1132,"description":2041,"extension":1121,"meta":2042,"navigation":2043,"path":2045,"seo":2046,"stem":2047,"__hash__":2048},"content\u002Finstall\u002Findex_cn.md","OrthoVennPlus 安装指南",{"type":8,"value":1133,"toc":2028},[1134,1137,1140,1143,1146,1157,1160,1196,1199,1203,1206,1230,1256,1259,1265,1270,1273,1289,1293,1302,1314,1317,1439,1443,1446,1455,1458,1470,1473,1485,1488,1498,1506,1510,1519,1529,1535,1549,1552,1562,1568,1640,1644,1647,1652,1655,1669,1673,1679,1755,1758,1761,1764,1772,1775,1825,1828,1884,1887,1893,1896,1906,1909,1914,1917,1920,1925,1928,1933,1936,1966,1969,1981,1984,2022,2025],[11,1135,1131],{"id":1136},"orthovennplus-安装指南",[15,1138,1139],{},"本指南适用于使用部署包安装 OrthoVennPlus 的常规场景。内容包括准备部署目录、配置环境变量、安装参考数据库、启动服务、创建管理员账号，以及可选的 SonicParanoid2 Pfam 数据库安装。",[19,1141,1142],{"id":1142},"环境要求",[15,1144,1145],{},"安装前请准备：",[27,1147,1148,1151,1154],{},[30,1149,1150],{},"Docker 和 Docker Compose",[30,1152,1153],{},"Linux、macOS 或服务器主机",[30,1155,1156],{},"足够的 CPU、内存和磁盘空间",[15,1158,1159],{},"小规模测试部署建议配置：",[40,1161,1162,1172],{},[43,1163,1164],{},[46,1165,1166,1169],{},[49,1167,1168],{},"资源",[49,1170,1171],{},"建议配置",[56,1173,1174,1181,1188],{},[46,1175,1176,1178],{},[61,1177,63],{},[61,1179,1180],{},"8 核",[46,1182,1183,1186],{},[61,1184,1185],{},"内存",[61,1187,74],{},[46,1189,1190,1193],{},[61,1191,1192],{},"磁盘",[61,1194,1195],{},"100 GB 可用空间",[19,1197,1198],{"id":1198},"快速开始",[88,1200,1202],{"id":1201},"_1-获取部署包","1. 获取部署包",[15,1204,1205],{},"在服务器上克隆或解压部署包。可以选择 GitHub 或 Gitee：",[96,1207,1208],{"className":98,"code":99,"language":100,"meta":101,"style":101},[103,1209,1210,1214,1224],{"__ignoreMap":101},[106,1211,1212],{"class":108,"line":109},[106,1213,113],{"class":112},[106,1215,1216,1218,1220,1222],{"class":108,"line":116},[106,1217,120],{"class":119},[106,1219,124],{"class":123},[106,1221,127],{"class":123},[106,1223,130],{"class":123},[106,1225,1226,1228],{"class":108,"line":133},[106,1227,137],{"class":136},[106,1229,130],{"class":123},[96,1231,1233],{"className":98,"code":1232,"language":100,"meta":101,"style":101},"# Gitee 镜像，推荐中国大陆服务器使用\ngit clone https:\u002F\u002Fgitee.com\u002Fleeoluo\u002Forthovennplus-docker.git orthovennplus-docker\ncd orthovennplus-docker\n",[103,1234,1235,1240,1250],{"__ignoreMap":101},[106,1236,1237],{"class":108,"line":109},[106,1238,1239],{"class":112},"# Gitee 镜像，推荐中国大陆服务器使用\n",[106,1241,1242,1244,1246,1248],{"class":108,"line":116},[106,1243,120],{"class":119},[106,1245,124],{"class":123},[106,1247,158],{"class":123},[106,1249,130],{"class":123},[106,1251,1252,1254],{"class":108,"line":133},[106,1253,137],{"class":136},[106,1255,130],{"class":123},[15,1257,1258],{},"部署目录结构应类似如下：",[96,1260,1263],{"className":1261,"code":1262,"language":175,"meta":101},[173],"orthovennplus-docker\u002F\n|-- data\u002F\n|   |-- refdb\u002F\n|   |   |-- go-basic.obo\n|   |   |-- go_terms.tsv\n|   |   |-- uniprot_sprot_annotation.dmnd\n|   |   |-- uniprot_sprot_annotation.tsv\n|   |   |-- sonicparanoid2\u002F     # 可选\n|-- run.sh\n|-- docker-compose.yaml\n|-- .env.example\n|-- install_refdb.sh\n|-- install_sonic_pfam_profiles.sh\n|-- setup_uniprot_refdb.py\n|-- README.md\n",[103,1264,1262],{"__ignoreMap":101},[15,1266,1267,1269],{},[103,1268,183],{}," 中的文件用于 GO 注释和基于 DIAMOND 的功能注释。这些参考数据通过 release 资源分发，不直接提交到 Git 仓库，以减少仓库体积并保证安装过程可复现。",[15,1271,1272],{},"如果克隆或解压后脚本没有执行权限，请在运行任何安装或启动脚本前执行：",[96,1274,1275],{"className":98,"code":190,"language":100,"meta":101,"style":101},[103,1276,1277],{"__ignoreMap":101},[106,1278,1279,1281,1283,1285,1287],{"class":108,"line":109},[106,1280,197],{"class":119},[106,1282,200],{"class":123},[106,1284,203],{"class":123},[106,1286,206],{"class":123},[106,1288,209],{"class":123},[88,1290,1292],{"id":1291},"_2-创建环境配置文件","2. 创建环境配置文件",[15,1294,1295,1296,1298,1299,1301],{},"部署包中包含 ",[103,1297,219],{},"。先复制为 ",[103,1300,223],{},"：",[96,1303,1304],{"className":98,"code":227,"language":100,"meta":101,"style":101},[103,1305,1306],{"__ignoreMap":101},[106,1307,1308,1310,1312],{"class":108,"line":109},[106,1309,234],{"class":119},[106,1311,237],{"class":123},[106,1313,240],{"class":123},[15,1315,1316],{},"然后修改密码和密钥。以下是需要重点检查的启动配置：",[96,1318,1320],{"className":246,"code":1319,"language":248,"meta":101,"style":101},"ORTHOVENN_IMAGE_TAG=latest\n\nAPI_PORT=18008\n# 用户在浏览器中访问的 Web 端口。\nNGINX_PORT=18088\nPOSTGRES_PORT=15435\nREDIS_PORT=16379\n\nPOSTGRES_USER=orthovennplus\n# 请替换为强数据库密码。\nPOSTGRES_PASSWORD=change-this-postgres-password\nPOSTGRES_DB=orthovennplus\n\n# 登录令牌所需密钥，请使用足够长的随机字符串。\nSECRET_KEY=change-this-secret-key\nACCESS_TOKEN_EXPIRE_MINUTES=4320\nFIRST_REGISTERED_USER_AS_ADMIN=true\n\nCELERY_CONCURRENCY=3\nINTERACTIVE_WORKER_CONCURRENCY=2\nSELECTION_WORKER_CONCURRENCY=1\n# 分析模块默认使用的 CPU 线程数。\nMODULE_DEFAULT_THREADS=16\nMODULE_THREAD_EDITABLE=true\n\nUPLOAD_MAX_FILE_SIZE=10737418240\n# 0 表示不限制物种数量。\nPROJECT_SPECIES_LIMIT=20\n",[103,1321,1322,1326,1330,1334,1339,1343,1347,1351,1355,1359,1364,1368,1372,1376,1381,1385,1389,1393,1397,1401,1405,1409,1414,1418,1422,1426,1430,1435],{"__ignoreMap":101},[106,1323,1324],{"class":108,"line":109},[106,1325,255],{},[106,1327,1328],{"class":108,"line":116},[106,1329,261],{"emptyLinePlaceholder":260},[106,1331,1332],{"class":108,"line":133},[106,1333,266],{},[106,1335,1336],{"class":108,"line":269},[106,1337,1338],{},"# 用户在浏览器中访问的 Web 端口。\n",[106,1340,1341],{"class":108,"line":275},[106,1342,278],{},[106,1344,1345],{"class":108,"line":281},[106,1346,284],{},[106,1348,1349],{"class":108,"line":287},[106,1350,290],{},[106,1352,1353],{"class":108,"line":293},[106,1354,261],{"emptyLinePlaceholder":260},[106,1356,1357],{"class":108,"line":298},[106,1358,301],{},[106,1360,1361],{"class":108,"line":304},[106,1362,1363],{},"# 请替换为强数据库密码。\n",[106,1365,1366],{"class":108,"line":310},[106,1367,313],{},[106,1369,1370],{"class":108,"line":316},[106,1371,319],{},[106,1373,1374],{"class":108,"line":322},[106,1375,261],{"emptyLinePlaceholder":260},[106,1377,1378],{"class":108,"line":327},[106,1379,1380],{},"# 登录令牌所需密钥，请使用足够长的随机字符串。\n",[106,1382,1383],{"class":108,"line":333},[106,1384,336],{},[106,1386,1387],{"class":108,"line":339},[106,1388,342],{},[106,1390,1391],{"class":108,"line":345},[106,1392,348],{},[106,1394,1395],{"class":108,"line":351},[106,1396,261],{"emptyLinePlaceholder":260},[106,1398,1399],{"class":108,"line":356},[106,1400,359],{},[106,1402,1403],{"class":108,"line":362},[106,1404,365],{},[106,1406,1407],{"class":108,"line":368},[106,1408,371],{},[106,1410,1411],{"class":108,"line":374},[106,1412,1413],{},"# 分析模块默认使用的 CPU 线程数。\n",[106,1415,1416],{"class":108,"line":380},[106,1417,383],{},[106,1419,1420],{"class":108,"line":386},[106,1421,389],{},[106,1423,1424],{"class":108,"line":392},[106,1425,261],{"emptyLinePlaceholder":260},[106,1427,1428],{"class":108,"line":397},[106,1429,400],{},[106,1431,1432],{"class":108,"line":403},[106,1433,1434],{},"# 0 表示不限制物种数量。\n",[106,1436,1437],{"class":108,"line":409},[106,1438,412],{},[88,1440,1442],{"id":1441},"_3-安装参考数据库","3. 安装参考数据库",[15,1444,1445],{},"安装必要的参考数据库。默认情况下，安装脚本会优先从 OrthoVennPlus 官方源下载；如果官方源不可用，会自动尝试 GitHub 或 Gitee：",[96,1447,1449],{"className":98,"code":1448,"language":100,"meta":101,"style":101},".\u002Finstall_refdb.sh\n",[103,1450,1451],{"__ignoreMap":101},[106,1452,1453],{"class":108,"line":109},[106,1454,1448],{"class":119},[15,1456,1457],{},"如果需要强制使用 GitHub release：",[96,1459,1460],{"className":98,"code":425,"language":100,"meta":101,"style":101},[103,1461,1462],{"__ignoreMap":101},[106,1463,1464,1466,1468],{"class":108,"line":109},[106,1465,432],{"class":119},[106,1467,435],{"class":136},[106,1469,438],{"class":123},[15,1471,1472],{},"中国大陆服务器可以直接使用 Gitee release 源：",[96,1474,1475],{"className":98,"code":444,"language":100,"meta":101,"style":101},[103,1476,1477],{"__ignoreMap":101},[106,1478,1479,1481,1483],{"class":108,"line":109},[106,1480,432],{"class":119},[106,1482,435],{"class":136},[106,1484,455],{"class":123},[15,1486,1487],{},"如果 release 资源不可用，并且你需要手动生成 UniProt 参考文件，可以运行：",[96,1489,1490],{"className":98,"code":461,"language":100,"meta":101,"style":101},[103,1491,1492],{"__ignoreMap":101},[106,1493,1494,1496],{"class":108,"line":109},[106,1495,468],{"class":119},[106,1497,471],{"class":123},[15,1499,1500,1501,1505],{},"SonicParanoid2 默认使用 graph-only 模式，此模式不需要 Pfam profile 数据库。如果计划启用完整的结构域\u002F架构分析模式，请稍后参考 ",[476,1502,1504],{"href":1503},"#%E5%8F%AF%E9%80%89sonicparanoid2-pfam-profile-%E6%95%B0%E6%8D%AE%E5%BA%93","可选：SonicParanoid2 Pfam Profile 数据库","。",[88,1507,1509],{"id":1508},"_4-使用-runsh-启动","4. 使用 run.sh 启动",[15,1511,1512,1513,1515,1516,1518],{},"推荐使用 ",[103,1514,490],{}," 启动。服务器上通常使用 ",[103,1517,494],{}," 执行，除非当前用户已经拥有 Docker 权限。脚本会创建必要的数据目录、拉取镜像、执行数据库迁移、整理可写数据目录权限，并启动 Docker Compose 服务：",[96,1520,1521],{"className":98,"code":501,"language":100,"meta":101,"style":101},[103,1522,1523],{"__ignoreMap":101},[106,1524,1525,1527],{"class":108,"line":109},[106,1526,494],{"class":119},[106,1528,510],{"class":123},[15,1530,1531,1532,1534],{},"默认情况下，",[103,1533,490],{}," 会从 Docker Hub 拉取镜像。如果服务器在中国大陆，或者 Docker Hub 访问较慢，可以使用阿里云镜像仓库：",[96,1536,1537],{"className":98,"code":519,"language":100,"meta":101,"style":101},[103,1538,1539],{"__ignoreMap":101},[106,1540,1541,1543,1545,1547],{"class":108,"line":109},[106,1542,494],{"class":119},[106,1544,528],{"class":123},[106,1546,531],{"class":136},[106,1548,534],{"class":123},[15,1550,1551],{},"查看可用参数：",[96,1553,1554],{"className":98,"code":540,"language":100,"meta":101,"style":101},[103,1555,1556],{"__ignoreMap":101},[106,1557,1558,1560],{"class":108,"line":109},[106,1559,547],{"class":119},[106,1561,550],{"class":136},[15,1563,1564,1565,1567],{},"如果之前已经用 root 权限启动过，并且上传文件提示没有权限，可以修复可写数据目录权限。不要修改 ",[103,1566,556],{}," 的属主：",[96,1569,1570],{"className":98,"code":560,"language":100,"meta":101,"style":101},[103,1571,1572,1600,1618,1630],{"__ignoreMap":101},[106,1573,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598],{"class":108,"line":109},[106,1575,494],{"class":119},[106,1577,569],{"class":123},[106,1579,572],{"class":136},[106,1581,576],{"class":575},[106,1583,224],{"class":123},[106,1585,581],{"class":575},[106,1587,584],{"class":119},[106,1589,587],{"class":136},[106,1591,590],{"class":575},[106,1593,593],{"class":123},[106,1595,596],{"class":123},[106,1597,599],{"class":123},[106,1599,602],{"class":123},[106,1601,1602,1604,1606,1608,1610,1612,1614,1616],{"class":108,"line":116},[106,1603,494],{"class":119},[106,1605,609],{"class":123},[106,1607,572],{"class":136},[106,1609,614],{"class":123},[106,1611,617],{"class":123},[106,1613,596],{"class":123},[106,1615,599],{"class":123},[106,1617,602],{"class":123},[106,1619,1620,1622,1624,1626,1628],{"class":108,"line":133},[106,1621,494],{"class":119},[106,1623,609],{"class":123},[106,1625,572],{"class":136},[106,1627,634],{"class":123},[106,1629,637],{"class":123},[106,1631,1632,1634,1636,1638],{"class":108,"line":269},[106,1633,494],{"class":119},[106,1635,528],{"class":123},[106,1637,646],{"class":136},[106,1639,649],{"class":136},[88,1641,1643],{"id":1642},"_5-打开网站","5. 打开网站",[15,1645,1646],{},"服务启动后，在浏览器中打开：",[96,1648,1650],{"className":1649,"code":660,"language":175,"meta":101},[173],[103,1651,660],{"__ignoreMap":101},[15,1653,1654],{},"需要检查服务状态时，可以运行：",[96,1656,1657],{"className":98,"code":668,"language":100,"meta":101,"style":101},[103,1658,1659],{"__ignoreMap":101},[106,1660,1661,1663,1665,1667],{"class":108,"line":109},[106,1662,494],{"class":119},[106,1664,677],{"class":123},[106,1666,680],{"class":123},[106,1668,683],{"class":123},[88,1670,1672],{"id":1671},"手动使用-docker-compose-启动","手动使用 Docker Compose 启动",[15,1674,1675,1676,1678],{},"仅当你不想使用 ",[103,1677,490],{}," 时，再使用以下方式手动启动：",[96,1680,1681],{"className":98,"code":695,"language":100,"meta":101,"style":101},[103,1682,1683,1705,1713,1727,1745],{"__ignoreMap":101},[106,1684,1685,1687,1689,1691,1693,1695,1697,1699,1701,1703],{"class":108,"line":109},[106,1686,702],{"class":119},[106,1688,705],{"class":136},[106,1690,596],{"class":123},[106,1692,617],{"class":123},[106,1694,712],{"class":123},[106,1696,599],{"class":123},[106,1698,717],{"class":123},[106,1700,720],{"class":123},[106,1702,723],{"class":123},[106,1704,726],{"class":123},[106,1706,1707,1709,1711],{"class":108,"line":116},[106,1708,702],{"class":119},[106,1710,705],{"class":136},[106,1712,735],{"class":123},[106,1714,1715,1717,1719,1721,1723,1725],{"class":108,"line":133},[106,1716,740],{"class":119},[106,1718,680],{"class":123},[106,1720,745],{"class":123},[106,1722,748],{"class":136},[106,1724,751],{"class":123},[106,1726,754],{"class":123},[106,1728,1729,1731,1733,1735,1737,1739,1741,1743],{"class":108,"line":269},[106,1730,740],{"class":119},[106,1732,680],{"class":123},[106,1734,763],{"class":123},[106,1736,766],{"class":136},[106,1738,769],{"class":123},[106,1740,772],{"class":123},[106,1742,775],{"class":123},[106,1744,778],{"class":123},[106,1746,1747,1749,1751,1753],{"class":108,"line":275},[106,1748,740],{"class":119},[106,1750,680],{"class":123},[106,1752,745],{"class":123},[106,1754,789],{"class":136},[19,1756,1757],{"id":1757},"管理员账号",[15,1759,1760],{},"系统需要一个管理员账号，用于管理用户、系统设置、任务 worker、项目清理和 gallery 项目。",[15,1762,1763],{},"默认情况下，第一个注册的用户会自动成为管理员：",[96,1765,1766],{"className":246,"code":348,"language":248,"meta":101,"style":101},[103,1767,1768],{"__ignoreMap":101},[106,1769,1770],{"class":108,"line":109},[106,1771,348],{},[15,1773,1774],{},"你也可以使用后端 CLI 创建管理员账号：",[96,1776,1777],{"className":98,"code":813,"language":100,"meta":101,"style":101},[103,1778,1779,1791,1799,1811,1819],{"__ignoreMap":101},[106,1780,1781,1783,1785,1787,1789],{"class":108,"line":109},[106,1782,740],{"class":119},[106,1784,680],{"class":123},[106,1786,824],{"class":123},[106,1788,769],{"class":123},[106,1790,829],{"class":136},[106,1792,1793,1795,1797],{"class":108,"line":116},[106,1794,834],{"class":123},[106,1796,837],{"class":123},[106,1798,829],{"class":136},[106,1800,1801,1803,1805,1807,1809],{"class":108,"line":133},[106,1802,844],{"class":123},[106,1804,847],{"class":136},[106,1806,850],{"class":123},[106,1808,853],{"class":123},[106,1810,829],{"class":136},[106,1812,1813,1815,1817],{"class":108,"line":269},[106,1814,860],{"class":136},[106,1816,863],{"class":123},[106,1818,829],{"class":136},[106,1820,1821,1823],{"class":108,"line":275},[106,1822,870],{"class":136},[106,1824,873],{"class":123},[15,1826,1827],{},"如果需要将已有用户提升为管理员：",[96,1829,1830],{"className":98,"code":879,"language":100,"meta":101,"style":101},[103,1831,1832,1844,1852,1864,1872,1880],{"__ignoreMap":101},[106,1833,1834,1836,1838,1840,1842],{"class":108,"line":109},[106,1835,740],{"class":119},[106,1837,680],{"class":123},[106,1839,824],{"class":123},[106,1841,769],{"class":123},[106,1843,829],{"class":136},[106,1845,1846,1848,1850],{"class":108,"line":116},[106,1847,834],{"class":123},[106,1849,837],{"class":123},[106,1851,829],{"class":136},[106,1853,1854,1856,1858,1860,1862],{"class":108,"line":133},[106,1855,844],{"class":123},[106,1857,847],{"class":136},[106,1859,850],{"class":123},[106,1861,853],{"class":123},[106,1863,829],{"class":136},[106,1865,1866,1868,1870],{"class":108,"line":269},[106,1867,860],{"class":136},[106,1869,920],{"class":123},[106,1871,829],{"class":136},[106,1873,1874,1876,1878],{"class":108,"line":275},[106,1875,870],{"class":136},[106,1877,929],{"class":123},[106,1879,829],{"class":136},[106,1881,1882],{"class":108,"line":281},[106,1883,936],{"class":136},[19,1885,1504],{"id":1886},"可选sonicparanoid2-pfam-profile-数据库",[15,1888,1889,1890,1892],{},"SonicParanoid2 默认使用 ",[103,1891,945],{}," 模式，不需要 Pfam profile 数据库。只有在你计划关闭 graph-only 模式，并启用完整的结构域\u002F架构分析流程时，才需要安装 Pfam MMseqs profile 数据库。",[15,1894,1895],{},"在部署目录中检查当前状态：",[96,1897,1898],{"className":98,"code":952,"language":100,"meta":101,"style":101},[103,1899,1900],{"__ignoreMap":101},[106,1901,1902,1904],{"class":108,"line":109},[106,1903,959],{"class":119},[106,1905,962],{"class":123},[15,1907,1908],{},"该脚本只会使用以下路径：",[96,1910,1912],{"className":1911,"code":969,"language":175,"meta":101},[173],[103,1913,969],{"__ignoreMap":101},[15,1915,1916],{},"推荐先手动下载，再从本地安装。",[15,1918,1919],{},"手动下载地址：",[96,1921,1923],{"className":1922,"code":981,"language":175,"meta":101},[173],[103,1924,981],{"__ignoreMap":101},[15,1926,1927],{},"请将压缩包保存为：",[96,1929,1931],{"className":1930,"code":990,"language":175,"meta":101},[173],[103,1932,990],{"__ignoreMap":101},[15,1934,1935],{},"然后校验并安装：",[96,1937,1938],{"className":98,"code":998,"language":100,"meta":101,"style":101},[103,1939,1940,1948,1960],{"__ignoreMap":101},[106,1941,1942,1944,1946],{"class":108,"line":109},[106,1943,702],{"class":119},[106,1945,705],{"class":136},[106,1947,1009],{"class":123},[106,1949,1950,1952,1954,1956,1958],{"class":108,"line":116},[106,1951,1014],{"class":119},[106,1953,1017],{"class":136},[106,1955,1020],{"class":123},[106,1957,1024],{"class":1023},[106,1959,1027],{"class":123},[106,1961,1962,1964],{"class":108,"line":133},[106,1963,959],{"class":119},[106,1965,1034],{"class":123},[15,1967,1968],{},"如果压缩包下载到了其他位置：",[96,1970,1971],{"className":98,"code":1040,"language":100,"meta":101,"style":101},[103,1972,1973],{"__ignoreMap":101},[106,1974,1975,1977,1979],{"class":108,"line":109},[106,1976,959],{"class":119},[106,1978,1049],{"class":123},[106,1980,1052],{"class":123},[15,1982,1983],{},"如果服务器可以直接访问 Google Drive，也可以尝试使用 curl 下载：",[96,1985,1986],{"className":98,"code":1058,"language":100,"meta":101,"style":101},[103,1987,1988,1996,2004,2010,2016],{"__ignoreMap":101},[106,1989,1990,1992,1994],{"class":108,"line":109},[106,1991,702],{"class":119},[106,1993,705],{"class":136},[106,1995,1009],{"class":123},[106,1997,1998,2000,2002],{"class":108,"line":116},[106,1999,1073],{"class":119},[106,2001,1076],{"class":136},[106,2003,829],{"class":136},[106,2005,2006,2008],{"class":108,"line":133},[106,2007,1083],{"class":123},[106,2009,829],{"class":136},[106,2011,2012,2014],{"class":108,"line":269},[106,2013,1090],{"class":136},[106,2015,1093],{"class":123},[106,2017,2018,2020],{"class":108,"line":275},[106,2019,959],{"class":119},[106,2021,1034],{"class":123},[15,2023,2024],{},"如果关闭 graph-only 模式但 Pfam profile 数据库缺失，SonicParanoid2 任务会提前停止，并提示缺失的数据库路径。",[1104,2026,2027],{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":101,"searchDepth":116,"depth":116,"links":2029},[2030,2031,2039,2040],{"id":1142,"depth":116,"text":1142},{"id":1198,"depth":116,"text":1198,"children":2032},[2033,2034,2035,2036,2037,2038],{"id":1201,"depth":133,"text":1202},{"id":1291,"depth":133,"text":1292},{"id":1441,"depth":133,"text":1442},{"id":1508,"depth":133,"text":1509},{"id":1642,"depth":133,"text":1643},{"id":1671,"depth":133,"text":1672},{"id":1757,"depth":116,"text":1757},{"id":1886,"depth":116,"text":1504},"使用 run.sh 或 Docker Compose 安装 OrthoVennPlus，创建管理员账号，并完成基础部署检查。",{},{"title":2044,"order":109},"安装指南","\u002Finstall\u002Findex_cn",{"title":1131,"description":2041},"install\u002Findex_cn","mOvlXl_kLA4wvypbEAM2ufGYXqUpZF2Khlz6Dv9L5wc",1781705893048]