Skip to content

AiursoftWeb/WingetCommunityServer

Repository files navigation

Winget Community Server

MIT licensed Pipeline stat Test Coverage ManHours Docker

Winget Community Server is a community server for Microsoft's winget

Run in Ubuntu

The following script will install\update this app on your Ubuntu server. Supports Ubuntu 22.04.

On your Ubuntu server, run the following command:

curl -sL https://gitlab.aiursoft.cn/aiursoft/WingetCommunityServer/-/raw/master/install.sh | sudo bash

Of course it is suggested that append a custom port number to the command:

curl -sL https://gitlab.aiursoft.cn/aiursoft/WingetCommunityServer/-/raw/master/install.sh | sudo bash -s 8080

It will install the app as a systemd service, and start it automatically. Binary files will be located at /opt/apps. Service files will be located at /etc/systemd/system.

Run manually

Requirements about how to run

  1. Install .NET 8 SDK and Node.js.
  2. Execute npm install at wwwroot folder to install the dependencies.
  3. Execute dotnet run to run the app.
  4. Use your browser to view http://localhost:5000.

Run in Microsoft Visual Studio

  1. Open the .sln file in the project path.
  2. Press F5 to run the app.

Run in Docker

First, install Docker here.

Then run the following commands in a Linux shell:

image=hub.aiursoft.cn/aiursoft/wingetcommunityserver
appName=WingetCommunityServer
sudo docker pull $image
sudo docker run -d --name $appName --restart unless-stopped -p 5000:5000 -v /var/www/$appName:/data $image

That will start a web server at http://localhost:5000 and you can test the app.

The docker image has the following context:

Properties Value
Image hub.aiursoft.cn/aiursoft/WingetCommunityServer
Ports 5000
Binary path /app
Data path /data
Config path /data/appsettings.json

How to connect with Winget client

First, you need to know the endpoint of your server. For example, https://localhost:8080/api.

Then, you need to add the source to your winget client.

winget source add -n local-server https://localhost:8080/api -t Microsoft.Rest

⚠️ Winget enforce trusted HTTPS connection!!! To debug locally, you need to use your own certificate and add it to your trusted root certificate store.

Now you can search and install packages.

winget search vlc --source local-server
winget install vlc --source local-server

Additional tips

To view the added source:

winget source list --name local-server

You can delete existing system sources via:

winget source remove winget
winget source remove msstore

To reset everything to default:

winget source reset --force

How to contribute

There are many ways to contribute to the project: logging bugs, submitting pull requests, reporting issues, and creating suggestions.

Even if you with push rights on the repository, you should create a personal fork and create feature branches there when you need them. This keeps the main repository clean and your workflow cruft out of sight.

We're also interested in your feedback on the future of this project. You can submit a suggestion or feature request through the issue tracker. To make this process more effective, we're asking that these include more information to help define them more clearly.