代码片段存储解决方案ByteStash
简介
什么是 ByteStash ?
ByteStash
是一个自托管的web
应用程序,旨在高效地存储、组织和管理代码片段。ByteStash
支持创建、编辑和过滤代码片段,帮助用户以安全的方式跟踪自己的代码。
主要特点:
- 创建和编辑代码片段:用户可以方便地添加新代码片段或更新现有片段,界面直观易用。
- 按语言和内容过滤:用户可以根据编程语言或内容中的关键字快速找到所需的代码片段。
- 安全存储:所有代码片段安全地存储在
SQLite
数据库中,确保代码仅对用户可访问。
ByteStash
使用 React
和 Node.js
作为技术栈,支持通过 Docker
进行容器化部署。
安装
在群晖上以 Docker 方式安装。
latest
版本对应的是1.5.4
采用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
1 | version: '3' |
官方的详细环境变量说明:https://github.com/jordan-dalby/ByteStash/wiki/FAQ#environment-variables
可变 | 值及说明 |
---|---|
BASE_PATH |
用于设置基础路径,例如输入 /bytestash 指向 my.domain/bytestash ,在大多数情况下可以留空。 |
JWT_SECRET_FILE |
用于 Docker 秘密管理。如果不清楚如何使用此选项,请使用 JWT_SECRET 选项。 |
JWT_SECRET |
您的 JWT 密钥,生成自己的密钥并替换该值。 |
ALLOW_NEW_ACCOUNTS |
设置为 true 或 false ,指示该 ByteStash 实例是否开放新账户注册。 |
DEBUG |
设置为 true 或 false ,通常情况下保持为 false ,仅在调试问题时使用。 |
DISABLE_ACCOUNTS |
设置为 true 或 false ,完全禁用用户账户,任何现有账户将保留,可以随时切换回去。 |
DISABLE_INTERNAL_ACCOUNTS |
设置为 true 或 false ,禁用内部账户,包括现有账户,仅允许 SSO 登录。 |
关于 OIDC
可以参考:https://github.com/jordan-dalby/ByteStash/wiki/Single-Sign%E2%80%90on-Setup
可变 | 值及说明 |
---|---|
OIDC_ENABLED |
设置为 true 或 false ,指示是否启用单点登录(SSO )。 |
OIDC_DISPLAY_NAME |
可选项,用于替换登录页面文本 "Sign in with XYZ" ,默认值为 "Single Sign-on" 。 |
OIDC_ISSUER_URL |
SSL 启用的链接,指向您的身份验证器,例如 https://authentik.mydomain.com/application/o/bytestash/ 。 |
OIDC_CLIENT_ID |
在设置 Authentik (或其他提供者)应用程序时定义的客户端 ID 。 |
OIDC_CLIENT_SECRET |
在设置 Authentik (或其他提供者)应用程序时定义的客户端密钥。 |
OIDC_SCOPES |
默认值为 openid profile email ,除非需要特定配置,否则可以留空或不设置。 |
然后执行下面的命令
1 | # 新建文件夹 bytestash 和 子目录 |
运行
在浏览器中输入 http://群晖IP:5908
,第一次需要注册账号
密码长度不能少于
8
位;
登录成功后的主界面
现在你已经有了第一个账号,如果你不希望让别人使用,现在可以将
ALLOW_NEW_ACCOUNTS
改为false
来禁止新用户注册
点 New Snippet
添加代码片段
随便加了几个
代码的查询方式比较丰富,可以按分类、语言等等
可能的问题
偶然遇到过代码输入框,一直显示 Loading
,不能输入的情况。后来一直未能复现,怀疑可能跟数据库初始化有关
正常情况下,代码输入框是可以输入的
参考文档
jordan-dalby/ByteStash: A code snippet storage solution written in React & node.js
地址:https://github.com/jordan-dalby/ByteStash/Self-hosted Code Snippet Manager : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1gb1ail/selfhosted_code_snippet_manager/