86 lines
2.2 KiB
Markdown
86 lines
2.2 KiB
Markdown
# Paf'Pastèque
|
|
|
|
## About
|
|
|
|
**Pasteque** is a free and open source (MIT License) **Pastebin like**
|
|
application written in Python/Django.
|
|
|
|
An instance can be found at: [p.afpy.org](https://p.afpy.org). The AFPy
|
|
instance is installed by ansible, the role is available here:
|
|
[https://git.afpy.org/AFPy/infra/src/branch/main/roles/pasteque](https://git.afpy.org/AFPy/infra/src/branch/main/roles/pasteque).
|
|
|
|
|
|
## Features
|
|
|
|
- Support any database supported by Django (Sqlite3, MySQL, PostgreSQL, Oracle, ...)
|
|
- Syntax highlighting for a bunch of languages using Pygments.
|
|
- Rendering of Markdown as HTML.
|
|
- Easy paste from command line or any programming language.
|
|
|
|
|
|
## Using
|
|
|
|
See [using.en.md](using.en.md) or [using.fr.md](using.fr.md).
|
|
|
|
## FAQ
|
|
|
|
### Where's the homepage?
|
|
|
|
This pastebin has no homepage: its homepage is a paste like any
|
|
other. So to create one for your instance, just paste something to it, like:
|
|
|
|
$ curl localhost:8000 -XPUT -H "Authorization: Secret supersecret" --data-binary @using.fr.md
|
|
|
|
The `Authorization` allows you to update the paste by uploading it again.
|
|
|
|
|
|
### I want a robots.txt
|
|
|
|
Just past it:
|
|
|
|
$ printf "User-agent: *\nDisallow: /\n" | curl localhost:8000/robots.txt -XPUT -H "Authorization: Secret supersecret" --data-binary @-
|
|
|
|
It'll work as `.txt` files are not pretty printed.
|
|
|
|
|
|
### Where's the admin?
|
|
|
|
The admin is hosted as `/::/admin/`. As almost any URL can be used by pastes, we "burry" the admin here.
|
|
|
|
And no paste can start with `::`.
|
|
|
|
|
|
### What's this Authorization header?
|
|
|
|
By providing a secret in the `Authorization` header, one can edit its
|
|
pasts by `PUT`ting to it, and list all its pastes by querying:
|
|
|
|
curl localhost:8000/::/list/ -H "Authorization: Secret supersecret"
|
|
|
|
|
|
## Running Pasteque
|
|
|
|
In a [venv](https://docs.python.org/3/library/venv.html), install the requirements:
|
|
|
|
pip install -r requirements.txt
|
|
|
|
In a `local_settings.py` file, at the root of the repo:
|
|
|
|
DISPLAY_NAME = 'YourCompany-Paste'
|
|
COMPRESS_ENABLED = True
|
|
DEBUG = False
|
|
SECRET_KEY = 'fill_a_secret_key_here'
|
|
ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'paste.henriet.eu']
|
|
|
|
Create the database:
|
|
|
|
./manage.py migrate
|
|
|
|
If you're in production collect static files:
|
|
|
|
./manage.py collectstatic
|
|
|
|
Run it:
|
|
|
|
./manage.py runserver
|