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.
-d
or --domain
, env = DOMAIN
)
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
-p
or --port
)
Port (Set the port on which the app runs (Default: 8000
)
$ termpad -p 8043
-o
or --output
)
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
, env = HTTPS
)
https (If set, urls will start with https
instead of http
$ termpad --https
--delete-after
, env = DELETE_AFTER
)
Delete files (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