mirror of https://github.com/tycrek/ass
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.
2.7 KiB
2.7 KiB
anssxustawai
A Not Shitty ShareX Upload Server That Actually Works As Intended (Pronounced "an-zoo-sta-why")
This project is still very young, so don't expect everything to be perfect yet.
Features
- ✔️ Token authorization via HTTP
Authorization
header - ✔️ Upload images, videos, files
- ❌ Thumbnail support
- ✔️ Delete support
- ❌ Multiple database types (JSON, Mongo, MySQL, PostgreSQL, etc. Currently uses JSON)
- ❌ Multiple access types (original, mixed-case alphanumeric, ZWS, etc. Currently uses ZWS)
- ❌ Multi-user support (upload restrictions, web library, etc.)
- ❌ Block-storage support including Amazon S3
- ❌ Usage metrics
Installation
The installation may look daunting but it's really pretty straightforward. Just follow it word-for-word & you'll be fine. If you are not fine, then by all means open an Issue & I'll try my best to help.
- First of all you must have Node.js 14 or later installed. It might work with Node.js 12 but just use 14.
- Clone this repo using
git clone https://github.com/tycrek/anssxustawai.git && cd anssxustawai/
- Run
npm i
to install the required dependencies - Run
npm run setup
to start the easy configuration - Run
npm start
to start the server. The first-time run will:- Create
data.json
&auth.json
- Generate your first authorization token & save it to
auth.json
- Create
- (Optional) You must also configure an SSL-enabled reverse proxy (only if you want to use HTTPS):
- I personally use Caddy, see my tutorial on setting that up
- You may also use Apache or Nginx as reverse proxies
Configure ShareX
- Add a new Custom Uploader in ShareX by going to
Destinations > Custom uploader settings...
- Under Uploaders, click New & name it whatever you like.
- Set Destination type to
Image
,Text
, &File
- Request tab:
- Method:
POST
- URL:
https://your.domain.name.here/
- Body:
Form data (multipart/form-data)
- File from name:
file
(literally put "file
" in the field) - Headers:
- Name:
Authorization
- Value: (the value provided by
npm start
on first run)
- Name:
- Method:
- Response tab:
- URL:
$json:.resource$
- Deletion URL:
$json:.delete$
- URL:
- The file
sample_config.sxcu
can also be modified & imported to suit your needs
Known issues
- Videos won't embed on Discord: I know. This is because Discord developers make some really stupid decisions & only show embeds if the URL ends with
.mp4
. So the workaround: manually type ".mp4
" after pasting your URL. This will be fixed in the future with a "Discord mode" for video uploads.