No Description https://pastefy.ga

juliangojani f20b1801e6 Added Petrel@1.0.8 and added codebox indicators 1 month ago
.github 6f4b558994 Changed funding page 7 months ago
backend 96bd5009d9 Added Petrel@1.0.8 and added codebox indicators 1 month ago
deployment ef1e49fd05 Pastefy v6 3 years ago
frontend 1c8c489c75 Added Petrel@1.0.8 and added codebox indicators 1 month ago
.DS_Store 6f4b558994 Changed funding page 7 months ago
.env.example 5b1e69c95d Changed docker-compose.yml the example env and readme 2 years ago
.gitignore 3f3e55c180 Fixed build issues (#10), paste length problems (#11) and infinite load bug (#12) 2 years ago
.gitlab-ci.yml d958dd58be Added caching for deployment 3 years ago
CODE_OF_CONDUCT.md f53ebb2ab0 Create CODE_OF_CONDUCT.md 3 years ago
CONTRIBUTING.md 4f4e7765ef Create CONTRIBUTING.md 3 years ago
Dockerfile f20b1801e6 Added Petrel@1.0.8 and added codebox indicators 1 month ago
LICENSE dcc6e5d73b Create LICENSE 3 years ago
README.md 0da4554ec8 Fixed docker-compose, changed readme, fixed expiry and more 8 months ago
docker-compose.override.yml 3d57a993f9 Added docker-compose.override.yml for development and changed docker-compose.yml 2 years ago
docker-compose.yml 0da4554ec8 Fixed docker-compose, changed readme, fixed expiry and more 8 months ago

README.md

!! IMPORTANT !!

Pastefy moved to a new domain:

https://pastefy.app

More information on why here in our article

Pastefy is an open source alternative to Gists or Pastebin.
You want to share some code to your friends or just save it for yourself? Just paste it.

Features

  • Raw-Preview
  • Copy Button
  • Fork
  • An API (Docs)
  • Log in
    • Folders
    • See your created pastes
    • delete created pastes
  • Create paste with curl -F f=@file.txt pastefy.app

Overview

Screenshots

Deploy

Docker

DockerHub: https://hub.docker.com/r/interaapps/pastefy

docker run -p 8080:80 \
      --env HTTP_SERVER_PORT=80 \
      --env HTTP_SERVER_CORS="*" \
      --env DATABASE_DRIVER=mysql \
      --env DATABASE_NAME=pastefy \
      --env DATABASE_USER=pastefy \
      --env DATABASE_PASSWORD=pastefy \
      --env DATABASE_HOST=host \
      --env DATABASE_PORT=3306 \
      --env AUTH_PROVIDER=NONE \
      --env SERVER_NAME=http://example.com \
      --env OAUTH2_PROVIDER_CLIENT_ID=NONE \
      --env OAUTH2_PROVIDER_CLIENT_SECRET= \
      interaapps/pastefy

Or Pastefy Docker in Host-Mode

Docker-Compose

https://github.com/interaapps/pastefy/blob/master/docker-compose.yml

git clone https://github.com/interaapps/pastefy.git
cd pastefy
docker-compose up

Custom Docker-Compose (Using Docker-Hub)

https://pastefy.ga/Hj9N3bs2

wget https://pastefy.app/Hj9N3bs2/raw -O docker-compose.yml
nano docker-compose.yml
docker-compose up

Kubernetes

You can find an example kubernetes file here https://github.com/interaapps/pastefy/blob/master/deployment/prod.yaml. It's made to use with gitlab CI and cert-manager. With some changes you can use it.

Container-Less

git clone https://github.com/interaapps/pastefy.git
cd pastefy/frontend
npm run install
npm run build
cd ../backend
mvn clean package
cd ..
cp .env.example .env
nano .env
java -jar backend/target/backend.jar

Using intelliJ? Look at Develop

Configuration

Basic Stuff

http.server.port=1337
HTTP_SERVER_CORS=*

DATABASE_DRIVER=mysql
DATABASE_NAME=
DATABASE_USER=
DATABASE_PASSWORD=
DATABASE_HOST=
DATABASE_PORT=3306

SERVER_NAME=http://example.com


# Optional
PASTEFY_INFO_CUSTOM_LOGO=https://urltoimage
PASTEFY_INFO_CUSTOM_NAME=Custom Name
PASTEFY_INFO_CUSTOM_FOOTER=WEBSITE=https://example.org,SEPERATED BY COMMA=https://example.org

# Requires login for read and creation of pastes
PASTEFY_LOGIN_REQUIRED=false
# Login-requirements for specific access types
PASTEFY_LOGIN_REQUIRED_CREATE=false
# This will disable the raw mode as well for browser users
PASTEFY_LOGIN_REQUIRED_READ=false

# Check the encryption checkbox by default
PASTEFY_ENCRYPTION_DEFAULT=false

# Requires every new account being accepted by an administrator
PASTEFY_GRANT_ACCESS_REQUIRED=false

# Allows /paste route listing all pastes
PASTEFY_LIST_PASTES=false

# Makes /app/stats public
PASTEFY_PUBLIC_STATS=false

# Disables public pastes section
PASTEFY_PUBLIC_PASTES=false

Adding login

You can choose between INTERAAPPS (best integration), GOOGLE, GITHUB, DISCORD or TWITCH for the provider (You can use all of them at the same time).

OAUTH2_${provider}_CLIENT_ID=${client_id}
OAUTH2_${provider}_CLIENT_SECRET=${client_secret}

Example

OAUTH2_INTERAAPPS_CLIENT_ID=dan3q9n
OAUTH2_INTERAAPPS_CLIENT_SECRET=ASDFASDF

Develop

Build frontend into the backend

# You might want to build the frontend
cd frontend
npm build prod

Frontend

Run the backend (On port 1337) and then go to the frontend and run

cd frontend
npm run serve

We are using IntelliJ Idea and Visual Studio code.

API

You can find the docs of the Pastefy-Rest-APi here: Github Wiki

Administration

If you want to give yourself the admin role, you have to log into your MySQL server and set type on your account to ADMIN in the pastefy_users table.

You'll find the admin panel under https://YOUR_URL/admin