Welcome!
{% if request.user.tenant_set.get.uuid %}Use the Winget link on the left to add packages and versions.
- A package is an application, such as Visual Studio Code.
- A version is a specific release of a package, such as 1.2.3.4.
- Every version has at least one installer. These are often .exes that install the version on a user's system.
To set up your repository on a system, use your unique URL
https://{{ request.get_host }}{% url 'winget:index' tenant_uuid=request.user.tenant_set.get.uuid %}:
winget source add -n {{ request.get_host }} -a https://{{ request.get_host }}{% url 'winget:index' tenant_uuid=request.user.tenant_set.get.uuid %} -t "Microsoft.Rest"
This creates a winget source with name
{{ request.get_host }}.
To install a package from this source, use the following
command:
winget install <your package name> -s {{ request.get_host }}
To play with this, you can for example install the open source WinMerge tool:
- Create a package with name WinMerge and identifier WinMerge.WinMerge here. The name and identifier must be exactly as shown here.
- Add version 2.16.26 for WinMerge, uploading its official installer. Select x64 as Architecture and user as Scope. Also pick Type inno. This passes the right flags to this installer for performing the installation silently, i.e. without showing a GUI.
-
Install your package with
winget install winmerge -s {{ request.get_host }}.
Note how the installation does not require admin privileges. This is because we selected the user Scope and because the installer performs a per-user installation.
To test updates, you can perform the following steps:
- Add another version: 2.16.28. Upload the associated installer.
-
Upgrade your package via:
winget upgrade winmerge -s {{ request.get_host }}
This should download and install the newer version.
To uninstall WinMerge again, you can use the following command:
winget uninstall winmerge
And to remove the winget source you added at the beginning, you can use:
winget source remove {{ request.get_host }}
If you are interested in uploading versions programmatically, you can also use the explorable REST API.
{% elif request.user.is_superuser %}It seems that you are a superuser but do not have a tenant associated with your account. You should probably create a non-superuser with an associated tenant. Alternatively, you can also create and associate a tenant with your superuser account.
To create a non-superuser, click
here. Once you
have created the user, enable their Staff status.
Also give it all permissions that are prefixed with
winget. Make sure to finally Save your
changes to the user account.
This server can host multiple repositories. Every repository is associated with a tenant. The user we created (or your superuser account) still needs to be associated with a tenant to be able to upload versions.
To create a tenant, click here. Select the appropriate user. Once you have done this, they can upload packages. When they log in, they will also see their private repository URL.
{% else %}It seems that something went wrong. You are not a superuser and there is no tenant associated with your account.
{% endif %}If you have any questions, feel free to contact us at support@winget.pro.