nginx is a really powerful software, but it requires non-trivial configuration and its own working directory. Command-line configuration is possible but verbose.
inginx creates a temporary working directory and assembles an nginx configuration optimized for common use cases.
[!TIP] The name “inginx” is derived from “instant nginx”
Examples
Serve file system
Serve a directory ./dir on 8787
inginx --serve ./dir --listen 0.0.0.0:8787
Output:
Running /usr/bin/freenginx in /tmp/tmpu8151mtc
127.0.0.1 - - [25/Aug/2025:11:18:50 +0200] "GET / HTTP/1.1" 200 263 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
....
Reverse proxy
Start a reverse proxy up to https://echo.free.beeceptor.com on 8080
inginx --reverse https://echo.free.beeceptor.com --listen 0.0.0.0:8080
Output:
Running /usr/bin/freenginx in /tmp/tmpo66xmvm_
127.0.0.1 - - [25/Aug/2025:11:21:03 +0200] "GET / HTTP/1.1" 200 844 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0"
...
Common Flags
-
--serve <directory>- Serve a local filesystem directory -
--reverse <remote>- Set up a reverse proxy -
--listen <address[:port]>- Tell Nginx what address/port to use
Installation
This is a self-contained script that has no dependencies, besides nginx itself. It is aiming to work on as old Python as 3.7.
Managed installation (uvx, pipx)
Ideal solution, but needs uvx, or pipx pre-installed.
uvx inginx --help
pipx install inginx
inginx --help
pip
pip install --user inginx --break-system-packages
[!WARNING] This is generally not recommended. It will work and not break anything in this case because inginx does not have any dependencies.
Manual
wget https://raw.githubusercontent.com/richard-hajek/inginx/refs/heads/main/inginx/inginx.py -O ~/.local/bin
chmod +x ~/.local/bin/inginx
[!WARNING] Check that ~/.local/bin is in your path by doing echo $PATH and checking, with your eyes, if '.local/bin' is there
If not, good luck, have fun, see https://askubuntu.com/questions/440691/add-a-binary-to-my-path for detailed instructions how to manage your $PATH
Advanced configuration
This tool is not indended for advanced configuration. It will however provide you with a good starting point. If you want to further customize the nginx instance, do
mkdir ./prefix
cd ./prefix
inginx <your configuration> --dry > nginx.conf
and then make any changes you want to the generated nginx.conf
And run your nginx with
nginx -p $(realpath .) -c $(realpath ./nginx.conf)
nginx binary
This software officially supports and recommends freenginx. It was built and tested for freenginx/1.29.0
Metadata
Release files for inginx 0.3.19
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| inginx-0.3.19.tar.gz | 4.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| inginx-0.3.19-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.2 kB
Release files / inginx-0.3.19.tar.gz
| Download URL | inginx-0.3.19.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
258582d7c12c50aa1979956394b4f6a2d27a1b31776be66e7448b3f933da938a
|
|
BLAKE2b-256 checksum How to use checksums |
b08cd5a87e7aa98bed6c847a1ad58391e505eb0055df99e42fc51c59bb759a99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.
Transparency logRelease files / inginx-0.3.19-py3-none-any.whl
| Download URL | inginx-0.3.19-py3-none-any.whl |
|---|---|
| Size | 5.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
85cafd749a582e6a8aad24aba716008c398dead812d6c234e1f1952936642534
|
|
BLAKE2b-256 checksum How to use checksums |
b23c1615bde712736ac71201e926e39c229f6a35e34d883d3f0fa4afe54d412a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.
Transparency log