eb32fd5e22
外层仓库管理 webgui 源码、Docker 编排与项目文档;rclone 作为
git submodule 锁定在上游 master HEAD(59c86b01b),不携带任何
我们的改动。
- webgui/: webgui 源码(原本位于 rclone/cmd/webgui/)
- web/: 原生 HTML/CSS/JS 静态前端(Anthropic 设计语言)
- webgui.go: Go 子命令源码,仅当自行构建 rclone 二进制时需要
- rclone-cmd-all-add-webgui-import.patch: 把 webgui 注册进
rclone 的 cmd/all/all.go 的补丁,留作 fork 时使用
- rclone/: submodule → github.com/rclone/rclone,纯净不改动
- Dockerfile.webgui: 基于 nginx:1.27-alpine,从 ./webgui/web/
COPY 静态资源
- docker/nginx.conf: SPA 静态托管 + 反向代理 RC API
(/config/、/operations/、/sync/、/job/ 等) 与文件下载
(/<remote>:<path>) 到 rclone rcd 容器,前端同源访问无 CORS
- docker-compose.yml: rclone (官方镜像 + rcd --rc-no-auth
--rc-serve) + gui (nginx) 双服务编排,config 走 bind mount
持久化
- DESIGN.md / CLAUDE.md / README.md: 文档
- .gitignore / .dockerignore: 排除 rclone.conf 等敏感文件,
Docker 构建上下文只剩 webgui/web/ + nginx 配置(几十 KB)
86 lines
1.4 KiB
CSS
86 lines
1.4 KiB
CSS
/* Base reset, font loading, and document defaults. */
|
|
|
|
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400&display=swap");
|
|
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
body {
|
|
background-color: var(--color-canvas);
|
|
color: var(--color-body);
|
|
font: var(--typo-body-md);
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
min-height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
main {
|
|
flex: 1 0 auto;
|
|
width: 100%;
|
|
max-width: var(--content-max);
|
|
margin: 0 auto;
|
|
padding: var(--space-lg) var(--space-xl);
|
|
}
|
|
|
|
h1, h2, h3, h4 {
|
|
margin: 0;
|
|
color: var(--color-ink);
|
|
font-family: var(--font-display);
|
|
font-weight: 400;
|
|
}
|
|
|
|
h1 {
|
|
font: var(--typo-display-lg);
|
|
letter-spacing: var(--typo-display-lg-tracking);
|
|
}
|
|
|
|
h2 {
|
|
font: var(--typo-display-md);
|
|
letter-spacing: var(--typo-display-md-tracking);
|
|
}
|
|
|
|
h3 {
|
|
font: var(--typo-display-sm);
|
|
letter-spacing: var(--typo-display-sm-tracking);
|
|
}
|
|
|
|
p {
|
|
margin: 0;
|
|
}
|
|
|
|
a {
|
|
color: var(--color-primary);
|
|
text-decoration: none;
|
|
}
|
|
|
|
a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
button {
|
|
font-family: inherit;
|
|
}
|
|
|
|
ul {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
code,
|
|
pre {
|
|
font: var(--typo-code);
|
|
font-family: var(--font-mono);
|
|
}
|