#pastebin #text #output #sharing #url #right #http

nightly app termpad

Command line pastebin for sharing terminal output

3 stable releases

1.2.0 Jan 31, 2021
1.1.0 Jan 26, 2021
1.0.0 Jan 25, 2021

#22 in #pastebin

Custom license

29KB
296 lines

termpad

termpad allows you to easily host a pastebin server for saving and viewing text right from the terminal, or the browser.

Client Usage

Assuming termpad is running in localhost:8000 you can do this to save text using cURL:

$ curl -d "Hello world" localhost:8000
http://localhost/DullMagnificentLock
$ # Or
$ curl --data-binary @path/to/file localhost:8000
http://localhost/BrightAliveMotorcycle

And this to retrieve saved text:

$ curl localhost:8000/raw/TenderCheerfulYacht
$ # You might optionally want to pipe the output to a pager like less
$ curl localhost:8000/raw/TenderCheerfulYacht | less

Or this for HTTPie:

$ echo "Hello World" | http POST localhost:8000
http://localhost/DullMagnificentLock
$ # Or for files:
$ http POST localhost:8000 < path/to/file
http://localhost/BrightAliveMotorcycle

And to get text it's the same as cURL:

$ http localhost:8000/raw/TenderCheerfulYacht
# Or with a pager
$ http localhost:8000/raw/TenderCheerfulYacht | less

Note the /raw/ in the url, without it you will get html output

Server Usage

Note that environment variables are checked before assigning the default value.

Domain (-d or --domain, env = DOMAIN)

Used to construct the url returned to the user. http is added as a prefix (Default: localhost)

$ termpad -d example.com

This will return urls like: http://example.com/BrightAliveMotorcycle

Port (-p or --port)

Set the port on which the app runs (Default: 8000)

$ termpad -p 8043

Output (-o or --output)

Relative or absolute path to the directory where you want to store user-posted pastes (Default: ~/.local/share/termpad/)

$ termpad -o /home/www/pastes/

https (--https, env = HTTPS)

If set, urls will start with https instead of http

$ termpad --https

Delete files (--delete-after, env = DELETE_AFTER)

How many days to keep files for. If set to 0 it will keep them forever (Default: 120)

$ termpad --delete-after 60

Install

From source:

$ git clone https://github.com/SpyrosRoum/termpad.git
$ cd termpad
$ cargo build --release
$ ./target/release/termpad

From cargo:

$ cargo install termpad

With docker-compose:

Either wget https://raw.githubusercontent.com/SpyrosRoum/termpad/master/docker-compose.yml or copy the following into docker-compose.yml

version: "3.4"

services:
  app:
    image: spyrosr/termpad
    ports:
      - 8000:8000
    environment:
      - DOMAIN_NAME=example.com
      - HTTPS=true
    volumes:
      - data:$HOME/.local/share/termpad/
    restart: always

volumes:
  data:
    name: termpad

and then docker-compose up -d

Dependencies

~17MB
~323K SLoC