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:
shell $ 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: shell $ 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: shell $ 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: ```shell $ 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) shell $ 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) shell $ 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/) shell $ termpad -o /home/www/pastes/

https (--https, env = HTTPS)

If set, urls will start with https instead of http shell $ 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) shell $ termpad --delete-after 60

Install

From source:

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

From cargo:

shell $ 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 thendocker-compose up -d`