A Python-based NuGet Server
Project description
=======
pynuget
=======
.. image:: https://img.shields.io/travis/dougthor42/pynuget.svg
:alt: Travis
:target: https://travis-ci.org/dougthor42/pynuget
A port of Daniel15's `simple-nuget-server`_ because I
don't know PHP or Nginx. Runs on Flask and Apache. Python 3.5+
.. _simple-nuget-server: https://github.com/Daniel15/simple-nuget-server/
Installation
------------
1. Install the Prerequisites
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you're savvy, you could use nginx instead. I am not savvy.
.. code-block:: shell
$ sudo apt install apache2
$ sudo apt install libapache2-mod-wsgi-py3
2. Create a Virtual Environment
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is highly recommended. I also haven't bothered to figure out how to do
a non-venv install so... If you want to do that you're on your own! When
you figure it out, please submit a PR for this documentation. :smile:
.. code-block:: shell
$ python3 -m venv /usr/local/venv-pynuget/ # or anywhere
$ . /usr/local/venv-pynuget/bin/activate
3. Install the Package
^^^^^^^^^^^^^^^^^^^^^^
If I've done things correctly, all the requirements should be automatically
installed.
.. code-block:: shell
$ pip install pynuget
4. Run the Initial Setup Script
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To (hopefully) make things easier, I've included a CLI command that
initializes the server with some reasonable defaults. This is pretty
undocumented at this time, but my hope is that it will eventually support
full customization of the server.
.. code-block:: shell
$ sudo -E /usr/local/venv-pynuget/bin/pynuget init
.. important::
Note the ``-E`` flag on ``sudo``! This preserves environment variables.
We're specifically interested in the ``VIRTUAL_ENV`` variable, as that's
needed to update the WSGI file.
.. note::
TODO: Instructions for a system install.
+ Sorry that this needs sudo! I haven't come up with a better way
around this. Suggestions or PRs welcome!
+ This will do various things including but not limited to:
+ Creating ``/var/www/pynuget``, populating it with the WSGI file and
repository folders and adjusting permissions
+ Copying over the example apache config and enabling the site
+ Restarting apache
5. Test Things
^^^^^^^^^^^^^^
1. ``curl localhost`` should return a short blurb about nuget
2. On Windows::
nuget.exe push Foo.nupkg -ApiKey YourApiKey -Source http://your.server.com
3. On Linux with Mono::
mono /path/to/nuget.exe push Foo.nupkg -ApiKey YourApiKey -Source http://your.server.address
4. If your server has a Window manager, you can open up a web browser and
navigate to ``http://localhost`` and you should see the PyNuGet landing
page.
6. Change your Secrets!
^^^^^^^^^^^^^^^^^^^^^^^
Make sure to change your secret keys to random values. One way to do so is
outlined in the `flask tutorial`_. You'll need to change 2 values in
``/var/www/pynuget/config.py``::
SECRET_KEY
API_KEYS
pynuget
=======
.. image:: https://img.shields.io/travis/dougthor42/pynuget.svg
:alt: Travis
:target: https://travis-ci.org/dougthor42/pynuget
A port of Daniel15's `simple-nuget-server`_ because I
don't know PHP or Nginx. Runs on Flask and Apache. Python 3.5+
.. _simple-nuget-server: https://github.com/Daniel15/simple-nuget-server/
Installation
------------
1. Install the Prerequisites
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you're savvy, you could use nginx instead. I am not savvy.
.. code-block:: shell
$ sudo apt install apache2
$ sudo apt install libapache2-mod-wsgi-py3
2. Create a Virtual Environment
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is highly recommended. I also haven't bothered to figure out how to do
a non-venv install so... If you want to do that you're on your own! When
you figure it out, please submit a PR for this documentation. :smile:
.. code-block:: shell
$ python3 -m venv /usr/local/venv-pynuget/ # or anywhere
$ . /usr/local/venv-pynuget/bin/activate
3. Install the Package
^^^^^^^^^^^^^^^^^^^^^^
If I've done things correctly, all the requirements should be automatically
installed.
.. code-block:: shell
$ pip install pynuget
4. Run the Initial Setup Script
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To (hopefully) make things easier, I've included a CLI command that
initializes the server with some reasonable defaults. This is pretty
undocumented at this time, but my hope is that it will eventually support
full customization of the server.
.. code-block:: shell
$ sudo -E /usr/local/venv-pynuget/bin/pynuget init
.. important::
Note the ``-E`` flag on ``sudo``! This preserves environment variables.
We're specifically interested in the ``VIRTUAL_ENV`` variable, as that's
needed to update the WSGI file.
.. note::
TODO: Instructions for a system install.
+ Sorry that this needs sudo! I haven't come up with a better way
around this. Suggestions or PRs welcome!
+ This will do various things including but not limited to:
+ Creating ``/var/www/pynuget``, populating it with the WSGI file and
repository folders and adjusting permissions
+ Copying over the example apache config and enabling the site
+ Restarting apache
5. Test Things
^^^^^^^^^^^^^^
1. ``curl localhost`` should return a short blurb about nuget
2. On Windows::
nuget.exe push Foo.nupkg -ApiKey YourApiKey -Source http://your.server.com
3. On Linux with Mono::
mono /path/to/nuget.exe push Foo.nupkg -ApiKey YourApiKey -Source http://your.server.address
4. If your server has a Window manager, you can open up a web browser and
navigate to ``http://localhost`` and you should see the PyNuGet landing
page.
6. Change your Secrets!
^^^^^^^^^^^^^^^^^^^^^^^
Make sure to change your secret keys to random values. One way to do so is
outlined in the `flask tutorial`_. You'll need to change 2 values in
``/var/www/pynuget/config.py``::
SECRET_KEY
API_KEYS
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pynuget-0.2.5.tar.gz
(24.7 kB
view details)
Built Distribution
pynuget-0.2.5-py3-none-any.whl
(29.9 kB
view details)
File details
Details for the file pynuget-0.2.5.tar.gz
.
File metadata
- Download URL: pynuget-0.2.5.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7f64830fe5b678e870a24251e0e599201604d2c06f27af72ee34a0e99a6c53c |
|
MD5 | 08bdf261f4d92cc62f67cb6562a38a0a |
|
BLAKE2b-256 | 1d307f184a15798f36111a7ae149d758b6e6b948001a2589383b76a9c5c1f89e |
File details
Details for the file pynuget-0.2.5-py3-none-any.whl
.
File metadata
- Download URL: pynuget-0.2.5-py3-none-any.whl
- Upload date:
- Size: 29.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d0916f90f9ee848575efaea973e0b19675b9d0485b4c636fa647972be3fcb85 |
|
MD5 | d94257e23e11c53bd36550f9df6acc15 |
|
BLAKE2b-256 | 093fb4fd189716bcbb16a65ab3c2fc91d54fec6e942b4c97aadc48acbe3a0da2 |