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 будет использованным файлом конфигурации, если вы использовали вышеуказанную команду для запуска сервера. Веб-интерфейс будет доступен на https://server-ip:8443 если https включен, и http://server-ip:8000 если это не так.
В файлах, которые вы загрузили из этого репозитория, вы увидите файл с именем config.json , вы должны заполнить его для правильной работы WebServer. Ниже объясняется файл конфигурации и то, что делает каждая часть
{
"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
} После того, как вы правильно настроили свой сервер, вы можете запустить node index.js в папке SRC, чтобы запустить сервер. Вы можете сохранить свой сервер навсегда, если вы используете диспетчер процессов, например, PM2. PM2 устанавливает вместе с вашим сервером, если вы использовали сценарий install.sh для установки вашего сервера. В противном случае вы можете запустить npm i -g pm2 для установки PM2. Затем вы можете запустить свой сервер, запустив pm2 start index.js , и мониторинг журналов и тому подобное с помощью pm2 monit
Если вы настраиваете этот WebServer для выполнения через реверс -прокси Nginx, убедитесь, что вы добавили эти строки в свою конфигурацию обратного прокси -сервера
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
Как правило, это некоторые вещи, которые вы хотите добавить в свою конфигурацию, и это то, что на самом деле требуется для правильной работы акций. Это связано с тем, что акции возвращают загрузки, такие как [http/https]://[requested url]/[filename] , и, поскольку вы используете акции через обратный прокси, если вы не передаете исходные заголовки, Shares, скорее всего, просто собирается отправить вам что -то вроде http://[server's real ip address]/[filename]
Если у вас есть несколько доменов, указывающих на этот веб -сервер, можно использовать только один (может включать поддомен поддона)), если только настройка домена не установлена на один * подобный: "domain": "*", . Это означает, что любой домен будет принят в качестве действительного домена сервером, независимо от субдомена.
Если вы хотите войти в систему активности вашего веб -сервера в канале Discord по какой -либо причине, вы можете. Вот информация о том, как настроить учетную запись BOT и получить информацию, необходимую для ведения журнала Discord
Destinations -> Custom Uploader SettingsDestination Locationpupload , а затем сделайте значение, каким -то хотите, чтобы пароль был В дополнение к возможности использовать любой пароль, который вам нужен для PUPLOANDS, если вы вводите *random* в качестве поля PUPLOAD, сервер автоматически генерирует пароль для вас. Этот пароль будет включать буквы, номера и специальные символы. Он будет генерировать ключ на основе длины, которую вы указываете в вашей конфигурации (Puploadkegenlength). При выполнении запросов сервер вернет URL -адрес изображения с ключом, например, URL: https://qoilo.com/lhHr | KEY: Np$[CBk>X[c^YY{MDlCHH0|Qfm1uK0*lld^Mi$f4d62R5x6C2>~yaL}3*QYnziuZ
showCase , а затем сделайте значение trueЧтобы использовать акции с FlameShot, вам нужно будет использовать простой сценарий, вот пример:
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_fileПри запуске этого скрипта просто нажмите Enter, когда вы удовлетворены своим изображением, Flameshot будет сохранять изображение в вашем буфер обмена, который затем будет заменен на URL -адрес изображения после его загрузки. Для лучших результатов я предлагаю отключить уведомления в приложении FlameShot.
4.5.6 , обязательно измените щит в файле readme и package.json, чтобы сказать версию 4.5.7 . Если версия составляет 4.5.10 , обновите ее до 4.5.11 . Только обновите последнюю цифру. Обновления/PRS, которые не являются кодом (readme.md, install.sh, файлы sxcu, пакет.