Skip to content

petermaloney/localpaste

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

localpaste

A simple python based pastebin you can run locally, with curl for input, just like clbin.com

Requirement: Python3

Debian/Ubuntu OS:

 apt-get install -y python3

Fedora/CentOS/RedHat: compile from source

 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

 # download and verify 
 wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
 wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz.asc
 gpg --recv-keys '97FC 712E 4C02 4BBE A48A  61ED 3A5C A953 F73C 700D'
 gpg --verify Python-3.4.3.tar.xz.asc || mv Python-3.4.3.tar.xz Python-3.4.3.tar.xz.corrupt

 # extract and install the simple bad way (prefer to use rpmbuild instead)
 tar xf Python-3.* 

 cd Python-3.*
 
 ./configure
 
 make
 
 sudo make install
 

Install

 git clone https://github.com/petermaloney/localpaste
 cd  localpaste/
  useradd localpaste

Usage:

To run it:

sudo nohup ./localpaste.py -f --user localpaste &

To send input:

echo -n "hello" | curl -F 'clbin=<-' http://localhost/

To get pastes:

 curl http://localhost/XXXX

Create an alias replace localhost with your Hostname/External IP

echo "alias lpaste=\"curl -F 'clbin=<-' http://localhost/"\" >> ~/.bashrc

Using your alias:

cat <YOUR FILE>| lpaste

http://localhost/XXXX
```

*Creating and using a self-signed SSL Certificate*

```
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
```

The private key and cert must reside in the same folder as localpaste.py and be combined together in one file named **server.pem**. If your file has another name, you'll have to use the **--certfile** option to specify it's location. (e.g. --certfile /etc/myserver.pem)

```
sudo nohup ./localpaste.py --scheme https -f --user localpaste &
```

#  ./localpaste.py  -h

```
 usage: localpaste.py [-h] [--foreground | --daemon] [--debug]
                    [--datadir DATADIR] [--name-min-size NAME_MIN_SIZE]
                    [--no-create-datadir] [--user USER] [--port PORT]
                    [--scheme {http,https}] [--hostname HOSTNAME]
                    [--certfile CERTFILE] [--listen-address LISTEN_ADDRESS]

A daemon to record input in some temporary files.

optional arguments:
 -h, --help            show this help message and exit
 --foreground, -f      run in foreground mode
 --daemon, -d          run in daemon mode
 --debug               run in debug mode
 --datadir DATADIR     dir to store data files (default=localpaste_data)
 --name-min-size NAME_MIN_SIZE
                       minimum number of chars in the name that goes in the
                       url and filename (default=4)
 --no-create-datadir   prevent automatically creating a data dir if one does
                       not exist
 --user USER           run as root first and then the server will switch to
                       this user after listening to the port
 --port PORT, -p PORT  port to listen on
 --scheme {http,https}, -s {http,https}
                       scheme to use (default=http)
 --hostname HOSTNAME   hostname to send to clients in the url so they can
                       retrieve their paste (default=use host and port from
                       http request)
 --certfile CERTFILE   file containing both the SSL certificate and key for
                       https (default=server.pem)
 --listen-address LISTEN_ADDRESS
                       listen address (default=0.0.0.0)
```

About

a simple python based pastebin you can run locally, with curl for input, just like clbin.com

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages