http paste webserver in go
Go to file
2024-09-06 16:34:38 -03:00
.github/workflows build: push docker images automatically 2024-09-06 11:15:43 -03:00
.gitignore feat: easier setup and more transparent customization 2024-09-03 21:53:26 -03:00
abyss.go feat: add customizable port and file directories 2024-09-06 16:34:20 -03:00
docker-compose.yml ops: change default port in docker compose 2024-09-06 16:34:38 -03:00
Dockerfile feat: optimize docker image 2024-09-06 10:33:57 -03:00
generate_config.sh feat: add customizable port and file directories 2024-09-06 16:34:20 -03:00
go.mod build: add on-commit github action 2024-09-03 22:26:00 -03:00
go.sum feat: easier setup and more transparent customization 2024-09-03 21:53:26 -03:00
handlers.go feat: add customizable port and file directories 2024-09-06 16:34:20 -03:00
LICENSE Initial commit 2024-08-19 11:55:06 -03:00
README.md docs: add mention to docker image 2024-09-06 12:07:20 -03:00

abyss

abyss is a basic single user http server made for uploading files (logs, images) and then sharing them to the internet

note: this is a project made for learning purposes, you should use other more mature projects if running in production. probably.

table of contents

running:

  • run ./generate_config.sh to setup the necessary environment variables

docker

  • to run with docker, you can use docker compose:
docker compose up -d # might be docker-compose depending on distro
  • you can optionally use the docker image directly and set it up how you want

  • dont change inside port of 8999 unless you know what you're doing

manual

  • to run it manually, build it with go build -o abyss and run:
./abyss

uploading

  • then, simply upload your files with curl:
curl -F "file=@/path/to/file" -H "X-Auth: "$(cat /path/to/.key) http://localhost:8999/

docs

  • ABYSS_URL: this is used for the correct formatting of the response of curl.
  • AUTH_USERNAME | AUTH_PASSWORD: this is used to access http://localhost:8999/tree, which shows all uploaded files
  • UPLOAD_KEY: this is key checked when uploading files. if the key doesn't match with server's one, then it refuses uploading.

todo:

  • add upload of logs funcionality (like 0x0.st)
  • add docker easy setup
  • add db for tracking of file names (dont need that)
  • add file browser (like file://)
  • add file extension in its name
  • login prompt when accessing /tree
  • add rate limits