BaGet安装记录

烂柯 发布于 2023-04-26 156 次阅读


一、BaGet

BaGet(发音为“baguette”)是一个轻量级、开源、跨平台的NuGet 和符号服务器。

二、docker安装

以下环境变量可通过映射appsettings.json文件进行配置

docker run --name nuget-server \
-d -p 81:80 \
-e Storage__Type=FileSystem \
-e Storage__Path=/var/baget/packages \
-e Database__Type=Sqlite \
-e Database__ConnectionString="Data Source=/var/baget/baget.db" \
-e Search__Type=Database \
-v "/mnt/disk1/docker/nuget:/var/baget" \
loicsharma/baget:latest

配置ssl

:配置ssl,可通过nginx代理和容器内部使用ssl两种方式进行配置,nginx使用pem格式证书、容器运行设置使用pfx格式证书

方案一、 nginx代理设置ssl(推荐)

server {
    listen 81 ssl http2;
    server_name nuget.com;
    location / {
        proxy_pass http://127.0.0.1;
        #登录验证
        #auth_basic "Login";
        #auth_basic_user_file BAGET/.htpasswd;
        #*通过过滤器替换json中的地址*
        sub_filter_once off;
        sub_filter_types application/json;
        sub_filter 'http://127.0.0.1' 'https://$host:81';
    }
    ssl_certificate    /www/server/panel/vhost/cert/nuget.com/fullchain.pem;
    ssl_certificate_key  /www/server/panel/vhost/cert/nuget.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
}

方案二、容器运行设置ssl

docker run --name baget-test \
-d -p 71:80 -p 72:443 \
-e ASPNETCORE_URLS="https://+:443;http://+:80" \
-e ASPNETCORE_Kestrel__Certificates__Default__Password=password \
-e ASPNETCORE_Kestrel__Certificates__Default__Path=/root/.aspnet/DataProtection-Keys/cert.p12 \
-e Storage__Type=FileSystem \
-e Storage__Path=/var/baget/packages \
-e Database__Type=Sqlite \
-e Database__ConnectionString="Data Source=/var/baget/baget.db" \
-e Search__Type=Database \
-v /mnt/disk1/docker/nuget:/var/baget \
-v /root/test:/root/.aspnet/DataProtection-Keys \
loicsharma/baget
#环境变量均可通过映射appsettings.json文件进行配置(环境变量单下划线前者一般只是前缀,双下划线一般后者为前者其子对象)
#如:ASPNETCORE_Kestrel__Certificates__Default__Password=>{"Kestrel":{"Certificates":{"Default":{"Password":"changeit"}}}}

证书方案:mkcert、Certbot(let's encrypt管理工具)

烂柯

最后更新于 2023-04-26