From d6b7dcc74eb3d279bb49c2034d4580b8f2f2c6f0 Mon Sep 17 00:00:00 2001 From: jabuxas Date: Thu, 17 Oct 2024 13:02:20 -0300 Subject: [PATCH] docs: add tutorial for jwt tokens --- README.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 50 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ddb453c..42a90d5 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,15 @@ # abyss -abyss is a basic (mostly) single user http server made for uploading files (logs, images) and then sharing them to the internet +abyss is a basic and mostly single user http server written in go 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. +
+ homepage +
this is abyss' default home page
+
## table of contents +- [features](#features) - [running abyss](#running) - [installing with docker](#docker) - [installing manually](#manual) @@ -13,6 +17,15 @@ note: this is a project made for learning purposes, you should use other more ma - [theming](#theming) - [docs](#docs) - [todo list](#todo) +- [more pictures](#pictures) + +## features + +- **file uploads**: supports uploading various file types, including images, videos, and documents. +- **flexible media display**: automatically renders uploaded files on a webpage based on their type (images, pdfs, videos, or plain text). +- **easily customizable interface**: allows for easy modification of color schemes and layout to suit specific design needs. +- **syntax highlighting for code**: syntax highlighting available by default for code files, with support for multiple programming languages. (can be tweaked/changed and even removed) +- **security considerations**: as it is single user, it's mostly secure but there are still some edges to sharpen ## running: @@ -40,7 +53,11 @@ docker compose up -d # might be docker-compose depending on distro #### with curl -- to upload your files with curl: +- you can upload both with the main key and with jwt tokens + +##### main key + +- to upload your files with main key: ```bash curl -F "file=@/path/to/file" -H "X-Auth: "$(cat /path/to/.key) http://localhost:3235/ @@ -64,7 +81,7 @@ pst() { return 1 fi - curl -F "file=@$file" -H "X-Auth: $(cat ~/.key)" http://localhost:3235 + curl -F "file=@$file" -H "X-Auth: $(cat ~/.key)" http://localhost:3235/ if [[ -p /dev/stdin ]]; then rm "$file" @@ -88,7 +105,7 @@ function pst set file "$argv[1]" end - curl -F "file=@$file" -H "X-Auth: $(cat ~/.key)" http://localhost:3235 + curl -F "file=@$file" -H "X-Auth: $(cat ~/.key)" http://localhost:3235/ if command test -p /dev/stdin rm "$file" @@ -98,6 +115,22 @@ end +##### with jwt tokens + +- you first need to generate them: + +```bash +curl -u admin http://localhost:3235/token # you can also access the url in the browser directly +``` + +- the user will be the value of `$AUTH_USERNAME` and password the value of `$AUTH_PASSWORD` + +- then you use the token in place of the main key: + +```bash +curl -F"file=@/path/to/file.jpg" -H "X-Auth: your-token" http://localhost:3235/ +``` + #### through the browser - you can only upload text through the browser, to do so, simply write text in the form in the default webpage and click upload. @@ -132,3 +165,15 @@ end - [x] custom file displaying!! - [x] syntax highlighting - [ ] add rate limits + +## pictures + +
+ +
this is abyss' default directory list
+
+ +
+ +
this is abyss' default file presentation
+