Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
355 commits
Select commit Hold shift + click to select a range
a67b898
refactor: simplify useHeaderMenus by removing unused frontendState an…
yumao233 Mar 12, 2026
69ab72d
feat: add upload and download speed limit configuration for container…
Mar 12, 2026
d1af401
Merge branch 'master' into feat/docker-network
Mar 12, 2026
d00622a
Merge pull request #2057 from tiltysola/feat/sso-login
yumao233 Mar 13, 2026
a8f06b1
Merge pull request #2058 from MCSManager/dev
yumao233 Mar 13, 2026
8305a51
Merge branch 'dev' into feat/docker-network
yumao233 Mar 13, 2026
3028df4
feat: enhance network statistics handling and add bandwidth labels in UI
Mar 14, 2026
63e131c
feat: remove network traffic display from instance shortcut
Mar 14, 2026
27b18c3
Merge branch 'feat/docker-network' of https://github.com/SMGoro/MCSMa…
Mar 14, 2026
3848aa3
Merge branch 'master' into feat/docker-network
Mar 14, 2026
4027cbf
feat: support loong64
KatyushaScarlet Mar 14, 2026
6d4f2ac
Merge pull request #2059 from KatyushaScarlet/dev
yumao233 Mar 16, 2026
9e6ede5
Merge pull request #2056 from SMGoro/feat/docker-network
yumao233 Mar 16, 2026
2eff9f7
feat: kill container when takeover docker container error
yumao233 Mar 16, 2026
f7d115f
refactor: simplify networkStatsSource handling in DockerStatsTask and…
Mar 16, 2026
756f494
Merge pull request #2065 from SMGoro/feat/docker-network
yumao233 Mar 16, 2026
2c3360d
fix: improve error handling and logging in bandwidth limit applicatio…
yumao233 Mar 16, 2026
9ddc161
fix: properly await disk check concurrency and avoid hanging checking…
Enolaly Mar 17, 2026
2aa4d86
Fixed a language mistake where Success & Error were swapped in the Lo…
SkyKingPX Mar 17, 2026
1ac295c
Merge pull request #2068 from MCSManager/yumao/dev-docker-net-limit
yumao233 Mar 18, 2026
6128e3b
Merge pull request #2067 from SkyKingPX/master
yumao233 Mar 18, 2026
0293ac0
Merge pull request #2066 from Enolaly/fix/disk-limit-service-concurrency
yumao233 Mar 18, 2026
1978585
refactor: streamline network statistics retrieval in DockerStatsTask …
yumao233 Mar 18, 2026
2b6bb72
fix: enhance error handling and logging for network rate limiting in …
yumao233 Mar 18, 2026
2809251
feat: add upload and download speed limit logging and validation in D…
yumao233 Mar 18, 2026
eb9009d
Merge pull request #2063 from MCSManager/dev
yumao233 Mar 18, 2026
b1602f1
fix: custom logo bug
yumao233 Mar 18, 2026
e4da704
feat: translate
yumao233 Mar 18, 2026
9de18e8
feat: AI rules
yumao233 Mar 18, 2026
40cf0bc
feat: AI rules
yumao233 Mar 18, 2026
1263b7b
feat: AI rules
yumao233 Mar 18, 2026
01e41cf
add docker gpu support
TamakiIroha3 Mar 20, 2026
f19392e
Update lib-urls.txt
yumao233 Mar 23, 2026
8b3fccf
Merge pull request #2074 from TamakiIroha3/master
yumao233 Mar 23, 2026
eb1c564
opt: sidebar style
LazyCreeper Mar 24, 2026
460b48b
refactor: use mediaQuery
LazyCreeper Mar 24, 2026
686daef
opt: sidebar layout
LazyCreeper Mar 24, 2026
94d3d77
opt: new-card-list style
LazyCreeper Mar 24, 2026
7903744
opt: update layout structure in Login.vue
LazyCreeper Mar 24, 2026
539d525
fix: body overflow
LazyCreeper Mar 24, 2026
ad78844
opt: enhance StatusBlock style
LazyCreeper Mar 24, 2026
9a7931f
opt: danger color
LazyCreeper Mar 24, 2026
a579f38
feat: get usage color
LazyCreeper Mar 24, 2026
5ea35dd
opt: node overview card
LazyCreeper Mar 24, 2026
53e6b37
opt: progress stroke color
LazyCreeper Mar 24, 2026
85f8a44
opt: tag color
LazyCreeper Mar 24, 2026
5d40be6
feat: add confirmation modal for design mode activation
LazyCreeper Mar 24, 2026
816e3c7
opt: instance card tags
LazyCreeper Mar 24, 2026
cd094de
opt: BaseInfo card tags
LazyCreeper Mar 24, 2026
66c457a
opt: warning color
LazyCreeper Mar 24, 2026
c32ec42
opt: code
LazyCreeper Mar 25, 2026
e5de9ce
Merge pull request #2082 from MCSManager/qwq-sidebar
yumao233 Mar 25, 2026
697044f
fix: instance stop condition in DiskLimitService
LazyCreeper Apr 1, 2026
06bc2a5
opt: reduce sleep duration
LazyCreeper Apr 1, 2026
998bcb4
feat: using custom header to get user ip with reverse proxy mode
ChengZhiMeow Apr 5, 2026
e6ab1b7
Merge branch 'chengzhi/dev' of https://github.com/MCSManager/MCSManag…
ChengZhiMeow Apr 5, 2026
41eccd3
chore: i18n
ChengZhiMeow Apr 5, 2026
ed327fe
Merge pull request #2091 from MCSManager/chengzhi/dev
yumao233 Apr 5, 2026
9843c26
fix: improve Forge/NeoForge metadata parsing and version fallback
limbang Apr 15, 2026
d597761
fix auth_router.ts
TeraBytes1024 Apr 20, 2026
593261f
Merge pull request #2110 from TeraBytes1024/patch-1
yumao233 Apr 20, 2026
19391b5
Merge pull request #2103 from limbang/master
yumao233 Apr 20, 2026
add80cb
feat: 支持 MCDR 实例自动解析底层服务端类型与路径
Lemon-miaow Apr 21, 2026
78531ef
修复上传文件时目录存在跨页同名文件未触发覆盖确认而直接生成副本的问题
XUANHLGG Apr 22, 2026
f82344d
Merge pull request #2113 from XUANHLGG/master
yumao233 Apr 27, 2026
f72a48a
Merge pull request #2111 from Lemon-miaow/feat/MCDRsupport
yumao233 Apr 27, 2026
3a67fcf
fix: handle PTY toggle errors while instance is running
noticebrick Apr 28, 2026
3240b8c
fix(i18n): register Turkish locale in panel and daemon
noticebrick Apr 28, 2026
f413158
Merge pull request #2119 from noticebrick/fix/register-tr-tr-locale
yumao233 Apr 28, 2026
7b05cca
Merge pull request #2118 from noticebrick/fix/pty-toggle-running-erro…
yumao233 Apr 28, 2026
8157b9e
fix(frontend): remove misleading stop button in build progress
noticebrick Apr 28, 2026
c06763d
Merge pull request #2120 from noticebrick/fix/build-progress-remove-s…
yumao233 Apr 28, 2026
9a61b57
feat: Implement folder upload and manual path editing
xiaosuawa Apr 28, 2026
f2df271
Merge branch 'MCSManager:master' into master
xiaosuawa Apr 28, 2026
74e7adf
feat: i18n
yumao233 Apr 28, 2026
c96374a
chore: update version numbers in package.json for daemon and panel to…
yumao233 Apr 28, 2026
4480833
fix(i18n): fix Turkish language support in i18n
noticebrick Apr 28, 2026
289e7e9
Merge branch 'MCSManager:master' into master
xiaosuawa Apr 28, 2026
3ec823d
fix: remove tags when switching nodes
farshore07 Apr 28, 2026
11fdf36
fix: path normalization and code cleanup
xiaosuawa Apr 28, 2026
12f09a5
Merge branch 'master' of https://github.com/xiaosuyyds/MCSManager
xiaosuawa Apr 28, 2026
200bc74
fix: cleanup unused i18n field
xiaosuawa Apr 29, 2026
84e74a1
fix(daemon): allow access to folders starting with '..'
xiaosuawa Apr 29, 2026
7ee67c1
fix: fix path input layout
xiaosuawa Apr 29, 2026
085b158
fix(daemon): unzip uploaded folders in target directory
xiaosuawa Apr 29, 2026
00adb22
fix: refine path edit handling and code cleanup
xiaosuawa Apr 29, 2026
cac5c78
fix: improve path normalization handling for absolute paths
xiaosuawa Apr 29, 2026
d83a5ad
fix: update path handling in toAbsolutePath method
xiaosuawa Apr 29, 2026
a01d4c9
fix: update path handling in toAbsolutePath method
xiaosuawa Apr 29, 2026
b8e00d3
Merge pull request #2122 from Findoutsider/master
yumao233 Apr 30, 2026
39c3929
Merge pull request #2121 from noticebrick/fix/turkish-i18n
yumao233 Apr 30, 2026
5b9ae49
Remove hardcoded chinese from server statistic tags.
nikorsd Apr 30, 2026
9c11ab9
New language keys seperating network bandwidth and traffic
nikorsd Apr 30, 2026
f5b1cd9
Merge pull request #2125 from nikorsd/feat/remove-hardcoded-chinese
yumao233 Apr 30, 2026
874336c
Fix Russian translation inconsistencies
trassert Apr 30, 2026
080d21a
refactor: remove unnecessary parameters and optimize path handling
xiaosuawa Apr 30, 2026
81d41c6
chore: remove market quick install list is empty dialog error
ChengZhiMeow Apr 30, 2026
719b424
Merge pull request #2127 from MCSManager/chengzhi/dev
yumao233 Apr 30, 2026
65bd27a
fix: create exist type instance cannot change workfolder
ChengZhiMeow Apr 30, 2026
ca66a00
Merge pull request #2128 from MCSManager/chengzhi/dev
yumao233 Apr 30, 2026
35066b5
Merge pull request #2126 from trassert/master
yumao233 Apr 30, 2026
349fa82
chore: docker public port setting support set host ip
ChengZhiMeow Apr 30, 2026
7a9950e
Merge branch 'chengzhi/dev' of https://github.com/MCSManager/MCSManag…
ChengZhiMeow Apr 30, 2026
b101455
Merge branch 'MCSManager:master' into master
xiaosuawa May 1, 2026
c60df66
fix: minor cleanup
xiaosuawa May 1, 2026
739454f
Merge pull request #2129 from MCSManager/chengzhi/dev
yumao233 May 2, 2026
0389514
fix: redirect authenticated users away from login page
farshore07 May 4, 2026
2f94245
Merge pull request #2134 from Findoutsider/master
yumao233 May 6, 2026
03682bc
fix: clean up Linux instance child processes on shutdown
farshore07 May 6, 2026
54aa38d
feat: all instasnces dashboard
ChengZhiMeow May 6, 2026
4ce1ce7
chore: ui
ChengZhiMeow May 6, 2026
56c061d
chore: ui
ChengZhiMeow May 6, 2026
c02dbdc
Merge pull request #2135 from Findoutsider/fix/close-process-failed
yumao233 May 7, 2026
89b0270
chore: update package versions for daemon and panel to 4.13.0 and 10.…
yumao233 May 7, 2026
a0ecb42
chore: npm dependency security
yumao233 May 7, 2026
2037b49
fix: https://github.com/MCSManager/MCSManager/issues/2132
yumao233 May 7, 2026
5866ef5
Merge branch 'MCSManager:master' into master
xiaosuawa May 7, 2026
2d08769
fix: close upload confirm modal immediately on confirm
xiaosuawa May 7, 2026
09c1be1
chore: using Promise.all() to get global instances
ChengZhiMeow May 7, 2026
defac20
chore: using global const and computed
ChengZhiMeow May 7, 2026
50cf672
Merge pull request #2137 from MCSManager/chengzhi/dev
yumao233 May 8, 2026
1ac4d77
Merge remote-tracking branch 'upstream/master' into master to resolve…
xiaosuawa May 8, 2026
0cced95
feat: download from url progress
ChengZhiMeow May 8, 2026
4bf6403
fix: stop download throw error
ChengZhiMeow May 8, 2026
c1562eb
fix: first load instance err
yumao233 May 8, 2026
00995c7
Merge branch 'MCSManager:master' into master
xiaosuawa May 9, 2026
98cafcc
Merge remote-tracking branch 'upstream/master'
xiaosuawa May 9, 2026
06cdb09
Merge branch 'master' of https://github.com/xiaosuyyds/MCSManager
xiaosuawa May 9, 2026
df9818c
fix: /asynchronous permission check
yumao233 May 10, 2026
947f1d2
Merge pull request #2123 from xiaosuyyds/master
yumao233 May 10, 2026
17242ef
chore: update package version to 10.14.0 and daemon version to 4.14.0
yumao233 May 10, 2026
2369227
fix: resolve issues with file path editing and folder upload function…
yumao233 May 10, 2026
5516b45
Merge branch 'chengzhi/dev' of https://github.com/MCSManager/MCSManag…
ChengZhiMeow May 10, 2026
1365683
merge
ChengZhiMeow May 10, 2026
0d0e1ce
feat: enhance PackageDetailTable with Docker installation options and…
yumao233 May 10, 2026
a488d90
fix: properties cannot read bigint
ChengZhiMeow May 10, 2026
be341ba
Merge pull request #2150 from MCSManager/chengzhi/fix
yumao233 May 11, 2026
28a7669
Merge pull request #2148 from MCSManager/chengzhi/dev
yumao233 May 11, 2026
d63e3f2
fix: mini redis data ttl cannot auto remove
ChengZhiMeow May 11, 2026
7ea17a4
Merge pull request #2151 from MCSManager/chengzhi/fix
yumao233 May 11, 2026
3e8a35b
fix: wire up gzip config to enable HTTP compression
xiaosuawa May 11, 2026
58769df
fix: correct static cache maxAge and exclude index.html
xiaosuawa May 11, 2026
41363fe
Merge pull request #2152 from xiaosuyyds/master
yumao233 May 12, 2026
38d705f
fix russian translates
trassert May 17, 2026
0ca2958
Merge pull request #2157 from trassert/master
yumao233 May 19, 2026
9734358
fix: correct emoji character width in terminal and simplify copy flow
xiaosuawa May 20, 2026
f3b012d
fix: prevent instance name overflow in global daemon mode table
xiaosuawa May 20, 2026
b0ebfac
fix: remove redundant comment in useTerminal function
xiaosuawa May 20, 2026
fbc8b75
Merge pull request #2159 from xiaosuyyds/master
yumao233 May 20, 2026
38886d4
chore: adjust default socket maxHttpBufferSize for better resource ma…
9Bakabaka May 20, 2026
21df30a
Merge pull request #2163 from 9Bakabaka/master
yumao233 May 20, 2026
287e5b3
fix: quick install cannot install instance
ChengZhiMeow May 21, 2026
2f75e88
feat: docker io rate
ChengZhiMeow May 21, 2026
2a6b331
fix: cannot set host ip in docker port dialog
ChengZhiMeow May 21, 2026
33713a4
fix: container port cannot bind multiple host ports
ChengZhiMeow May 21, 2026
378fb7a
Merge pull request #2164 from MCSManager/chengzhi/fix
yumao233 May 22, 2026
09e6207
Merge pull request #2165 from MCSManager/chengzhi/dev
yumao233 May 22, 2026
28b1ae8
chore: update package versions to 4.15.0 for daemon and 10.15.0 for p…
yumao233 May 22, 2026
3a37bb3
feat: i18n
yumao233 May 22, 2026
ea5d662
chore: bump panel version to 10.15.1
yumao233 May 22, 2026
c685d8c
Merge pull request #2166 from MCSManager/chengzhi/fix-docker-port-wit…
yumao233 May 22, 2026
c7149bb
fix: mapping default web port not is 23333
ChengZhiMeow May 23, 2026
4ffc277
Merge pull request #2174 from MCSManager/chengzhi/fix
yumao233 May 23, 2026
c59d84c
fix: update platform selection logic in useMarketPackages hook
yumao233 May 26, 2026
09a61b8
fix(daemon): make network limit sudo fallback non-blocking
leiuary May 27, 2026
ecdf81e
fix(docker): convert runAs username to UID:GID format for Docker cont…
leiuary May 28, 2026
53c169c
fix(daemon): use 7zip when available for archive extraction
leiuary May 28, 2026
efd2bd8
fix(docker): only resolve runAs host users on Linux
leiuary May 28, 2026
fe1f569
fix(daemon): improve network limit sudo fallback handling
leiuary May 28, 2026
f4df97c
feat: add link validation in FileManager to prevent symbolic and hard…
yumao233 May 29, 2026
6ec5f3e
fix: correct check7zipStatus logic in decompress function
yumao233 May 29, 2026
b9faab0
chore: update package versions to 4.15.0 for daemon and 10.15.1 for p…
yumao233 May 29, 2026
5e3bf2c
chore: update package versions to 4.15.2 for daemon and 10.15.2 for p…
yumao233 May 29, 2026
6ea44ea
fix: improve symlink handling and fix Windows file system issues
xiaosuawa May 30, 2026
5aa2845
fix: use path.relative directly for symlink bounds check
xiaosuawa May 30, 2026
2a7bd08
fix: use lstatSync for existence check to allow deleting dangling sym…
xiaosuawa May 30, 2026
5f12ebf
fix: support nested path creation in mkdir and newFile
xiaosuawa May 30, 2026
fc40776
fix: resolve full symlink chain in path bounds check
xiaosuawa May 30, 2026
67afc17
fix: await newFile to catch rejected promise in file/touch handler
xiaosuawa May 30, 2026
144778c
Merge pull request #2181 from leiuary/bugfix
yumao233 May 31, 2026
2b7813b
Merge pull request #2184 from xiaosuyyds/dev/nested-path
yumao233 May 31, 2026
8179550
chore: update version
yumao233 May 31, 2026
7b9b001
perf: use async stat for Reparse Point type detection in list
xiaosuawa Jun 1, 2026
1a7e431
Merge pull request #2183 from xiaosuyyds/master
yumao233 Jun 1, 2026
aeed127
fix: derive role from API key user in asynchronous handler
xiaosuawa May 31, 2026
0c08e40
fix: skip body validation when schema is empty
xiaosuawa May 31, 2026
b788d36
fix: select-all button not working in instance list
xiaosuawa Jun 1, 2026
ae43941
Merge pull request #2186 from xiaosuyyds/fix/instance-select-all
yumao233 Jun 1, 2026
15913f1
Merge pull request #2185 from xiaosuyyds/fix/panel-api-fixes
yumao233 Jun 1, 2026
532d04b
Update README.md
yumao233 Jun 1, 2026
743595e
Update README_ZH.md
yumao233 Jun 1, 2026
d5653b8
Update README_ZH.md
yumao233 Jun 1, 2026
20bb6fc
Update README.md
yumao233 Jun 1, 2026
3e0873f
Update package.json
yumao233 Jun 1, 2026
6add473
Update package.json
yumao233 Jun 1, 2026
fbee24c
fix: cannot using design mode with login page
ChengZhiMeow Jun 1, 2026
8b95ad7
Merge pull request #2188 from MCSManager/chengzhi/fix-custom-login-page
yumao233 Jun 1, 2026
ea2965f
Update README.md
yumao233 Jun 2, 2026
7b35abf
Update README_ZH.md
yumao233 Jun 2, 2026
90c8e4f
Update README.md
yumao233 Jun 2, 2026
59ea590
Update README_ZH.md
yumao233 Jun 2, 2026
ea34446
fix: correct Docker default user description and update GitHub userna…
xiaosuawa Jun 2, 2026
b3b00c2
Merge pull request #2191 from xiaosuawa/fix/docker-default-user
yumao233 Jun 2, 2026
61650f3
fix: handle special characters in 7zip decompression
xiaosuawa Jun 4, 2026
58edd61
Merge pull request #2196 from xiaosuawa/fix/7zip
yumao233 Jun 4, 2026
235dd93
fix: process config cannot edit
ChengZhiMeow Jun 4, 2026
0abee64
Merge pull request #2197 from MCSManager/chengzhi/fix-minecraft-serve…
yumao233 Jun 4, 2026
e98c254
Update package.json
yumao233 Jun 5, 2026
9ead6bb
Update package.json
yumao233 Jun 5, 2026
b5bfc1a
fix: localize and correct zh_TW (Traditional Chinese, Taiwan) transla…
GoneTone Jun 13, 2026
8d5f294
docs: add timezone and upload_files volume mounts to docker examples
GoneTone Jun 13, 2026
443b5d3
Merge pull request #2209 from GoneTone/fix/zh-tw-translations
yumao233 Jun 15, 2026
611823a
Merge pull request #2210 from GoneTone/docs/docker-add-timezone-uploa…
yumao233 Jun 15, 2026
f9e4dfd
feat: add configurable stop timeout that auto-terminates a hung stop
GoneTone Jun 20, 2026
24263be
Merge pull request #2212 from GoneTone/feat/instance-stop-timeout
yumao233 Jun 22, 2026
2e8efb4
fix(frontend): refresh file lists after upload
XUANHLGG Jun 21, 2026
223d08b
Merge pull request #2213 from XUANHLGG/master
yumao233 Jun 28, 2026
bdb4933
修改部分文本
Capslock800000 Jun 28, 2026
ab2613c
fix: to nodes page
LazyCreeper Jun 30, 2026
71ae1f1
fix: router import path
LazyCreeper Jun 30, 2026
24096dd
Merge pull request #2223 from Capslock800000/patch-6
yumao233 Jul 4, 2026
2ceee6f
fix(daemon): prevent attach options leaking into Podman stdin
nostalfinals Jul 15, 2026
67959a6
test(frontend): add vitest test runner
mliem2k Jul 16, 2026
19419a0
feat(frontend): add terminal history-replay gate
mliem2k Jul 16, 2026
fe79478
fix(frontend): suppress input forwarding while replaying terminal bac…
mliem2k Jul 16, 2026
bc7b063
fix(frontend): guard writeHistoryLog against a synchronous term.write…
mliem2k Jul 16, 2026
a2a0c9b
chore: upgrade permission check
yumao233 Jul 20, 2026
e6de5dd
chore: upgrade permission check
yumao233 Jul 20, 2026
299ae2e
Merge pull request #2239 from mliem2k/fix/terminal-backlog-replay-dsr…
yumao233 Jul 20, 2026
410b80b
Merge pull request #2236 from nostalfinals/fix/podman-attach
yumao233 Jul 20, 2026
35a7a10
chore: update Acknowledgements
yumao233 Jul 20, 2026
8699d2a
Merge branch 'master' of github.com:MCSManager/MCSManager
yumao233 Jul 20, 2026
8f1e003
fix: preserve mutex during queued handoff
potatosips Jul 20, 2026
8850d3c
Merge pull request #2243 from potatosips/fix/mutex-map-handoff
yumao233 Jul 21, 2026
827381d
chore: security update & enhance ApiKey validation
yumao233 Jul 22, 2026
c6f307d
chore: change version
yumao233 Jul 22, 2026
69afcc4
chore: enhance ApiKey validation
yumao233 Jul 22, 2026
563a917
chore: update logo in readme files
SkyKingPX Jul 22, 2026
56e1f12
Merge pull request #2256 from SkyKingPX/master
yumao233 Jul 22, 2026
31569b4
chore: rename rules file
yumao233 Jul 22, 2026
83eb839
Merge branch 'master' of github.com:MCSManager/MCSManager
yumao233 Jul 22, 2026
5d41087
feat: toggle api key
ChengZhiMeow Jul 23, 2026
7fae24b
Merge pull request #2257 from MCSManager/chengzhi/dev
yumao233 Jul 23, 2026
12c72c8
Update ko_KR.json
starworkless Jul 24, 2026
67bb605
fix: German translation
SkyKingPX Jul 25, 2026
f329548
Merge pull request #2263 from SkyKingPX/master
yumao233 Jul 26, 2026
de88d48
Merge pull request #2262 from starworkless/master
yumao233 Jul 26, 2026
537bd51
Merge remote-tracking branch 'origin/dev' into pr/27/master
un-boxing-man Jul 26, 2026
182b7d2
Merge pull request #28 from un-boxing-hosting/pr/27/master
un-boxing-man Jul 26, 2026
4661e18
Merge branch 'master' into dev
un-boxing-man Jul 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
23 changes: 23 additions & 0 deletions .cursor/rules/backend-daemon-panel-standards.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
description: Backend development conventions
globs: daemon/src/**/*.ts, panel/src/**/*.ts,
alwaysApply: false
---

# Backend directory structure

Folder names under `daemon/src/*` and `panel/src/app/*` define the layers: route, middleware, service, instance, etc.

# Logging and exceptions

- Use the project **logger** (not raw `console.*`). Use `info` or `error` by context.
- For external resources (files, network, containers, shell): validate inputs and boundaries; on failure log and rethrow or return a clear result. Do not swallow exceptions.

# Security checks

- For container/command logic: strictly parse and validate config (length, format). Do not pass unvalidated input into command args or config fields.
- When running shell commands or reading files, if arguments come from the frontend, validate them for security risks.

# Memory and leaks

- For new Maps, queues, Buffer, arrays, etc., add corresponding cleanup/release logic to avoid memory leaks.
52 changes: 52 additions & 0 deletions .cursor/rules/core-project-conventions.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
description: Project development conventions
alwaysApply: true
---

# Project structure

The codebase is split into: `web backend (panel/*.*)`, `daemon/node (daemon/*.*)`, and `web frontend (frontend/*.*)`.

- **Daemon**: instance processes, containers, files, and terminal management.
- **Web backend**: user management, node connections, auth, and API.
- **Web frontend**: UI, backend communication; some features talk to the daemon directly to reduce load.

# Code requirements

- Prefer **minimal changes**. Before coding, check `hooks/services/stores/utils` in the relevant subproject to avoid duplicate logic.
- All comments and all code must be written in English. If there are any non-English strings, you must use the i18n convention.
- Do **not** hardcode user-facing text (UI copy or error messages). Use the project i18n flow (backend logs excepted).
- Code must be **high cohesion, low coupling, reusable**.

# i18n conventions

- **Frontend**: use `t()` from `@/lang/i18n` for all translatable text.
- **Backend**: use `$t()` (e.g. from `daemon/src/i18n/index.ts`) for all user-facing text and error messages.
- Store source strings as accurate, short, correct English in `languages/en_us.json`; other locales are added separately.

## i18n parameterized strings

> Frontend and backend use different placeholder syntax. Keys must use the `TXT_CODE` prefix.

```json
{
"TXT_CODE_FILE_ERROR": "File {name} error!",
"TXT_CODE_INSTANCE_ERROR": "Exception instance {{uuid}}: {{err}}"
}
```

- **Frontend**: one pair of braces `{name}`.
- **Web backend / Daemon**: two pairs `{{uuid}}`, `{{err}}`.

```vue
<!-- Web frontend -->
<template>{{ t("TXT_CODE_FILE_ERROR", { name: props.fileName }) }}</template>
```

```ts
// Backend, with parameters
const errorMsgWithParams = $t("TXT_CODE_INSTANCE_ERROR", {
uuid: instance.instanceUuid,
err: err
});
```
12 changes: 12 additions & 0 deletions .cursor/rules/frontend-vue-component-standards.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
description: Frontend (Vue 3) development conventions
globs: frontend/src/**/*.vue
alwaysApply: false
---

# Vue component conventions

- Use **Vue 3**. Components must use `<script setup lang="ts">`. Use `const` and clear types to express intent.
- Pass data via Vue’s recommended **props**; do not break one-way data flow.
- Keep component TS logic short. Move complex logic into dedicated **hooks** by responsibility for reuse.
- Keep templates short. Extract complex markup into separate Vue components for reuse.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ production-code/
test.js
.idea/
ai-api.key
.vs/

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
Expand Down
129 changes: 129 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
---
description: Core project rules for all AI assistants (Claude, Cursor, etc.)
---

## 1. Project Overview

- **Structure**
- **Web backend**: `panel/*.*`
- **Daemon / node worker**: `daemon/*.*`
- **Web frontend**: `frontend/*.*`
- **Responsibilities**
- **Daemon**: instance processes, containers, files, terminal management.
- **Web backend**: user management, node connections, auth, API.
- **Web frontend**: UI, talks to backend; some features talk directly to daemon to reduce load.

## 2. General Coding Rules

- **Minimal changes**: Prefer small, focused edits. Before adding new logic, check existing `hooks`, `services`, `stores`, `utils` in the relevant subproject and reuse when possible.
- **Language for code & comments**: All **code and comments must be written in English**.
- **User-facing text & i18n**
- Do **not** hardcode user-facing strings (UI labels, messages, errors, etc.).
- Always use the project i18n flow (backend logs are the only common exception).
- **Design quality**
- Aim for **high cohesion, low coupling, reusable** code.

## 3. i18n Conventions

- **Frontend (Vue)**: use `t()` from `@/lang/i18n` for all translatable text.
- **Backend / Daemon**: use `$t()` (e.g. from `daemon/src/i18n/index.ts`) for all user-facing text and error messages.
- **Source language**: Add/keep source strings as short, correct English in `languages/en_us.json`. Other locales (e.g. `zh_CN`, `zh_TW`) are translations.

### 3.1 Parameterized Strings

- Keys for dynamic / parameterized messages use the `TXT_CODE_*` prefix.
- **Different placeholder syntax**:
- **Frontend**: one pair of braces: `{name}`.
- **Backend / Daemon**: double braces: `{{uuid}}`, `{{err}}`, etc.

Example definition:

```json
{
"TXT_CODE_FILE_ERROR": "File {name} error!",
"TXT_CODE_INSTANCE_ERROR": "Exception instance {{uuid}}: {{err}}"
}
```

Example usage (frontend):

```vue
<template>{{ t("TXT_CODE_FILE_ERROR", { name: props.fileName }) }}</template>
```

Example usage (backend / daemon):

```ts
const errorMsgWithParams = $t("TXT_CODE_INSTANCE_ERROR", {
uuid: instance.instanceUuid,
err: err
});
```

## 4. Backend (Daemon & Panel) Conventions

- **Scope**
- Applies to backend code in `daemon/src/**/*.ts` and `panel/src/app/**/*.ts`.

### 4.1 Directory / Layering

- Folder names under `daemon/src/*` and `panel/src/app/*` express layers:
- routes, middleware, services, instances, etc.
- When adding backend logic, place it in the appropriate layer and keep responsibilities clear.

### 4.2 Logging & Exceptions

- Use the project **logger** (not raw `console.*`).
- Use severity (`info`, `error`, etc.) according to context.
- For external resources (files, network, containers, shell):
- Validate inputs and boundaries before acting.
- On failure, log relevant context and then either:
- Rethrow, or
- Return a clear, typed result that the caller can handle.
- Do **not** silently swallow exceptions.

### 4.3 Security

- For containers and command execution:
- Strictly parse and validate configuration (length, format, allowed values).
- Never pass unvalidated input into shell command arguments or container config fields.
- When reading files or running commands with arguments from the frontend:
- Validate paths, IDs, and other inputs for security risks.

### 4.4 Memory & Resource Management

- When introducing new long-lived structures (e.g. `Map`, queues, buffers, arrays, streams):
- Ensure there is corresponding cleanup / release logic.
- Avoid unbounded growth (e.g. clear maps, trim logs, close streams).

## 5. Frontend (Vue 3) Conventions

- **Scope**
- Applies to Vue components under `frontend/src/**/*.vue`.

### 5.1 Components & Scripts

- Use **Vue 3** with `<script setup lang="ts">`.
- Prefer `const` and explicit TypeScript types to clarify intent.
- Keep component logic small and focused:
- Extract complex logic into dedicated **hooks** (composables) grouped by responsibility for reuse.

### 5.2 Templates & Structure

- Keep templates as simple and readable as possible.
- If the template becomes large or complex:
- Extract parts into smaller reusable components.

### 5.3 Data Flow

- Follow Vue’s recommended one-way data flow:
- Pass data via **props**.
- Emit events upward instead of mutating parent state directly.

## 6. How AI Assistants Should Behave in This Repo

- Respect all rules above when proposing or editing code.
- Use the appropriate i18n helper instead of hardcoding user-visible text.
- Prefer minimal, focused diffs and reuse existing utilities / services when possible.
- Keep code and comments in English even if conversation language is different.

6 changes: 3 additions & 3 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ if (!checkName) {
const errorMsg = $t("TXT_CODE_MY_ERROR"); // Correct approach
}

// Usage with parameters
// Usage with parameters, only Web backend, Daemon Backend.
const errorMsgWithParams = $t("TXT_CODE_INSTANCE_ERROR", {
uuid: instance.instanceUuid,
err: err
Expand All @@ -98,9 +98,9 @@ languages/en_US.json

```json
{
// All translation text Keys must be unique, so please use a longer name if possible!
// All translation text Keys must be unique, so please use a longer name if possible! frontend only.
"TXT_CODE_MY_ERROR": "Hello,这是一个错误!",
// If parameters are needed, use double curly braces
// If parameters are needed, use double curly braces. only Web backend, Daemon Backend.
"TXT_CODE_INSTANCE_ERROR": "Exception instance {{uuid}}: {{err}}"
}
```
Expand Down
2 changes: 1 addition & 1 deletion DEVELOPMENT_ZH.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ languages/en_US.json
{
// 所有的翻译文案 Key,不可有重复,所以请可能的取一个较长的名字!
"TXT_CODE_MY_ERROR": "Hello,这是一个错误!",
// 如果需要携带参数,使用两个花括号
// 如果需要携带参数,Web 后端、Daemon 后端则使用两个花括号
"TXT_CODE_INSTANCE_ERROR": "Exception instance {{uuid}}: {{err}}"
}
```
Expand Down
42 changes: 24 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div align="center">
<a href="https://mcsmanager.com/" target="_blank">
<img src="https://public-link.oss-cn-shenzhen.aliyuncs.com/mcsm_picture/logo.png" alt="MCSManagerLogo.png" width="510px" />
<img src="./frontend/src/assets/logo.png" alt="MCSManagerLogo.png" width="510px" />
</a>

<br />
Expand Down Expand Up @@ -203,9 +203,11 @@ services:
ports:
- "23333:23333"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- <CHANGE_ME_TO_INSTALL_PATH>/web/data:/opt/mcsmanager/web/data
- <CHANGE_ME_TO_INSTALL_PATH>/web/logs:/opt/mcsmanager/web/logs
- <CHANGE_ME_TO_INSTALL_PATH>/web/public/upload_files:/opt/mcsmanager/web/public/upload_files

daemon:
image: githubyumao/mcsmanager-daemon:latest
Expand All @@ -225,11 +227,11 @@ services:
Note (Rootless Docker on Linux): the daemon supports `DOCKER_HOST`. If your Docker daemon runs in rootless mode, the socket is usually at `/run/user/<uid>/docker.sock` instead of `/var/run/docker.sock`. In that case, replace the default socket mount with the rootless socket and set `DOCKER_HOST`, for example:

```yml
daemon:
environment:
- DOCKER_HOST=unix:///run/user/1000/docker.sock
volumes:
- /run/user/1000/docker.sock:/run/user/1000/docker.sock
daemon:
environment:
- DOCKER_HOST=unix:///run/user/1000/docker.sock
volumes:
- /run/user/1000/docker.sock:/run/user/1000/docker.sock
```

Replace `1000` with your actual UID (`id -u`).
Expand Down Expand Up @@ -257,6 +259,22 @@ Before contributing code to this project, please make sure to review the followi
- Please maintain the existing code structure and formatting, **do not apply unnecessary or excessive formatting changes.**
- All submitted code **must follow internationalization (i18n) standards**.

### Bug Reports

We welcome all bug reports and feedback. Your contributions help us improve the project.

If you encounter any issues, please report them via the [GitHub Issues](https://github.com/MCSManager/MCSManager/issues) page, and we’ll address them as soon as possible.

For serious **security vulnerabilities** that should not be disclosed publicly, please contact us directly at: **support@mcsmanager.com**

Once resolved, we will credit the discoverer in the relevant code or release notes.

### Acknowledgements

Thanks to the following developers for making important contributions to the security testing of MCSManager!

> [@Cuo256](https://github.com/Cuo256), [@xiaosu](https://github.com/xiaosuawa), [@tianjiefeifei](https://github.com/tianjiefeifei), [9Bakabaka](https://github.com/9Bakabaka)

<br />

## Development
Expand Down Expand Up @@ -308,18 +326,6 @@ MCSManager supports all major modern browsers, including:

<br />

## Bug Reports

We welcome all bug reports and feedback. Your contributions help us improve the project.

If you encounter any issues, please report them via the [GitHub Issues](https://github.com/MCSManager/MCSManager/issues) page, and we’ll address them as soon as possible.

For serious **security vulnerabilities** that should not be disclosed publicly, please contact us directly at: **support@mcsmanager.com**

Once resolved, we will credit the discoverer in the relevant code or release notes.

<br />

## Contributors

<a href="https://openomy.com/MCSManager/MCSManager" target="_blank" style="display: block; width: 100%;" align="center">
Expand Down
4 changes: 3 additions & 1 deletion README_DE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div align="center">
<a href="https://mcsmanager.com/" target="_blank">
<img src="https://public-link.oss-cn-shenzhen.aliyuncs.com/mcsm_picture/logo.png" alt="MCSManagerLogo.png" width="510px" />
<img src="./frontend/src/assets/logo.png" alt="MCSManagerLogo.png" width="510px" />
</a>

<br />
Expand Down Expand Up @@ -195,9 +195,11 @@ services:
ports:
- "23333:23333"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- <CHANGE_ME_TO_INSTALL_PATH>/web/data:/opt/mcsmanager/web/data
- <CHANGE_ME_TO_INSTALL_PATH>/web/logs:/opt/mcsmanager/web/logs
- <CHANGE_ME_TO_INSTALL_PATH>/web/public/upload_files:/opt/mcsmanager/web/public/upload_files

daemon:
image: githubyumao/mcsmanager-daemon:latest
Expand Down
4 changes: 3 additions & 1 deletion README_ES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div align="center">
<a href="https://mcsmanager.com/" target="_blank">
<img src="https://public-link.oss-cn-shenzhen.aliyuncs.com/mcsm_picture/logo.png" alt="MCSManagerLogo.png" width="510px" />
<img src="./frontend/src/assets/logo.png" alt="MCSManagerLogo.png" width="510px" />
</a>

<br />
Expand Down Expand Up @@ -195,9 +195,11 @@ services:
ports:
- "23333:23333"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- <CHANGE_ME_TO_INSTALL_PATH>/web/data:/opt/mcsmanager/web/data
- <CHANGE_ME_TO_INSTALL_PATH>/web/logs:/opt/mcsmanager/web/logs
- <CHANGE_ME_TO_INSTALL_PATH>/web/public/upload_files:/opt/mcsmanager/web/public/upload_files

daemon:
image: githubyumao/mcsmanager-daemon:latest
Expand Down
4 changes: 3 additions & 1 deletion README_FR.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div align="center">
<a href="https://mcsmanager.com/" target="_blank">
<img src="https://public-link.oss-cn-shenzhen.aliyuncs.com/mcsm_picture/logo.png" alt="MCSManagerLogo.png" width="510px" />
<img src="./frontend/src/assets/logo.png" alt="MCSManagerLogo.png" width="510px" />
</a>

<br />
Expand Down Expand Up @@ -195,9 +195,11 @@ services:
ports:
- "23333:23333"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- <CHANGE_ME_TO_INSTALL_PATH>/web/data:/opt/mcsmanager/web/data
- <CHANGE_ME_TO_INSTALL_PATH>/web/logs:/opt/mcsmanager/web/logs
- <CHANGE_ME_TO_INSTALL_PATH>/web/public/upload_files:/opt/mcsmanager/web/public/upload_files

daemon:
image: githubyumao/mcsmanager-daemon:latest
Expand Down
Loading
Loading