Progetto

Generale

Profilo

Actions

Bepasty » Cronologia » Versione 1

Versione 1/3 | Successivo »
Elena Grandi, 12-03-2020 13:54


attenzione, questa pagina è ancora gestita in un file salvato altrove, ed eventuali modifiche verranno perse al prossimo aggiornamento

Bepasty

"Bepasty":#bepasty-1 è un pastebin binario, ovvero un servizio che permette l'upload di file di vario formato e la loro successiva condivisione.

È scritto in python, e comunica con un server web tramite wsgi; per questa guida useremo apache e il relativo mod_wsgi.

Installazione

Bepasty

Il pacchetto bepasty non è ancora disponibile su debian: nel frattempo lo si può prendere dall'archivio di truelite aggiungendo la seguente riga ad /etc/apt/source.list:

bc. deb http://archive.truelite.it/debian buster-truelite main

aggiungendo la chiave GPG con cui tale repository è firmato:

bc. # wget -qO - https://archive.truelite.it/apt.key | apt-key add -

e quindi aggiornando apt ed installando il pacchetto:

bc. # apt update
  1. apt install bepasty

È necessario quindi configurare bepasty creando il file /etc/bepasty.conf con i seguenti contenuti:

SITENAME="paste.example.org"
STORAGE="filesystem"
STORAGE_FILESYSTEM_DIRECTORY="/srv/bepasty/files/"

SECRET_KEY = '<a long string of random characters>'
DEFAULT_PERMISSIONS='admin,list,create,read,delete'

In questo modo tutti gli utenti possono compiere qualunque azione, ed è consigliato solo nel caso in cui il sito stesso sia protetto da HTTPAuth; in alternativa si possono usare permessi come:

bc. DEFAULT_PERMISSIONS='read'

per permettere agli utenti non registrati la sola lettura di file esistenti, e limitare le altre operazioni ad utenti fidati; bepasty non supporta la creazione di utenti, ma associa un elenco di permessi a delle password, ad esempio:

bc. PERMISSIONS = { # password per amministratori
'correct horse battery staple': 'admin,list,create,read,delete', # password per utenti semplici
'chess observing leverage diocese': 'create,read',
}

Questo file dovrà essere letto dall'utente di apache (e contiene secrets, quindi è opportuno non sia letto dagli altri):

bc. chown root:www-data /etc/bepasty.conf
chmod 640 /etc/bepasty.conf

Similmente è necessario creare le directory per i file:

bc. mkdir -p /srv/bepasty/files
chown www-data:www-data /srv/bepasty/files
chmod 750 /srv/bepasty/files

Apache

Per far caricare a bepasty il file di configurazione, è necessario passargli la variabile d'ambiente BEPASTY_CONFIG=/etc/bepasty.conf.

Il modo più comodo per farlo con apache è creare un file .wsgi, ad esempio in /var/www/bepasty/bepasty.wsgi coi seguenti contenuti:

import os

os.environ['BEPASTY_CONFIG'] = '/etc/bepasty.conf'

from bepasty.app import create_app
application = create_app()

Quindi si può configurare apache per servire il dominio creando il file /etc/apache2/sites-available/bepasty.conf:

<VirtualHost *:80>
        DocumentRoot /var/www/bepasty
        ServerName paste.example.org
        ErrorLog /var/log/apache2/paste.example.org-error.log
        CustomLog /var/log/apache2/paste.example.org-access.log combined

        WSGIDaemonProcess bepasty user=bepasty group=bepasty threads=5
        WSGIScriptAlias / /var/www/bepasty/bepasty.wsgi

        <Directory /var/www/bepasty>
            WSGIProcessGroup bepasty
            WSGIApplicationGroup %{GLOBAL}
            Order deny,allow
            Allow from all
        </Directory>
</VirtualHost>

e come di consueto abilitando il sito e facendo ricaricare la configurazione:

bc. # a2ensite bepasty
  1. service apache2 reload

Aggiornato da Elena Grandi circa 4 anni fa · 1 revisions