With the Shutdown of noahc3's Public Pegascape DNS a few weeks ago, there's no public way for people including me that rely on Pegascape to easily launch caffeine on ipatched Switches running Firmware 4.x or other Software-Based Exploits on lower Firmwares, effectively locking them out of CFW. While you can self-host your own instance, that still requires some setup and still doesn't make it accessible outside of your home network. And while modchips exist, you really don't have to use them if software-based exploits worked fine for you. To fix this dilemma, I decided to host a public instance of PegaScape on a VPS dedicated to just this one task.
Just replace the IPs for primary and secondary DNS from the current IPs with
Then launching Pegascape normally via Fake News should be the same experience as it was before!
The VPS is hosted on an Oracle Cloud Server hosted in Amsterdam/Netherlands, which keeps latency low and stability high for EU Users and latency hopefully as low as possible for the rest of the world. Please keep in mind that I cannot guarantee 24/7 availability, although I really want to deliver it. If it seems to not be working after multiple tries, contact me here on GBATemp or Discord. Then I'll have a look.
I want to keep this service up for as long as possible, since I also need it for me. I don't plan to shut it down at any point, however if it'll change, I'll update this post.
Please give me feedback if it runs flawlessly for you. From my and @Technicmaster0's limited testing, it seems as reliable as the original one.
Edit 2025-03-15: @viperware launched an additional PegaScape instance which is running in WiFi Auth Mode, unlike mine which running in Applet Mode. It is hosted in Florida, USA. To use it, change primary and secondary DNS to
You can use it as is or to install FakeNews Injector via hbmenu. Keep in mind that you have to downgrade hbmenu to a mid 2019 build for it to launch successfully via PegaScape. If you need help or the files for it, just PM me.
I am not maintaining this one, it is 100% independent from my instance. If you have availability issues, reach out to them regarding this instance. I am just spreading the word.
For the fellas wanting to host another instance, here's a quick info on how I did it. YOU DON'T HAVE TO DO THIS IF YOU JUST WANT TO USE MY INSTANCE!
Just replace the IPs for primary and secondary DNS from the current IPs with
141.148.246.60
Then launching Pegascape normally via Fake News should be the same experience as it was before!
The VPS is hosted on an Oracle Cloud Server hosted in Amsterdam/Netherlands, which keeps latency low and stability high for EU Users and latency hopefully as low as possible for the rest of the world. Please keep in mind that I cannot guarantee 24/7 availability, although I really want to deliver it. If it seems to not be working after multiple tries, contact me here on GBATemp or Discord. Then I'll have a look.
I want to keep this service up for as long as possible, since I also need it for me. I don't plan to shut it down at any point, however if it'll change, I'll update this post.
Please give me feedback if it runs flawlessly for you. From my and @Technicmaster0's limited testing, it seems as reliable as the original one.
Edit 2025-03-15: @viperware launched an additional PegaScape instance which is running in WiFi Auth Mode, unlike mine which running in Applet Mode. It is hosted in Florida, USA. To use it, change primary and secondary DNS to
162.252.81.54
You can use it as is or to install FakeNews Injector via hbmenu. Keep in mind that you have to downgrade hbmenu to a mid 2019 build for it to launch successfully via PegaScape. If you need help or the files for it, just PM me.
I am not maintaining this one, it is 100% independent from my instance. If you have availability issues, reach out to them regarding this instance. I am just spreading the word.
For the fellas wanting to host another instance, here's a quick info on how I did it. YOU DON'T HAVE TO DO THIS IF YOU JUST WANT TO USE MY INSTANCE!
Self-Hosted Pegascape seems unhappy when exposed to the internet. The node server crashes when receiving unexpected traffic (bot traffic for example, or incomplete requests), which results in the Service randomly dying after a varying amount of time (few hours to a few days). To combat this, I built a quick health check to check the instance health every 2 seconds, restarting the service if it died, keeping the Uptime very high, hopefully.
I followed this guide to initalize the repo on the server:
https://gbatemp.net/threads/building-pagascape-from-source-to-running-self-hosted-mode.650712/
I set up everything in the default ubuntu user, but copied the PegaScape Project to /root too, since the System Services by default run on root. Since the node versions are a bit old, I guess you really shouldn't do this on a machine you use for anything else due to possible security vulns. Also, while it's active you won't be able to correctly resolve Domains, since the DNS Port 53 is used for your own DNS Server that is needed for PegaScape to work.
Then you have to expose the following ports to the Internet:
80 - For HTTP
53 - For DNS
8100 - Websocket - PegaScape uses websockets to transfer some Payloads. This is undocumented in the original github readme. Keeping them closed will result in an endless spinning circle, and the exploits won't load on your switch.
443 - HTTPS Traffic - I didn't test without 443 closed, however in the Wireshark Traffic in the Locally Hosted Instance there were a few packets transmitted using HTTPS, so I guess you need it as well.
I then set up two System Services, one for Pegascape itself, one for the Health Check. I guess you could do this cleaner, however it works fine for me.
The PegaScape Part is made of a Bash Script and a System Service:
Create a pegascape.sh in /usr/bin (Tested on Ubuntu 22.04 LTS) and fill in the following code
Replace the IP with the IP of your Server. Don't forget to make the script executable (chmod +x pegascape.sh)
Then, create a file "pegascape.service" in /etc/systemd/system with the following content for the System Service
Start the pegascape service and enable it to launch with the System Startup.
You can now check the Status with
It should read active. You can check the node Server that runs in a screen with
The Webserver of Pegascape should also be avaliable on your Server IP on the default HTTP Port 80. Check it with a browser.
Now you need to implement a Health Check that restarts the service in case it crashes. Like mentioned before, the Service was unstable for me, crashing when exposed to the Internet, apparently because it's not written clean enough to have robust error handling. It throws errors such as ECONNRESET, killing the service in the process. Therefore, I wrote a health-check that checks if the website can still be reached every 2 seconds and if not, restarts the main PegaScape Service.
This part is again made of a System Service and a Bash Script
Create a pegascapehealthcheck.sh in /usr/bin and fill in this code:
Don't forget to make the script executable.
Then, create a pegascapehealthcheck.service in /etc/systemd/system/ with the code.
Then, start and enable the health check for startup
When running
it'll print any occasions where the service was restarted into the output
Then you shoud be up and running! Feel free to share your Public Instance with the community! If you want, send me the IP and I'll keep the first post updated!
I followed this guide to initalize the repo on the server:
https://gbatemp.net/threads/building-pagascape-from-source-to-running-self-hosted-mode.650712/
I set up everything in the default ubuntu user, but copied the PegaScape Project to /root too, since the System Services by default run on root. Since the node versions are a bit old, I guess you really shouldn't do this on a machine you use for anything else due to possible security vulns. Also, while it's active you won't be able to correctly resolve Domains, since the DNS Port 53 is used for your own DNS Server that is needed for PegaScape to work.
Then you have to expose the following ports to the Internet:
80 - For HTTP
53 - For DNS
8100 - Websocket - PegaScape uses websockets to transfer some Payloads. This is undocumented in the original github readme. Keeping them closed will result in an endless spinning circle, and the exploits won't load on your switch.
443 - HTTPS Traffic - I didn't test without 443 closed, however in the Wireshark Traffic in the Locally Hosted Instance there were a few packets transmitted using HTTPS, so I guess you need it as well.
I then set up two System Services, one for Pegascape itself, one for the Health Check. I guess you could do this cleaner, however it works fine for me.
The PegaScape Part is made of a Bash Script and a System Service:
Create a pegascape.sh in /usr/bin (Tested on Ubuntu 22.04 LTS) and fill in the following code
Code:
#!/bin/bash
cd /root/PegaScape/
screen -d -m /home/ubuntu/.nvm/versions/node/v9.11.2/bin/node start.js --webapplet --ip YOUR.IP
sleep infinity
Then, create a file "pegascape.service" in /etc/systemd/system with the following content for the System Service
Code:
[Unit]
Description=PegaScape Startup
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/pegascape.sh
[Install]
# Autostart after reboot
WantedBy=multi-user.target
Start the pegascape service and enable it to launch with the System Startup.
Code:
sudo systemctl start pegascape.service
sudo systemctl enable pegascape.service
Code:
sudo systemctl status pegascape.service
Code:
sudo screen -x
Now you need to implement a Health Check that restarts the service in case it crashes. Like mentioned before, the Service was unstable for me, crashing when exposed to the Internet, apparently because it's not written clean enough to have robust error handling. It throws errors such as ECONNRESET, killing the service in the process. Therefore, I wrote a health-check that checks if the website can still be reached every 2 seconds and if not, restarts the main PegaScape Service.
This part is again made of a System Service and a Bash Script
Create a pegascapehealthcheck.sh in /usr/bin and fill in this code:
Code:
#!/bin/bash
# put your IP in this var
https=http://YOURIP/
while :
do
# save the status in some variable
status=`curl $https -k -s -f -o /dev/null && echo "SUCCESS" || echo "ERROR"`
# print results (or use it in your scripts)
if [[ "$status" == "ERROR" ]]; then
systemctl restart pegascape
date +'%Y-%m-%d %T':
echo "ERROR - SERVICE WILL RESTART"
fi
sleep 2;
done
Then, create a pegascapehealthcheck.service in /etc/systemd/system/ with the code.
Code:
[Unit]
Description=PegaScape Startup
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/pegascapehealthcheck.sh
[Install]
# Autostart after reboot
WantedBy=multi-user.target
Then, start and enable the health check for startup
Code:
sudo systemctl start pegascapehealthcheck.service
sudo systemctl enable pegascapehealthcheck.service
When running
Code:
sudo systemctl status pegascapehealthcheck.service
May 21 12:31:16 instance-20240515-1503 pegascapehealthcheck.sh[281551]: 2024-05-21 12:31:16:
May 21 12:31:16 instance-20240515-1503 pegascapehealthcheck.sh[669]: ERROR - SERVICE WILL RESTART
Then you shoud be up and running! Feel free to share your Public Instance with the community! If you want, send me the IP and I'll keep the first post updated!
Last edited by einhuman197,