No description
Find a file
Kumi 23071d36f2
Added Docker setup for pyfiche services
Introduced a Dockerfile to containerize pyfiche alongside its dependencies. The setup includes the latest Python, installs pyfiche from a Git repository, and utilizes Supervisord for process management. Supervisord is configured to manage three pyfiche services: server, recup, and lines, ensuring they start on boot and restart on failure. Exposed ports allow external access, and a persistent data volume ensures data continuity. This encapsulates the pyfiche environment, providing a robust and consistent deployment method.
2024-01-22 09:18:32 +01:00
src/pyfiche Add index page for PyFiche Lines server 2024-01-22 08:39:37 +01:00
.gitignore Add PyFiche pastebin service with servers and configs 2024-01-21 21:38:17 +01:00
Dockerfile Added Docker setup for pyfiche services 2024-01-22 09:18:32 +01:00
LICENSE Add PyFiche pastebin service with servers and configs 2024-01-21 21:38:17 +01:00
pyproject.toml Add PyFiche pastebin service with servers and configs 2024-01-21 21:38:17 +01:00
README.md Add max paste size option to PyFiche README 2024-01-22 08:46:13 +01:00
supervisord.conf Added Docker setup for pyfiche services 2024-01-22 09:18:32 +01:00

PyFiche

PyFiche is a simple pastebin optimized for the command line, written in Python and heavily inspired by fiche, or rather a shameless translation. It has no dependencies outside the Python standard library.

It also comes with a re-implementation of Lines, the HTTP server that comes with Fiche, which this time around also allows you to upload files using POST requests. Additionally, PyFiche also comes with a simple TCP server, Recup, to download pastes through netcat without using HTTP(S), in the same way you upload them.

Installation

Dependencies

  • Python 3 (tested with 3.11)

Local Installation

$ python -m venv venv
$ source venv/bin/activate
$ pip install -U git+https://kumig.it/PrivateCoffee/pyfiche.git

Usage

Fiche Server

$ source venv/bin/activate
$ pyfiche-server # try --help for options

With the exception of the -u option, all arguments of the original Fiche should work as expected. -u is not implemented because, well, just use the right user in the first place. 🤷‍♀️

Additionally, PyFiche also supports the -M option, which allows you to specify a maximum paste size in bytes. The default is 5 MiB.

Use -h to see all options.

Uploading files

$ nc <server> <port> < <file>

Recup Server

$ source venv/bin/activate
$ pyfiche-recup # try --help for options

Downloading files

Pipe the ID of an uploaded file to nc:

$ echo <id> | nc <server> <port> > <file>

Lines Server

$ source venv/bin/activate
$ pyfiche-lines # try --help for options

Viewing pastes in a browser

Go to http://<server>:<port>/<id>.

Downloading raw pastes

$ curl http://<server>:<port>/<id>/raw

Uploading pastes

$ curl -X POST -d '<paste content>' http://<server>:<port>

Or use a file:

$ curl -X POST -d @<file> http://<server>:<port>

License

PyFiche is licensed under the MIT license. See the LICENSE file for more information.