/ShareX-CDN

Basic image, text & file uploader CDN for ShareX

Primary LanguageHTMLGNU Affero General Public License v3.0AGPL-3.0

Basic image, text & file uploader CDN for ShareX which allows you to upload your screenshots, text documents and any other files to your website and have a random link generated. Because of the length these links are very hard to bruteforce.

Requirements

  • ShareX installed
  • A website or webserver (needs to accept PHP and file uploads via POST requests)
  • A domain or subdomain

Setup

Upload Script

  1. Clone the code from GitHub.
  2. Go in the Upload folder.
  3. Open upload.php with Notepad++.
  4. Edit line 7, 8 and 9 to change your password and link (read the comments next to them).
    • Password: this only lets users with the password upload files to your server
    • Domain URL: set this to your domain (or subdomain) and don't forget the / at the end of the line
    • Length: this specifies the length of the randomly generated folder- & filenames (e.g. https://cdn.knif.dev/img/3lfUh/S1E7M.png has a length of 5 (the URL starts with the domain, then /img/, a random folder name with the length you specified (in this case 5), a random file name with the specified length (in this case 5) and the extension (in this case .png)))
  5. Upload the content of the Upload folder to the root directory of your website (I prefer to make a subdomain called "cdn" and put the folder to its directory).
  6. Make sure that sub-folders have permissions set to 755 (and Group ID set to 33 if applicable), with the upload.php script having permissions of 777.

ShareX

  1. Open all three .sxcu files from the ShareX-Config folder with a Notepad++ and change the RequestURL and password to your own.
  2. Open ShareX, click on Destinations and Custom uploader settings.
  3. Click on Import and select the first .sxcu file, repeat this for the others aswell.
  4. In the bottom left select the corresponding uploader (Image, Text and File).
  5. Click on Test to check if everything is working correctly.

Done! That's it. If something doesn't quite work out for you just contact me on Discord and I'll try my best to help you.

What to do if I can't get it to work?

I created this project a few years ago and it is really hard to get it working with all these different NGINX/Apache configurations, so just try a few things before giving up.

If you get an upload failed because of "error: request entity too large" your server doesn't accept large files via PHP upload. You can fix this issue by increasing your PHP upload limit. If you can't increase it yourself you have to contact your hosting provider to do it for you.

Also maybe the script doesn't have enough permissions to create the files/folders correctly. Try to change the permissions of all files and folders in the upload dir to 755 or 777.

If you still can't get it working just try to use the built in FTP uploader in ShareX, it's way easier to setup than this project 😉

Credits

  • Statuspage for their amazing error 404 & 403 templates
  • Pengu for his initial ShareX uploader script I used as a base
  • ShareX for their awesome program that enables us to upload our screenshots
  • GenericNerd for his fork, which fixed some issues with my script