pasteque/README.md

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