当前位置: 首页 > news >正文

代码片段存储解决方案ByteStash

在这里插入图片描述

简介

什么是 ByteStash ?

ByteStash 是一个自托管的 web 应用程序,旨在高效地存储、组织和管理代码片段。ByteStash 支持创建、编辑和过滤代码片段,帮助用户以安全的方式跟踪自己的代码。

主要特点:

  • 创建和编辑代码片段:用户可以方便地添加新代码片段或更新现有片段,界面直观易用。
  • 按语言和内容过滤:用户可以根据编程语言或内容中的关键字快速找到所需的代码片段。
  • 安全存储:所有代码片段安全地存储在 SQLite 数据库中,确保代码仅对用户可访问。

ByteStash 使用 ReactNode.js 作为技术栈,支持通过 Docker 进行容器化部署。

安装

在群晖上以 Docker 方式安装。

latest 版本对应的是 1.5.4

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:bytestash:image: "ghcr.io/jordan-dalby/bytestash:latest"container_name: bytestashrestart: alwaysvolumes:- ./data:/data/snippetsports:- "5908:5000"environment:# See https://github.com/jordan-dalby/ByteStash/wiki/FAQ#environment-variablesBASE_PATH: ""JWT_SECRET: Aga2cNBCyPHe6ZdY5DMLMDV7GbTHQCZzi2owCfk5yZs2zRtCV6Lu8vLeGmQ7TjPZTOKEN_EXPIRY: 24hALLOW_NEW_ACCOUNTS: "true"DEBUG: "true"DISABLE_ACCOUNTS: "false"DISABLE_INTERNAL_ACCOUNTS: "false"# See https://github.com/jordan-dalby/ByteStash/wiki/Single-Sign%E2%80%90on-Setup for more infoOIDC_ENABLED: "false"OIDC_DISPLAY_NAME: ""OIDC_ISSUER_URL: ""OIDC_CLIENT_ID: ""OIDC_CLIENT_SECRET: ""OIDC_SCOPES: ""

官方的详细环境变量说明: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设置为 truefalse,指示该 ByteStash 实例是否开放新账户注册。
DEBUG设置为 truefalse,通常情况下保持为 false,仅在调试问题时使用。
DISABLE_ACCOUNTS设置为 truefalse,完全禁用用户账户,任何现有账户将保留,可以随时切换回去。
DISABLE_INTERNAL_ACCOUNTS设置为 truefalse,禁用内部账户,包括现有账户,仅允许 SSO 登录。

关于 OIDC 可以参考:https://github.com/jordan-dalby/ByteStash/wiki/Single-Sign%E2%80%90on-Setup

可变值及说明
OIDC_ENABLED设置为 truefalse,指示是否启用单点登录(SSO)。
OIDC_DISPLAY_NAME可选项,用于替换登录页面文本 "Sign in with XYZ",默认值为 "Single Sign-on"
OIDC_ISSUER_URLSSL 启用的链接,指向您的身份验证器,例如 https://authentik.mydomain.com/application/o/bytestash/
OIDC_CLIENT_ID在设置 Authentik(或其他提供者)应用程序时定义的客户端 ID
OIDC_CLIENT_SECRET在设置 Authentik(或其他提供者)应用程序时定义的客户端密钥。
OIDC_SCOPES默认值为 openid profile email,除非需要特定配置,否则可以留空或不设置。

然后执行下面的命令

# 新建文件夹 bytestash 和 子目录
mkdir -p /volume1/docker/bytestash/data# 进入 bytestash 目录
cd /volume1/docker/bytestash# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 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/

相关文章:

  • 八大排序——直接插入排序/希尔排序
  • python使用dlib的5点和68点的人脸检测
  • 深入理解缓存淘汰策略:LRU 与 LFU 算法详解及 Java 实现
  • springboot 实现敏感信息脱敏
  • OpenCV 图形API(69)图像与通道拼接函数------将一个 GMat 类型的对象转换为另一个具有不同深度GMat对象函数convertTo()
  • git 修改用户名和邮箱
  • 关于常量指针和指向常量的指针
  • HTML5好看的水果蔬菜在线商城网站源码系列模板7
  • vue复习91~135
  • GPU 架构入门笔记
  • 获得ecovadis徽章资格标准是什么?ecovadis评估失败的风险
  • 【ACL系列论文写作指北07-论文标题与关键词部分怎么写】-赢在第一眼
  • 今日行情明日机会——20250428
  • leetcode128-最长连续序列
  • 【默子AI】万字长文:MCP与A2A协议详解
  • 【学习笔记】RL4LLM(三)
  • BeeWorks企业内部即时通讯软件支持国产化,已在鸿蒙系统上稳定运行
  • 云原生--核心组件-容器篇-7-Docker私有镜像仓库--Harbor
  • Linux中的计划任务
  • 第1篇:Egg.js框架入门与项目初始化
  • 商务部:一季度我国服务贸易较快增长,进出口总额同比增8.7%
  • 泽连斯基承认乌情报部门刺杀俄军高官
  • 杭州一季度GDP为5715亿元,同比增长5.2%
  • 新剧|反谍大剧《绝密较量》央一开播,张鲁一高圆圆主演
  • 银川市长信箱被指乱回复:问诗词大会、答工程欠款,官方称工作失误
  • 大学2025丨专访北邮校长徐坤:工科教育要真正回归工程本质