小言_互联网的博客

一款轻量级的NuGet服务器

274人阅读  评论(0)

一、简介

BaGet (发音为“baguette”) 是一个轻量级的 NuGet、Symbol 服务器。它是开源的、跨平台的和云化的,可以运行再自己得电脑、Docker、Azure、AWS、Google Cloud 、Alibaba Cloud (Aliyun) 等。支持 MySQL、SQLite:、SqlServer、PostgreSQL、Azure Table Storage 这些数据存储方式。

二、部署

BaGet 部署有两种方式,一种是使用 BaGet 已经准备好的 Applicatio 发布文件,另一种是使用 Source Code 自己进行发布,当然第一种相对简单,也是常用的部署方式。

2.1 Realease

在 GitHub 找到 BaGet 仓库,如下图点击 “BaGet latest realease” 进行下载 BaGet 官方提供的 realease 文件

跳转到下面页面后,点击 BaGet.zip 进行下载 BaGet 发布的程序文件

下载完成后 ,对 BaGet.zip 解压, 可以看到程序的发布文件,可以部署到自己想部署的地方,如下图

试着在本地运行一下看看,在 Windows Terminal 中打开,然后运行下面命令,可以看到已经启动,通过本地 5000、5001 端口即可访问

dotnet BaGet.dll


访问 http://localhost:5000/ 可以看到如下界面,是不是与 nuget.org web 很像,这里可以查询我们的包等操作

如果有的小伙伴想装 B,隐藏 BaGet 标识,在 BaGet\wwwroot_content\BaGet.Web\css\site.css 添加下面 css 代码,即可把 BaGet 相关的链接隐藏

.main-container > div:last-child {
   
    display: none;
}
.navbar-nav > li:last-child {
   
    display: none;
}

2.2 Source code

源码的方式,其实也就是自己发布一下 Source code 程序,好处是自己可以对 Source code 进行修改进行定制





三、Packages、DB

packages 文件夹,存储着 push 的包文件,这个文件夹及文件夹内的文件不可删除,删除或者丢失后会导致包下载失败

DB 文件,在没有配置在线数据库的情况下,会使用默认的 SQLite DB,其文件存储在发布文件目录下,名为 baget.db 存储着包的各种信息,用于查询包信息使用,SQLite DB 文件可以使用 SQLiteSpy 进行查看



四、配置

BaGet 也有一些非常多得配置,如 ApiKey、复推策略、包存储介质等

4.1 ApiKey

ApiKey 用于安全问题, push 包时候的一个密码,可以防止不让别人随便推送。如下:

{
   
    "ApiKey": "NUGET-SERVER-API-KEY",
    ...
}

4.2 覆盖

正常情况下,push 一个包,如果 id 和版本已经被占用,是推送不上去的。可以通过设置来配置 BaGet 覆盖已经存在的包。如下:

{
   
    ...
    "AllowPackageOverwrites": true,
    ...
}

4.3 包存储

包的存储,默认是存储在程序目录下面,也可以配置 OSS 进行存储。如下:

{
   
    ...
  "Storage": {
   
    "Type": "FileSystem",
    "Path": ""
  },
    ...
}  
{
   
    ...
    "Storage": {
   
        "Type": "AliyunOss",
        "Endpoint": "oss-us-west-1.aliyuncs.com",
        "Bucket": "foo",
        "AccessKey": "",
        "AccessKeySecret": "",
        "Prefix": "lib/baget" // optional
    },
    ...
}

转载:https://blog.csdn.net/weixin_46785144/article/details/123925455
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场