Version vom 27. Januar 2018, 12:18 Uhr von imported>Incognito668 (Category:Tutorial)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


Text copied from http://kytv.i2p (down since march 2016).


This is a cached copy of http://killyourtv.i2p/howtos/pastebin/ It is a snapshot of the page as it appeared on 2014-05-17 07:18:45 UTC, all scripts and css links are stripped out. killyourtv.i2p/ howtos/ Set up your own pastebin


This guide (recommended by zab) will walk you through a possible configuration of nginx and uwsgi for LodgeIt, the software used by pastethis.i2p. These instructions are geared toward Debian systems but can be used elsewhere with minor modifications.

Get the Source[Bearbeiten]

The source code for LodgeIt is managed using Mercurial. Install it using apt-get install mercurial ca-certificates. Once it’s installed the source code can be checked out with

hg clone

Zoltan added line-wrap support to LodgeIt (thanks!). The combined patchset is available from paste #1956. Save the patch to the lodgeit-main directory and apply it with

patch -p1 < patchfile


By this point the ‘development server’ can be run by following the instructions in upstream’s readme. For production use, running LodgeIt as a WSGI application is recommended.

Set-up for Production[Bearbeiten]

Installing pre-requisites and configuring LodgeIt[Bearbeiten]

The required pacakges can be installed with

apt-get install python-werkzeug python-sqlalchemy nginx-full python-jinja2 python-markupsafe python-imaging \
       python-pygments ttf-bitstream-vera python-babel python-simplejson python-setuptools uwsgi uwsgi-plugin-python

cd into the lodgeit-main directory. If you’d like to politely ask web-crawlers to not crawl your pastebin, create a robots.txt file:

cat > lodgeit/static/robots.txt << EOF
User-agent: *
Disallow: /

Create the WSGI file:

cat > lodgeit.wsgi  << EOF
import sys
import os
from lodgeit import make_app

application = make_app(
# the path to the database
secret_key=$(python -c 'import os; print repr(os.urandom(30))')

Check to make sure that secret_key was defined (grep secret_key lodgeit.wsgi). You should have something like the following returned:


Move the lodgeit directory to its final destination and change the owner/group to www-data. For example, I moved the LodgeIt installation to /usr/local and did the following:

cd ..
mv lodgeit-main /usr/local/lodgeit
mkdir /var/lib/lodgeit
chown -R www-data:www-data /usr/local/lodgeit /var/lib/lodgeit

Configuring nginx[Bearbeiten]

Create the site configuration file:

cat > /etc/nginx/sites-available/pastebin << EOF
server {
        listen   5000; ## listen for ipv4; this line is default and implied

        root /usr/local/lodgeit;
        access_log /var/log/nginx/pastebin_access.log i2p;
        error_log /var/log/nginx/pastebin_error.log warn;

        # Make site accessible from http://localhost/
        # Be sure to add other hosts that this will be reachable from, such
        # as your b32 or hostname
        server_name localhost;

        location / {
                uwsgi_pass unix:///run/uwsgi/app/pastebin/socket;
                include uwsgi_params;

        # redirect server error pages to the static page /50x.html
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/www;

        location ~ /\.ht {
                deny all;

        if (\$request_method !~ ^(GET|HEAD|POST)\$ ) {
                return 405;

        location /static/ {
                root /usr/local/lodgeit/lodgeit;
                expires max;

       location ~ \.(aspx|php|jsp|cgi)\$ {
               return 501;

       location ~ /Seedless {
               return 501;

       # Uncomment this stanza if you want to use a robots.txt file
       # location /robots.txt {
       #        rewrite /robots.txt /static/robots.txt;

Create the I2P logging definition with

cat > /etc/nginx/conf.d/i2p_logging.conf  << EOF

log_format i2p '\$remote_addr \$http_x_i2p_destb32 - \$remote_user [\$time_local] '
    '"\$request" \$status \$body_bytes_sent '
    '"\$http_referer" "\$http_user_agent"';

Finally, enable your new pastebin site with (as root)

ln -s /etc/nginx/sites-available/pastebin /etc/nginx/sites-enabled
service nginx restart

Configuring UWSGI[Bearbeiten]

Create the UWSGI pastebin configuration file with

cat > /etc/uwsgi/apps-available/pastebin.ini << EOF
wsgi-file = /usr/local/lodgeit/lodgeit.wsgi

…then enable the application with

ln -s /etc/uwsgi/apps-available/pastebin.ini /etc/uwsgi/apps-enabled
service uwsgi restart

You should now be able to access your new pastebin from


<references />

See also[Bearbeiten]

External links[Bearbeiten]