Git Product home page Git Product logo

paste.sh's Introduction


                                  |               |     
                 __ \   _` |  __| __|  _ \    __| __ \  
                 |   | (   |\__ \ |    __/  \__ \ | | | 
                 .__/ \__,_|____/\__|\___|_)____/_| |_| 
                _|                                      


What?
=====

This is a simple paste site. It doesn't do syntax highlighting, or get in your
way. It gives you a textarea and you type in it.

However behind the scenes it is encrypting your data on the client side.
This does mean you need a browser that supports JavaScript and the Crypto APIs.

However if you didn't guess from the name there is also a shell script
"paste.sh"; see https://paste.sh/paste.sh or run the following commands
to install it:

  mkdir -p ~/bin
  cd ~/bin && curl -OJ https://paste.sh && chmod +x paste.sh

Why?
====

Signal or similar works well for keeping chat secure, but sharing larger amounts of
text or code over chat is not ideal. I wanted a simple way to share things with
a low barrier to entry but that is still relatively secure.

Privacy and Abuse
=================

Sadly some people abuse things like this. We like to have nice things, but that
doesn't include illegal content, content we consider abusive (e.g. personal
data such as "doxxing") or data that may threaten the stability of the
site. Because the majority of data is encrypted we can't automatically remove
content or scan it.

Please report any content that you consider abusive to https://paste.sh/abuse.

As a result of abuse we store some information about pastes:
- When they were created or updated
- The source IP address
- The HTTP User-Agent
- The 'pasteauth' cookie we assigned (needed to update pastes)

The cookie is essential to the functioning of the web site version of paste.sh.
If you wish to opt-out of using cookies, please use the command line client.

How?
====

JavaScript running in your browser encrypts your data using AES-256 (via the
CryptoJS library). The key is generated on the client side and the server is
never able to decrypt the data, this works because the URL fragment (the part of
the URL after the '#' symbol) is never sent to the server.

Beware that depending on how you share the URL with others the fragment part may
be stored by other systems.

You can edit the paste for some time after pasting; this uses a session cookie
in your browser. (Yes, if you deny cookies this site won't work very well,
sorry, try the command line client).

There is a limit of 1 MB of data once encrypted per paste, for other purposes
you'll need to use a file sharing site.

Where?
======

Here, https://paste.sh

Alternatively if you want to see the code or wish to host your own version, the
source code is available at https://github.com/dgl/paste.sh under 0BSD.

As mentioned there's also a command line client there; the comments in it are
worth reading if you care about the encryption scheme used (being compatible
with the OpenSSL command line tool limits the key derivation slightly).

Tips
====

The command line client can do public pastes by adding the -p option, these
don't use encryption but are useful for sharing where you don't need encryption
and the long URL is unwieldy.

Simple vim integration:


  command! -nargs=* Paste w | !paste.sh <args> % | tee /dev/stderr | tail -n1 | (xsel -i 2>/dev/null || pbcopy)
  command! PublicPaste Paste -p


Who?
====

David Leadbeater (@[email protected]; https://dgl.cx/contact) wrote this.

๐Ÿ”ด ๐Ÿ”ต

If this isn't for you, there's some notes on alternatives.

paste.sh's People

Contributors

dgl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

paste.sh's Issues

how to set this up?

Hi. I have issues hosting this myself.

  1. It complains about Plack::Runner being missing, even though it tells me it's there when I run cpanm -l deps Plack::Runner
    1.1 So I have to manually install it using cpanm Plack::Runner
  2. Next it complains about serverauth being missing.
    2.1 So I created a file with that name and put some random string in there.
  3. Now it starts, but when I open the url localhost:5000 it only returns Not found.

What am I doing wrong?
Thanks for the software btw. I really like it.

Bug: It fails to show pastes with special sequences

It fails to show pastes with special sequences.
Step to reproduce:
Try to share a paste with this code:

precmd_coloredexitcode() {
  exitcode="${?}"
  if [[ "${exitcode}" -eq 0 ]]; then
    COLOREDEXITCODE="$(printf '[%b%s%b]' '\033[0;32m' "OK" '\033[0m')"
  else
    COLOREDEXITCODE="$(printf '[%b%s%b: %d]' '\033[1;31m' 'ERR' '\033[0m' "${exitcode}")"
  fi
}

# that function is in precmd_functions array and variable COLOREDEXITCODE is in PROMPT

Expected result: the paste should treat all of that as literal text.
Actual result: opening the paste's URL in a new tab opens a page that says "Decryption failed (Error: Malformed UTF-8 data)"

paste.sh website down

When I navigate to the paste.sh url, I get the following error:

503 Service Unavailable
No server is available to handle this request. 

Is the website still being maintained? If so, can someone explain to a beginner how to self host paste.sh?

How to get it working? - Can't locate Tie/LevelDB.pm

./run.sh
Error while loading /root/paste.sh/app.psgi: Can't locate Tie/LevelDB.pm in @INC (you may need to install the Tie::LevelDB module) (@INC contains: deps/lib/perl5/5.36.0/x86_64-linux-gnu-thread-multi deps/lib/perl5/5.36.0 deps/lib/perl5/x86_64-linux-gnu-thread-multi deps/lib/perl5 /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.36.0 /usr/local/share/perl/5.36.0 /usr/lib/x86_64-linux-gnu/perl5/5.36 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.36 /usr/share/perl/5.36 /usr/local/lib/site_perl) at /root/paste.sh/app.psgi line 5.
BEGIN failed--compilation aborted at /root/paste.sh/app.psgi line 5.

perl -v
This is perl 5, version 36, subversion 0 (v5.36.0) built for x86_64-linux-gnu-thread-multi

Thanks!

paste.sh is down?

I'm pretty sure this isn't really an issue with the code itself, but paste.sh is down.

Did something happen?

Did you get raided? xD

Decryption broken

Seems to be broken, get "Decryption failed (Error: Malformed UTF-8 data)" whenever I attempt to decrypt a paste.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.