mirror of https://github.com/JoeBiellik/paste
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42e5ff35e5
Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1. - [Release notes](https://github.com/sindresorhus/normalize-url/releases) - [Commits](https://github.com/sindresorhus/normalize-url/commits) --- updated-dependencies: - dependency-name: normalize-url dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> |
4 years ago | |
---|---|---|
config | ||
controllers | ||
models | ||
public | ||
views | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.pug-lintrc.json | ||
.xo-config.json | ||
LICENSE.md | ||
README.md | ||
app.js | ||
db.js | ||
docker-compose.yml | ||
package-lock.json | ||
package.json | ||
prism-langs.js | ||
router.js | ||
server.js |
README.md
paste
Simple Node.js pastebin built with Koa, MongoDB, Pug, Bootstrap and Prism.js.
Try it out at paste.fyi
Features
- Full syntax highlighting via Prism.js
- Automatic and configurable paste expiry
- Full support for CLI requests with curl, Wget etc
- CTRL+Enter hotkey for quick paste submission
- Short and readable URLs via nanoid, e.g.
/qNGDwRyx
- Textarea grows to fit content via autosize.js
- Runs fully containerized with Docker
CLI Usage
# Simple paste
$ echo 'Hello World' | curl -F 'paste=<-' paste.fyi
http://paste.fyi/qNGDwRyx
# Either form, multipart or raw text data is accepted
$ curl -F 'paste=Sent as form data' https://paste.fyi
$ curl -d 'paste=Sent as multipart data' https://paste.fyi
$ curl -H "Content-Type: text/plain" -d 'Sent as raw text' https://paste.fyi
# Wget or any other tool is fine too
$ wget --post-data 'paste=Hello from Wget' -qO- https://paste.fyi
# Upload a file
$ curl -F 'paste=@path/to/file.txt' https://paste.fyi
# Specify the expiry time in seconds
$ curl -F 'paste=2 minutes' -F 'expire=120' https://paste.fyi
$ curl -F 'paste=2 minutes' https://paste.fyi/?expire=120
# Specify the syntax to highlight
$ git diff README.md | curl -F 'paste=<-' https://paste.fyi/?diff
$ curl -F 'paste=@path/to/file.diff' -F 'highlight=diff' https://paste.fyi
# Redirect to content
$ curl -F 'paste=My paste' https://paste.fyi/?redirect
My paste
# Combined options
$ curl -F 'paste=My paste' -F 'expire=60' -F 'highlight=shell' https://paste.fyi
$ curl -F 'paste=My paste' 'https://paste.fyi/?expire=120&shell'
Development
- Clone this repo:
git clone https://github.com/JoeBiellik/paste.git && cd paste
- Install dependencies:
docker-compose run -e NODE_ENV= --rm --no-deps app npm install
- Start the app and watch for changes:
docker-compose run -e NODE_ENV= --rm --service-ports app npm run watch
Deployment
-
Follow the first two development steps.
-
Configure
config/docker.json
with any custom setting overrides -
Configure
docker-compose.yml
with Docker options and ports to use -
Start the production database and Node.js server:
docker-compose up