【Docker项目实战】使用Docker部署自托管ByteStash代码片段管理工具

举报
江湖有缘 发表于 2025/10/30 23:57:21 2025/10/30
【摘要】 【Docker项目实战】使用Docker部署自托管ByteStash代码片段管理工具

一、ByteStash介绍

1.1 ByteStash简介:

ByteStash 是一款可自托管的代码片段管理工具,帮助开发者安全、高效地存储、组织和管理常用代码。

1.2 ByteStash特点

  • 支持创建和编辑代码片段,操作简单直观。
  • 可按编程语言或内容关键词快速过滤和查找片段。
  • 所有代码片段均安全存储于本地 SQLite 数据库,保障数据隐私与安全。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。

hostname IP地址 操作系统版本 Docker版本 部署项目 备注
jeven 192.168.3.88 Ubuntu 24.04.2 LTS 28.5.0 ByteStash ——

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署ByteStash代码片段管理工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Sat 2025-10-04 13:29:05 UTC; 2 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 888 (dockerd)
      Tasks: 65
     Memory: 1.2G (peak: 1.4G)
        CPU: 3min 23.296s
     CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

root@jeven:~# docker -v
Docker version 28.5.0, build 887030f

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven:~# docker compose version
Docker Compose version v2.39.4

四、拉取ByteStash镜像

下载ByteStash镜像,镜像名称:ghcr. io /jordan-dalby/bytestash:latest

docker pull ghcr.io/jordan-dalby/bytestash:latest

在这里插入图片描述

五、部署ByteStash服务

5.1 创建部署目录

  • 创建部署目录
mkdir -p /data/bytestash/data  && cd /data/bytestash
  • 目录授权工作
chmod -R 777 /data/bytestash

5.2 编辑部署文件

在部署目录下,创建docker-compose.yaml文件,内容如下所示:

vim docker-compose.yaml
services:
  bytestash:
    image: "ghcr.io/jordan-dalby/bytestash:latest"
    restart: always
    volumes:
      - /data/bytestash/data:/data/snippets
    ports:
      - "5000:5000"
    environment:
      # See https://github.com/jordan-dalby/ByteStash/wiki/FAQ#environment-variables
      #ALLOWED_HOSTS: localhost,my.domain.com,my.domain.net
      BASE_PATH: ""
      JWT_SECRET: your-secret
      TOKEN_EXPIRY: 24h
      ALLOW_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 info
      OIDC_ENABLED: "false"
      OIDC_DISPLAY_NAME: ""
      OIDC_ISSUER_URL: ""
      OIDC_CLIENT_ID: ""
      OIDC_CLIENT_SECRET: ""
      OIDC_SCOPES: ""

🛠️ ByteStash 环境变量配置(Environment Variables)

环境变量 值类型/示例 说明
BASE_PATH 字符串,如 /bytestash 设置应用的基础路径,用于反向代理子路径。若直接使用根路径,可留空。
JWT_SECRET 字符串(自定义密钥) 用于签名 JWT 令牌的密钥,必须替换为强随机字符串,确保安全性。
JWT_SECRET_FILE 文件路径(可选) 用于 Docker Secrets 管理 JWT 密钥。若不熟悉此功能,建议使用 JWT_SECRET。
TOKEN_EXPIRY 时间,如 24h7d 设置 JWT 令牌的有效期,默认通常为 24h。
ALLOW_NEW_ACCOUNTS true / false 是否允许新用户注册。设为 false 可关闭注册功能。
DEBUG true / false 是否启用调试模式。生产环境建议设为 false。
DISABLE_ACCOUNTS true / false 是否禁用所有用户账户系统,保留数据且可随时恢复。
DISABLE_INTERNAL_ACCOUNTS true / false 是否禁用内部账户登录(包括现有账户),仅允许 SSO 登录。

🔐 OIDC 单点登录(SSO)配置

环境变量 值类型/示例 说明
OIDC_ENABLED true / false 是否启用 OIDC 单点登录功能。
OIDC_DISPLAY_NAME 字符串,如 Company SSO 登录按钮上显示的名称,默认为 Single Sign-on。
OIDC_ISSUER_URL URL,如 https://authentik.company.com/application/o/bytestash/ OIDC 身份提供者的发行者 URL,必须启用 HTTPS。
OIDC_CLIENT_ID 字符串 在身份提供者(如 Authentik、Keycloak)中注册应用时生成的客户端 ID。
OIDC_CLIENT_SECRET 字符串 在身份提供者中生成的客户端密钥,用于 OIDC 认证。
OIDC_SCOPES 字符串,如 openid profile email 请求的 OIDC 范围,多个用空格分隔。默认值通常足够使用。

5.3 创建ByteStash容器

执行以下命令,创建ByteStash容器。

docker compose up -d

在这里插入图片描述

5.4 查看ByteStash容器状态

检查ByteStash容器运行状态,确保ByteStash容器正常启动。

root@jeven:/data/bytestash# docker compose ps
NAME                    IMAGE                                   COMMAND                  SERVICE     CREATED          STATUS          PORTS
bytestash-bytestash-1   ghcr.io/jordan-dalby/bytestash:latest   "docker-entrypoint.s…"   bytestash   27 seconds ago   Up 26 seconds   0.0.0.0:5000->5000/tcp, [::]:5000->5000/tcp

5.5 检查ByteStash容器日志

检查容器运行日志,确保ByteStash服务正常运行。

docker compose logs

在这里插入图片描述

六、访问ByteStash服务

6.1访问ByteStash初始页

浏览器地址: http://<个人的服务器IP>:5000,访问ByteStash初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述

6.2 注册账号

自行填写登录账号信息,如下所示:

在这里插入图片描述

在这里插入图片描述

6.3 添加代码段

点击“New Snippet” 添加代码片段,编辑代码段名称等信息,确定添加即可。

在这里插入图片描述
在这里插入图片描述

七、总结

通过本次实践,我们成功使用Docker部署了自托管的ByteStash代码片段管理工具,整个过程简单高效,便于后续维护和升级。ByteStash提供了简洁直观的界面和强大的代码管理功能,极大提升了开发者的代码复用效率。结合Docker的容器化优势,实现了服务的快速部署与隔离,保障了运行环境的稳定性。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。