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 akan menjadi file konfigurasi yang digunakan jika Anda menggunakan perintah di atas untuk memulai server. Web UI akan tersedia di https://server-ip:8443 jika https diaktifkan, dan http://server-ip:8000 jika tidak.
Dalam file yang Anda unduh dari repositori ini, Anda akan melihat file yang disebut config.json Anda harus mengisinya agar server web berfungsi dengan baik. Di bawah ini menjelaskan file konfigurasi dan apa yang dilakukan setiap bagian
{
"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
} Setelah Anda mengkonfigurasi server Anda dengan benar, Anda dapat menjalankan node index.js di folder SRC untuk memulai server. Anda dapat menjaga server Anda berjalan selamanya jika Anda menggunakan manajer proses, seperti PM2. PM2 menginstal bersama dengan server Anda jika Anda menggunakan skrip install.sh untuk menginstal server Anda. Kalau tidak, Anda dapat menjalankan npm i -g pm2 untuk menginstal PM2. Kemudian Anda dapat menjalankan server Anda dengan menjalankan pm2 start index.js , dan memantau log dan seperti itu menggunakan pm2 monit
Jika Anda mengkonfigurasi server web ini untuk menjalankan melalui proxy terbalik nginx, pastikan Anda menambahkan baris ini ke konfigurasi proxy terbalik Anda
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
Ini umumnya beberapa hal yang ingin Anda tambahkan ke konfigurasi Anda, dan apa yang sebenarnya diperlukan untuk saham untuk bekerja dengan baik. Ini karena saham mengembalikan unggahan seperti [http/https]://[requested url]/[filename] dan karena Anda menjalankan saham melalui proxy terbalik, kecuali jika Anda meneruskan header asli , saham kemungkinan besar hanya akan mengirimi Anda sesuatu seperti http://[server's real ip address]/[filename]
Jika Anda memiliki beberapa domain yang diarahkan ke server web ini, hanya satu (dapat menyertakan subdomain wildcard) yang dapat digunakan, kecuali pengaturan domain diatur ke hanya satu * seperti itu seperti: "domain": "*", . Ini berarti bahwa domain apa pun akan diterima sebagai domain yang valid oleh server, terlepas dari subdomain.
Jika Anda ingin mencatat aktivitas server web Anda di saluran perselisihan untuk alasan apa pun, Anda bisa. Berikut adalah informasi tentang cara mengatur akun bot dan mendapatkan informasi yang diperlukan untuk penebangan perselisihan
Destinations -> Custom Uploader SettingsDestination Locationpupload , dan kemudian buat nilainya Selain dapat menggunakan kata sandi apa pun yang Anda inginkan untuk Puploads, jika Anda mengetik *random* sebagai bidang Pupload Anda, server akan secara otomatis menghasilkan kata sandi untuk Anda. Kata sandi ini akan mencakup huruf, angka, dan karakter khusus. Ini akan menghasilkan kunci berdasarkan panjang yang Anda tentukan di konfigurasi Anda (puploadkeygenlength). Saat mengajukan permintaan, server akan mengembalikan URL gambar dengan kunci seperti URL: https://qoilo.com/lhHr | KEY: Np$[CBk>X[c^YY{MDlCHH0|Qfm1uK0*lld^Mi$f4d62R5x6C2>~yaL}3*QYnziuZ
showCase , dan kemudian buat nilainya trueUntuk menggunakan saham dengan Flameshot, Anda perlu menggunakan skrip sederhana, berikut adalah contoh:
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_fileSaat menjalankan skrip ini cukup tekan enter saat Anda puas dengan gambar Anda, Flameshot kemudian akan menyimpan gambar ke clipboard Anda yang kemudian akan diganti dengan URL gambar setelah diunggah. Untuk hasil terbaik, saya sarankan untuk menonaktifkan pemberitahuan di aplikasi Flameshot.
4.5.6 , pastikan untuk mengubah perisai di ReadMe dan file package.json untuk mengatakan versi 4.5.7 . Jika versinya 4.5.10 , maka perbarui ke 4.5.11 . Hanya perbarui digit terakhir. Pembaruan/PR yang bukan kode (readme.md, install.sh, file sxcu, package.json, dll.) Tidak boleh merupakan nomor versi yang diperbarui untuk proyek, jadi PR untuk file spesifik tersebut tidak akan menambah nomor versi tersebut