当前位置: 首页 > 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/

http://www.xdnf.cn/news/187849.html

相关文章:

  • 每日算法-250428
  • 跨境电商店铺矩阵布局:多账号运营理论到实操全解析
  • JVM 内存分配策略
  • 深海科技服务博客简介
  • 说一下react更新的流程
  • Meta 推出 WebSSL 模型:探索 AI 无语言视觉学习,纯图训练媲美 OpenAI CLIP
  • 详解RabbitMQ工作模式之工作队列模式
  • 盒子模型
  • 图像处理篇---信号与系统的应用
  • Golang|分布式索引架构
  • DDD(领域驱动设计)详解
  • 【C++类与对象高频面试问题总结2】
  • 在VS2022中使用Lua与c交互(二)
  • 读书笔记--华为从偶然到必然之创新与技术开发阅读有感
  • 交换机配置DHCP
  • 使用python实现自动化拉取压缩包并处理流程
  • 深入理解CSS3:Flex/Grid布局、动画与媒体查询实战指南
  • Python初学 有差异的知识点总结(一)
  • 构建“云中”高并发:12306技术改造的系统性启示
  • mac 基于Docker安装minio
  • Flutter介绍、Flutter Windows Android 环境搭建 真机调试
  • ETL架构、数据建模及性能优化实践
  • GPU 架构入门笔记
  • git pull报错error: cannot lock ref ‘refs/remotes/origin/feature/xxx
  • 【C语言】初阶算法相关习题(二)
  • Python-librosa库提取音频数据的MFCC特征
  • 线下CPG零售的核心:POG与销量的循环优化
  • 浅谈PCB传输线(一)
  • docker安装Canal1.1.5,MySQL5.7踩坑
  • Ubuntu中C++项目安装二次规划库——qpOASES 库