本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
biblio-backoffice是根特大学学术文献系统Biblio的后台管理应用,提供对学术文献数据的管理和维护功能。该应用包含三个核心组件:服务于Web UI的Web服务器(供图书馆员和研究人员使用)、gRPC服务器以及gRPC CLI客户端(供系统管理员和数据管理员进行数据管理)。
应用需依赖以下外部服务和资源:
git clone ***:ugent-library/biblio-backoffice.git go run main.go
或构建二进制文件:
git clone ***:ugent-library/biblio-backoffice.git cd biblio-backoffice go build -o /tmp/biblio-backoffice ./tmp/biblio-backoffice # 或交叉编译,例如: GOOS=linux GOARCH=amd64 go build -o /tmp/biblio-backoffice.linux.amd64
启动Web UI服务器:
go run main.go start server
若无法连接PostgreSQL、ElasticSearch或OpenID Connect端点,服务器将报错退出。配置方法参见下文“配置说明”。
docker run --name some-backoffice -d ugentlib/biblio-backoffice:dev
建议使用docker-compose管理端口、卷、环境变量等参数。
gRPC协议需要TLS支持,当前服务器未内置TLS,需通过代理(如Traefik v2,支持Let's Encrypt)提供TLS并转发流量。gRPC服务器应直接运行在独立域名的根路径下(而非子路径),例如grpc.myapplication.tld。
启动gRPC服务器:
go run main.go api start # 或 ./tmp/biblio-backoffice api start
若无法连接PostgreSQL、ElasticSearch或OpenID Connect端点,服务器将报错退出。配置方法参见下文“配置说明”。
git clone ***:ugent-library/biblio-backoffice.git cd biblio-backoffice/client go run main.go --host <grpc.host.tld> --port <port> --username <username> --password <password>
或构建可分发的二进制文件:
git clone ***:ugent-library/biblio-backoffice.git cd biblio-backoffice go build -o /tmp/biblio-backoffice-client client/main.go ./tmp/biblio-backoffice-client # 或交叉编译,例如: GOOS=linux GOARCH=amd64 go build -o /tmp/biblio-backoffice-client.linux.amd64 client/main.go
gRPC客户端可在任何机器(如数据管理员的本地机器)上使用,支持通过凭据远程管理数据,无需与gRPC服务器在同一台机器。
配置可通过参数或环境变量传递:
通过参数传递:
go run main.go server start --session-secret mysecret
通过环境变量传递:
BIBLIO_BACKOFFICE_SESSION_SECRET=mysecret go run main.go server start
BIBLIO_BACKOFFICE_BASE_URL # 应用基础URL BIBLIO_BACKOFFICE_SESSION_SECRET # 会话密钥 BIBLIO_BACKOFFICE_FILE_DIR # 文件存储目录 BIBLIO_BACKOFFICE_FRONTEND_URL # 前端URL BIBLIO_BACKOFFICE_FRONTEND_USERNAME # 前端用户名 BIBLIO_BACKOFFICE_FRONTEND_PASSWORD # 前端密码 BIBLIO_BACKOFFICE_OIDC_URL # OpenID Connect端点URL BIBLIO_BACKOFFICE_OIDC_CLIENT_ID # OpenID Connect客户端ID BIBLIO_BACKOFFICE_OIDC_CLIENT_SECRET # OpenID Connect客户端密钥 BIBLIO_BACKOFFICE_CSRF_NAME # CSRF名称 BIBLIO_BACKOFFICE_CSRF_SECRET # CSRF密钥 BIBLIO_BACKOFFICE_ORCID_CLIENT_ID # ORCID客户端ID BIBLIO_BACKOFFICE_ORCID_CLIENT_SECRET # ORCID客户端密钥 BIBLIO_BACKOFFICE_ORCID_SANDBOX # ORCID沙盒模式(布尔值) BIBLIO_BACKOFFICE_PG_CONN # PostgreSQL连接字符串(例如:postgres://localhost:5432/biblio_backoffice?sslmode=disable) BIBLIO_BACKOFFICE_PUBLICATION_INDEX # 出版物索引名(例如:biblio_backoffice_publications) BIBLIO_BACKOFFICE_DATASET_INDEX # 数据集索引名(例如:biblio_backoffice_datasets) BIBLIO_BACKOFFICE_ES6_URL # ElasticSearch URL(例如:http://localhost:9200) BIBLIO_BACKOFFICE_MONGODB_URL # MongoDB连接URL(例如:mongodb://localhost:27017/?directConnection=true&serverSelectionTimeoutMS=2000) BIBLIO_BACKOFFICE_FRONTEND_ES6_URL # 前端ElasticSearch URL(默认:http://localhost:9200)
BIBLIO_BACKOFFICE_MODE # 运行模式(默认:production) BIBLIO_BACKOFFICE_PORT # 端口(默认:3000) BIBLIO_BACKOFFICE_HOST # 主机(默认:localhost) BIBLIO_BACKOFFICE_SESSION_NAME # 会话名称(默认:biblio-backoffice) BIBLIO_BACKOFFICE_SESSION_MAX_AGE # 会话最大存活时间(默认:86400 * 30 // 30天) BIBLIO_BACKOFFICE_HDL_SRV_ENABLED # 句柄服务启用状态(默认:false) BIBLIO_BACKOFFICE_HDL_SRV_URL # 句柄服务URL(例如:http://localhost:4000/handles) BIBLIO_BACKOFFICE_HDL_SRV_PREFIX # 句柄服务前缀(例如:1854) BIBLIO_BACKOFFICE_HDL_SRV_USERNAME # 句柄服务用户名 BIBLIO_BACKOFFICE_HDL_SRV_PASSWORD # 句柄服务密码 BIBLIO_BACKOFFICE_OAI_API_URL # OAI API URL BIBLIO_BACKOFFICE_OAI_API_KEY # OAI API密钥 BIBLIO_BACKOFFICE_TIMEZONE # 时区(默认:Europe/Brussels)
BIBLIO_BACKOFFICE_HOST # 主机 BIBLIO_BACKOFFICE_PORT # 端口 BIBLIO_BACKOFFICE_ADMIN_USERNAME # 管理员用户名 BIBLIO_BACKOFFICE_ADMIN_PASSWORD # 管理员密码 BIBLIO_BACKOFFICE_CURATOR_USERNAME # 数据管理员用户名 BIBLIO_BACKOFFICE_CURATOR_PASSWORD # 数据管理员密码 BIBLIO_BACKOFFICE_INSECURE # 不安全模式(默认:false) BIBLIO_BACKOFFICE_TIMEOUT # 超时时间(默认:5s)
BIBLIO_BACKOFFICE_HOST # 服务器主机 BIBLIO_BACKOFFICE_PORT # 服务器端口 BIBLIO_BACKOFFICE_USERNAME # 客户端用户名 BIBLIO_BACKOFFICE_PASSWORD # 客户端密码 BIBLIO_BACKOFFICE_INSECURE # 不安全模式(默认:false)
本项目使用wgo监听文件变化并自动重新编译应用和资源:
cd biblio-backoffice make dev # 或 npm run dev
项目包含Cypress集成测试:
npm test
cypress/cypress-record.sh.example复制为cypress/cypress-record.sh./cypress/cypress-record.sh
npm run cypress:open
安装Node依赖:
npm install
使用wgo时资源会自动重新编译(见上文“开发环境搭建”)。手动构建资源:
node esbuild.mjs # 或 npm run build:assets
详细参考esbuild文档。
go install github.com/jackc/tern@latest cd etc/pg/migrations PGDATABASE=biblio_backoffice tern migrate
更多信息参见tern文档。PostgreSQL环境变量说明参见PostgreSQL文档。
本项目支持开发容器,可快速搭建容器化开发环境。
cp .devcontainer.env.example .devcontainer.env
make dev
应用启动后,VS Code会弹出链接,点击即可在浏览器中访问项目。
应用及依赖服务运行端口如下:
| 应用 | 端口 |
|---|---|
| Biblio后台管理 | 3001 |
| Mock OIDC | 3002 |
| 数据库应用 | 3051 |
| ElasticSearch | 3061 |
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429