I’m not sure about that actually, I just ran this on server console in a live game server and it worked
If it is true, it is still better to use a proxy, and more backup proxies, and then the normal discord URL as a last resort.
In case they ban it again.
You can also do it on a live game too.
Hi, trying to figure out how to host a private instance of this service; are there any guides on this available? The Github readme is criminally nondescriptive.
This is how i set it up on Almalinux 8.10 and 9.4
I use CyberPanel, for the OpenLiteSpeed proxy, to show the sub domain instead of the IP.
For Almalinux 8 and 9:
Install basic SSH node modules
yum install -y dnf
wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/dnf-0.6.4-2.sdl7.noarch.rpm
wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/dnf-conf-0.6.4-2.sdl7.noarch.rpm
wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/python-dnf-0.6.4-2.sdl7.noarch.rpm
yum install -y dnf-0.6.4-2.sdl7.noarch.rpm dnf-conf-0.6.4-2.sdl7.noarch.rpm python-dnf-0.6.4-2.sdl7.noarch.rpm
curl -sL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
sudo yum install -y gcc-c++ make nano sendmail net-tools htop unzip curl libtool autoconf
dnf install -y nsolid
sudo npm install -g pm2@latest yarn npm@latest
pm2 update
Install Redis
Install Redis
Install RabbitMQ
sudo dnf -y update
sudo dnf install vim -y
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
sudo dnf install -y erlang
sudo dnf install -y rabbitmq-server
sudo dnf install -y epel-release
sudo dnf install -y gcc glibc-devel make ncurses-devel openssl-devel autoconf m4 unixODBC-devel wget
cd /root
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5.2/erlang-26.2.5.2-1.el8.x86_64.rpm
sudo dnf localinstall -y erlang-26.2.5.2-1.el8.x86_64.rpm
sudo tee /etc/yum.repos.d/rabbitmq.repo <<EOF
# In /etc/yum.repos.d/rabbitmq.repo
##
## Zero dependency Erlang RPM
##
[modern-erlang]
name=modern-erlang-el9
# uses a Cloudsmith mirror @ yum.novemberain.com.
# Unlike Cloudsmith, it does not have any traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/9/$basearch
https://yum2.novemberain.com/erlang/el/9/$basearch
https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/9/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[modern-erlang-noarch]
name=modern-erlang-el9-noarch
# uses a Cloudsmith mirror @ yum.novemberain.com.
# Unlike Cloudsmith, it does not have any traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/9/noarch
https://yum2.novemberain.com/erlang/el/9/noarch
https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/9/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[modern-erlang-source]
name=modern-erlang-el9-source
# uses a Cloudsmith mirror @ yum.novemberain.com.
# Unlike Cloudsmith, it does not have any traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/9/SRPMS
https://yum2.novemberain.com/erlang/el/9/SRPMS
https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/9/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
##
## RabbitMQ Server
##
[rabbitmq-el9]
name=rabbitmq-el9
baseurl=https://yum2.novemberain.com/rabbitmq/el/9/$basearch
https://yum1.novemberain.com/rabbitmq/el/9/$basearch
https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/9/$basearch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[rabbitmq-el9-noarch]
name=rabbitmq-el9-noarch
baseurl=https://yum2.novemberain.com/rabbitmq/el/9/noarch
https://yum1.novemberain.com/rabbitmq/el/9/noarch
https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/9/noarch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[rabbitmq-el9-source]
name=rabbitmq-el9-source
baseurl=https://yum2.novemberain.com/rabbitmq/el/9/SRPMS
https://yum1.novemberain.com/rabbitmq/el/9/SRPMS
https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el/9/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
gpgcheck=0
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
EOF
rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc'
rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key'
rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key'
sudo rpm --import rabbitmq-server-3.13.5-1.el8.noarch.rpm.asc
sudo rpm -Uvh rabbitmq-server-3.13.5-1.el8.noarch.rpm
sudo rabbitmq-plugins enable rabbitmq_management
dnf update -y
dnf install socat logrotate -y
dnf install -y erlang rabbitmq-server
sudo systemctl enable rabbitmq-server
sudo systemctl start rabbitmq-server
rabbitmqctl add_user Admin PASSWORDHERE
rabbitmqctl set_user_tags Admin administrator
rabbitmqctl set_permissions -p / Admin ".*" ".*" ".*"
sudo systemctl restart rabbitmq-server
sudo systemctl status rabbitmq-server
sudo firewall-cmd --permanent --add-port=5672/tcp
sudo firewall-cmd --permanent --add-port=15672/tcp
sudo firewall-cmd --reload
Once you have installed RabbitMQ, you can run the following command in the Run-Webhook.
You can place the webhook folder anywhere you want, but i suggest not posting it in a public folder.
This example is not a good place to post it.
/home/newstargeted.com/public_html
cd /home/webhook-proxy
git clone GitHub - lewisakura/webhook-proxy: A Discord webhook proxy, primarily for Roblox games.
Duplicate and or rename the config.example.json
into config.json
.
You can also edit the config file as needed.
See normal configs here:
WebhookProxy | Discord webhooks go brrrrrrr - #23 by lewisakura
Run-Webhook
cd /home/webhook-proxy
npm i -g pm2 yarn
npm install pm2@latest -g
pm2 update
pm2 flush
pm2 delete all
pm2 save --force
yarn && yarn build
pm2 start dist/index.js --name=webhook-proxy -i 1
pm2 start dist/queueProcessor.js --name=webhook-proxy-processor -i 1
pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size=1G retain=5 compress=true
pm2 set pm2-logrotate:retain 5
pm2 set pm2-logrotate:compress true
pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
pm2 set pm2-logrotate:dateFormat ss-mm-HH-MM-YYYY
pm2 save
pm2 update
pm2 logs
After that, you need some way of using the proxy against your domain, such as a reproxy.
I use CyberPanel, where i then use OLS (Open Lite Speed)
Where i use my https://webhook.newstargeted.com as an example:
Since i save the external app as a webhook, i go into the .htaccess and use this as a rewrite.
For Ubuntu:
Install Basic SSH Node Modules
# Update package list
sudo apt update
# Install required packages
sudo apt install -y curl software-properties-common gcc g++ make nano sendmail net-tools htop unzip libtool autoconf
# Install Node.js and NPM (Node.js 18.x)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
# Install PM2 and Yarn globally
sudo npm install -g pm2@latest yarn npm@latest
# Update PM2
pm2 update
Install Redis
Install Redis
Install RabbitMQ
# Update package list
sudo apt update
# Install Vim (optional)
sudo apt install -y vim
# Install Erlang dependencies
sudo apt install -y erlang
# Add RabbitMQ repository and public key
sudo apt-get install -y curl gnupg
curl -fsSL https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add -
echo "deb https://packages.erlang-solutions.com/ubuntu $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/erlang.list
curl -fsSL https://packages.rabbitmq.com/debian/rabbitmq-signing-key.asc | sudo apt-key add -
echo "deb https://packages.rabbitmq.com/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
# Update package list after adding repositories
sudo apt update
# Install RabbitMQ server and Erlang
sudo apt install -y rabbitmq-server
# Enable and start RabbitMQ service
sudo systemctl enable rabbitmq-server
sudo systemctl start rabbitmq-server
# Enable RabbitMQ management plugin
sudo rabbitmq-plugins enable rabbitmq_management
# Add RabbitMQ user with administrative privileges
sudo rabbitmqctl add_user Admin PASSWORDHERE
sudo rabbitmqctl set_user_tags Admin administrator
sudo rabbitmqctl set_permissions -p / Admin ".*" ".*" ".*"
# Open necessary ports in the firewall
sudo ufw allow 5672/tcp
sudo ufw allow 15672/tcp
sudo ufw reload
# Verify RabbitMQ service status
sudo systemctl status rabbitmq-server
Once you have installed RabbitMQ, you can run the following command in the Run-Webhook.
You can place the webhook folder anywhere you want, but i suggest not posting it in a public folder.
This example is not a good place to post it.
/home/newstargeted.com/public_html
cd /home/webhook-proxy
git clone GitHub - lewisakura/webhook-proxy: A Discord webhook proxy, primarily for Roblox games.
Duplicate and or rename the config.example.json
into config.json
.
You can also edit the config file as needed.
See normal configs here:
WebhookProxy | Discord webhooks go brrrrrrr - #23 by lewisakura
Run-Webhook
# Clone the webhook-proxy repository
cd /home/webhook-proxy
git clone https://github.com/LewisTehMinerz/webhook-proxy
# Duplicate or rename config.example.json to config.json and edit as needed
cd webhook-proxy
cp config.example.json config.json
# Install PM2 and Yarn globally if not already done
sudo npm install -g pm2 yarn
# Install dependencies and build the project
yarn && yarn build
# Start the webhook proxy with PM2
pm2 start dist/index.js --name=webhook-proxy -i 1
pm2 start dist/queueProcessor.js --name=webhook-proxy-processor -i 1
# Set up PM2 logrotate
pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 1G
pm2 set pm2-logrotate:retain 5
pm2 set pm2-logrotate:compress true
pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
pm2 save
pm2 update
pm2 logs
After that, you need some way of using the proxy against your domain, such as a reproxy.
I use CyberPanel, where i then use OLS (Open Lite Speed)
Where i use my https://webhook.newstargeted.com as an example:
Since i save the external app as a webhook, i go into the .htaccess and use this as a rewrite.
I’m not sure if its just me or it looks like the proxy is either down or discord has stopped taking my requests?
Here is what my output looks like:
As you can see everything is fine, at least to me, but my messages are not printing in a discord channel? It was working perfectly fine a couple of hours ago so I’m not sure what has happened.
You’re fine, the holdup is on Discord’s end. More info here WebhookProxy | Discord webhooks go brrrrrrr - #293 by lewisakura
Do you have any specific instructions for Ubuntu Linux?
I updated the tutorial for all 3. Almalinux 8, Almalinux 9, and Ubuntu.
I have been encountering a bunch of internal server errors, is there any information on this?
I’m not sure how this is happening, but I just got around to setting up my own instance and the webhook proxy appears to be throwing out a slew of errors regarding a connection to localhost (specifically 127.0.0.1 port 6379) being refused, any idea what’s causing this?
(this goes on for a long time.)
EDIT: Found out that the redis
package was needed, why was that not a part of the instructions?
Roblox and Guilded have the opportunity to do something funny.
What do you mean by funny, when there are no users on the platform?
Hello, using /queue seems to only return an HTTP 403 error? Don’t really have any other way to handle rate limiting either