一、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管理工具)
Comments NOTHING