Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
4153245
fix(drivers): free space underflow if used larger than total space (#…
NewbieOrange Oct 3, 2025
eb2ff2d
fix(189pc/189tv): `request` panic when login failed (#1428)
KirCute Oct 5, 2025
6664551
fix(ilanzou): wrong total capacity (#1433)
KirCute Oct 6, 2025
4ba7696
feat(pikpak): support disk usage (#1426)
KirCute Oct 6, 2025
2bfbad2
feat(offline_download): add 123 open (#1427)
KirCute Oct 6, 2025
8923501
feat(http3|quic): add http3|quic support (#1466)
jyxjjj Oct 14, 2025
670e0bd
chore(frontend): optimize user operations (#1449)
KirCute Oct 14, 2025
fb5094f
feat(drivers): add halalcloud_open driver (#1430)
zzzhr1990 Oct 14, 2025
cdc069d
feat(http3|quic): Set Alt-Svc header only for HTTPS requests (#1469)
jyxjjj Oct 14, 2025
14d2b82
feat(local): move deleted files to corresponding locations (#1281)
tursom Oct 17, 2025
549e601
fix(fs):fix retry task after restart (#1467)
Oct 18, 2025
febbcd6
feat(cache): improve cache management (#1339)
ILoveScratch2 Oct 18, 2025
a109152
feat(onedrive): add ref support (#1435)
jerrita Oct 18, 2025
ae2d2d1
feat(drivers): add ProtonDrive driver (#1368)
Da3zKi7 Oct 19, 2025
623a120
feat(openlist): add PassIPToUpsteam to driver (#1498)
xrgzs Oct 19, 2025
15f2765
fix(share): remove share when user delete (#1493)
ILoveScratch2 Oct 19, 2025
a0fcfa3
fix(aliyundrive_open): use safe disk usage calculation (#1510)
NewbieOrange Oct 20, 2025
525f26d
feat(command): add --config flag to set custom config path (#1479)
jyxjjj Oct 22, 2025
8f18e34
fix(alias): nil panic in `ResolveLinkCacheMode` (#1527)
varg1714 Oct 23, 2025
db8a7e8
feat(123): allow modification of the platform header (#1542)
moyanj Nov 3, 2025
66d9809
feat(strm): strm local file (#1127)
sevxn007 Nov 3, 2025
0857478
feat(thunder): allow setting space (#1219)
ex-hentai Nov 3, 2025
d88f0e8
feat(net): support proxy configuration via config file (#1359)
Nov 4, 2025
9d09ee1
fix(google_driver): fix google link file display size (#1335)
Nov 4, 2025
9f4e439
chore(strm): Built-in file types support modification (#1483)
sevxn007 Nov 4, 2025
2844797
fix(baidu_netdisk): support resuming uploads when an error occurs (#1…
Nov 4, 2025
6de15b6
feat(stream): enhance GetRangeReaderFromLink rate limiting (#1528)
j2rong4cn Nov 4, 2025
b9f058f
fix(backup-restore): add shares (#1500)
KirCute Nov 5, 2025
174eae8
perf(stream): optimize CacheFullAndWriter for better memory managemen…
j2rong4cn Nov 5, 2025
9e852ba
fix(baidu_netdisk): improve upload experience (#1562)
hcrgm Nov 5, 2025
c7574b5
feat(github_release): support Source code (zip/tar.gz) (#1581)
KirCute Nov 5, 2025
affc499
fix(189): disk-usage unmarshal failed when used capacity overflow (#1…
KirCute Nov 5, 2025
a1f1f98
refactor(stream): simplify code (#1590)
j2rong4cn Nov 6, 2025
25f38df
fix(strm): non-specified type generates strm (#1585)
sevxn007 Nov 6, 2025
39dcf9b
feat(onedrive): support frontend direct upload (#1532)
Y-ASLant Nov 6, 2025
f2e0fe8
refactor(fs): implement immediate retry within task execution cycle (…
Nov 7, 2025
7d78944
fix(baidu_netdisk): Fix Baidu Netdisk resume uploads sticking to the …
Nov 9, 2025
14bf67f
Initial plan
Copilot Nov 9, 2025
61bc42f
Initial plan for qihoo360 driver implementation
Copilot Nov 9, 2025
9dc6db3
Implement qihoo360 driver with basic file operations
Copilot Nov 9, 2025
3f9c439
Remove OpenList binary from repository
Copilot Nov 9, 2025
8162db3
Fix security issue: remove sensitive data from debug logs
Copilot Nov 9, 2025
e31aa5d
Clean up: remove binary and update gitignore
Copilot Nov 9, 2025
fc90ec1
fix(terabox): wrong return code used (#1547)
yuyamionini Nov 10, 2025
ee2c77a
fix(archive/zip): user specific encoding for non-EFS zips (#1599)
KirCute Nov 10, 2025
8f4f7d1
feat(doubao): Add rate limiting (#1618)
varg1714 Nov 11, 2025
8544151
chore(issue templates): require logs (#1626)
jyxjjj Nov 12, 2025
9cd8fd6
Fix infinite loop in authentication flow
Copilot Nov 12, 2025
055696f
feat(s3): support frontend direct upload (#1631)
KirCute Nov 13, 2025
0866b90
fix(link): correct link cache mode bitwise comparison (#1635)
xrgzs Nov 13, 2025
9de7561
feat(upload): add optional system file filtering for uploads (#1634)
Copilot Nov 14, 2025
c0d4803
fix(driver/123): initialize Platform field (#1644)
moyanj Nov 14, 2025
3e37f57
fix(openlist_driver): ensure UA is correctly propagated (#1679)
sevxn007 Nov 21, 2025
72e2ae1
feat(fs): support manually trigger objs update hook (#1620)
KirCute Nov 21, 2025
3989d35
fix(misskey): folderId format validation and root directory handling …
vxtls Nov 21, 2025
4c0916b
fix(strm): fix the name and type issue (#1630)
varg1714 Nov 24, 2025
42fc841
feat(strm): custom path prefixes (#1697)
sevxn007 Nov 24, 2025
addce8b
feat(baidu_netdisk): Add shard upload timeout setting (#1682)
Nov 24, 2025
ca401b9
fix(local): assign non-CoW copy requests to the task module (#1669)
KirCute Nov 24, 2025
b22e211
feat(fs): Add skipExisting option to move and copy, merge option to c…
varg1714 Nov 24, 2025
60a489e
feat(archive): support non-overwrite decompress (#1701)
KirCute Nov 25, 2025
316d4ca
feat(search): Add task queue for Meilisearch to prevent race conditio…
ImoutoHeaven Nov 25, 2025
aa22884
fix(search): fix duplicated variable init (#1703)
jyxjjj Nov 25, 2025
1a445f9
chore(archive): fix struct literal uses unkeyed fields (#1704)
jyxjjj Nov 25, 2025
7189c5b
chore(pkg/aria2): simplify context cancellation handling in RPC calls…
jyxjjj Nov 25, 2025
62dedb2
fix(pkg/aria2): use pointer receivers for Call methods (#1706)
jyxjjj Nov 25, 2025
72206ac
feat(strm): keep local download file (#1707)
sevxn007 Nov 25, 2025
ede96a3
fix(onedrive_shareurl): Reduce temporary file errors (#1686)
Nov 25, 2025
1f373ea
chore(strm): avoid generating empty folders (#1720)
sevxn007 Nov 27, 2025
9835afc
refactor: improve upload handling (#1455)
j2rong4cn Nov 27, 2025
c5f57bb
fix(drivers/crypt): remove hard dependency on RemotePath (#1713)
jyxjjj Nov 27, 2025
e29d92f
fix(mediafire): enable automatic session token acquisition and fix gz…
vxtls Dec 2, 2025
96cd714
refactor(op): remove automatic Path assignment (#1734)
j2rong4cn Dec 2, 2025
5480d61
refactor!(userAgent): merge most userAgent into base (#1722)
jyxjjj Dec 4, 2025
7d6d3b8
feat(fs): Support customizing the cache time for a specific path (#1533)
varg1714 Dec 4, 2025
9ed77a5
feat(driver): add AList v3 (#1721)
KirCute Dec 8, 2025
94c7d68
feat(utils): add support for ignoring '@eaDir' system files (#1779)
xrgzs Dec 10, 2025
e1bba70
fix(task): tasks keep being cancelled (#1745)
Dec 10, 2025
d31e1a3
feat(model): add object mask support and enhance cache/task handling …
j2rong4cn Dec 11, 2025
1fc9c83
fix(ilanzou): parse vip size (#1792)
KirCute Dec 12, 2025
2dbe1b0
fix(halalcloud_open): halal-cloud upload issues (#1800)
zzzhr1990 Dec 15, 2025
b2596fd
refactor(bootstrap): move booting logic to bootstrap package (#1773)
KirCute Dec 15, 2025
0a407c3
fix(openlist): disable status check for openlist driver (#1757)
xrgzs Dec 15, 2025
2a99c97
feat(ldap): support webdav, ftp and sftp login (#1746)
KirCute Dec 15, 2025
b454275
feat(drivers/139): user authentication and file batch operations (#1534)
UcnacDx2 Dec 15, 2025
c4c121b
fix(139): disk-usage unmarshal failed when used capacity overflow (#1…
wongz Dec 15, 2025
5db2172
feat(driver): add personal / business wps drive support (#1802)
x-spy Dec 15, 2025
f86c7c8
feat(cloudreve_v4): add ks3 support (#1828)
xrgzs Dec 19, 2025
ff3c4b8
fix(strm): support generate strm with sign (#1832)
KirCute Dec 20, 2025
f47df5f
feat(115_open): support custom pagesize (#1822)
hshpy Dec 20, 2025
216f071
docs: add VPS.Town as sponsor to all README (#1842)
XZB-1248 Dec 21, 2025
d6dd62d
fix(s3): incorrect copy key with plus sign (#1820)
TwoOnefour Dec 21, 2025
a32ae97
docs: update README for zh-CN (#1844)
XZB-1248 Dec 21, 2025
cc5172e
fix(weiyun): update sdk and support getDetails (#1845)
foxxorcat Dec 21, 2025
8a4f376
feat(strm): add save local mode (#1814)
sevxn007 Dec 22, 2025
0e8b1b9
Merge branch 'OpenListTeam:main' into upstream
Wodlie Dec 22, 2025
4680ece
docs(readme): add demo site (#1850)
Yizelove Dec 22, 2025
6e2d499
refactor(bootstrap): fix OpenList-Mobile compile failed (#1857)
KirCute Dec 24, 2025
9aebe5c
Merge branch 'main' into upstream
Wodlie Dec 26, 2025
a0aa344
Merge pull request #12 from Wodlie/upstream
Wodlie Dec 26, 2025
7398e7d
feat(alias): support load balance (#1767)
KirCute Dec 29, 2025
c261ce7
fix(s3): use current time as default modified time (#1860)
dezhishen Dec 29, 2025
0612271
fix(driver): fix file copy failure to 123pan due to incorrect etag (#…
Ironboxplus Dec 29, 2025
2442e30
ci(lang): sync only new fields (#1881)
KirCute Dec 30, 2025
5fe2670
fix(123_open): infinite recursive call (#1854)
WangEdward Dec 30, 2025
9228fbe
feat(qihoo360): fix bugs made by copliot
Wodlie Jan 1, 2026
8742344
fix(doubao_share): use new download info (#1890)
xrgzs Jan 1, 2026
2881ae4
feat(qihoo360): implement file upload functionality and enhance reque…
Wodlie Jan 2, 2026
3478755
fix(qihoo360): update user-agent
Wodlie Jan 3, 2026
4a474c6
feat(qihoo360): add User-Agent header for Sync.getVerifiedDownLoadUrl…
Wodlie Jan 3, 2026
1f9a7e3
feat(drivers/mega): support getting disk usage (#1903)
KirCute Jan 4, 2026
4e5d32d
feat(qihoo360): implement GetDetails and user detail retrieval functions
Wodlie Jan 4, 2026
747993e
feat(drivers/mega): support permanently deleting files (#1913)
KirCute Jan 4, 2026
642acf8
feat(123pan): add offline download (#1911)
mcxiedidi Jan 4, 2026
1d484d1
feat(qihoo360): enhance GetDetails function and update UserDetailResp…
Wodlie Jan 5, 2026
7088fa1
chore(strm): remove redundant param (#1929)
sevxn007 Jan 7, 2026
744dbd5
feat(drivers): support getting disk usage of some drivers (#1905)
KirCute Jan 8, 2026
0d99e16
fix(cloudreve): Manually set path to avoid empty path (#1933)
TwoOnefour Jan 8, 2026
e192149
fix(drivers/alist_v3): failed to unmarshal MeResp (#1931)
KirCute Jan 8, 2026
c6bd437
feat(drivers/webdav): add support for 302 redirects (#1952)
xrgzs Jan 11, 2026
85c69d8
fix(fs): panic when failed to get storage details (#1964)
KirCute Jan 13, 2026
e6db0bd
chore(.github): update issue templates [no ci] (#1976)
ljcbaby Jan 16, 2026
b553dc3
fix(drivers/ftp): failed to get objs (#1948)
KirCute Jan 16, 2026
5c82f55
feat(drivers/cloudreve_v4): implement Getter interface (#1937)
xrgzs Jan 16, 2026
378e37b
fix(drivers/github): failed to get objs (#1915)
KirCute Jan 16, 2026
ea4b5e3
fix(drivers/strm): delete extra local directories in sync mode (#1980)
sevxn007 Jan 16, 2026
27fdd03
fix(ci): change unchecked regex (#1993)
KirCute Jan 17, 2026
f057846
feat(drivers): add autoindex driver (#1978)
KirCute Jan 17, 2026
a79d834
fix(fs): handle non-existent destination directory in file transfer (…
Ironboxplus Jan 17, 2026
fca993a
feat(drivers/cloudreve): implement GetDetails (#1960)
xrgzs Jan 19, 2026
02aec71
fix(driver/quark_uc): Fix display of non-compliant filenames (#2000)
Cp0204 Jan 20, 2026
d8417e0
fix(webdav/move): fix source file still exist after moving file by we…
mkitsdts Jan 21, 2026
031b719
perf(baidu_netdisk): reduce the number of file listing requests (#2016)
hcrgm Jan 25, 2026
a2573fb
fix(drivers/seafile): object not found when RootFolderPath != "/" (#2…
Khoray Jan 25, 2026
f0e53d1
fix(drivers/alias): default sort & substitute link (#1917)
KirCute Jan 26, 2026
29fcf59
fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response …
xrgzs Jan 28, 2026
27732cc
fix(drivers/quark): apply html escaping in quark (#2046)
mkitsdts Jan 29, 2026
d685bbf
fix(api/remove): add validation for empty items in delete file list (…
datao2001 Jan 29, 2026
559fe85
Merge branch 'OpenListTeam:main' into main
Wodlie Jan 31, 2026
7b78fed
Merge commit from fork
jyxjjj Jan 31, 2026
e3c664f
Merge commit from fork
jyxjjj Jan 31, 2026
f542187
fix(drivers/teldrive): enhance file listing and upload functionality …
totza2010 Feb 1, 2026
5d9fc83
fix(115_share): adjust 115 share driver for official API update (#2068)
SheltonZhu Feb 2, 2026
6861cb4
chore(ci): add breaking change guideline to PR title check (#2087)
xrgzs Feb 6, 2026
08ffd0b
Merge branch 'OpenListTeam:main' into main
Wodlie Feb 7, 2026
a121f86
feat(drivers/123open): support sha1 reuse api (#2089)
gdm257 Feb 8, 2026
8431c1b
fix(deps): update go4.org digest to a507140 (#2095)
renovate[bot] Feb 8, 2026
a8d1c0d
fix(‎drivers/quark_uc_tv) : Update error code judgment (#2080)
Feb 8, 2026
0673a74
chore(typo): fix typo in UpdateFileReq field name (#2133)
LXY1226 Feb 16, 2026
e0ee737
fix(driver/wps): fetch all files via multiple API invocations (#2139)
mkitsdts Feb 19, 2026
db0e2ec
feat(security): add SECURITY.md (#2147)
xrgzs Feb 19, 2026
82ae2d5
chore(handles/auth): improve error response (#2148)
xrgzs Feb 19, 2026
795a18b
feat(drivers/thunder*): implement GetDetails (#2113)
xrgzs Feb 21, 2026
7f7d28a
Merge branch 'OpenListTeam:main' into main
Wodlie Feb 22, 2026
3494b7b
Merge pull request #13 from Wodlie/main
Wodlie Feb 22, 2026
3fc1053
Fix critical auth bug: treat access_token_expire as absolute timestamp
Copilot Feb 27, 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
  •  
  •  
  •  
18 changes: 11 additions & 7 deletions .github/ISSUE_TEMPLATE/00-bug_report_zh.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ body:
attributes:
label: 请确认以下事项
description: |
您必须勾选以下内容,否则您的问题可能会被直接关闭
您必须阅读并检查以下内容,否则您的问题一定会被直接关闭
或者您可以去[讨论区](https://github.com/OpenListTeam/OpenList/discussions)。
options:
- label: |
Expand All @@ -34,6 +34,8 @@ body:
我认为此问题必须由`OpenList`处理,而非第三方。
- label: |
我已确认这个问题在最新版本中没有被修复。
- label: |
我没有阅读这个清单,只是闭眼选中了所有的复选框,请关闭这个 Issue

- type: input
id: version
Expand All @@ -60,19 +62,21 @@ body:
validations:
required: true
- type: textarea
id: config
id: logs
attributes:
label: 配置文件内容(必填)
label: 日志(必填)
description: |
请提供您的`OpenList`应用的配置文件,并截图相关存储配置。(可隐藏隐私字段)
请复制粘贴错误日志,或者截图。(可隐藏隐私字段) [查看方法](https://doc.oplist.org/faq/howto#%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%AE%9A%E4%BD%8Dbug)
validations:
required: true
- type: textarea
id: logs
id: config
attributes:
label: 日志(可选
label: 配置文件内容(必填
description: |
请复制粘贴错误日志,或者截图。(可隐藏隐私字段) [查看方法](https://doc.oplist.org/faq/howto#%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%AE%9A%E4%BD%8Dbug)
请提供您的`OpenList`应用的配置文件,并截图相关存储配置。(可隐藏隐私字段)
validations:
required: true
- type: textarea
id: reproduction
attributes:
Expand Down
18 changes: 11 additions & 7 deletions .github/ISSUE_TEMPLATE/01-bug_report_en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ body:
attributes:
label: Please confirm the following
description: |
You must check all the following, otherwise your issue may be closed directly.
You must read and check all the following, otherwise your issue will definitely be closed directly.
Or you can go to the [discussions](https://github.com/OpenListTeam/OpenList/discussions).
options:
- label: |
Expand All @@ -34,6 +34,8 @@ body:
I believe this issue must be handled by `OpenList` and not by a third party.
- label: |
I confirm this issue is not fixed in the latest version.
- label: |
I have not read these checkboxes and therefore I just ticked them all, Please close this issue

- type: input
id: version
Expand All @@ -60,19 +62,21 @@ body:
validations:
required: true
- type: textarea
id: config
id: logs
attributes:
label: Configuration File Content (required)
label: Logs (required)
description: |
Please provide your `OpenList` application's configuration file and a screenshot of the relevant storage configuration. (You may mask sensitive fields)
Please copy and paste any relevant log output or screenshots. (You may mask sensitive fields) [Guide](https://doc.oplist.org/faq/howto#how-to-quickly-locate-bugs)
validations:
required: true
- type: textarea
id: logs
id: config
attributes:
label: Logs (optional)
label: Configuration File Content (required)
description: |
Please copy and paste any relevant log output or screenshots. (You may mask sensitive fields) [Guide](https://doc.oplist.org/faq/howto#how-to-quickly-locate-bugs)
Please provide your `OpenList` application's configuration file and a screenshot of the relevant storage configuration. (You may mask sensitive fields)
validations:
required: true
- type: textarea
id: reproduction
attributes:
Expand Down
2 changes: 2 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
Provide a general summary of your changes in the Title above.
The PR title must start with `feat(): `, `docs(): `, `fix(): `, `style(): `, or `refactor(): `, `chore(): `. For example: `feat(component): add new feature`.
If it spans multiple components, use the main component as the prefix and enumerate in the title, describe in the body.
For breaking changes, add `!` after the type, e.g., `feat(component)!: breaking change`.
-->
<!--
在上方标题中提供您更改的总体摘要。
PR 标题需以 `feat(): `, `docs(): `, `fix(): `, `style(): `, `refactor(): `, `chore(): ` 其中之一开头,例如:`feat(component): 新增功能`。
如果跨多个组件,请使用主要组件作为前缀,并在标题中枚举、描述中说明。
如果是破坏性变更,请在类型后添加 `!`,例如 `feat(component)!: 破坏性变更`。
-->

## Description / 描述
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/issue_pr_comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
with:
script: |
const issueBody = context.payload.issue.body || "";
const unchecked = /- \[ \] /.test(issueBody);
const unchecked = /- \[ \] (?!我没有阅读这个清单|I have not read these checkboxes)/.test(issueBody);
let comment = "感谢您联系OpenList。我们会尽快回复您。\n";
comment += "Thanks for contacting OpenList. We will reply to you as soon as possible.\n\n";
if (unchecked) {
Expand All @@ -47,12 +47,14 @@ jobs:
with:
script: |
const title = context.payload.pull_request.title || "";
const ok = /^(feat|docs|fix|style|refactor|chore)\(.+?\): /i.test(title);
const ok = /^(feat|docs|fix|style|refactor|chore)\(.+?\)!?: /i.test(title);
if (!ok) {
let comment = "⚠️ PR 标题需以 `feat(): `, `docs(): `, `fix(): `, `style(): `, `refactor(): `, `chore(): ` 其中之一开头,例如:`feat(component): 新增功能`。\n";
comment += "⚠️ The PR title must start with `feat(): `, `docs(): `, `fix(): `, `style(): `, or `refactor(): `, `chore(): `. For example: `feat(component): add new feature`.\n\n";
comment += "如果跨多个组件,请使用主要组件作为前缀,并在标题中枚举、描述中说明。\n";
comment += "If it spans multiple components, use the main component as the prefix and enumerate in the title, describe in the body.\n\n";
comment += "如果是破坏性变更,请在类型后添加 `!`,例如 `feat(component)!: 破坏性变更`。\n";
comment += "For breaking changes, add `!` after the type, e.g., `feat(component)!: breaking change`.\n\n";
await github.rest.issues.createComment({
...context.repo,
issue_number: context.issue.number,
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ output/
/public/dist/*
/!public/dist/README.md

.VSCodeCounter
.VSCodeCounter/OpenList
/OpenList
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,9 @@ Thank you for your support and understanding of the OpenList project.
- [x] [UPYUN Storage Service](https://www.upyun.com/products/file-storage)
- [x] [WebDAV](https://en.wikipedia.org/wiki/WebDAV)
- [x] Teambition([China](https://www.teambition.com), [International](https://us.teambition.com))
- [x] [Mediatrack](https://www.mediatrack.cn)
- [x] [MediaFire](https://www.mediafire.com)
- [x] [Mediatrack](https://www.mediatrack.cn)
- [x] [ProtonDrive](https://proton.me/drive)
- [x] [139yun](https://yun.139.com) (Personal, Family, Group)
- [x] [YandexDisk](https://disk.yandex.com)
- [x] [BaiduNetdisk](http://pan.baidu.com)
Expand Down Expand Up @@ -121,12 +122,17 @@ Thank you for your support and understanding of the OpenList project.

## Demo

N/A (to be rebuilt)
- 🌎 [Global Demo](https://demo.oplist.org)
- 🇨🇳 [CN Demo](https://demo.oplist.org.cn)

## Discussion

Please refer to [*Discussions*](https://github.com/OpenListTeam/OpenList/discussions) for raising general questions, ***Issues* is for bug reports and feature requests only.**

## Sponsor

[![VPS.Town](https://vps.town/static/images/sponsor.png)](https://vps.town "VPS.Town - Trust, Effortlessly. Your Cloud, Reimagined.")

## License

The `OpenList` is open-source software licensed under the [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.txt) license.
Expand Down
10 changes: 8 additions & 2 deletions README_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,9 @@ OpenList 是一个由 OpenList 团队独立维护的开源项目,遵循 AGPL-3
- [x] [又拍云对象存储](https://www.upyun.com/products/file-storage)
- [x] [WebDAV](https://en.wikipedia.org/wiki/WebDAV)
- [x] Teambition([中国](https://www.teambition.com), [国际](https://us.teambition.com))
- [x] [分秒帧](https://www.mediatrack.cn)
- [x] [MediaFire](https://www.mediafire.com)
- [x] [分秒帧](https://www.mediatrack.cn)
- [x] [ProtonDrive](https://proton.me/drive)
- [x] [和彩云](https://yun.139.com)(个人、家庭、群组)
- [x] [YandexDisk](https://disk.yandex.com)
- [x] [百度网盘](http://pan.baidu.com)
Expand Down Expand Up @@ -121,12 +122,17 @@ OpenList 是一个由 OpenList 团队独立维护的开源项目,遵循 AGPL-3

## 演示

N/A(待重建)
- 🇨🇳 [国内演示站](https://demo.oplist.org.cn)
- 🌎 [海外演示站](https://demo.oplist.org)

## 讨论

如有一般性问题请前往 [*Discussions*](https://github.com/OpenListTeam/OpenList/discussions) 讨论区,***Issues* 仅用于错误报告和功能请求。**

## 赞助者

[![VPS.Town](https://vps.town/static/images/sponsor.png)](https://vps.town "VPS.Town - Trust, Effortlessly. Your Cloud, Reimagined.")

## 许可证

`OpenList` 是基于 [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.txt) 许可证的开源软件。
Expand Down
8 changes: 7 additions & 1 deletion README_ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ OpenListプロジェクトへのご支援とご理解をありがとうござい
- [x] [WebDAV](https://en.wikipedia.org/wiki/WebDAV)
- [x] Teambition([中国](https://www.teambition.com), [国際](https://us.teambition.com))
- [x] [Mediatrack](https://www.mediatrack.cn)
- [x] [ProtonDrive](https://proton.me/drive)
- [x] [139yun](https://yun.139.com)(個人、家族、グループ)
- [x] [YandexDisk](https://disk.yandex.com)
- [x] [BaiduNetdisk](http://pan.baidu.com)
Expand Down Expand Up @@ -121,12 +122,17 @@ OpenListプロジェクトへのご支援とご理解をありがとうござい

## デモ

N/A(再構築中)
- 🌎 [グローバルデモ](https://demo.oplist.org)
- 🇨🇳 [CNデモ](https://demo.oplist.org.cn)

## ディスカッション

一般的な質問は [*Discussions*](https://github.com/OpenListTeam/OpenList/discussions) をご利用ください。***Issues* はバグ報告と機能リクエスト専用です。**

## スポンサー

[![VPS.Town](https://vps.town/static/images/sponsor.png)](https://vps.town "VPS.Town - Trust, Effortlessly. Your Cloud, Reimagined.")

## ライセンス

「OpenList」は [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.txt) ライセンスの下で公開されているオープンソースソフトウェアです。
Expand Down
8 changes: 7 additions & 1 deletion README_nl.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ Dank u voor uw ondersteuning en begrip
- [x] Teambition([China](https://www.teambition.com), [Internationaal](https://us.teambition.com))
- [x] [MediaFire](https://www.mediafire.com)
- [x] [Mediatrack](https://www.mediatrack.cn)
- [x] [ProtonDrive](https://proton.me/drive)
- [x] [139yun](https://yun.139.com) (Persoonlijk, Familie, Groep)
- [x] [YandexDisk](https://disk.yandex.com)
- [x] [BaiduNetdisk](http://pan.baidu.com)
Expand Down Expand Up @@ -121,12 +122,17 @@ Dank u voor uw ondersteuning en begrip

## Demo

N.v.t. (wordt opnieuw opgebouwd)
- 🌎 [Global Demo](https://demo.oplist.org)
- 🇨🇳 [CN Demo](https://demo.oplist.org.cn)

## Discussie

Stel algemene vragen in [*Discussions*](https://github.com/OpenListTeam/OpenList/discussions), ***Issues* zijn alleen voor bugmeldingen en feature requests.**

## Sponsoren

[![VPS.Town](https://vps.town/static/images/sponsor.png)](https://vps.town "VPS.Town - Trust, Effortlessly. Your Cloud, Reimagined.")

## Licentie

`OpenList` is open-source software onder de [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.txt) licentie.
Expand Down
89 changes: 89 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Security Policy

## Supported Versions

Only the latest stable release receives security patches. We strongly recommend always keeping OpenList up to date.

| Version | Supported |
| -------------------- | ------------------ |
| Latest stable (v4.x) | :white_check_mark: |
| Older versions | :x: |

## Reporting a Vulnerability

**Please do NOT report security vulnerabilities through public GitHub Issues.**

If you discover a security vulnerability in OpenList, please report it responsibly by using one of the following channels:

- **GitHub Private Security Advisory** (preferred): [Submit here](https://github.com/OpenListTeam/OpenList/security/advisories/new)
- **Telegram**: Contact a maintainer privately via [@OpenListTeam](https://t.me/OpenListTeam)

When reporting, please include as much of the following as possible:

- A description of the vulnerability and its potential impact
- The affected version(s)
- Step-by-step instructions to reproduce the issue
- Any proof-of-concept code or screenshots (if applicable)
- Suggested mitigation or fix (optional but appreciated)

## Security Best Practices for Users

To keep your OpenList instance secure:

- Always update to the latest release.
- Use a strong, unique admin password and change it after first login.
- Enable HTTPS (TLS) for your deployment — do **not** expose OpenList over plain HTTP on the public internet.
- Limit exposed ports using a reverse proxy (e.g., Nginx, Caddy).
- Set up access controls and avoid enabling guest access unless necessary.
- Regularly review mounted storage permissions and revoke unused API tokens.
- When using Docker, avoid running the container as root if possible.

## Acknowledgments

We sincerely thank all security researchers and community members who responsibly disclose vulnerabilities and help make OpenList safer for everyone.

---

# 安全政策

## 支持的版本

我们仅对最新稳定版本提供安全补丁。强烈建议始终保持 OpenList 为最新版本。

| 版本 | 是否支持 |
| ------------------ | ------------------ |
| 最新稳定版(v4.x) | :white_check_mark: |
| 旧版本 | :x: |

## 报告漏洞

**请勿通过公开的 GitHub Issues 报告安全漏洞。**

如果您在 OpenList 中发现安全漏洞,请通过以下渠道之一负责任地进行报告:

- **GitHub 私密安全公告**(推荐):[点击提交](https://github.com/OpenListTeam/OpenList/security/advisories/new)
- **Telegram**:通过 [@OpenListTeam](https://t.me/OpenListTeam) 私信联系维护者

报告时,请尽量提供以下信息:

- 漏洞描述及其潜在影响
- 受影响的版本
- 复现问题的详细步骤
- 概念验证代码或截图(如有)
- 建议的缓解措施或修复方案(可选,但非常欢迎)

## 用户安全最佳实践

为保障您的 OpenList 实例安全:

- 始终更新至最新版本。
- 使用强且唯一的管理员密码,并在首次登录后立即修改。
- 为您的部署启用 HTTPS(TLS)—— **请勿**在公网上以明文 HTTP 方式暴露 OpenList。
- 使用反向代理(如 Nginx、Caddy)限制对外暴露的端口。
- 配置访问控制,非必要情况下不要开启访客访问。
- 定期检查已挂载存储的权限,并撤销未使用的 API 令牌。
- 使用 Docker 部署时,尽可能避免以 root 用户运行容器。

## 致谢

我们衷心感谢所有负责任地披露漏洞、帮助 OpenList 变得更加安全的安全研究人员和社区成员。
13 changes: 7 additions & 6 deletions cmd/admin.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ package cmd
import (
"fmt"

"github.com/OpenListTeam/OpenList/v4/internal/bootstrap"
"github.com/OpenListTeam/OpenList/v4/internal/conf"
"github.com/OpenListTeam/OpenList/v4/internal/op"
"github.com/OpenListTeam/OpenList/v4/internal/setting"
Expand All @@ -20,8 +21,8 @@ var AdminCmd = &cobra.Command{
Aliases: []string{"password"},
Short: "Show admin user's info and some operations about admin user's password",
Run: func(cmd *cobra.Command, args []string) {
Init()
defer Release()
bootstrap.Init()
defer bootstrap.Release()
admin, err := op.GetAdmin()
if err != nil {
utils.Log.Errorf("failed get admin user: %+v", err)
Expand Down Expand Up @@ -61,17 +62,17 @@ var ShowTokenCmd = &cobra.Command{
Use: "token",
Short: "Show admin token",
Run: func(cmd *cobra.Command, args []string) {
Init()
defer Release()
bootstrap.Init()
defer bootstrap.Release()
token := setting.GetStr(conf.Token)
utils.Log.Infof("show admin token from CLI")
fmt.Println("Admin token:", token)
},
}

func setAdminPassword(pwd string) {
Init()
defer Release()
bootstrap.Init()
defer bootstrap.Release()
admin, err := op.GetAdmin()
if err != nil {
utils.Log.Errorf("failed get admin user: %+v", err)
Expand Down
Loading