Opengist
Opengist 是一个自托管的、由 Git 驱动的代码片段分享平台。所有代码片段都存储在 Git 仓库中,可以使用标准的 Git 命令或网页界面进行读取和/或修改。它类似于 GitHub Gist,但是开源且可以自托管。
功能
- 创建公开、不公开或私密的代码片段
- 通过 HTTP 或 SSH 使用 Git 初始化 / 克隆 / 拉取 / 推送代码片段
- 语法高亮;支持 Markdown 和 CSV
- 在代码片段中搜索代码;浏览用户的代码片段、点赞和复刻
- 在其他网站中嵌入代码片段
- 修订历史
- 点赞 / 复刻代码片段
- 下载原始文件或 ZIP 压缩包
- 支持 GitHub、GitLab、Gitea 和 OpenID Connect 的 OAuth2 登录
- 限制或解除匿名用户查看代码片段的限制
- 支持 Docker
- 更多...
快速开始
使用 Docker
每个版本都有可用的 Docker 镜像:
docker pull ghcr.io/thomiceli/opengist:1.7
可以在 docker-compose.yml
文件中使用:
- 创建一个包含以下内容的
docker-compose.yml
文件 - 运行
docker compose up -d
- Opengist 现在运行在 6157 端口,你可以访问 http://localhost:6157
version: "3"
services:
opengist:
image: ghcr.io/thomiceli/opengist:1.7
container_name: opengist
restart: unless-stopped
ports:
- "6157:6157" # HTTP 端口
- "2222:2222" # SSH 端口,如果不使用 SSH 可以移除
volumes:
- "$HOME/.opengist:/opengist"
你可以通过设置 UID
和 GID
环境变量来定义应该运行容器和拥有文件的用户/组:
services:
opengist:
# ...
environment:
UID: 1001
GID: 1001
通过二进制文件
从这里的发布页面下载适用于你系统的压缩包,并解压。
# 以 linux amd64 为例
wget https://github.com/thomiceli/opengist/releases/download/v1.7.3/opengist1.7.3-linux-amd64.tar.gz
tar xzvf opengist1.7.3-linux-amd64.tar.gz
cd opengist
chmod +x opengist
./opengist # 可以加上 `--config config.yml` 参数
Opengist 现在运行在 6157 端口,你可以访问 http://localhost:6157
从源代码
要求:Git (2.28+),Go (1.22+),Node.js (16+),Make(可选,但更简便)
git clone https://github.com/thomiceli/opengist
cd opengist
make
./opengist
Opengist 现在运行在 6157 端口,你可以访问 http://localhost:6157
要创建和运行开发环境,请参见 run-development.md。
文档
文档可在 /docs 目录中找到。
许可证
Opengist 采用 AGPL-3.0 许可证。