Caution
The authentication system for this app is VERY BAD and it's extremely easy to bypass. Using this app is NOT RECOMMENDED unless you disable any routes which use authentication or wait for a fix which isn't likely to happen in the near future.
- Introduction
- Features
- Prerequisites
- Installation
- Webserver Configuration
- ShareX Configuration
- Flameshot Configuration
- Upgrading
- Demo
- Support
- Donate
This is a simple to use, configurable & customizable uploader with Discord Embed, ShareX, Flameshot support, and many more features.
- Customizable
- ShareX Support
- Flameshot Support
- Discord Embed Support
- Support for images (png, jpg, jpeg, gif)
- Support for .TXT files
- Support for .MP4 files
- View Raw
- Download
- Deletion URL
- Basic knowledge of Linux
- Node.JS v16 recommended or v14+
- (Optional) a web server (nginx recommended)
NOTE: The installation guide was written assuming the host OS is Debian 11.
- Clone the repository
$ git clone https://github.com/Rmlyy/Uploader.git
- CD into the uploader directory
$ cd Uploader
- Install the necessary packages
$ npm i
- Rename the
env.example
file to.env
, then open it up in a text editor. - Change the URL to your domain or IP Address. (( Don't put the last / ))
- Change the secret key so others can't upload to your server.
- Run it
$ node app.js
You can use something likescreen
orpm2
to keep the server running.
- NGINX with SSL example configuration:
server {
server_name yourdomain.com www.yourdomain.com;
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}
server {
server_name yourdomain.com www.yourdomain.com;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /path/to/your/ssl/certificate;
ssl_certificate_key /path/to/your/ssl/certificate/key;
# Maximum upload size in MB.
client_max_body_size 512M;
location / {
# Change this to your server port.
proxy_pass http://localhost:8720;
}
}
- NGINX without SSL example configuration:
server {
server_name yourdomain.com www.yourdomain.com;
listen 80;
listen [::]:80;
# Maximum upload size in MB.
client_max_body_size 512M;
location / {
# Change this to your server port.
proxy_pass http://localhost:8720;
}
}
- Apache with SSL example configuration:
Make sure you have thessl
module enabled:a2enmod ssl
Make sure you have theproxy_http
module enabled:a2enmod proxy_http
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect / https://yourdomain.com
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
SSLEngine On
SSLCertificateFile /path/to/your/ssl/certificate
SSLCertificateKeyFile /path/to/your/ssl/certificate/key
# Maximum upload size in bytes.
LimitRequestBody 536870912
# Change this to your server port in .env
ProxyPass / http://localhost:8720/
ProxyPassReverse / http://localhost:8720/
</VirtualHost>
- Apache without SSL example configuration:
Make sure you have theproxy_http
module enabled:a2enmod proxy_http
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
# Maximum upload size in bytes.
LimitRequestBody 536870912
# Change this to your server port in .env
ProxyPass / http://localhost:8720/
ProxyPassReverse / http://localhost:8720/
</VirtualHost>
- Download the ShareX example config
- Import the config
- Change "Request URL" to your domain
- Change secret key value to your secret key
For Flameshot users on Linux, you can use this shell script.
To upgrade, simply replace all the old files and directories (except the uploads directory if you want to keep your uploads) with the new files, run npm i
, and then restart the server.
Not available anymore.
Need help? Feel free to join my discord server or email me.
You can donate here to support this project. Thanks!