GithubHelp home page GithubHelp logo

omaha-consulting / winget.pro Goto Github PK

View Code? Open in Web Editor NEW
98.0 98.0 13.0 235 KB

Home Page: https://winget.pro

License: GNU Affero General Public License v3.0

Python 79.48% Shell 12.67% HTML 7.44% Dockerfile 0.41%
django package-manager python windows windows-package-manager winget winget-repository

winget.pro's People

Contributors

farhansolodev avatar mherrmann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

winget.pro's Issues

Could we have ProductCode key returned inside Installers as response for Manifests ?

Hi,
I am testing this great product for last weeks. It its great and could expand the possibilities of Enterprises.

There is one missing feature If I may add. Each time new Installer is uploaded to winget.pro, there should be optionally a ProductCode Identifier. This way when winget.pro replies to API queries from clients, inside the response JSON could include into Installers section the field ProductCode, then WinGet on the System will identify if the program already installed on the system is the one available on the winget.pro Winget repository.

Transitioning from current to winget.pro will be very hard if this is not implemented, since although all current programs already installed on systems are available on winget.pro, launching "winget ls" it doesn't recognize because is missing Product Code ID.

Thanks,

Path Issues while building the Container

There are some path issues in the Dockerfile that appear at the docker compose up.

One issue was that the requirements folder with the base-full.txt was not in the /run/docker folder which i fixed by copying this folder from the top level to the /run/docker folder.

The other path issue shows up some steps later:

[+] Building 15.5s (10/11)                                                                               docker:default
 => [django internal] load build definition from Dockerfile                                                        0.1s
 => => transferring dockerfile: 32B                                                                                0.0s
 => [django internal] load .dockerignore                                                                           0.2s
 => => transferring context: 34B                                                                                   0.0s
 => [django internal] load metadata for docker.io/library/python:3.9                                               0.8s
 => [django 1/7] FROM docker.io/library/python:3.9@sha256:5c72dd8986db8c289ad1a6514319c144ed8f72c6dd702873c435844  0.0s
 => [django internal] load build context                                                                           0.1s
 => => transferring context: 908B                                                                                  0.0s
 => CACHED [django 2/7] WORKDIR /srv                                                                               0.0s
 => [django 3/7] COPY . .                                                                                          0.1s
 => [django 4/7] RUN mkdir `dirname /srv/db/db.sqlite3`                                                            0.6s
 => [django 5/7] RUN pip install --no-cache-dir -Ur requirements/base-full.txt                                    13.0s
 => ERROR [django 6/7] RUN python manage.py collectstatic --noinput                                                0.6s
------
 > [django 6/7] RUN python manage.py collectstatic --noinput:
0.580 python: can't open file '/srv/manage.py': [Errno 2] No such file or directory
------
failed to solve: executor failed running [/bin/sh -c python manage.py collectstatic --noinput]: exit code: 2

This i also tried to fix by copying the manage.py to different locations and/or changing the WORKDIR location. After removing the WORKDIR completly i stucked at this:

root@SRV-CON1:/home/wgpro/run/docker# docker compose up
[+] Building 16.1s (9/10)                                                                                docker:default
 => [django internal] load build definition from Dockerfile                                                        0.1s
 => => transferring dockerfile: 416B                                                                               0.0s
 => [django internal] load .dockerignore                                                                           0.1s
 => => transferring context: 34B                                                                                   0.0s
 => [django internal] load metadata for docker.io/library/python:3.9                                               1.0s
 => [django internal] load build context                                                                           0.1s
 => => transferring context: 937B                                                                                  0.0s
 => CACHED [django 1/6] FROM docker.io/library/python:3.9@sha256:5c72dd8986db8c289ad1a6514319c144ed8f72c6dd702873  0.0s
 => [django 2/6] COPY . .                                                                                          0.2s
 => [django 3/6] RUN mkdir `dirname /srv/db/db.sqlite3`                                                            0.6s
 => [django 4/6] RUN pip install --no-cache-dir -Ur requirements/base-full.txt                                    13.3s
 => ERROR [django 5/6] RUN python manage.py collectstatic --noinput                                                0.8s
------
 > [django 5/6] RUN python manage.py collectstatic --noinput:
0.673 Traceback (most recent call last):
0.673   File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 237, in fetch_command
0.674     app_name = commands[subcommand]
0.674 KeyError: 'collectstatic'
0.674
0.674 During handling of the above exception, another exception occurred:
0.674
0.674 Traceback (most recent call last):
0.674   File "//manage.py", line 22, in <module>
0.674     main()
0.674   File "//manage.py", line 18, in main
0.674     execute_from_command_line(sys.argv)
0.674   File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
0.674     utility.execute()
0.674   File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 413, in execute
0.674     self.fetch_command(subcommand).run_from_argv(self.argv)
0.674   File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 244, in fetch_command
0.674     settings.INSTALLED_APPS
0.674   File "/usr/local/lib/python3.9/site-packages/django/conf/__init__.py", line 82, in __getattr__
0.674     self._setup(name)
0.674   File "/usr/local/lib/python3.9/site-packages/django/conf/__init__.py", line 69, in _setup
0.674     self._wrapped = Settings(settings_module)
0.674   File "/usr/local/lib/python3.9/site-packages/django/conf/__init__.py", line 170, in __init__
0.674     mod = importlib.import_module(self.SETTINGS_MODULE)
0.674   File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
0.674     return _bootstrap._gcd_import(name[level:], package, level)
0.674   File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
0.674   File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
0.674   File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
0.674   File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
0.674   File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
0.674   File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
0.674   File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
0.675 ModuleNotFoundError: No module named 'core'
------
failed to solve: executor failed running [/bin/sh -c python manage.py collectstatic --noinput]: exit code: 1

Would be nice if you can correct this.
Thanks!

Please log in at /admin for instructions.

When I send GET request to repository URL, it says:
Please log in at /admin for instructions.

It gives information about application and it might be a security vulnerability. Can we disable this response?

Removing A Version Does Not Remove Asset From The File System

Summary
Checking the "delete" checkbox in the version area if a package and removing does not remove the asset from the file system.

Version:
VPS on Ubuntu minimal install (ubuntu-22.04.2-live-server-amd64.iso).
Sorry I couldn't find the version of WinGetPro from the web interface, but I installed on the Monday 5th Feb.

Actions to reproduce:

  1. WinGetPro web interface, add package.
  2. WinGetPro web interface, add version.
  3. SSH session, ls /srv/media/tenantguid shows the package uploaded.
  4. WinGetPro web interface, remove version, check/tick checkbox for "Delete". Procced by clicking "Remove" or "Save"
  5. SSH session, ls /srv/media/tenantguid package asset should be removed.

Expectation:
Version marked for deletion with "Delete" should also remove the asset from the directory.

Actual outcome:
Asset still located in directory.

Side notes:
I thought there could be a internal task, or cron job just that does the clean-up, but I have left it for a week and the old assets are still located in the /srv/media/tenantguid. I noticed the removal of the assets issue in the VPS and local version, I only used the local version for a few days though.

413 Request Entity Too Large

Hi there,

When I try to upload the installer - in this case Mozilla Firefox, I get this error 413 Request Entity Too Large

I have installed winget pro via docker.

CSS Formatting broken

I was testing the packages and installers, everything was working, I installed and uninstalled a few packages and now my formatting is broken.
Is there anyway I can fix it or do I have to reinstall?
Im running the winget.pro app via docker.
Screenshot 2024-02-02 011208

Just a question for understanding

Hi there,

Could you please explain how these options work or point me towards any documentation that might be available. Or are they just for the reference to remember the flags.
Screenshot 2024-02-20 001814

Is there an option to force install or silent install for the packages available on the internet or are they always going to be interactive installations. Just wanted to clarify that. I've tried using the silent switch in winget from my private repo but the free software i was using was downloaded from the internet and it always comes up with an interactive installation prompt.

Docker Implementation not Woking

It might just be me but for some reason i cant get the Docker Implementation up and Running. I´m trying to build with the following URL: docker build https://github.com/omaha-consulting/winget.pro.git#main:run/docker the Downloads works fine but when it gets to the Point Dockerfile Line 14 "RUN pip install --no-cache-dir -Ur requirements/base-full.txt" i get a error that there is no such file.

As i said it´s maybe just me. Any help is appreciated. Thanks in advance.

Wrong download URL (deployed with described test SSL Proxy)

I deployed the project with docker desktop as described (with the SSL Proxy for testing purpose).

Two small suggestions first:
I was able to add the source via the URL written on the Home/Welcome page, however only after adding the port of the SSL proxy. Can that be changed? Might have to do with my actual problem...

I also had to edit the nginx.config by adding "client_max_body_size 500M" so it would allow me to upload my file for testing (gimp, around 300 MB). Am I right to assume, that this change is kinda mandatory, as long as I'm uploading bigger files? - already fixed

I hope it's ok to put these two (small) issues in here, since I expect them to be easy fixes.

But now for my main problem:
When running a script that basically runs "winget install --exact --silent Gimp.Gimp --source localhost --accept-package-agreements" It finds the package at the repository and tries to download it, but fails to do so, since the download URL doesn't contain the port.
Where does winget.pro get the root URL it passes to winget from? Am I missing something, or does the download just not work in this SSL Proxy test environment?

I guess it's not a problem when you have a setup with a proper Proxy (HTTPS under the usual port 443), but right now the download URL it passes is http and without the needed port (8000 or probably 8443 so winget doesn't complain) so it fails with a 404.

Change unique URL of the repository

Current format for repository URL is: https://<server_address>/<random_string>
Can we change this URL? For example https://<server_address>/winget or directly https://<server_address>

Rogue symlink

.dockerignore in repository's root appears to be a symlink to non-existing file

Feature: Add overrideable cookie settings

Hi guys, thanks for all the great work!

May I suggest adding cookie settings in settings.py? The default session cookie expires after two weeks, but for security it might be better when we reduce that and only extended after each request within the expiry period?

SESSION_COOKIE_AGE = 180 # 3 minutes
SESSION_SAVE_EVERY_REQUEST = True # "False" by default

Perhaps this is configurable via enviroment variable?

Failure at Docker Compose Up - Cannot find Dockerfile

I get following error when i try to spinup the Container:

root@SRV-CON1:/home/wingetpro# docker compose up
[+] Building 0.1s (2/2) FINISHED                                                                         docker:default
 => [django internal] load build definition from Dockerfile                                                        0.1s
 => => transferring dockerfile: 2B                                                                                 0.0s
 => [django internal] load .dockerignore                                                                           0.1s
 => => transferring context: 2B                                                                                    0.0s
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount369694079/Dockerfile: no such file or directory

I have all the files in my wingetpro directory. I also tried to create the directory /var/lib/docker/tmp/buildkit-mount369694079 and moved the Dockerfile there but still the same error.
I also tried the tips here:
docker/for-win#8781

But all this didn't help.
I was able to spinup other containers on this host with docker compose and dockerfile in the same directory already.

Can you provide me some help/guidance here?
Thanks for your help!

winget trying to download binary from HTTP instead of HTTPS

Using dockers run of winget.pro. and external F5 LB as reverse proxy listening on HTTPS (443) redirecting traffic to HTTP (8000).

Everything works on clients but when trying to install any package, there is this GET:

Sending http GET request to: https://winget.mydomain.local/42f927d0-38ad-43ff-bafe-81260355ce61/packageManifests/MyProgram?Version=2.9

Then after I see this:
DeliveryOptimization downloading from url: http://winget.mydomain.local/media/42f927d0-38ad-43ff-bafe-81260355ce61/MyProgram-LpqmRpf6Ms.exe

Note that winget using HTTPS, but when winget is trying to download the package, then I see the HTTP in the download url.

Package manifest

Hello!

This is not really an issue but I got a task to add manifests to Winget.Pro programmatically.
How can I do that?

Thank you.

Feat: Tags

Feature request:
Would be nice have the ability to add "tags" to/when creating a "package" in WinGetPro. Handy to cover those oddball application names that have no bearing on the function of the application.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.