839 字
4 分钟
本地部署简单的 Git-LFS 服务

前言#

LFS Test Server is an example server that implements the Git LFS API. It is intended to be used for testing the Git LFS client and is not in a production ready state.

lfs-test-server 是一个用于测试 Git LFS 客户端的示例服务器,并不适用于生产环境。不过,对于本地测试或个人使用场景,它已经足够实用。如果需要更成熟的生产级 Git-LFS 服务,可以考虑使用 GiteaGitLab

IMPORTANT

本教程基于 Windows 系统 环境编写,命令和路径以 Windows 为准。

WARNING

LFS Test Server 仅用于开发测试场景,切勿用于生产环境部署。

安装 lfs-test-server#

lfs-test-server 提供了多个版本的预编译 Windows 可执行文件,但最新的 Release 0.4.0 尚未提供预编译版本,因此需要手动编译源代码。

NOTE

若需自行编译,请确保已安装 Go 环境。可前往 Go 官方网站下载安装:https://golang.google.cn

使用 Go 安装最新版本:

Terminal window
go install github.com/git-lfs/lfs-test-server@latest

执行上述命令后,安装器会自动获取源码及所需依赖并进行编译,最终将可执行程序放置在 %GO_PATH%/bin 目录下。

使用 lfs-test-server#

启动服务#

lfs-test-server 默认监听 8080 端口。首次启动时会在程序目录下生成相关文件和文件夹,用于管理和存储文件。通过环境变量可以对 lfs-test-server 进行配置。

配置项描述默认值
LFS_LISTEN服务器监听的地址和端口tcp://:8080
LFS_HOST服务器生成 URL 时使用的主机localhost:8080
LFS_METADB服务器用于存储元信息的数据库文件lfs.db
LFS_CONTENTPATH存放 LFS 文件的路径lfs-content
LFS_ADMINUSER管理员用户名为空
LFS_ADMINPASS管理员密码为空
LFS_CERTTLS 证书文件为空
LFS_KEYTLS 密钥为空
LFS_SCHEME设置为 “https” 以覆盖默认的 httphttp
LFS_USETUS设置为 “true” 以启用 tusd (tus.io) 可恢复上传服务器;tusd 必须位于路径中且已单独安装false
LFS_TUSHOST用于启动 tusd 上传服务器的主机localhost:1080

创建配置文件 config.txt,输入以下内容并根据需要进行配置:

LFS_LISTEN=tcp://:8080
LFS_HOST=localhost:8080
LFS_METADB=lfs.db
LFS_CONTENTPATH=lfs-content
LFS_ADMINUSER=
LFS_ADMINPASS=
LFS_CERT=
LFS_KEY=
LFS_SCHEME=http
LFS_USETUS=false
LFS_TUSHOST=localhost:1080

创建启动脚本 lfs-test-server.cmd

Terminal window
@echo off
setlocal enabledelayedexpansion
:: 从配置文件中读取配置
set CONFIG_FILE=config.txt
for /f "tokens=1,2 delims==" %%A in ('findstr /r "LFS_LISTEN LFS_HOST LFS_METADB LFS_CONTENTPATH LFS_ADMINUSER LFS_ADMINPASS LFS_CERT LFS_KEY LFS_SCHEME LFS_USETUS LFS_TUSHOST" "%CONFIG_FILE%"') do (
set "key=%%~A"
set "value=%%~B"
set "!key!=!value!"
)
:: 清理管理员凭据
if not "%1"=="--admin" (
set "LFS_ADMINUSER="
set "LFS_ADMINPASS="
)
:: 启动服务
start "LFS Server" lfs-test-server.exe
endlocal

执行启动脚本时传入 --admin 参数才会启用管理员账户:

Terminal window
lfs-test-server.cmd --admin

管理服务#

访问管理#

启用管理员账户后,可通过 http://localhost:8080/mgmt 访问管理页面。

通过管理页面的 User 选项可新增或删除访问用户,用于提供给其他用户使用。

IMPORTANT

未启用管理员账户时不会运行管理页面,此时无法访问 http://localhost:8080/mgmt

文件管理#

lfs-test-server 不提供删除文件的功能。如果确定某个文件已不存在任何引用,并且不再需要该文件,需要手动查找并删除对应文件。删除文件后,使用 boltbrowser 打开 lfs.db,找到 objects 中对应的数据并删除。

本地部署简单的 Git-LFS 服务
https://blog.unknowncat2048.top/posts/deploying-git-lfs-service-locally/
作者
碌碌无为喵神SAMA
发布于
2024-10-01
许可协议
CC BY-NC-SA 4.0