Skip to content
Open

yzget #636

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
937 commits
Select commit Hold shift + click to select a range
1625d32
update v2.5.4
MarSeventh Jan 23, 2026
9dac138
update v2.5.4
MarSeventh Jan 23, 2026
e35b6bf
update v2.5.4
MarSeventh Jan 23, 2026
a784ca4
Feat:美化设置页面保存按钮展示效果
MarSeventh Jan 24, 2026
7554011
Feat:美化设置页面保存按钮展示效果
MarSeventh Jan 24, 2026
4aa3acc
Feat:优化部分页面展示效果
MarSeventh Jan 24, 2026
b6b98fd
Feat:美化设置页面保存按钮展示效果
MarSeventh Jan 24, 2026
5d34052
update v2.5.5
MarSeventh Jan 25, 2026
cdfd983
fix(s3/storage): 恢复因合并异常丢失的S3 CDN代码,导致功能失效的问题
zcwww1996 Jan 27, 2026
0fed5ff
Merge pull request #450 from zcwww1996/dev
MarSeventh Jan 27, 2026
0b68a8a
代码优化
MarSeventh Jan 27, 2026
1b1780f
update readme
MarSeventh Jan 29, 2026
88c6173
update v2.5.6
MarSeventh Jan 29, 2026
58249e7
页面样式美化
MarSeventh Jan 29, 2026
1d26366
页面样式美化
MarSeventh Jan 29, 2026
f1b910a
update readme
MarSeventh Jan 29, 2026
1c6ff4e
美化页面细节
MarSeventh Jan 29, 2026
62357b5
代码优化
MarSeventh Jan 30, 2026
a03766a
update v2.5.7
MarSeventh Jan 30, 2026
013eb7c
尺寸提取功能优化
MarSeventh Jan 30, 2026
f501b91
v2.5.8:代码结构和部分细节优化
MarSeventh Feb 6, 2026
ac1facc
v2.5.9:重组组件目录结构,按页面模块分类;卡片布局支持从空白处框选多选
MarSeventh Feb 7, 2026
f12180e
优化框选使用体验
MarSeventh Feb 7, 2026
12069fc
v2.5.10:支持文件重命名和文件元数据编辑
MarSeventh Feb 7, 2026
1f2ba70
文件详情展示效果优化
MarSeventh Feb 7, 2026
49d484d
v2.5.11:随机图API支持设备自适应;管理端支持列表/卡片偏好记录,列表视图支持框选多选
MarSeventh Feb 9, 2026
9823465
update readme
MarSeventh Feb 15, 2026
a51e08a
Opt:优化添加渠道时的提示信息
MarSeventh Feb 15, 2026
978ed2b
v2.5.12:增加路径穿越防护
MarSeventh Feb 23, 2026
91983dc
hf渠道大文件上传优化
MarSeventh Feb 23, 2026
a67d29e
优化公告设置体验
MarSeventh Feb 23, 2026
8eebf7e
重建索引功能优化,提升安全性
MarSeventh Feb 23, 2026
d1f5c9b
路径穿越检测增强
MarSeventh Feb 23, 2026
2a27ca5
后端文件后缀处理逻辑优化
MarSeventh Feb 23, 2026
f87c36d
路径穿越检测优化
MarSeventh Feb 23, 2026
936220a
上传路径识别优化
MarSeventh Feb 23, 2026
1be23d7
路径安全处理逻辑优化
MarSeventh Feb 24, 2026
206be93
Update chunkUpload.js
XMZO Feb 24, 2026
f0e3677
Merge pull request #480 from XMZO/patch-1
MarSeventh Feb 24, 2026
c02a5bf
Feat:D1存储支持大文件分块上传
MarSeventh Feb 24, 2026
3dffead
Bug:修复依赖漏洞;修复S3分块上传失败的问题
MarSeventh Feb 25, 2026
397b469
Bug:依赖漏洞修复
MarSeventh Feb 26, 2026
b9d41b4
Bug:尝试修复S3 SDK依赖问题
MarSeventh Feb 26, 2026
ad545de
Initial plan
Copilot Feb 27, 2026
29f6405
Add CORS response headers to random API endpoint
Copilot Feb 27, 2026
747cb8c
Merge pull request #483 from MarSeventh/copilot/add-cors-support-to-r…
MarSeventh Feb 28, 2026
50ff6d9
v2.6.1:增加文件夹候选项;部分安全和体验优化
MarSeventh Feb 28, 2026
4955ed1
v2.6.1:增加文件夹候选项;部分安全和体验优化
MarSeventh Feb 28, 2026
cfb6e63
目录树设置和体验优化
MarSeventh Mar 1, 2026
26226c2
目录树设置和体验优化
MarSeventh Mar 1, 2026
ec8b772
目录选择器设置和体验优化
MarSeventh Mar 1, 2026
e47ef6b
目录选择器加载样式优化
MarSeventh Mar 1, 2026
b9af4d5
Bug:偶发的TG渠道分块上传失败问题修复
MarSeventh Mar 1, 2026
4f33e5d
Bug:修复偶发的HF渠道移动文件导致文件丢失的问题
MarSeventh Mar 2, 2026
ebd686b
Initial plan
Copilot Mar 3, 2026
d015942
Refactor Docker deployment: replace wrangler with native Node.js Hono…
Copilot Mar 3, 2026
71f05b7
Restore ci-test script for Cloudflare compatibility, add ci-test:dock…
Copilot Mar 3, 2026
bb7e3ef
Address code review: restore package-lock name, cleanup build tools i…
Copilot Mar 3, 2026
3d33b0f
Fix Docker deployment issues: add request.cf mock, boolean binding in…
Copilot Mar 3, 2026
614f8e8
Fix Docker self-referencing fetch: rewrite request URL to use interna…
Copilot Mar 3, 2026
99322b5
Move port declaration to top of module for clarity
Copilot Mar 3, 2026
81661a3
Replace URL rewrite with fetch interceptor to fix url.origin-based lo…
Copilot Mar 3, 2026
7e41737
Fix missing returnBlockImg import in file handler
Copilot Mar 3, 2026
c7b351b
Add data/ to .dockerignore to prevent local data leaking into Docker …
Copilot Mar 3, 2026
67dca76
Add error logging in fetch interceptor catch block
Copilot Mar 3, 2026
0b59cf8
前端优化上传目录选择器体验#30的构建产物
imysen Mar 3, 2026
62a152a
Merge pull request #489 from imysen/patch-1
MarSeventh Mar 4, 2026
f81b444
Merge pull request #488 from MarSeventh/copilot/refactor-docker-deplo…
MarSeventh Mar 4, 2026
626f613
Feat:上传页面目录输入支持实时建议
MarSeventh Mar 4, 2026
0451719
Merge branch 'dev' of github.com:MarSeventh/CloudFlare-ImgBed into dev
MarSeventh Mar 4, 2026
0ec54cb
2.6.2:重构Docker运行架构;新增上传时目录自动建议功能
MarSeventh Mar 4, 2026
e84c7eb
feat(docker): add client IP injection and update .gitignore
MarSeventh Mar 4, 2026
b5673b2
2.6.2:重构Docker运行架构;新增上传时目录自动建议功能
MarSeventh Mar 4, 2026
65d9737
2.6.2:重构Docker运行架构;新增上传时目录自动建议功能
MarSeventh Mar 4, 2026
2db25ba
2.6.2:重构Docker运行架构;新增上传时目录自动建议功能
MarSeventh Mar 4, 2026
50d883b
2.6.2:重构Docker运行架构;新增上传时目录自动建议功能
MarSeventh Mar 4, 2026
d863830
优化建议下拉框显示效果
MarSeventh Mar 4, 2026
e39cef1
优化建议下拉框显示效果
MarSeventh Mar 4, 2026
979cdde
优化建议下拉框显示效果
MarSeventh Mar 4, 2026
064982d
优化建议下拉框显示效果
MarSeventh Mar 4, 2026
78f1d16
优化自动建议下拉框显示效果
MarSeventh Mar 4, 2026
f4d904b
优化自动建议下拉框显示效果
MarSeventh Mar 4, 2026
1674749
优化上传页面自动建议下拉框显示效果
MarSeventh Mar 4, 2026
fc9eab6
提升索引重建在不同网络环境下的鲁棒性
MarSeventh Mar 5, 2026
3c31520
Bug:修复HF渠道上传较大文本文件栈溢出的错误
MarSeventh Mar 8, 2026
9441468
feat: 添加 API Token 过期时间后端支持
MarSeventh Mar 10, 2026
1cdeee0
v2.6.3:token支持设置过期时间和自动删除
MarSeventh Mar 10, 2026
3d44022
Feat:细化Token权限,支持设置管理权限
MarSeventh Mar 10, 2026
14dc0c5
update readme
MarSeventh Mar 18, 2026
7c0875b
feat: add i18n English labels for page config API
MarSeventh Mar 28, 2026
b3c1511
docs: swap README - English as default, Chinese as README_zh.md
MarSeventh Mar 28, 2026
52a7111
v2.6.4: Add i18n support
MarSeventh Mar 28, 2026
7809d9f
Fix:something missed in upload page
MarSeventh Mar 28, 2026
55cdf01
Opt:optimize language toggle visuals;improve background transition sm…
MarSeventh Mar 28, 2026
13c611c
opt:add smooth transition for the sidebar in sysconfig page
MarSeventh Apr 2, 2026
5e48fde
feat: session-based auth with password hashing
MarSeventh Apr 17, 2026
05b7d21
fix: use ?? for config fallback, add clear password support and auth-…
MarSeventh Apr 17, 2026
43e662e
feat: add /api/resetAuth endpoint for password recovery
MarSeventh Apr 17, 2026
cb8f0fd
refactor: move auth endpoints to /api/auth/ subdirectory
MarSeventh Apr 17, 2026
178b7ad
merge: session-based auth with password hashing
MarSeventh Apr 17, 2026
0e4e80a
v2.6.5:improve auth security
MarSeventh Apr 17, 2026
a3f3044
fix: redundant pop-up when changing admin password
MarSeventh Apr 17, 2026
a9efa77
fix: delete unauthorized pop-up when first logging in
MarSeventh Apr 17, 2026
baca53a
security: upgrade password hashing to PBKDF2 and fix API token genera…
MarSeventh Apr 17, 2026
1e96f2e
refactor: unify auth logic into authCore with authScope parameter
MarSeventh Apr 18, 2026
03e2cf8
bump version to v2.6.6
MarSeventh Apr 18, 2026
7ad7bf3
refactor: remove Basic Auth, add /api/auth/adminLogin endpoint
MarSeventh Apr 18, 2026
6cf23fe
refactor: split authCore into checkAdmin/checkUser, extract API Token…
MarSeventh Apr 18, 2026
3ac1e1f
refactor: split authCore into checkAdmin/checkUser, extract API Token…
MarSeventh Apr 18, 2026
23a7f69
fix: return explicit authType instead of null when auth is unconfigured
MarSeventh Apr 18, 2026
888dba1
refactor: extract rehashIfNeeded to passwordHash.js, deduplicate logi…
MarSeventh Apr 18, 2026
40f091d
fix: sessionCheck adminRequired should also consider password-only co…
MarSeventh Apr 18, 2026
9bb7172
fix: D1模式下分块上传失败时不保存二进制数据,避免SQLITE_TOOBIG
MarSeventh Apr 19, 2026
1faf4d8
fix: use createResponse in huggingface upload endpoints to include CO…
MarSeventh Apr 19, 2026
c25bbfe
fix: remove Secure flag from session cookie for HTTP Docker compatibi…
MarSeventh Apr 19, 2026
1eede22
docs: add desktop software link in readme
MarSeventh Apr 20, 2026
143bda1
feat: 会话安全策略 - 后端支持动态 Secure/MaxAge 配置
MarSeventh Apr 21, 2026
478bc95
bump version to v2.6.7
MarSeventh Apr 21, 2026
04ad986
feat: add Cloudflare Workers deployment support
MarSeventh Apr 24, 2026
70414ed
chore: minor comment update in deploy-worker workflow
MarSeventh Apr 24, 2026
9a751f7
docs: update WORKER_VARS comment in workflow
MarSeventh Apr 24, 2026
e576443
bump version to v2.7.1
MarSeventh Apr 24, 2026
a8911f0
refactor: move Docker-only deps to optionalDependencies
MarSeventh Apr 24, 2026
641b98a
refactor: update paths for frontend-dist directory
MarSeventh Apr 24, 2026
284210e
refactor: remove prepare-assets, point wrangler directly to frontend-…
MarSeventh Apr 24, 2026
2506abc
chore: remove worker-assets from .gitignore
MarSeventh Apr 24, 2026
41d0c8f
docs: add v2.7.1 build output directory change notice to README
MarSeventh Apr 24, 2026
c6841fe
fix: update generate-toml.js assets directory to frontend-dist
MarSeventh Apr 24, 2026
34084b0
feat: auto-deploy Workers on main branch push
MarSeventh Apr 24, 2026
96426a0
feat: support WORKER_NAME from secrets for push-triggered deploys
MarSeventh Apr 24, 2026
2fd8f93
feat: support WORKER_NAME from secrets for push-triggered deploys
MarSeventh Apr 24, 2026
00c35e2
refactor: use github.event.repository.fork instead of hardcoded repo …
MarSeventh Apr 24, 2026
6678856
fix: remove secrets check from job-level if (not allowed by GitHub Ac…
MarSeventh Apr 24, 2026
ae32409
feat: skip Worker deployment when CLOUDFLARE_API_TOKEN not configured
MarSeventh Apr 24, 2026
a8764a9
fix: add static assets (404/block/whitelist images) to frontend-dist
MarSeventh Apr 25, 2026
d394aa3
chore: remove duplicate static assets from outer static/
MarSeventh Apr 25, 2026
d1aa195
chore: exclude unnecessary files from Docker image
MarSeventh Apr 25, 2026
9886662
refactor: move static/readme to root level, remove empty static/
MarSeventh Apr 25, 2026
11d0fcf
chore: remove outdated .worker-assets comment from wrangler.worker.toml
MarSeventh Apr 25, 2026
3df8682
fix: remove redundant checkDatabaseConfig from manage middleware
MarSeventh Apr 25, 2026
3b2c31b
refactor: move wrangler.worker.toml into worker/ directory
MarSeventh Apr 25, 2026
c2088b2
fix: add Pages context compatibility for worker routes
MarSeventh Apr 26, 2026
601d059
Move deployment adapters under deploy
MarSeventh Apr 26, 2026
48d4fb2
chore: update github actions runtime versions
MarSeventh Apr 26, 2026
6e99280
chore: update github actions runtime versions
MarSeventh Apr 26, 2026
aa3d6a8
Merge branch 'dev'
MarSeventh Apr 26, 2026
76219d5
chore: update static media asset paths
MarSeventh Apr 26, 2026
f6db6ce
build: update frontend dist (login keyboard avoidance rework + mobile…
MarSeventh Apr 27, 2026
b41e048
Enable third-party WebDAV storage without new runtime dependencies
htazq Apr 27, 2026
d33209b
Keep WebDAV secrets out of file metadata
htazq Apr 28, 2026
2859d8d
Merge pull request #536 from htazq/feature/webdav-storage-channel
MarSeventh Apr 28, 2026
0f2a3e9
feat: add webdav upload channel
MarSeventh Apr 28, 2026
e5b6c7f
fix: migrate session storage to manage@ prefix and fix D1 adapter rou…
MarSeventh Apr 28, 2026
0d3edfb
bump version to v2.7.2
MarSeventh Apr 28, 2026
4169382
fix: disappeared custom header setting for webdav channel
MarSeventh Apr 28, 2026
fa965d0
refactor: move storage api utils into subdirectory
MarSeventh Apr 28, 2026
60bc18b
test: remove webdav test files
MarSeventh Apr 28, 2026
0eaefe7
readme: add more support channels
MarSeventh Apr 28, 2026
9383a09
readme: add more support channels
MarSeventh Apr 28, 2026
70320f4
readme: add more support channels
MarSeventh Apr 28, 2026
e70c597
readme: add more support channels
MarSeventh Apr 28, 2026
0ae9c50
readme: add more support channels
MarSeventh Apr 28, 2026
e5e7ae8
readme: add more support channels
MarSeventh Apr 28, 2026
a47f2f2
refactor: simplify saving logic of upload config in sysCog API
MarSeventh Apr 28, 2026
412dd66
fix: skip records without timestamps in batch list
MarSeventh Apr 28, 2026
759ecbc
fix: require admin auth for file preview
MarSeventh Apr 29, 2026
ff98bea
fix: prevent cached manage API mutations
MarSeventh Apr 29, 2026
2557f0b
fix: reduce manage mutation response payloads
MarSeventh Apr 29, 2026
2d79906
readme: uniform sponsor name
MarSeventh Apr 29, 2026
a319c2f
fix: reduce customer config list load
MarSeventh Apr 29, 2026
920bdbf
fix: catch-all [[path]].js route matching off-by-one for root paths
MarSeventh May 1, 2026
a82a580
fix: WebDAV internal calls use dedicated API Token for authentication
MarSeventh May 1, 2026
71b8e0c
fix: PROPFIND returns correct file size and href for WebDAV clients
MarSeventh May 1, 2026
bf6d9e2
fix: add getcontenttype to PROPFIND response for file preview in Alist
MarSeventh May 1, 2026
33d9ecf
fix: PROPFIND file size fallback for old files and use real upload ti…
MarSeventh May 1, 2026
19e1bb8
fix: wrap Docker server responses with native Response
MarSeventh May 6, 2026
6a615d4
readme: add hellogithub badge
MarSeventh May 9, 2026
e8d9165
readme: add hellogithub badge
MarSeventh May 9, 2026
646e4ed
readme: add hellogithub badge
MarSeventh May 9, 2026
c80c03e
readme: add hellogithub badge
MarSeventh May 9, 2026
f1c0487
readme: add hellogithub badge
MarSeventh May 9, 2026
2b5a64c
readme: add G-Star badge
MarSeventh May 22, 2026
3d826f6
readme: add G-Star badge
MarSeventh May 22, 2026
3891feb
Add Contributor Covenant Code of Conduct
MarSeventh May 22, 2026
cf28958
feat: add upload trend stats
MarSeventh May 25, 2026
aa1d339
feat: add upload trending in status page
MarSeventh May 25, 2026
f976212
feat: Dashboard file rename dialog now supports confirming with Enter
MarSeventh May 25, 2026
062e0ce
bump version to v2.7.3
MarSeventh May 25, 2026
58d721b
fix: improve HuggingFace range streaming
MarSeventh May 30, 2026
828170d
fix: stabilize HuggingFace range responses
MarSeventh May 30, 2026
0d4d140
revert: undo HuggingFace range streaming changes
MarSeventh May 30, 2026
5509f89
fix: limit HuggingFace open-ended ranges
MarSeventh May 30, 2026
be674c2
fix: keep HuggingFace ranges unchanged
MarSeventh May 30, 2026
43bd848
chore: fix a colon mistake in readme
MarSeventh Jun 1, 2026
61e8516
chore: update special sponsor in readme
MarSeventh Jun 1, 2026
309a854
feat: add completeMultipart API for handling multipart uploads
outlook84 Jun 2, 2026
4b2cc23
fix: update required fields check and normalize file type handling
outlook84 Jun 2, 2026
cef0495
fix: improve error handling for multipart completion target and valid…
outlook84 Jun 2, 2026
70e7e10
Merge pull request #576 from outlook84/pr
MarSeventh Jun 2, 2026
6fced97
fix: prevent metadata credential leaks
sean908 Jun 2, 2026
33965e6
fix: strip WebDAV metadata userinfo on move rename
sean908 Jun 2, 2026
324f052
Merge pull request #575 from sean908/fix/metadata-leak
MarSeventh Jun 2, 2026
42f0282
Revert package-lock to 70e7e10
MarSeventh Jun 2, 2026
f0f2a85
Unify WebDAV credential resolution
MarSeventh Jun 2, 2026
d3975c2
refactor: trim stored channel metadata
MarSeventh Jun 2, 2026
eb23737
refactor: group metadata utilities
MarSeventh Jun 2, 2026
73a04f6
fix: refresh derived metadata from config
MarSeventh Jun 2, 2026
95beedd
fix: prefer config derived channel urls
MarSeventh Jun 2, 2026
bade8c6
fix: keep backup metadata persisted only
MarSeventh Jun 2, 2026
13e13b9
refactor: rely on config for channel metadata
MarSeventh Jun 3, 2026
9c2425c
refactor: simplify webdav channel config fields
MarSeventh Jun 3, 2026
517447b
fix: keep large dashboard file lists in memory
MarSeventh Jun 3, 2026
49d4dea
refactor: share metadata channel config lookup
MarSeventh Jun 3, 2026
98dc74d
refactor: simplify metadata helpers
MarSeventh Jun 3, 2026
af8ddb0
refactor: remove dead metadata url fallbacks
MarSeventh Jun 3, 2026
9cda31d
fix: match renamed channels from persisted metadata
MarSeventh Jun 5, 2026
a8cc93b
build: update frontend assets
MarSeventh Jun 5, 2026
296acb2
build: update frontend assets
MarSeventh Jun 5, 2026
e396aef
build: update frontend assets
MarSeventh Jun 5, 2026
6b7fef5
build: update frontend assets
MarSeventh Jun 5, 2026
625a782
build: update frontend assets
MarSeventh Jun 5, 2026
a862f24
fix: add fallback MIME type for chunk uploads
MarSeventh Jun 8, 2026
d533a84
fix: clamp session max age before KV write
MarSeventh Jun 9, 2026
46092f4
fix: fail closed when security config is unavailable
MarSeventh Jun 9, 2026
f163687
feat: upload API response includes publicUrl based on urlPrefix config
fengyukigo Jun 11, 2026
3d8b906
fix: add publicUrl to chunked upload and merge responses
fengyukigo Jun 11, 2026
e13c17e
Merge pull request #587 from fengyukigo/main
MarSeventh Jun 12, 2026
ae40af0
chore: bump version to v2.7.4
MarSeventh Jun 12, 2026
21f806d
feat: add publicUrl to hf direct upload response
MarSeventh Jun 12, 2026
22aec19
feat: support custom upload IP query API
MarSeventh Jun 14, 2026
f1faca0
chore: rebuild frontend dist for ip placeholder fix
MarSeventh Jun 14, 2026
b5f11a6
chore: rebuild frontend dist for auth label
MarSeventh Jun 14, 2026
f474d90
Trigger worker deploy after upstream sync
MarSeventh Jun 14, 2026
09b8a21
Dispatch worker deploy in current repository
MarSeventh Jun 14, 2026
3a3f7ef
Refine upstream sync failure message
MarSeventh Jun 14, 2026
941273a
chore: rebuild frontend dist for ip query label
MarSeventh Jun 14, 2026
266778d
feat(worker): cache responses by cache-control
MarSeventh Jun 15, 2026
670f80c
docs(worker): comment cache adapter
MarSeventh Jun 15, 2026
28c74a7
docs(metadata): add utility comments
MarSeventh Jun 15, 2026
10a8eeb
docs(api): add endpoint file headers
MarSeventh Jun 15, 2026
d29f4cd
Enable global_fetch_strictly_public to fix WebDAV 522 (Worker deploy)
Jun 15, 2026
06286db
Merge branch 'MarSeventh:main' into chore/webdav-522-global-fetch-flag
yulei666 Jun 15, 2026
14c6881
Merge pull request #589 from yulei666/chore/webdav-522-global-fetch-flag
MarSeventh Jun 15, 2026
3afa7cb
fix: enable global_fetch_strictly_public to fix WebDAV 522 (Worker de…
MarSeventh Jun 15, 2026
9551aae
fix(webdav): refactor webdav implementation to conform with standards…
clown145 Jun 18, 2026
a8dd6e0
fix(webdav): redirect /dav to /dav/ with 301 to fix strict client con…
clown145 Jun 18, 2026
afd3692
fix(webdav): return 200 instead of 204 for OPTIONS to support strict …
clown145 Jun 18, 2026
7185471
fix(webdav): set uploadNameType to origin to preserve filenames on PUT
clown145 Jun 18, 2026
fe4eecb
fix(webdav): return 404 in handlePropfind for non-existent paths to p…
clown145 Jun 18, 2026
89b8469
Merge pull request #594 from clown145/main
MarSeventh Jun 18, 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
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
node_modules
npm-debug.log
Dockerfile
.dockerignore
.git
.gitignore
.github
data
readme
deploy/worker
*.md
61 changes: 61 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Bug report / 错误报告
description: Create a report to help us improve
title: "[BUG]"
labels: ["bug"]
body:
- type: checkboxes
id: self_check
attributes:
label: Self-check / 自查
description: Self-Check before submitting the Issue / 在提交Issue之前的自查
options:
- label: I have already read the document and checked my relative settings / 我已经仔细阅读文档并检查了有关设置
required: false
- type: checkboxes
id: confirm
attributes:
label: Confirm / 确认
description: Please confirm / 请你确认
options:
- label: I have searched the Issue and found no related issues / 我已经搜索过Issue,没有找到相关问题
required: true
- label: I am using the latest source from this repository / 我使用的是来自此仓库的最新版代码
required: true
- label: I provided information which does not include sensitive information / 我提供的信息里不包含敏感信息
required: true
- type: textarea
id: description
attributes:
label: BUG Description / BUG 描述
description: Describe your BUG here / 在此描述你的BUG
validations:
required: true
- type: textarea
id: expected_behavior
attributes:
label: Expected Behavior / 预期行为
description: What you expect to happen / 你认为的预期行为
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Reproduction Steps / 复现步骤
description: How to reproduce / 如何复现
validations:
required: true
- type: textarea
id: debug
attributes:
label: Console Log / 控制台日志
description: F12 -> Console / 从 F12 -> 控制台 复制你觉得可能有帮助的日志
validations:
required: false
- type: textarea
id: additional_context
attributes:
label: Additional Information / 附加信息
description: Any other information you think might be helpful to solve this BUG / 你觉得对解决此BUG有帮助的其它信息
validations:
required: false

5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Q&A / 常见问题解答
url: https://cfbed.sanyue.de/qa/
about: Please find answers to common questions here / 请在这里找到常见问题的答案
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Feature request / 功能请求
description: "Suggest an idea for this project"
title: "[Feature Request]"
labels: ["enhancement"]
body:
- type: checkboxes
id: confirm
attributes:
label: Confirm / 确认
description: Please confirm / 请你确认
options:
- label: I have searched the Issue and found no related feature requests / 我已经搜索过Issue,没有找到相关的功能请求
required: true
- type: textarea
id: description
attributes:
label: Feature Description / 功能描述
description: Describe the feature you want / 描述你想要的功能
validations:
required: true
- type: textarea
id: how_to
attributes:
label: How to Implement / 如何实现
description: How to implement this feature / 你觉得应该如何实现这个功能
validations:
required: false
- type: textarea
id: additional_context
attributes:
label: Additional Information / 附加信息
description: Any other information you think might be helpful to implement this feature / 你觉得对实现此功能有帮助的其它信息
validations:
required: false
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/help-wanted-issue-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Help wanted issue template / 求助问题
description: Help wanted template.
title: '[Help Wanted]'
labels: ['help wanted']
body:
- type: checkboxes
id: self_check
attributes:
label: Self-check / 自查
description: Self-Check before submitting the Issue / 在提交Issue之前的自查
options:
- label: I have already read the document and checked my relative settings / 我已经仔细阅读文档并检查了有关设置
required: false
- type: checkboxes
id: confirm
attributes:
label: Confirm / 确认
description: Please confirm / 请你确认
options:
- label: I have searched the Issue and found no related issues / 我已经搜索过Issue,没有找到相关问题
required: true
- label: I am using the latest source from this repository / 我使用的是来自此仓库的最新版代码
required: true
- label: I provided information which does not include sensitive information / 我提供的信息里不包含敏感信息
required: true
- type: textarea
id: description
attributes:
label: Problem Description / 问题描述
description: Describe your problem / 描述你的问题
validations:
required: true
- type: textarea
id: upload_method
attributes:
label: Upload Method / 上传方式
description: web or api / WEB 或 API 上传
validations:
required: true
- type: textarea
id: upload_channel
attributes:
label: Upload Channel / 上传渠道
description: Telegram, Cloudflare R2 etc / Telegram, Cloudflare R2 等
validations:
required: true
- type: textarea
id: additional_materials
attributes:
label: Additional Materials / 辅助材料
description: Upload interface request, response screenshots, environment variable settings screenshots, etc. as detailed as possible / 上传接口请求、响应截图,环境变量设置截图等,尽可能详细
validations:
required: false
84 changes: 84 additions & 0 deletions .github/workflows/deploy-worker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Deploy to Cloudflare Workers

on:
push:
branches:
- main
workflow_dispatch:
inputs:
worker_name:
description: 'Worker Name'
required: false
default: 'cloudflare-imgbed'

# 所有配置均通过 Secrets 传入(public 仓库的 Variables 对所有人可见,不安全)
#
# 在仓库 Settings → Secrets and variables → Actions → Secrets 中配置:
#
# 必填:
# CLOUDFLARE_API_TOKEN - Cloudflare API Token(需要 Workers 编辑权限)
# CLOUDFLARE_ACCOUNT_ID - Cloudflare Account ID
#
# 数据库(二选一):
# D1_DATABASE_ID - D1 数据库 ID
# KV_NAMESPACE_ID - KV 命名空间 ID
#
# 可选:
# R2_BUCKET_NAME - R2 存储桶名称
# WORKER_NAME - Worker 名称(默认 cloudflare-imgbed,手动触发时可在界面覆盖)
# WORKER_VARS - JSON 格式的业务环境变量(非必要不建议配置,
# 部署完成后请在管理面板中配置所有设置)

jobs:
deploy:
runs-on: ubuntu-latest
# 仅在 fork 仓库且配置了 Cloudflare secrets 时运行
# 原仓库 push 和未配置 secrets 的 fork 不会触发部署
if: ${{ github.event.repository.fork }}
steps:
- name: Check deployment config
id: check
run: |
if [ -z "${{ secrets.CLOUDFLARE_API_TOKEN }}" ]; then
echo "CLOUDFLARE_API_TOKEN not configured, skipping Worker deployment"
echo "skip=true" >> $GITHUB_OUTPUT
else
echo "skip=false" >> $GITHUB_OUTPUT
fi

- name: Checkout
if: steps.check.outputs.skip != 'true'
uses: actions/checkout@v6

- name: Setup Node.js
if: steps.check.outputs.skip != 'true'
uses: actions/setup-node@v5
with:
node-version: '22'

- name: Install dependencies
if: steps.check.outputs.skip != 'true'
run: npm ci --omit=dev --omit=optional

- name: Generate worker routes
if: steps.check.outputs.skip != 'true'
run: node deploy/worker/generate-routes.js

- name: Generate wrangler config
if: steps.check.outputs.skip != 'true'
env:
WORKER_NAME: ${{ inputs.worker_name || secrets.WORKER_NAME }}
D1_DATABASE_ID: ${{ secrets.D1_DATABASE_ID }}
KV_NAMESPACE_ID: ${{ secrets.KV_NAMESPACE_ID }}
R2_BUCKET_NAME: ${{ secrets.R2_BUCKET_NAME }}
WORKER_VARS: ${{ secrets.WORKER_VARS }}
run: node deploy/worker/generate-toml.js

- name: Deploy to Cloudflare Workers
if: steps.check.outputs.skip != 'true'
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
wranglerVersion: '4'
command: deploy --config deploy/worker/wrangler.toml
56 changes: 56 additions & 0 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Build and Push Docker Image

on:
push:
branches:
- main
workflow_dispatch:

env:
REGISTRY: docker.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build-and-push:
if: github.repository == 'MarSeventh/CloudFlare-ImgBed'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Read version from package.json
id: version
run: echo "VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT

- name: Set up QEMU
uses: docker/setup-qemu-action@v4
with:
platforms: linux/amd64,linux/arm64

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4

- name: Log in to Docker Hub
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Extract metadata for Docker
id: meta
uses: docker/metadata-action@v6
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=${{ steps.version.outputs.VERSION }}
type=ref,event=branch
type=raw,value=latest

- name: Build and push Docker image
uses: docker/build-push-action@v7
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64
46 changes: 46 additions & 0 deletions .github/workflows/sync-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Sync Release (Create & Update) to Frontend Repo

on:
release:
# 创建、发布、更新
types: [created, published, edited]

jobs:
sync-release:
if: github.repository == 'MarSeventh/CloudFlare-ImgBed'
runs-on: ubuntu-latest
steps:
- name: Sync or Update Release
env:
GH_TOKEN: ${{ secrets.RELEASE_SYNC_PAT }}
TARGET_REPO: "MarSeventh/Sanyue-ImgHub"
TAG_NAME: ${{ github.event.release.tag_name }}
RELEASE_TITLE: ${{ github.event.release.name }}
RELEASE_BODY: ${{ github.event.release.body }}
IS_DRAFT: ${{ github.event.release.draft }}
IS_PRERELEASE: ${{ github.event.release.prerelease }}

run: |
# 格式化参数
ARGS=""
if [ "$IS_DRAFT" = "true" ]; then ARGS="$ARGS --draft"; else ARGS="$ARGS --draft=false"; fi
if [ "$IS_PRERELEASE" = "true" ]; then ARGS="$ARGS --prerelease"; else ARGS="$ARGS --prerelease=false"; fi

echo "正在检查目标仓库 $TARGET_REPO 中是否存在 Tag: $TAG_NAME..."

# 检查目标仓库是否已有该 Release
if gh release view "$TAG_NAME" --repo "$TARGET_REPO" > /dev/null 2>&1; then
echo "检测到现有 Release,正在执行更新操作..."
gh release edit "$TAG_NAME" \
--repo "$TARGET_REPO" \
--title "$RELEASE_TITLE" \
--notes "$RELEASE_BODY" \
$ARGS
else
echo "未发现现有 Release,正在创建新 Release..."
gh release create "$TAG_NAME" \
--repo "$TARGET_REPO" \
--title "$RELEASE_TITLE" \
--notes "$RELEASE_BODY" \
$ARGS
fi
Loading
Loading