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 ist die verwendete Konfigurationsdatei, wenn Sie den obigen Befehl zum Starten des Servers verwendet haben. Die Web-Benutzeroberfläche ist unter https://server-ip:8443 verfügbar, wenn HTTPS aktiviert ist, und http://server-ip:8000 wenn dies nicht der Fall ist.
In den Dateien, die Sie aus diesem Repository heruntergeladen haben, sehen Sie eine Datei namens config.json Sie müssen dies ausfüllen, damit der Webserver ordnungsgemäß funktioniert. Nachfolgend erläutert die Konfigurationsdatei und was jeder Teil tut
{
"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
} Sobald Sie Ihren Server ordnungsgemäß konfiguriert haben, können Sie node index.js im SRC -Ordner ausführen, um den Server zu starten. Sie können Ihren Server für immer laufen lassen, wenn Sie einen Prozessmanager wie PM2 verwenden. PM2 installiert zusammen mit Ihrem Server, wenn Sie das Skript install.SH verwendet haben, um Ihren Server zu installieren. Andernfalls können Sie npm i -g pm2 ausführen, um PM2 zu installieren. Anschließend können Sie Ihren Server ausführen, indem Sie pm2 start index.js ausführen und Protokolle und solche mithilfe von pm2 monit überwachen
Wenn Sie diesen Webserver so konfigurieren, dass Sie einen Nginx Reverse -Proxy durchführen, stellen Sie sicher, dass Sie diese Zeilen Ihrer Reverse Proxy -Konfiguration hinzufügen
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
Dies sind im Allgemeinen einige Dinge, die Sie Ihrer Konfiguration hinzufügen möchten, und ist das, was tatsächlich erforderlich ist, damit die Aktien ordnungsgemäß funktionieren. Dies liegt daran, dass Aktien hochladen wie [http/https]://[requested url]/[filename] und da Sie Aktien über einen Reverse -Proxy ausführen, werden Sie nicht nur etwas wie http://[server's real ip address]/[filename] sendet, wenn Sie die ursprünglichen Headers weitergeben,/[Filename] [Filename].
Wenn Sie mehrere Domänen auf diesen Webserver hingewiesen haben, kann nur eine (kann Wildcard -Subdomain enthalten) verwendet werden, es sei denn, die Domäneneinstellung ist auf nur ein einzelnes * wie SO eingestellt: "domain": "*", . Dies bedeutet, dass jede Domäne unabhängig von der Subdomain als gültige Domäne vom Server akzeptiert wird.
Wenn Sie die Aktivitäten Ihres Webservers aus irgendeinem Grund in einem Discord -Kanal protokollieren möchten, können Sie es können. Hier finden Sie Informationen, wie Sie ein BOT -Konto einrichten und die für die Protokollierung von Discord benötigten Informationen erhalten und die benötigten Informationen erhalten
Destinations -> Custom Uploader SettingsDestination Location ändernpupload ein Feld hinzu und machen Sie dann den Wert, was auch immer das Passwort sein soll Wenn Sie nicht nur ein Kennwort verwenden können, das Sie für puploads gewünscht haben, generiert der Server, wenn Sie *random* als PUpload -Feld eingeben, automatisch ein Kennwort für Sie. Dieses Passwort enthält Buchstaben, Zahlen und Sonderzeichen. Es generiert einen Schlüssel basierend auf der Länge, die Sie in Ihrer Konfiguration angeben (puploadKeyGenLength). Bei Anfragen gibt der Server die Bild -URL mit dem Schlüssel wie URL: https://qoilo.com/lhHr | KEY: Np$[CBk>X[c^YY{MDlCHH0|Qfm1uK0*lld^Mi$f4d62R5x6C2>~yaL}3*QYnziuZ
showCase ein Feld hinzu und machen Sie dann den Wert trueUm Aktien mit Flameshot zu verwenden, müssen Sie ein einfaches Skript verwenden. Hier ist ein Beispiel:
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_fileWenn Sie dieses Skript einfach ausführen, klicken Sie einfach Eingabetaste, wenn Sie mit Ihrem Bild zufrieden sind. Flameshot speichert das Bild in Ihrer Zwischenablage, die dann durch die hochgeladene Bild -URL ersetzt wird. Für die besten Ergebnisse schlage ich vor, Benachrichtigungen in der Flameshot -App zu deaktivieren.
4.5.6 ist , ändern Sie den Schild in der Datei ReadMe und Package.json, um Version 4.5.7 zu sagen . Wenn die Version 4.5.10 ist , aktualisieren Sie sie auf 4.5.11 . Aktualisieren Sie nur die letzte Ziffer. Updates/PRs, die kein Code sind (readme.md, install.sh, sxcu -Dateien, package.json usw.) sollten keine aktualisierte Versionsnummer für das Projekt darstellen, daher werden PRS für diese spezifischen Dateien die Versionsnummer nicht erhöht