Skip to content

A (self hosted) pastebin for easily sharing text right from the terminal

License

Notifications You must be signed in to change notification settings

SpyrosRoum/termpad

Repository files navigation

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 (env = DOMAIN)

Used to construct the url returned to the user. http/s is added as a prefix (Default: localhost) For example DOMAIN=example.com will return urls like: http://example.com/BrightAliveMotorcycle

Port (env = PORT)

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

Output (env = OUTPUT)

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

https (env = HTTPS)

If set, urls will start with https instead of http

Delete files (env = DELETE_AFTER)

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

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:

services:
  app:
    image: spyrosr/termpad
    ports:
      - 8000:8000
    environment:
      - DOMAIN_NAME=example.com
      - HTTPS=true
      - OUTPUT=/termpad/share
      - DELETE_AFTER=0 # If you are hosting for yourself keeping them forever is probably fine
    volumes:
      - data:/termpad/share
    restart: always

volumes:
  data:
    name: termpad

and then docker-compose up -d

About

A (self hosted) pastebin for easily sharing text right from the terminal

Resources

License

Stars

Watchers

Forks

Releases

No releases published