็ฝ่้ขๆฟ
!Version
!Image Size
!Image pulls
็ฝ่้ขๆฟ (Baihu Panel) ๆฏไธๆฌพๆ่ด่ฝป้ใ้ซๆง่ฝ็่ชๅจๅไปปๅก่ฐๅบฆๅนณๅฐใ้็จ Go + Vue3 ๆถๆ๏ผไธๆณจไบ้ซๆง่ฝไธไฝ็ณป็ปๅผ้ใ้่ฟๆทฑๅบฆ้ๆ Mise ่ฟ่กๆถ็ฎก็๏ผๅฎๅ็ๆฏๆ PythonใNode.jsใGoใRustใPHP ็ญๆๆไธปๆต่ฏญ่จ็ฏๅข็ๅจๆๅฎ่ฃ ๏ผๅ ไนๆๆ็็ๆฌ๏ผไธ็ปไธไพ่ต็ฎก็ใๆฏๆ Docker/Docker-Compose ไธ้ฎ้จ็ฝฒ๏ผๅผ็ฎฑๅณ็จ๏ผๆฏๆจ็ๆณ็่ฝป้ๅ่ๆฌๆ็ฎกไธไปปๅก่ฐๅบฆ่งฃๅณๆนๆกใ
ๆชๆญข20260922๏ผ็ณป็ปๆ ธๅฟ่ๅพๅทฒๅ จ้ขๆผ้ฝ๏ผไปๅฃฐๆๅผ YAML ็ๅ จๆต็จ็ผๆๅฎไน๏ผๅฐๅบๅฑไปปๅก่ฐๅบฆ๏ผๅๅฐๅค็ซฏๆถๆฏๆจ้๏ผๆญฃๅผๆๅปบ่ตทๅฎๆด็่ชๅจๅ็ๅฝๅจๆ้ญ็ฏใ
ๆผ็คบ็ซ็น(ๆผ็คบ็ซ็น็ๆๅกๅจๆฏ่พ็๏ผ่ง่ฐ ) ๆผ็คบ็ซ็น
ๆๆกฃ่ฏดๆ ๆๆกฃ่ฏดๆ
ๆดๆฐๆฅๅฟ
[!NOTE]
ๆๆฐ็ๆฌ๏ผv1.6.0 (2026.11.03)
- ไปปๅก่ถ ๆถๆฏๆ 0 ไธ้ๅถ๏ผ่งฃ้คๆฐๆฎๆจกๅๅฏน่ถ ๆถ้ป่ฎคๅผ็้ๅถ๏ผ่งฃๅณๅญไธบ 0 ๅ้ไธบ 30 ็้ฎ้ข๏ผๅ็ซฏๅ จๆต็จๅ ผๅฎน 0 ๅผ่พๅ ฅไธๅฏผๅบใ
- ้ๅถๅนถๅไปปๅก่ฟ่กไธญๅๆขไธบๅๆญขๆ้ฎ๏ผ้ๅถๅนถๅ็ไปปๅกๅจๆง่กไธญๅฐๆก้ขไธ็งปๅจ็ซฏ็ๆไฝไฝ็ฑโๆง่ก/ๅๆญฅโๅๆขไธบโๅๆญขโ๏ผ้ ๅๅ็ซฏๆฉๅฑ็้็จๅๆญขๆฅๅฃ๏ผๅฎ็ฐๅ่กจไธ้ฎ็ปๆญข่ฟ่กใ
- ๆง่กๅๅฒๆฅๅฟ้ฒ้ๆธฒๆไฟฎๅค๏ผ้ๆๆฅๅฟ่ฏทๆฑ็ๆฌ่ฟฝ่ธชๆบๅถ๏ผๅฝปๅบ่งฃๅณๅคไปปๅกๅฟซ้ๅๆขๅ้ๅค็นๅปๆถๅๅฒๆฅๅฟๅ ๅฎน้ๅค่พๅบ็็ซๆ็ผบ้ท๏ผ#205๏ผใ
- ๆผ็คบๆจกๅผๅ้ขไธๅฎนๅจๆงๅญ่ฐไผ๏ผๆๅๆผ็คบๆจกๅผๅ้ขไธญ้ดไปถไธๅ็ซฏ่ทฏ็ฑๅฎๅซ๏ผๅ ๅปบๅฉๆๅบๅฎ่ฃ ๅฎๆๅไธปๅจๅๆถๆดป่ทๆไปถ็ผๅญใ
็นๅปๅฑๅผๆฅ็่ฟๆๅๅฒ็ๆฌๆฅๅฟ
- 2026.10.30 (v1.5.9) - Docker ๅฎนๅจๅผๆญฅๅๅงๅๅ ๅปบๅฉๆๅบใNode.js ๅ ๅปบ้็ฅๅฅๅฃฎๆงๅ ๅบไธ่ฟๅๅผๆฏๆใๅ้ๆบๅฏ็ผ่พๆกๆๅ็ผ่พๆถ้ดๅฑ็คบใ
- 2026.10.27 (v1.5.8) - ่ฏญ่จๅฎ่ฃ ไธ่ฝฝ้ๅๅ ้ไธ Mise ่ฟ่กๆถ้ๅๆบ้ ็ฝฎใๅทฒ่ฃ ๅบ็จๆดๆฐๆฃๆตไธๆ ๆๅ็บงไธญๆขใOpenAPI ๆไปถ็ฎก็่ฝๅๅผๆพไธๅ จ็ซๅฎๅ จๅ ๅบใ
- 2026.10.21 (v1.5.7) - ไปปๅกๆฅๅฟ่ชๅฎไนๅ้ๆๅไธ้็ฅๆจกๆฟๆณจๅ ฅใ่ฎพ็ฝฎไธญๅฟๅ จๅฑๆฌๆตฎไฟๅญไธๆนๅจ่ฟฝ่ธชใ่ๆฌ็ผ่พ็ป็ซฏ้ๆๅไฝ้ชๅ ๅบใ
- 2026.10.17 (v1.5.6) - ่ฟ่กๆถ PageCache ๆงๅญ็ญ็ฅ้ๆใๅฎนๅจๅ ฅๅฃๆ ๅๅไธๅ ฌๅ ฑๅบๆฝๅใOIDC ้ขๅๅฑ่งฃ่ฆๅๅ็ซฏไบคไบไผๅใ
- 2026.10.16 (v1.5.5) - ๅค่บซไปฝๆบๅ็น็ปๅฝๅนถ่กๅ ฑๅญๆถๆใSSO ็ฌ็ซ่ทฏ็ฑไธๅญๆฎ่งฃ่ฆใ็งปๅจ็ซฏๅๅบๅผไธ่ง่ง็ป่ๆ็ฃจใ
- 2026.10.15 (v1.5.4) - MCP ๅไผ ่พๅ ฑๅญๆถๆ (Streamable HTTP + SSE)ใ้็จ OAuth 2.0 ๅ็น็ปๅฝไธๅ จ็ซ Inter ๅญไฝๆ็ใ
- 2026.10.15 (v1.5.3) - ๅ็ OIDC / Pocket ID ๅ็น็ปๅฝใไปปๅกๆน้่ฎพ็ฝฎๅค็ฑปๅๆทท้้ๆใ่กจๆ ผๅ้กตๆฐ็ฌ็ซๆไน ๅไธๆผ็คบๆจกๅผๅ จ้ขๅ ๅบใ
- 2026.10.12 (v1.5.2) - ๅฎนๅจ PageCache ่ช้ๅบๅๆถไธ็นๆใtini ๅตๅฐธ่ฟ็จๅๆถใๆ ๅฝข็ฎๅฝๆน้ๅฑๅผใๅฐๅฑไปฃ็ ็ผ่พไผๅใ
- 2026.10.09 (v1.5.1) - Windows ๆ็ๆ ้ป็ช้้ป่ฟ่กใๅฎนๅจๅ ๅญๅฃๅพๅฏน้ฝ Docker StatsใOpenAPI MCP ๆๅกๅฅๅฃฎๆงๅ ๅบใ
- 2026.10.07 (v1.5.0) - ๅ็ๅ ็ฝฎ MCP ๆๅกใServer้ ฑๆจ้้้ใๆไปถๆ ๆ้ๆๅ ่ฝฝไธๆฃ็ดขใAgent ๅฎๆถๅข้ๅๆญฅใ
- 2026.10.01 (v1.4.2) - ็ณป็ป่ฎพ็ฝฎๅ จๆจกๅ่ง่งไธไบคไบ้ๆใๅฃฐๆๅผๅบ็จๅธ่ฝฝ็บง่ๆธ ็ไธๆ ็ญพ่ชๅจๅๆถใ
- 2026.09.30 (v1.4.1) - ่ฟ็จ Agent ๅทฅไฝ็ฎๅฝ่งฃๆไฟฎๅคใWindows Agent Shell ๅ ไพ่ตๅ้ใBark ๅจๆๅๆฐ่ฆ็ใ
- 2026.09.29 (v1.4.0) - RESTful ็ถๆ็ ๅ่ฝจๅฏน้ฝใBark ็ซฏๅฐ็ซฏๅ ๅฏๆจ้ใไปปๅกๆทฑๅฑ็ฎๅฝๅฑๅผใ
- 2026.09.23 (v1.3.0) - ๆบๅฏ็ซฏๅฐ็ซฏๅฎๅ จ่งฃๅฏ (ECDH+AES-GCM)ใๆฅๅฟๅไฝไปปๅกๅใๆๆกฃไฝ้ชๅ็บงใ
- 2026.09.22 (v1.2.0) - ๅฃฐๆๅผๅบ็จๅผๆไธๅบ็จๅธๅบใ2FA ๅคไปฝๆขๅคไฟฎๅคใ่ทจๅนณๅฐ่ทฏๅพๅ็บงใ
- 2026.09.11 (v1.1.30) - ๆ ็ญพๅ ณ่่ตๆบ็ฉฟ้่ทณ่ฝฌใ่พๅ ฅๆณๅ่ฝฆไธขๅคฑไฟฎๅคใ่ฐๅบฆๅผๆ่ฐไผใ
- 2026.09.08 (v1.1.29) - Windows ConPTY ไผช็ป็ซฏ้ๆใhosts ่ชๅจๆ ๅฐใๆ็ UI ๅ็บงใ
- 2026.09.04 (v1.1.28) - IDE ๅบ้จ Terminalใ็ฏๅขๆไน ๅใไปปๅก้ ็ฝฎๆน้ๆดๆฐใ
- 2026.08.21 (v1.1.27) - ้็ฅ่ฟๆปคๆบๅถใ็งปๅจ็ซฏๅนณๆปๆปๅจไธๅฐๅฑ้้ ไผๅใ
- 2026.08.17 (v1.1.26) - ็ปไธ้็ฅๅ ๅฎนไธ Options SDKใๆฅๅฟ SSE ็ถๆๅธงๅ่ฎฎใ
- 2026.08.10 (v1.1.25) - ไผไธๅพฎไฟกๆจ้ๆฅๅ ฅใๅคไปฝๆขๅค่ชๅจๅ ่ฝฝ่ฐๅบฆใๅฎๅ จๆผๆดไฟฎๅคใ
- 2026.07.31 (v1.1.24) - ๆ ็ญพ็ฎก็็ณป็ปใMonaco ๅค่ฏญ่จ่ฏญๆณ้ซไบฎใ็ปๅฝไธคๆญฅ้ช่ฏ (2FA)ใ
- 2026.07.23 (v1.1.23) - Windows GUI ๅฎ่ฃ ๅ ไธๅๅฐ็ณป็ปๆ็ๅฎๆค็จๅบใ
- 2026.07.20 (v1.1.22) - Windows ๅนณๅฐๆทฑๅบฆ้้ ใ็ฝ้กต็ป็ซฏ Ctrl+C ็ป็ปใPTY ๅดฉๆบไฟฎๅคใ
- 2026.07.13 (v1.1.21) - ZSTD ๆฅๅฟๅ็ผฉใไพ่ต่ชๅจ่กฅๅ จ็ป็ซฏใๅ่กจ่งๅพ่ๅจๆๅบใ
- 2026.06.28 (v1.1.20) - ่็นไบ่ๆถๆ (ๅ้ๅๆญฅไธ OpenConnect)ใ็ป็ซฏ OOM ้ฒๆคใ
ๆฅ็ๅฎๆดๅๅฒๆดๆฐๆฅๅฟ (ๅจ็บฟๆๆกฃ)
้กน็ฎๆฅ็ฑ
ๅคๅฐๅ้้พ้ขๆฟๆ็นๅ
ณ็ณป๏ผๆ่ชๅทฑไนๆฏ้้พ้ขๆฟ็ไฝฟ็จ่
๏ผไฝๆฏ็ฐๅจ็้้พ้ขๆฟๆง่ฝๆ่งๅพๆ็น้พไปฅๆฅๅใไปฅๆ่ชๅทฑ็ไฝฟ็จ๏ผๆบๅจ1C2G๏ผไธบไพ๏ผไธไธชpython็requests่ๆฌๆฏ้30sๆง่กไธๆฌก๏ผๆๆถๅcpuๆง่ก็ๆถๅ่ฝ่ทณๅๅฐ50%ไปฅไธใๅฏไปฅ็็ไธ้ขgifๅพ็๏ผๅฆๆไธๅจ๏ผ็นๅปๅพ็ๆฅ็๏ผ
ๆ่งๅพไธไธชๅ ๅญๅๆง่ฝๅ ็จไฝ็้ขๆฟๆดๅ้่ชๅทฑ๏ผๆไปฅๅไบ่ฟไธช้กน็ฎใ
ๅฆๆไฝ ๅๆไธๆ ท้่ฆไธไธชๆง่ฝๅๅ ๅญๅ ็จไฝ็ๅฎๆถ้ขๆฟ๏ผ่ฟไธช้กน็ฎไฝ ๅฏไปฅไฝ้ชไธใ
ๅๆ ท็ๅฎๆถๅบๆฏๅไปฃ็ ๏ผ่ฟไธช้กน็ฎ็ๆ
ๅตๅฆไธ๏ผcpuๆง่กๅฎๆถ่ทณๅไธ่ถ
่ฟ20%๏ผ๏ผ
ๅฆๆ้กน็ฎๆ็จ๏ผ่ฏทๅธฎๅฟ็นไธชstarใ
็น่ฒ
- ่ฝป้็บง๏ผ docker/compose้จ็ฝฒ๏ผๆ ้ๅคๆ้ ็ฝฎ๏ผๅผ็ฎฑๅณ็จ
- ไปปๅก่ฐๅบฆ๏ผ ๆฏๆๆ ๅ Cron ่กจ่พพๅผ๏ผๅธธ็จๆถ้ด่งๅๅฟซๆท้ๆฉใๆฅๅฟไธ่ฝๆไปถ๏ผๆฒกๆ็ฃ็้ข็นio็้ฎ้ข
- ่ๆฌ็ฎก็๏ผ ๅจ็บฟไปฃ็ ็ผ่พๅจ๏ผๆฏๆๆไปถไธไผ ใๅ็ผฉๅ ่งฃๅ
- ๅจ็บฟ็ป็ซฏ๏ผ WebSocket ๅฎๆถ็ป็ซฏ๏ผๅฝไปคๆง่ก็ปๆๅฎๆถ่พๅบ
- ๆถๆฏๆจ้๏ผ ๅ ็ฝฎๅผบๅคงๆถๆฏๆจ้ไธ้็ฅๅผๆ๏ผๆ ็ผๅ ผๅฎนไธปๆตๆธ ้๏ผๆฏๆ็ณป็ป็บงไบไปถๅ่ญฆ
- ๆบๅฏ็ฎก็๏ผ (New) ็ฑปไผผ GitHub Secrets ็ๅฎๅ จๅญๅจ๏ผๆฏๆ AES-GCM ๅ ๅฏ๏ผๆฅๅฟ่ชๅจๆ็ ๏ผไป ๅจ่ฐๅบฆๆถๆณจๅ ฅ
- ็ฏๅขๅ้๏ผ ๅญๅจๆฎ้้ ็ฝฎ๏ผไปปๅกๆง่กๆถ่ชๅจๆณจๅ ฅ
- ็ฐไปฃUI๏ผ ๅๅบๅผ่ฎพ่ฎก๏ผๆทฑ่ฒ/ๆต ่ฒไธป้ขๅๆข
- ็งปๅจ็ซฏ๏ผ ้้ ็งปๅจๅฐๅฑๆ ทๅผ
- ่ฟ็จๆง่ก๏ผ ๆฏๆ่ฟ็จagentๆง่กไปปๅก๏ผๅฑ็คบๆง่ก็ปๆ
- ๅค่ฏญ่จๆฏๆ๏ผ ๆทฑๅบฆ้ๆ Mise๏ผๆฏๆๅ ไนๆๆไธปๆต็ผ็จ่ฏญ่จ็ๅจๆๅฎ่ฃ ใๅค็ๆฌๅๆขๅไพ่ต็ฎก็
- ๅ ๅปบๅฉๆๅบ๏ผ (New) ไธบ Python/Node.js ๆไพ้ถ้ ็ฝฎๅฉๆๅบ๏ผ็ฎๅ import ๅณๅฏๅฎ็ฐไธ้ฎๆจไฟก๏ผๆ ้ๆๅจ็ฎก็ API Token ๅ URL
ๅ่ฝ็นๆง
็นๅปๅฑๅผๆฅ็่ฏฆ็ปๅ่ฝ
ๅฎๆถไปปๅก็ฎก็
- ๆฏๆๆ ๅ Cron ่กจ่พพๅผ่ฐๅบฆ
- ๅธธ็จๆถ้ด่งๅๅฟซๆท้ๆฉ
- ไปปๅกๅฏ็จ/็ฆ็จ็ถๆๅๆข
- ๆๅจ่งฆๅๆง่ก
- ไปปๅก่ถ ๆถๆงๅถ
่ๆฌๆไปถ็ฎก็
- ๅจ็บฟไปฃ็ ็ผ่พๅจ
- ๆไปถๆ ๅฝข็ปๆๅฑ็คบ
- ๆฏๆๅๅปบใ้ๅฝๅใๅ ้คๆไปถ/ๆไปถๅคน
- ๆฏๆๅ็ผฉๅ ไธไผ ่งฃๅ
- ๆฏๆๅคๆไปถๆน้ไธไผ
ๅจ็บฟ็ป็ซฏ
- WebSocket ๅฎๆถ็ป็ซฏ
- ๆฏๆๅธธ็จ Shell ๅฝไปค
- ๅฝไปคๆง่ก็ปๆๅฎๆถ่พๅบ
ๆง่กๆฅๅฟ
- ไปปๅกๆง่กๅๅฒ่ฎฐๅฝ
- ๆง่ก็ถๆ่ฟฝ่ธช๏ผๆๅ/ๅคฑ่ดฅ/่ถ ๆถ๏ผ
- ๆง่ก่ๆถ็ป่ฎก
- ๆฅๅฟๅ ๅฎนๅ็ผฉๅญๅจ
- ๆฅๅฟ่ชๅจๆธ ็
ๆถๆฏๆจ้ไธ็ณป็ป้็ฅ
- ๅ็ๅ ็ฝฎๅๅคงไธปๆตๅนณๅฐๆธ ้๏ผ้้ใไผไธๅพฎไฟกใTelegramใServer้ ฑ็ญ๏ผ
- ๆฏๆ็ณป็ป็บงไบไปถๆกไปถ่งฆๅ้็ฅ๏ผไพๅฆไปปๅกๅคฑ่ดฅๆฅ่ญฆใๆๅกไธ็บฟๆ้๏ผ
- ่ชๅจ็ๆ่ทจ่ฏญ่จ่ฐ็จ API ็คบไพไปฃ็ ไพ่ๆฌ้ๆ
ๅ้ไธๆบๅฏ
- ๆฏๆๆฎ้็ฏๅขๅ้ไธๅฎๅ จๆบๅฏ๏ผSecret๏ผๅ็ฑป็ฎก็
- ๆบๅฏไฝฟ็จ AES-GCM ๅ ๅฏๅญๅจ๏ผๆฐๆฎๅบไธๅญๆๆ
- ็ง้ฅไป ๅจๅ ๅญไธญ็ๅญ๏ผๅฏๅจ่ฏปๅๅ็ซๅณ้ๆฏ๏ผUnset๏ผ
- ๆง่กๆฅๅฟ่ชๅจๆ็ดขๅนถๅฑ่ฝ()**ๆๆๆบๅฏๅ ๅฎน
- ไธฅๆ ผๆ้้็ฆป๏ผๆบๅฏไป ๅจๅฎๆถไปปๅก่ฐๅบฆๆถๆณจๅ ฅ๏ผ็ป็ซฏ/ๆต่ฏ็ฏๅขไธๅฏ่ง
่็นไบ่ไฝ็ณป (New)
- ๆฏๆ OpenConnect ๅ่ฎฎ๏ผ่ฝปๆพๅฎ็ฐๅคๅฐ็ฝ่้ขๆฟไน้ด็ไบ่ไบ้
- ๆฏๆ่็น้ด็็ฏๅขๅ้ๆ ็ผๅๆญฅ๏ผไฟ็ๅๆ็ปๆไธ ID๏ผ
- ้ๆๅๆญฅ็ฎก็ๆงๅถๅฐ๏ผ็ปไธๆฅ็ไธๆงๅถๅ่็น็ถๆไธ่ด่ฝฝๆๆ
- ๅบๅฑ่ทฏ็ฑๆทฑๅบฆ้้ ็ฉฟ้้ง้๏ผๅฎ็พๆฏๆๅๅธๅผๅ็ซฏไปฃ็่ฎฟ้ฎ
ไปๅบไปปๅกๅๆญฅ (New)
- ๆฏๆ ้้พ ไปๅบๅฝไปคๆ ผๅผๅฟซๆทๅฏผๅ ฅ
- ่ชๅจ่งฃๆ่ๆฌๆณจ้ไธญ็ Cron ่กจ่พพๅผๅ็ฏๅขๅ้ๅ
- ๆฏๆๅบไบๆญฃๅ่กจ่พพๅผ็็ฝๅๅใ้ปๅๅๆไปถ็ญ้
- ๆฏๆ่ๆฌไพ่ตๆไปถ็่ฏๅซไธไฟ็
- ่ชๅจๅๆญฅ่ฟ็จ Git ไปๅบๅๆด๏ผๅข้ๆดๆฐ้ขๆฟไปปๅก
็ณป็ป่ฎพ็ฝฎ
- ็ซ็นๆ ้ขใๆ ่ฏญใๅพๆ ่ชๅฎไน
- ๅ้กตๅคงๅฐใCookie ๆๆๆ้ ็ฝฎ
- ่ฐๅบฆๅๆฐ็ญ้่ฝฝ
- ๆฐๆฎๅคไปฝไธๆขๅค
ๆฏๆ่ฏญ่จ่ๆฌๅไพ่ต
็นๅปๅฑๅผๆฅ็ๅทฒๆฏๆ็่ฏญ่จๅไพ่ต็ฎก็่ฏฆๆ
่ๆฌ่ฟ่ก็ฏๅข
็ฝ่้ขๆฟๅ็ๆฏๆไปฅไธ่ๆฌ็ๅฎๆถๆง่ก๏ผ- Python3, Node.js, Bash (ๆ ๅ็้ๅๅ ็ฝฎ็ฏๅข)
- ้่ฟ Mise ๆฉๅฑ๏ผๆฏๆๅ ไนๆๆไธปๆต็ผ็จ่ฏญ่จ็ๅจๆๅฎ่ฃ ไธๅๆขใ
- Minimal ็๏ผไธ้ข็ฝฎ Python/Node๏ผไป ๅ ็ฝฎ Mise ๅบๅบง๏ผ็ฑ็จๆทๆ้ๅฎ่ฃ ใ
ไพ่ต็ฎก็ๆฏๆ
็ณป็ปๅ ็ฝฎไบ้ซๅบฆ้ๆ็่ทจ่ฏญ่จไพ่ต็ฎก็ๅจ๏ผๆฏๆ่ชๅจๅๅฎ่ฃ ๅ็ฎก็ไปฅไธ่ฏญ่จ็ไพ่ต้กน๏ผๅนถ็กฎไฟๅจๅฎนๅจๅ ๅ จๅฑๅฏ็จ๏ผ| ่ฏญ่จ | ๅ
็ฎก็ๅจ | ๅ่ฝ่ฏดๆ |
| :--- | :--- | :--- |
| Python | pip | ่ชๅจไฝฟ็จๅ
็ฝฎ่ๆ็ฏๅข๏ผๆฏๆๆธ
ๅๆบ |
| Node.js | npm | ๅ
จๅฑๅฎ่ฃ
ๆจกๅผ๏ผ่ชๅจ้
็ฝฎ npmmirror ้ๅ |
| Go | go install | ้่ฟ go install ๅฎ่ฃ
ไบ่ฟๅถๅทฅๅ
ท |
| Rust | cargo | ้่ฟ cargo install ๅฎ่ฃ
Rust ไพ่ต |
| Ruby | gem | ๆฏๆ gem install ๆฌๅฐๅฎ่ฃ
|
| Bun | bun | ๆฏๆ bun add -g ๅ
จๅฑๆจกๅผ |
| PHP | composer | ๆฏๆ composer global require |
| Deno | deno | ๆฏๆ deno install -g |
| .NET | dotnet | ๆฏๆ dotnet tool install -g |
| Elixir/Erlang | mix | ๆฏๆ mix archive.install |
| Lua | luarocks | ้่ฟ luarocks ็ฎก็ Lua ๅ
|
| Nim | nimble | ๆฏๆ nimble install |
| Dart/Flutter | pub | ๆฏๆ pub global activate |
| Perl | cpanm | ็ฎๅ็ cpanm ๅฎ่ฃ
ๆฏๆ |
| Crystal | shards | shards ้กน็ฎ็บงๅซๆๅทฅๅ
ทๅฎ่ฃ
|
ไฝฟ็จๆนๆณ
- ๅฎ่ฃ
็ฏๅข๏ผ่ฟๅ
ฅใ็ผ็จ่ฏญ่จใ้กต้ข๏ผไฝฟ็จ
miseไธ้ฎๅฎ่ฃ ๆ้็่ฏญ่จๅ็ๆฌใ - ไพ่ต็ฎก็๏ผๅจๅทฒๅฎ่ฃ ๅ่กจ็นๅปใไพ่ต็ฎก็ใ๏ผ่พๅ ฅๅ็งฐ๏ผๅฏ้็ๆฌ๏ผๅณๅฏ่ชๅจๅจๅฏนๅบ็ฏๅขๅ ๅฎๆๅฎ่ฃ ใ
- ้็ฆปๆบๅถ๏ผ็ณป็ปๅบไบ
mise execๅฎ็ฐไบๅฎๅ็็ฏๅข้็ฆป๏ผไธๅ็ๆฌ็ไพ่ตๅ ไบไธๅฒ็ชใ
ๆๆๅพ
ๅฟซ้้จ็ฝฒ
้กน็ฎๆไพๅค็งๅบ็ก้ๅ๏ผๅฏๆ นๆฎๅ ทไฝ็ฏๅข้ๆฉ๏ผ
| ๆ ็ญพ (Tag) | ๅบ็ก้ๅ | ่ฏดๆ |
| :--- | :--- | :--- |
| latest | Debian 12 | ้ป่ฎคๆจ่๏ผ้ๆ Python 3.13 ไธ Node.js 23๏ผๅผ็ฎฑๅณ็จ |
| latest-debian13 | Debian 13 | ๅฐ้ฒ็ๆฌ๏ผๅบไบ Debian Trixie |
| latest-minimal | Debian 13 | ๆๅฐๅ็๏ผไธ้ข็ฝฎ่ฏญ่จ็ฏๅข๏ผ็ฑ็จๆท้่ฟ้ขๆฟ่ชไธปๆ้ๅฎ่ฃ
|
[!TIP]
ไธๆน้จ็ฝฒ็คบไพ้ป่ฎคไฝฟ็จlatestๆ ็ญพ๏ผๅฆ้ๆข็จ Debian 13 ็๏ผๅช้ๅฐlatestๆฟๆขไธบlatest-debian13ๅณๅฏใ
[!WARNING]
ๆถๆๅ็บง็ ดๅๆงๅๆด
ๆฌ็ๆฌ๏ผ2026.02.13+๏ผๅฏนๅบๅฑ่ฟ่กๆถ็ฏๅข่ฟ่กไบๅฝปๅบ้ๆ๏ผๅผ็จไบๅๆ็้ๆ Python/Node ็ฏๅข๏ผ่ฝฌไธบไฝฟ็จ Mise ่ฟ่กๅจๆ็ๆฌ็ฎก็ใ
1. ไธๅๆไพ Alpine ้ๅ๏ผ็ฑไบ glibc ๅ ผๅฎนๆง้ฎ้ข๏ผMise ๆ ๆณๅจ Alpine ไธๅฎ็พ่ฟ่ก๏ผๅ ๆญคๆๆถๅๆถ Alpine ้ๅๆฏๆใ
2. ็ฏๅขๆฐๆฎไธๅ ผๅฎน๏ผๅฆๆๆจๆฏไปๆง็ๆฌๅ็บงไธๆฅ๏ผๅๆ็ Python/Node ็ฏๅขๆฐๆฎๅฐๆ ๆณ่ฟ็งปใๅ็บงๅๆจ้่ฆ๏ผ
- ๆธ
็ฉบๆๅคไปฝๅๆ็ envs/ ๆ่ฝฝ็ฎๅฝ
- ๅฏๅจๆฐๅฎนๅจ๏ผ่ฎฉ็ณป็ป่ชๅจๅๅงๅๆฐ็ Mise ็ฏๅข
- ๅจ้ขๆฟไธญ้ๆฐๅฎ่ฃ ๆ้็่ฏญ่จๅไพ่ต
ๆนๅผไธ๏ผ็ฏๅขๅ้้จ็ฝฒ๏ผๆจ่๏ผ
้่ฟ็ฏๅขๅ้ๆๅฎ้ ็ฝฎ๏ผ็ฎๅ็ตๆดป๏ผ้ๅๅฎนๅจ็ผๆๅบๆฏใ
ไฝฟ็จ SQLite๏ผ้ป่ฎค๏ผ๏ผ
docker run -d \
--name baihu \
-p 8052:8052 \
-v $(pwd)/data:/app/data \
-v $(pwd)/envs:/app/envs \
-e TZ=Asia/Shanghai \
-e BH_SERVER_PORT=8052 \
-e BH_SERVER_HOST=0.0.0.0 \
-e BH_DB_TYPE=sqlite \
-e BH_DB_PATH=/app/data/baihu.db \
-e BH_DB_TABLE_PREFIX=baihu_ \
-e BAIHU_SECRET_KEY=your_secret_key_here \
--restart unless-stopped \
ghcr.io/engigu/baihu:latest
ๆ็คบ๏ผๅฆ้้่ฟๅๅไปฃ็้จ็ฝฒๅจๅญ่ทฏๅพ๏ผๅฆ /baihu๏ผ๏ผๆทปๅ ็ฏๅขๅ้๏ผ
>> -e BH_SERVER_URL_PREFIX=/baihu
้
็ฝฎๅ่ฎฟ้ฎๅฐๅไธบ http://your-domain.com/baihu/๏ผ่ฏฆ่งไธๆนใURL ๅ็ผ้
็ฝฎใ่ฏดๆใ
Docker Compose๏ผSQLite๏ผ๏ผ
services:
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
- BH_SERVER_PORT=8052
- BH_SERVER_HOST=0.0.0.0
- BH_DB_TYPE=sqlite
- BH_DB_PATH=/app/data/baihu.db
- BH_DB_TABLE_PREFIX=baihu_
- BAIHU_SECRET_KEY=your_secret_key_here
# - BH_SERVER_URL_PREFIX=/baihu # ๅฏ้๏ผ้
็ฝฎ URL ๅ็ผ็จไบๅๅไปฃ็
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
ไฝฟ็จ MySQL๏ผ
docker run -d \
--name baihu \
-p 8052:8052 \
-v $(pwd)/data:/app/data \
-v $(pwd)/envs:/app/envs \
-e TZ=Asia/Shanghai \
-e BH_SERVER_PORT=8052 \
-e BH_SERVER_HOST=0.0.0.0 \
-e BH_DB_TYPE=mysql \
-e BH_DB_HOST=mysql-server \
-e BH_DB_PORT=3306 \
-e BH_DB_USER=root \
-e BH_DB_PASSWORD=your_password \
-e BH_DB_NAME=baihu \
-e BH_DB_TABLE_PREFIX=baihu_ \
-e BAIHU_SECRET_KEY=your_secret_key_here \
--restart unless-stopped \
ghcr.io/engigu/baihu:latest
ๆ็คบ๏ผๅฆ้้
็ฝฎ URL ๅ็ผ๏ผๆทปๅ -e BH_SERVER_URL_PREFIX=/baihu
Docker Compose๏ผMySQL๏ผ๏ผ
services:
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
- BH_SERVER_PORT=8052
- BH_SERVER_HOST=0.0.0.0
# - BH_SERVER_URL_PREFIX=/baihu # ๅฏ้๏ผ้
็ฝฎ URL ๅ็ผ
- BH_DB_TYPE=mysql
- BH_DB_HOST=mysql-server
- BH_DB_PORT=3306
- BH_DB_USER=root
- BH_DB_PASSWORD=your_password
- BH_DB_NAME=baihu
- BH_DB_TABLE_PREFIX=baihu_
- BAIHU_SECRET_KEY=your_secret_key_here
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
ๆนๅผไบ๏ผ้
็ฝฎๆไปถ้จ็ฝฒ
้่ฟๆ่ฝฝ config.ini ้
็ฝฎๆไปถๆฅ็ฎก็้
็ฝฎ๏ผ้ๅ้่ฆๆไน
ๅ้
็ฝฎ็ๅบๆฏใ
Docker ๅฝไปค๏ผ
docker run -d \
--name baihu \
-p 8052:8052 \
-v $(pwd)/data:/app/data \
-v $(pwd)/configs:/app/configs \
-v $(pwd)/envs:/app/envs \
-e TZ=Asia/Shanghai \
-e BAIHU_SECRET_KEY=your_secret_key_here \
--restart unless-stopped \
ghcr.io/engigu/baihu:latest
Docker Compose๏ผ
services:
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./configs:/app/configs
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
- BAIHU_SECRET_KEY=your_secret_key_here
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
้ฆๆฌกไฝฟ็จ้่ฆๅคๅถ configs/config.example.ini ไธบ configs/config.ini๏ผ็ถๅๆ นๆฎ้่ฆไฟฎๆน้
็ฝฎใ
้
็ฝฎๆไปถ็คบไพ๏ผconfigs/config.ini๏ผ๏ผ
[server]
port = 8052
host = 0.0.0.0
ๅฏ้๏ผ้
็ฝฎ URL ๅ็ผ็จไบๅๅไปฃ็๏ผไพๅฆ /baihu
url_prefix =
ๅ
จๅฑไผ่ฏ Cookie ๅ็งฐ
cookie_name = BHToken
[database]
type = sqlite
path = ./data/baihu.db
table_prefix = baihu_
ๆนๅผไธ๏ผ้
ๅ็ฌ็ซไธญๅฟๅๆถๆฏๆๅก้จ็ฝฒ๏ผ้ๅฟ
้/ไป
ไพๅ่๏ผ
[!TIP]
ๅ็ๅ
็ฝฎๆจ้๏ผ่ช็ฝ่้ขๆฟๆๆฐ็ๆฌ่ตท๏ผ็ณป็ปๅทฒๅ็ๅ
็ฝฎไบๅฎๆดๅผบๅคง็ๆถๆฏๆจ้ๅ่ฝ๏ผๆจๅฏ็ดๆฅๅจ้ขๆฟใๆถๆฏๆจ้ใ่ๅๅ
็ปๅฎๅไฝ็งไธปๆตๆธ ้ๅ็ณป็ป้็ฅไบไปถ๏ผๅ้
ๅๅค็ฝฎ็ Message-Push-Nest ้จ็ฝฒๆนๅผๅทฒไธๅๆฏไฝฟ็จ้ขๆฟ็ๅบ็ก่ฆๆฑใๆจๅฏ้ๆถ็ดๆฅไฝฟ็จไธๆน็็ฌฌไธ็ง็ฎๅๅฝไปคๅผ็ฎฑๅณ็จไฝ้ชใ
ไปฅไธใ็ฝ่ + ๆถๆฏ่ๅๆๅกใ็่ๅ้จ็ฝฒๅ ๅฎน่ขซไบไปฅไฟ็๏ผไธไธบไป็ถ้่ฆใไธญๅฟๅ้็ฅ็ฝๅ ณใ็้ๅบฆไผไธ่งฃ่ฆ็จๆทไฝไธบๅ่๏ผ
็ฝ่้ขๆฟ้่ฟ็ณป็ป้ๆไนๅฏ่ฝปๆพ่ฟๆฅ็ฌ็ซ็ๆถๆฏ่ๅๆๅกใ่ฟ้ๆจ่ไฝฟ็จ Message-Push-Nest ไฝไธบๅๅธๅผ็็ปไธๆถๆฏๆจ้ไธญๅฟใ
ไฝฟ็จ SQLite
ๅๅปบ docker-compose.yml ๆไปถ๏ผ
services:
# ็ฝ่้ขๆฟ
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
- BH_SERVER_PORT=8052
- BH_SERVER_HOST=0.0.0.0
- BH_DB_TYPE=sqlite
- BH_DB_PATH=/app/data/baihu.db
- BH_DB_TABLE_PREFIX=baihu_
- BAIHU_SECRET_KEY=your_secret_key_here
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
depends_on:
- message-nest
# ๆถๆฏๆจ้ๆๅก
message-nest:
image: ghcr.io/engigu/message-nest:latest
# ๆไฝฟ็จ Docker Hub ้ๅ
# image: engigu/message-nest:latest
container_name: message-nest
ports:
- "8053:8000"
environment:
- TZ=Asia/Shanghai
- DB_TYPE=sqlite
volumes:
- ./message-nest-data:/app/data
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
ไฝฟ็จ MySQL๏ผ้ๅ็ไบง็ฏๅข๏ผ้่ฆๅทฒๆ MySQL ๆๅก๏ผ
ๅๅปบ docker-compose.yml ๆไปถ๏ผ
services:
# ็ฝ่้ขๆฟ
baihu:
image: ghcr.io/engigu/baihu:latest
container_name: baihu
ports:
- "8052:8052"
volumes:
- ./data:/app/data
- ./envs:/app/envs
environment:
- TZ=Asia/Shanghai
- BH_SERVER_PORT=8052
- BH_SERVER_HOST=0.0.0.0
- BH_DB_TYPE=mysql
- BH_DB_HOST=192.168.1.100 # ไฟฎๆนไธบไฝ ็ MySQL ๅฐๅ
- BH_DB_PORT=3306
- BH_DB_USER=root
- BH_DB_PASSWORD=your_password # ไฟฎๆนไธบไฝ ็ MySQL ๅฏ็
- BH_DB_NAME=baihu
- BH_DB_TABLE_PREFIX=baihu_
- BAIHU_SECRET_KEY=your_secret_key_here
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
depends_on:
- message-nest
# ๆถๆฏๆจ้ๆๅก
message-nest:
image: ghcr.io/engigu/message-nest:latest
# ๆไฝฟ็จ Docker Hub ้ๅ
# image: engigu/message-nest:latest
container_name: message-nest
ports:
- "8053:8000"
environment:
- TZ=Asia/Shanghai
- DB_TYPE=mysql
- MYSQL_HOST=192.168.1.100 # ไฟฎๆนไธบไฝ ็ MySQL ๅฐๅ
- MYSQL_PORT=3306
- MYSQL_USER=root
- MYSQL_PASSWORD=your_password # ไฟฎๆนไธบไฝ ็ MySQL ๅฏ็
- MYSQL_DB=message_nest
- MYSQL_TABLE_PREFIX=message_
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
ๅฏๅจๆๅก๏ผ
docker-compose up -d
่ฎฟ้ฎๅฐๅ๏ผ
- ็ฝ่้ขๆฟ๏ผhttp://localhost:8052
- ๆถๆฏๆจ้ๆๅก๏ผhttp://localhost:8053
ๆณจๆ๏ผไฝฟ็จ MySQL ๆนๅผๆถ๏ผ่ฏทๅ ๅจ MySQL ไธญๅๅปบbaihuๅmessage_nestไธคไธชๆฐๆฎๅบ๏ผๅนถไฟฎๆน้ ็ฝฎไธญ็ MySQL ๅฐๅๅๅฏ็ ใไนๅฏไปฅไฝฟ็จๅไธไธชๆฐๆฎๅบใ
ๅจไปปๅกไธญไฝฟ็จๆจ้
ๅฆไปไฝ ๆ ้ไพ่ตไปปไฝๅค้จๆๅก๏ผๅฏไปฅ้่ฟ้ขๆฟ่ช่บซๅฎๆ๏ผ
- ่ฟๅ ฅ็ฝ่้ขๆฟใๆถๆฏๆจ้ใๆจกๅ๏ผๆฐๅปบไฝ ้่ฆ้็ฅ็ๆธ ้ใ
- ๅฏไปฅๅจใไบไปถ็ปๅฎใไธญ็ดๆฅ่ฎพๅฎ่ชๅจๅ็ณป็ป้็ฅ๏ผๅฆ็ๆงไปปๅกๅคฑ่ดฅๆ่ๆฌๅผๅธธไธญๆญขๆถ่ฟ่ก่ชๅจๆ้๏ผใ
- ๅฆ้ๅจ่ชๅทฑ็่ๆฌ้ป่พๅ ๅจๆๆจ้๏ผๅฏไปฅ็นๅปใ่ๆฌ่ฐ็จใ้กต้ข๏ผ็ซๅป่ทๅไธ้ฎ่ฐ็จ็ Shell / API ไปฃ็ ๏ผๅ ๅต่ฟไฝ ็ไธๅก้ป่พไธญๅณๅฏๅฎๆๆจไฟก๏ผ
Message-Push-Nest๏ผไฝ ๅฏไปฅ้่ฟๅ
ถ็ฎก็็้ขไธญใๆถๆฏๆจกๆฟใ็ใๅคๅถๆจ้ไปฃ็ ใๆๅๆงๆ็้ๆๆ ทไพใ)
ๆ็คบ๏ผๅจ Docker Compose ้จ็ฝฒ็็ฏๅขไธญ๏ผๆจ้ๆๅกๅฐๅไฝฟ็จ http://message-nest:8000๏ผๅฎนๅจๅ
้จ้ไฟก๏ผใๅฆๆๆฏ็ฌ็ซ้จ็ฝฒ๏ผ่ฏทไฝฟ็จๅฎ้
็ๆๅกๅฐๅใ
็ฏๅขๅ้ไผๅ ็บง้ซไบ้ ็ฝฎๆไปถ๏ผไธค็งๆนๅผๅฏไปฅๆททๅไฝฟ็จใ
ๆนๅผๅ๏ผNginx ๅๅไปฃ็้จ็ฝฒ๏ผHTTPS๏ผ
ๅฆๆ้่ฆ้่ฟๅๅๅ HTTPS ่ฎฟ้ฎ็ฝ่้ขๆฟ๏ผๅฏไปฅไฝฟ็จ Nginx ไฝไธบๅๅไปฃ็ใ
Nginx ้ ็ฝฎ็คบไพ๏ผ
# ๅจ http ๅไธญๆทปๅ WebSocket ๅ็บง้
็ฝฎ
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
access_log /var/log/nginx/example.access.log;
error_log /var/log/nginx/example.error.log warn;
location / {
proxy_pass http://172.17.0.1:8052;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
# WebSocket ๆฏๆ๏ผ็ป็ซฏๅ่ฝ้่ฆ๏ผ
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_buffering off;
proxy_read_timeout 60s;
}
}
HTTP ่ชๅจ่ทณ่ฝฌ HTTPS๏ผๅฏ้๏ผ
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
้ ็ฝฎ่ฏดๆ๏ผ
- ๅฐ
example.comๆฟๆขไธบไฝ ็ๅๅ - ไฟฎๆน SSL ่ฏไนฆ่ทฏๅพไธบไฝ ็ๅฎ้ ่ทฏๅพ
172.17.0.1:8052ๆฏ Docker ๅฎนๅจ็ๅฎฟไธปๆบๅฐๅๅ็ซฏๅฃ๏ผๆ นๆฎๅฎ้ ๆ ๅตไฟฎๆน- WebSocket ้ ็ฝฎๆฏๅฟ ้็๏ผๅฆๅๅจ็บฟ็ป็ซฏๅ่ฝๆ ๆณไฝฟ็จ
้่ฝฝ Nginx ้ ็ฝฎ๏ผ
nginx -t && nginx -s reload
่ฎฟ้ฎ้ขๆฟ
ๅฏๅจๅ่ฎฟ้ฎ๏ผhttp://localhost:8052
้ป่ฎค่ดฆๅท๏ผ ็จๆทๅ admin๏ผๅฏ็ ่งๅฏๅจๆฅๅฟ๏ผ้ฆๆฌกๅฏๅจไผ่ชๅจ็ๆ 12 ไฝ้ๆบๅฏ็ ๅนถๆๅฐๅจๆฅๅฟไธญ๏ผ
[!IMPORTANT]
ๅบไบๅฎๅ
จๆง่่๏ผ็ณป็ปไธๅไฝฟ็จๅบๅฎ้ป่ฎคๅฏ็ ใ่ฏทๅจๅฎนๅจๅฏๅจๆฅๅฟไธญๆ็ดข ็ฎก็ๅ่ดฆๅทๅๅปบๆๅ ๆพๅฐๆจ็้ๆบๅฏ็ ๏ผๅนถ็ปๅฝๅๅๆถไฟฎๆนใ
ๅฝไปค่กๅทฅๅ
ท (CLI)
็ฝ่้ขๆฟๅจ็ฏๅขๅ
ๅ
็ฝฎไบๅๅ็ baihu ๅฝไปค่กๅทฅๅ
ทใๅฆๆๆจๅจ็ป็ซฏๅ
้่ฆๆง่ก็ณป็ป็บงๅซ็ๆไฝ๏ผๅฏไปฅไฝฟ็จไปฅไธๅฝไปค๏ผ
baihu server # ไปฅๅๅฐๆนๅผๅฏๅจ้ขๆฟ็ๅๅฐ่ฟ็จๆๅก๏ผ้ขๆฟๅฏๅจๆไปค๏ผ
baihu reposync # ไพๅฎๆถไปปๅก่ฐ็จ๏ผๅฐ่ฟ็จ Git ไปๅบ็้ซ็บง็นๆงๅๆญฅๅฐๆฌๅฐ็ฎๅฝไธญ
baihu resetpwd # ไบคไบๅผ้็ฝฎ็ณป็ป admin ่ดฆๅทๅฏ็ ๏ผๅฏ็ ไธขๅคฑๆถๅฏ้่ฟ่ฟๅ
ฅ็ป็ซฏ้็ฝฎ๏ผ
baihu restore <file> # ไฝฟ็จๆฌๅฐ็ .zip ๅคไปฝๅ็ผฉๅ
ๆไปถ๏ผไธๆกๅฝไปค็ดๆฅๅ
จ้ๆขๅค็ณป็ปๆฐๆฎ
็ป็ซฏๆง่ก baihu ไผ็ดๆฅๆๅฐๅ
็ฝฎๆฏๆ็้ซ็บงๅฝไปคๅธฎๅฉๅ่กจใ
ๆฐๆฎ็ฎๅฝ
./
โโโ baihu # ๅฏๆง่กๆไปถ
โโโ data/ # ๆฐๆฎ็ฎๅฝ๏ผ่ชๅจๅๅปบ๏ผ
โ โโโ baihu.db # SQLite ๆฐๆฎๅบ
โ โโโ scripts/ # ่ๆฌๆไปถๅญๅจ
โโโ configs/
โ โโโ config.ini # ้
็ฝฎๆไปถ๏ผ่ชๅจๅๅปบ๏ผ
โโโ envs/ # ่ฟ่ก็ฏๅขๆ่ฝฝ็ฎๅฝ๏ผ่ชๅจๅๅปบ๏ผ
โโโ mise/ # Mise ่ฟ่กๆถๆ ธๅฟ็ฎๅฝ (ๅ
ๅซๆๆ่ฏญ่จ็ฏๅขๅไพ่ต)
Docker ๅฏๅจๆต็จ
ๅฎนๅจๅฏๅจๆถ docker-entrypoint.sh ไผๆง่กไปฅไธๆไฝ๏ผ
- ็ฎๅฝๅฐฑ็ปช๏ผๆฃๆฅๅนถๅๅปบ
/app/dataใ/app/configsใ/app/envs็ญๆ ธๅฟ็ฎๅฝใ - Mise ็ฏๅขๅๆญฅ๏ผ่ชๅจไป้ๅๅ
็ฝฎๅบ็ก็ฏๅขๅๆญฅๅๅงๅๆไปถ่ณ
/app/envs/mise๏ผ็กฎไฟๆไน ๅๆ่ฝฝๅ่ฟ่กๆถไพ็ถๅฏ็จใ - ่ฟ่กๆถๆฟๆดป๏ผ
MISE_DATA_DIR ็ญ็ฏๅขๅ้๏ผ็กฎไฟ่ฟ่กๆถๆฐๆฎๆๅๆไน
ๅ็ฎๅฝใ
- ๅฐ mise shims ่ทฏๅพๅ ๅ
ฅ็ณป็ป PATH๏ผๅฎ็ฐ PythonใNode.js ็ญๅค็ๆฌ็ฏๅข็ๅ
จๅฑๆ ๆ่ฐ็จใ
- ไพ่ต็ฎก็้ข่ฎพ๏ผ้ป่ฎค้ ็ฝฎ Python ๆธ ๅๆบ๏ผPIP๏ผ้ๅ๏ผไผๅ Node.js ้ป่ฎคๅ ๅญไธ้ใ
- ๅฏๅจๅบ็จ๏ผ่ฟ่ก
baihu้ขๆฟไธป่ฟ็จใ
ๆ็คบ๏ผ้่ฟๆ่ฝฝ ./envs:/app/envs๏ผๆจ้่ฟ้ขๆฟๅฎ่ฃ
็ๆๆ็ผ็จ่ฏญ่จ่ฟ่กๆถไปฅๅ้่ฟใไพ่ต็ฎก็ใๅฎ่ฃ
็ๆๆ็ฌฌไธๆนๅบ้ฝไผๆฐธไน
ไฟ็๏ผๅฎนๅจๅ็บงๆ้ๅฏๅๆ ้้ๆฐๅฎ่ฃ
ใ
้ ็ฝฎ่ฏดๆ
็นๅปๅฑๅผๆฅ็้
็ฝฎ่ฏฆๆ
้ ็ฝฎๆไปถ
้
็ฝฎๆไปถ่ทฏๅพ๏ผconfigs/config.ini
[server]
port = 8052
host = 0.0.0.0
url_prefix =
[database]
type = sqlite
host = localhost
port = 3306
user = root
password =
dbname = bh_panel
table_prefix = baihu_
็ฏๅขๅ้
ๆๆ้ ็ฝฎ้กน้ฝๆฏๆ้่ฟ็ฏๅขๅ้่ฆ็๏ผ็ฏๅขๅ้ไผๅ ็บง้ซไบ้ ็ฝฎๆไปถ๏ผ
| ็ฏๅขๅ้ | ๅฏนๅบ้
็ฝฎ | ่ฏดๆ | ้ป่ฎคๅผ |
|----------|----------|------|--------|
| BH_SERVER_PORT | server.port | ๆๅก็ซฏๅฃ | 8052 |
| BH_SERVER_HOST | server.host | ็ๅฌๅฐๅ | 0.0.0.0 |
| BH_SERVER_URL_PREFIX | server.url_prefix | URL ๅ็ผ๏ผ็จไบๅๅไปฃ็ๅญ่ทฏๅพ้จ็ฝฒ | - |
| BH_COOKIE_NAME | server.cookie_name | ๅ
จๅฑไผ่ฏ Cookie ๅ็งฐ | BHToken |
| BH_DB_TYPE | database.type | ๆฐๆฎๅบ็ฑปๅ (sqlite/mysql) | sqlite |
| BH_DB_HOST | database.host | ๆฐๆฎๅบๅฐๅ | localhost |
| BH_DB_PORT | database.port | ๆฐๆฎๅบ็ซฏๅฃ | 3306 |
| BH_DB_USER | database.user | ๆฐๆฎๅบ็จๆท | root |
| BH_DB_PASSWORD | database.password | ๆฐๆฎๅบๅฏ็ | - |
| BH_DB_NAME | database.dbname | ๆฐๆฎๅบๅ็งฐ | bh_panel |
| BH_DB_PATH | database.path | SQLite ๆไปถ่ทฏๅพ | ./data/baihu.db |
| BH_DB_TABLE_PREFIX | database.table_prefix | ่กจๅ็ผ | baihu_ |
| BAIHU_SECRET_KEY | - | ็ณป็ปๅ ๅฏ็ง้ฅ๏ผ็จไบๆบๅฏๅ่ฝ๏ผๆณจ๏ผไป
ๆฏๆ็ฏๅขๅ้่ฎพ็ฝฎ๏ผไธๆฏๆ้
็ฝฎๆไปถ๏ผ | - |
URL ๅ็ผ้ ็ฝฎ
ๅฆๆ้่ฆ้่ฟๅๅไปฃ็๏ผๅฆ Nginx๏ผๅฐ็ฝ่้ขๆฟ้จ็ฝฒๅจๅญ่ทฏๅพไธ๏ผๅฏไปฅ้ ็ฝฎ URL ๅ็ผใ
้ ็ฝฎๆนๅผ๏ผ
# ๆนๅผไธ๏ผ้
็ฝฎๆไปถ
[server]
url_prefix = /baihu
ๆนๅผไบ๏ผ็ฏๅขๅ้
-e BH_SERVER_URL_PREFIX=/baihu
้ ็ฝฎๆๆ๏ผ
้
็ฝฎ url_prefix = /baihu ๅ๏ผ่ฎฟ้ฎ่ทฏๅพๅไธบ๏ผ
| ็ฑปๅ | ่ทฏๅพ็คบไพ |
|------|---------|
| ๅ็ซฏ้กต้ข | http://your-domain.com/baihu/ |
| ็ปๅฝ้กต้ข | http://your-domain.com/baihu/login |
| ไปปๅก็ฎก็ | http://your-domain.com/baihu/tasks |
| API ๆฅๅฃ | http://your-domain.com/baihu/api/v1/* |
| WebSocket | ws://your-domain.com/baihu/api/v1/terminal/ws |
Nginx ๅๅไปฃ็้ ็ฝฎ็คบไพ๏ผ
location /baihu/ {
proxy_pass http://localhost:8052/baihu/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
MySQL ็คบไพ๏ผ
ๅ่ไธๆนใๆนๅผไธ๏ผ็ฏๅขๅ้้จ็ฝฒใไธญ็ MySQL ้ ็ฝฎ็คบไพใ
่ฐๅบฆ่ฎพ็ฝฎ
็ณป็ป้็จ Worker Pool + ไปปๅก้ๅ็ๆถๆๆฅๆงๅถไปปๅกๆง่ก๏ผๅฏๅจใ็ณป็ป่ฎพ็ฝฎ > ่ฐๅบฆ่ฎพ็ฝฎใไธญ้ ็ฝฎ๏ผ
| ่ฎพ็ฝฎ้กน | ่ฏดๆ | ้ป่ฎคๅผ | |--------|------|--------| | Worker ๆฐ้ | ๅนถๅๆง่กไปปๅก็ worker ๆฐ้ | 4 | | ้ๅๅคงๅฐ | ไปปๅก้ๅ็ผๅฒๅบๅคงๅฐ | 100 | | ้็้ด้ | ไปปๅกๅฏๅจ้ด้๏ผๆฏซ็ง๏ผ | 200 |
ไฟฎๆน่ฐๅบฆ่ฎพ็ฝฎๅ็ซๅณ็ๆ๏ผๆ ้้ๅฏๆๅกใ
ๅ ่ดฃๅฃฐๆ
[!CAUTION]
้่ฆๅ ่ดฃๆกๆฌพ๏ผ
็ฝ่้ขๆฟ๏ผBaihu Panel๏ผไป ไฝไธบไธไธช่ฝป้็บง็ไปปๅกๆ็ฎกไธ่ฐๅบฆๅนณๅฐ๏ผๆฌ้กน็ฎๅ็ธๅ ณไปฃ็ ไธๆไพใไธๅ ็ฝฎไปปไฝๅ ทๆๅฎ้ ไธๅก้ป่พ็็ฌฌไธๆน่ๆฌใ
ๅจไฝฟ็จๆฌ้กน็ฎๆถ๏ผ่ฏทๆจๅกๅฟ ็ฅๆๅนถๅๆไปฅไธๆกๆฌพ๏ผ
1. ่ๆฌๆฅๆบๅฎกๆ ธ๏ผ่ฏทๅฟ่ฝปๆๆง่กไปปไฝๆฅๆบไธๆๆไธๅฏไฟก็ๅค้จ่ๆฌใๆๆๅจๅนณๅฐไธ่ฟ่ก็่ๆฌๅไปฃ็ ๅ้็ฑ็จๆท่ช่กๆทปๅ ๆ้ ็ฝฎ๏ผ็จๆทๅฟ ้กปๅจๆง่กๅไป็ป้ ่ฏปๅนถๅฎกๆ ธๅ ถๆบไปฃ็ ๏ผ็กฎไฟๅ ถๅฎๅ จๆงใ
2. ๅฎๅ จ่ดฃไปป่ช่ด๏ผๆฌ้กน็ฎไฝไธบๅบ็ก่ฐๅบฆๅทฅๅ ท๏ผๆ ๆณไธไธไฟ่ฏไปปไฝ่ขซๆง่กไปปๅก็ๅฎๅ จๆงใๅ ่ฟ่กไธๅฎๅ จใ่ฟ่ง่ๆฌๅธฆๆฅ็ไธๅๆฐๆฎๆณ้ฒใ็ณป็ปๆๅใ่ดขไบงๆๅคฑๅๆณๅพ่ดฃไปป็ญๅๆ๏ผๅ็ฑไฝฟ็จ่ ่ช่กๆฟๆ ๏ผไธๆฌ้กน็ฎๅๅผๅ่ ๆ ๅ ณใ
3. ่ฝฏไปถๆโๅๆ ทโๆไพ๏ผๆฌ้กน็ฎไธบไธไฝๅผๆบๅผๅ๏ผๆโๅๆ ทโๆไพ๏ผไธไฟ่ฏไธๅญๅจ Bug ๆๆผๆดใๅผๅ่ ไธๅฏนๅ ไฝฟ็จๆฌ้กน็ฎ่ๅผ่ตท็ไปปไฝ็ดๆฅๆ้ดๆฅๆๅคฑ่ด่ดฃใ
่ดก็ฎ่
ๆ่ฐขๆๆไธบ็ฝ่้ขๆฟๅๅบ่ดก็ฎ็ๅผๅ่ ไปฌ๏ผๅคงๅฎถ็ Star ๅ Pull Request ๆฏ้กน็ฎๆ็ปญ่ฟญไปฃ็ๅจๅ๏ผ
็คพๅบไบคๆต
ๆฌข่ฟๅ ๅ ฅ็ฝ่้ขๆฟไบคๆต็คพๅบ๏ผไธๅผๅ่ ๅ็จๆทๅ ฑๅๆข่ฎจใไบคๆต็ป้ชไธๅ้ฆๅปบ่ฎฎ๏ผ
| ็คพๅบๅ้ฆไธๆๅผ | QQ ไบคๆต็พค | | :--- | :---: | |
- ้ฎ้ขๅ้ฆ (Bug Report)๏ผๅฆๆๅจไฝฟ็จไธญ้ๅฐ้ฎ้ข๏ผๆฌข่ฟๆไบค GitHub Issues
- ๅ่ฝๅปบ่ฎฎ (Feature Request)๏ผๆๆฐ็ๆณๆณๆ้ๆฑ๏ผ้ๆถๅ่ตท่ฎจ่ฎบ
- ไปฃ็ ่ดก็ฎ (Pull Request)๏ผ้ๅธธๆฌข่ฟๆไบค PR ๅไธๅ ฑๅปบ
- ไฝฟ็จๆๆกฃ (Documentation)๏ผ้ๅฐ้ ็ฝฎไธไฝฟ็จ็้ฎๅฏๆฅ้ ๅฎๆนๆๆกฃไธญๅฟ

QQ ็พคๅท๏ผ468870216 |
้ธฃ่ฐข
- Windows ๅฎ่ฃ ๅ ็็ฎไฝไธญๆ่ฏญ่จๅ ไฝฟ็จไบ็ฑ Zhenghan Yang (Kira) ็ปดๆค็ๅผๆบ้กน็ฎ Inno-Setup-Chinese-Simplified-Translation๏ผ็นๆญค่ด่ฐขใ
่ฎธๅฏ่ฏ
ๆฌ้กน็ฎ้็จ Apache License 2.0 ๅ่ฎฎๅๅธ๏ผๅนถๅ ๅซ้ขๅค็ NOTICE ่ฏดๆใ
ๅผบๅถ่ฆๆฑ๏ผ ๅจไปปไฝๅๅใไฟฎๆนๆไบๆฌกๅผๅไธญ๏ผๅฟ ้กปๅฎๆดไฟ็ๅไฝ่ ็ฝฒๅๅ้กน็ฎๅ็งฐ๏ผ่ฏฆ่ง NOTICE ๆไปถ๏ผใ