git clone https://github.com/TannerReynolds/ShareX-Upload-Server.git
cd ShareX-Upload-Server
chmod +x install.sh
./install.shdocker build -t sharex-upload-server .
docker run --name " sharex-upload-server " -d
-v $( pwd ) /src/config.json:/usr/src/app/config.json
-v $( pwd ) /src/db.json:/usr/src/app/db.json
-v $( pwd ) /src/server/uploads/:/usr/src/app/server/uploads/
-p 8000:80 -p 8443:443
sharex-upload-server
docker logs -f sharex-upload-server /src/config.json será el archivo de configuración utilizado si usó el comando anterior para iniciar el servidor. La interfaz de usuario web estará disponible en https://server-ip:8443 si https está habilitado, y http://server-ip:8000 si no es así.
En los archivos que descargó de este repositorio, verá un archivo llamado config.json , debe completar esto para que el servidor web funcione correctamente. A continuación explica el archivo de configuración y lo que hace cada parte
{
"key" : [ "" ] , // Password(s) for private uploading
"domain" : "*.example.com" , // Domain server will use. Will error if domain not used in request. Place "*" as the subdomain to enable wildcard subdomains for the webserver.
"puploadKeyGenLength" : 64 , // Amount of characters server should use for pupload files
"public" : false , // Disables auth and does not render a password field for /upload
"maxUploadSize" : 50 , // max upload size for non-admins using regular key in MB
"markdown" : true , // enables markdown rendering (upload whole .md file for render)
"port" : 80 , // port to listen on
"secure" : true , // Whether or not you want https. (make sure key and cert.pem are in src directory)
"fileNameLength" : 4 , // File name length
"shortUrlLength" : 3 , // File name length for short URLs
"securePort" : 443 , // Port to use when secure is true
"ratelimit" : 1000 , // Ratelimit for POSTing in milliseconds
"dateURLPath" : false , // Set to true to prefix uploads with the date (Ex: https://domain.com/2020/04/22/ghNa.pdf)
"allowed" : [
"png" , "jpg" , "gif" , "mp4" , "mp3" , "jpeg" , "tiff" , "bmp" , "ico" , "psd" , "eps" , "raw" , "cr2" , "nef" , "sr2" , "orf" , "svg" , "wav" , "webm" , "aac" , "flac" , "ogg" , "wma" , "m4a" , "gifv"
] , // Allowed file types for non-admins
"admin" : {
"key" : [ "" ] , // Admin password(s) for uploading & for gallery access
"maxUploadSize" : 1024 , // Max upload size for admin in MB
"allowed" : [
"png" , "jpg" , "gif" , "mp4" , "mp3" , "jpeg" , "tiff" , "bmp" , "ico" , "psd" , "eps" , "raw" , "cr2" , "nef" , "sr2" , "orf" , "svg" , "wav" , "webm" , "aac" , "flac" , "ogg" , "wma" , "m4a" , "gifv" , "html"
] // Allowed file types for admins
} ,
"paste" : {
"maxUploadSize" : 20 // allowed paste upload size in MB
} ,
"discordToken" : "" , // Discord bot token
"discordAdminIDs" : [ "discord IDs of people who can run commands go here" , "Like this" ] , // User IDs in an array
"discordChannelID" : "" , // Channel ID for monitoring uploads to
"prefix" : "" // Bot Prefix
} Una vez que haya configurado correctamente su servidor, puede ejecutar node index.js en la carpeta SRC para iniciar el servidor. Puede mantener su servidor en funcionamiento para siempre si usa un administrador de procesos, como PM2. PM2 se instala junto con su servidor si usó el script Install.SH para instalar su servidor. De lo contrario, puede ejecutar npm i -g pm2 para instalar PM2. Luego puede ejecutar su servidor ejecutando pm2 start index.js y monitorear los registros y tal usando pm2 monit
Si está configurando este servidor web para ejecutar a través de un proxy inverso NGINX, asegúrese de agregar estas líneas a su configuración de proxy inverso
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
Esto es generalmente algunas cosas que desea agregar a su configuración, y es lo que realmente se requiere para que las acciones funcionen correctamente. Esto se debe a que las acciones devuelven cargas como [http/https]://[requested url]/[filename] y dado que está ejecutando acciones a través de un proxy inverso, a menos que esté pasando los encabezados originales , las acciones probablemente le enviarán algo como http://[server's real ip address]/[filename]
Si tiene múltiples dominios apuntados a este servidor web, solo se puede usar uno (puede incluir un subdominio comodín), a menos que la configuración del dominio esté configurada en un solo * como así: "domain": "*", . Esto significa que cualquier dominio será aceptado como un dominio válido por el servidor, independientemente del subdominio.
Si desea registrar la actividad de su servidor web en un canal de discordia por cualquier razón, puede. Aquí hay información sobre cómo configurar una cuenta BOT y obtener la información necesaria para el registro de discordias
Destinations -> Custom Uploader SettingsDestination Locationpupload y luego haga el valor que desee que sea la contraseña Además de poder usar cualquier contraseña que desee para PUPLOADS, si escribe *random* como su campo Pupload, el servidor generará automáticamente una contraseña para usted. Esta contraseña incluirá letras, números y caracteres especiales. Generará una clave basada en la longitud que especifica en su configuración (PuploadKeyGenLength). Al realizar solicitudes, el servidor devolverá la URL de la imagen con la clave como URL: https://qoilo.com/lhHr | KEY: Np$[CBk>X[c^YY{MDlCHH0|Qfm1uK0*lld^Mi$f4d62R5x6C2>~yaL}3*QYnziuZ
showCase y luego haga que el valor truePara usar acciones con flameshot, necesitará usar un script simple, aquí hay un ejemplo:
key= " YourPassword "
# Only needed for multi-domain support, if you only have one simply set the url
# 2 lines below to url="https://your.domain/api/files"
urls=( " https://example.com/api/files " " https://example.org/api/files " )
url= ${urls[$RANDOM % ${#urls[@]} ]}
temp_file= " /tmp/screenshot.png "
# Run flameshot --help for options
flameshot gui -r > $temp_file
# For some reason flameshot always seems to exit with 0 even when aborting the process
# so we had to find a way around that.
if [[ $( file --mime-type -b $temp_file ) != " image/png " ]] ; then
rm $temp_file
notify-send " Screenshot aborted " -a " Flameshot " && exit 1
fi
image_url= $( curl -X POST -F " fdata=@ " $temp_file -F " key= " $key -v " $url " 2> /dev/null )
echo -n $image_url | xclip -sel c
notify-send " Image URL copied to clipboard " " $image_url " -a " Flameshot " -i $temp_file
rm $temp_fileAl ejecutar este script, simplemente presione Enter cuando esté satisfecho con su imagen, Flameshot guardará la imagen en su portapapeles que luego se reemplazará con la URL de la imagen una vez que esté cargada. Para obtener los mejores resultados, sugiero deshabilitar las notificaciones en la aplicación Flamhot.
4.5.6 , asegúrese de cambiar el escudo en el archivo ReadMe y Package.json para decir la versión 4.5.7 . Si la versión es 4.5.10 , actualice a 4.5.11 . Solo actualice el último dígito. Actualizaciones/PRS que no son código (ReadMe.MD, Install.SH, SXCU Archivos, paquete.json, etc.) no debe constituir un número de versión actualizado para el proyecto, por lo que PRS para esos archivos específicos no incrementará el número de versión