You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Fabio Manganiello ac42f10e48
Added link to the raw version of a post and removed link to the parent blog
9 months ago
build initial release 11 months ago
cmd initial release 11 months ago
db initial release 11 months ago
html Added link to the raw version of a post and removed link to the parent blog 9 months ago
internal chore: update wish 11 months ago
public Added link to the raw version of a post and removed link to the parent blog 9 months ago
.env.example docs: update readme 11 months ago
.gitignore initial release 11 months ago
Caddyfile initial release 11 months ago
Dockerfile initial release 11 months ago
Dockerfile.caddy initial release 11 months ago
LICENSE initial release 11 months ago
Makefile initial release 11 months ago
README.md docs: update readme 11 months ago
docker-compose.yml initial release 11 months ago
go.mod chore: update wish 11 months ago
go.sum chore: update wish 11 months ago
production.yml initial release 11 months ago

README.md

pastes.sh

A pastebin service for hackers.

comms

setup

  • golang v1.18

You'll also need some environment variables

export POSTGRES_PASSWORD="secret"
export DATABASE_URL="postgresql://postgres:secret@db/pastes?sslmode=disable"
export PASTES_SSH_PORT=2222
export PASTES_WEB_PORT=3000
export PASTES_DOMAIN="pastes.sh"
export PASTES_EMAIL="hello@pastes.sh"
export PASTES_PROTOCOL="http"

I just use direnv which will load my .env file.

development

db

I use docker-compose to standup a postgresql server. If you already have a server running you can skip this step.

Copy example .env

cp .env.example .env

Then run docker compose.

docker-compose up -d

Then create the database and migrate

make create
make migrate

build the apps

make build

run the apps

There are two apps: an ssh and web server.

./build/ssh

Default port for ssh server is 2222.

./build/web

Default port for web server is 3000.

subdomains

Since we use subdomains for blogs, you'll need to update your /etc/hosts file to accommodate.

# /etc/hosts
127.0.0.1 pastes.test
127.0.0.1 erock.pastes.test

Wildcards are not support in /etc/hosts so you'll have to add a subdomain for each blog in development. For this example you'll also want to change the domain env var to PASTES_DOMAIN=pastes.test.

deployment

I use docker-compose for deployment. First you need .env.prod.

cp .env.example .env.prod

The production.yml file in this repo uses my docker hub images for deployment.

docker-compose -f production.yml up -d

If you want to deploy using your own domain then you'll need to edit the Caddyfile with your domain.