Skip to content

lucko/paste

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2402564 · Mar 15, 2025

History

68 Commits
Mar 22, 2022
Feb 23, 2025
Jan 5, 2025
Mar 15, 2025
Jan 5, 2025
Dec 8, 2024
Jan 5, 2025
Mar 26, 2021
Feb 23, 2025
Feb 23, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025
Jan 5, 2025

Repository files navigation

paste is a simple web app for writing & sharing code. It's my own take on conventional pastebin sites like pastebin.com or hastebin.

Anyone can use paste! The official/public instance can be accessed using the endpoints listed below, but you can also host your own if you like!

1) In a Web Browser

Just go to https://pastes.dev!

2) From the Command Line

You can submit content most easily using curl.

# Upload the contents of a file
> curl -T example.txt https://api.pastes.dev/post

# Upload the contents of a file and specify the language
> curl -T example.yml -H "Content-Type: text/yaml" https://api.pastes.dev/post

# Pipe in some output from any command
> echo "Hello world" | curl -T - https://api.pastes.dev/post
If curl isn't installed on your system, you can also post using netcat.
# Pipe in some output from any command
> echo "Hello world" | nc nc.pastes.dev 1337

# Upload the contents of a file
> cat example.txt | nc nc.pastes.dev 1337
If you don't want to do so much typing, you can create a shorter alias.
# Add this to the end of `~/.bashrc` and run 'source ~/.bashrc'
paste() {
  curl -T $1 https://api.pastes.dev/post
}

then...

# Upload the contents of a file
> paste example.txt

# Pipe in some output from any command
> echo "Hello!" | paste -
3) From Code

Send GET/POST/PUT requests to https://api.pastes.dev/. More info below.


About

The frontend (this repository) is written using the React framework. The backend data storage is handled by a separate web service called bytebin.

The user-interface is based on the Monaco Editor, the engine behind the popular Visual Studio Code text editor. It's quite simple; it supports syntax highlighting, automatic indentation, many supported languages, themes, zooming in/out, linking to specific lines or sections, and more!

pastes.dev

I host a public instance at https://pastes.dev. Please feel free to use it to share code/configs/whatever!

Please note that the following (very-non-legally worded) terms of service apply.
If you come across any content which is illegal or infringes on copyright, please get in touch and let me know so I can remove it.

Uploaded content is retained for 90 days then deleted.

pastes.dev API

  • To read content, send a HTTP GET request to https://api.pastes.dev/<key>.
    • Replace <key> with the id of the paste.
    • The content is returned in the response body.
    • The Content-Type header is text/<language>, where language is the id of the language the paste was saved with.
  • To upload content, send a HTTP POST request to https://api.pastes.dev/post.
    • Include the content in the request body.
    • Specify the language with the Content-Type: text/<language> header, and please provide a User-Agent header too.
    • The paste "key" is returned in the Location header, or in the response body as a JSON object in the format {"key": "<key>"}.

The API is powered by the bytebin service, so more information about how it works can be found there.


Self-hosting

The easiest way to self-host is using Docker (& Docker Compose). You can run the following commands to get started:

git clone https://github.com/lucko/paste
cd paste
docker compose up -d

You should then (hopefully!) be able to access the application at http://localhost:8080/.