Simple and fast terminal based pastebin, with optional code highlighting. No specific client required, all you need is netcat.
Deploy this app to Linode with a free $100 credit!
Command line pastebin for sharing files and command outputs.
To use this, you'll need a tool called netcat. Try typing 'nc' or 'netcat' into the terminal, you probably have it already !
echo "Hello World !" | nc magnum.wtf 6969
cat "script.sh" | nc magnum.wtf 6969
df | nc localhost 9999
You will receive a url to the text-only paste as a response to the above commands. e.g.
https://socksbin.magnum.wtf/33fdd867
This has a built-in Pygment-based beautifier. add "_color" to the end of the received url, to get a beautified paste.
https://socksbin.magnum.wtf/33fdd867_color
In case your text isn't beautified, include the shebang #!
which is the first two bytes of an executable
e.g. the first line should be /usr/bin/env python
for proper python formatting
Make this much easier to use by adding an alias to your rc file. For example:
skb
aliasLinux (Bash):
echo 'alias skb="nc magnum.wtf 6969"' >> .bashrc
macOS:
echo 'alias skb="nc magnum.wtf 9999"' >> .bash_profile
Linux (Bash):
echo 'alias skb="netcat magnum.wtf 6969 | xclip -selection c"' >> .bashrc
echo less typing now! | skb
macOS:
echo 'alias skb="nc magnum.wtf 6969 | pbcopy"' >> .bash_profile
echo less typing now! | skb
Remember to reload the shell with source ~/.bashrc
or source ~/.bash_profile
after adding any of provided above!
git clone https://github.com/MagnumDingusEdu/SocksBin.git
python3 -m venv venv
# or
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
chmod +x paster.py
usage: ./paster.py [-o output directory]
[-n listen_address] [-p port] [-s slug size]
[-l logfile] [-b buffer size][-h help]
These are command line arguments. None of these are required to run the server. Defaults are specified in the section below.
-o
--output_directory
Absolute, or relative path to the directory where the pastes will be stored, as plaintext files.
./paster.py -o ./pastes
./paster.py -o /home/www/pastes/
Default value: $HOME/socksbin
-u
--url
This will be used as a prefix for an url received by the client.
Value will be prepended with $url
.
./paster.py -u https://domain.com/
./paster.py -u https://subdomain.domain.com/
./paster.py -u https://subdomain.domain.com/pastes/
Default value: http://localhost/
-s
--slug_size
This will force slugs to be of required length:
./paster.py -s 6
Output url with default value: http://localhost/********
,
where * is a randomized character
Output url with example value 6: http://localhost/******
,
where * is a randomized character
Default value: 8
-b
--buffer_size
This parameter defines size of the buffer in bytes, when making a connection. TCP has a max buffer size of 60K.
./paster.py -b 4096
Default value: 32768
-l
--log_file
./paster.py -l /home/user/socksbin.log.txt
The log file will only be made if you specify this argument. Make sure that this file is user writable.
Default value: not set
-q
--queue_depth
./paster.py -q 10
The helps to properly manage simultaneous connections. The maximum value is system dependent. For example, on Linux, see /proc/sys/net/core/somaxconn
Default value: 10
If you're using systemd, follow these steps:
sudo touch /lib/systemd/system/socksbin.service
[Unit]
Description=Socksbin Server
After=multi-user.target
[Service]
Type=idle
ExecStart=/home/user/socksbin/venv/bin/python /home/user/socksbin/paster.py -o /var/www/socksbin -s 8 -p 6969 -l /home/user/socklog.txt -u https://subdomain.yourdomain.com/
[Install]
WantedBy=multi-user.target
Replace /home/user/socksbin with the path to your socksbin installation. Save and exit.
sudo chmod 644 /lib/systemd/system/socksbin.service
sudo systemctl daemon-reload
sudo systemctl start socksbin
sudo systemctl enable socksbin
This will make sure it remains up even accross reboots.
To check the current status of your service:
sudo systemctl status socksbin
This does not have a web server built in, so you can use this with your existing web server, to make files available to the internet.
<VirtualHost *:80>
ServerName subdomain.mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/socksbin
DirectoryIndex index.html
ErrorLog ${APACHE_LOG_DIR}/socksbin_error.log
CustomLog ${APACHE_LOG_DIR}/socksbin_access.log combined
</VirtualHost>
server {
listen 80;
server_name subdomain.mysite.com;
charset utf-8;
location / {
root /var/www/socksbin/;
index index.txt index.html;
}
}
Please make sure that you put default file, e.g. index.html, so that people can't access all your files freely.
Please login to review this project.
No reviews for this project yet.
Cross-platform C# pastebin with client-side AES-256 encrypt…
Client side encrypted pastebin.
Snippet Box is a simple self-hosted app for organizing your…
Comments (0)
Please login to join the discussion on this project.