This Docker image is designed to run the NSO-RPC application headlessly, such as on a VPS.
Note: I'm also not very skilled at writing documentation, but I've included the steps as best as I can to get this setup going.
NSO-RPC
: Nintendo Switch RPC ClientARRPC
: Unofficial Discord RPC BridgeWebcord
: Unofficial Discord Client
Note: Unofficial Discord clients are against Discord's Terms of Service, so use them with caution. However, this setup should be relatively safe.
- Docker
- Docker Compose
To run the Docker setup, it requires a hands-on approach to get started.
- Clone the repository:
git clone https://github.com/HotaruBlaze/NSO-RPC-Docker.git
- Navigate to the project directory:
cd NSO-RPC-Docker
- Build the Docker image:
docker build -t ghcr.io/hotarublaze/nso-rpc-docker:latest .
- Start the Webcord service:
docker-compose up -d webcord
- Open a web browser and go to the server's IP address on port 5000, such as
http://127.0.0.1:5000
orhttp://10.0.0.24:5000
. - Log in to Discord. If you have issues with the QR code, log in directly.
- Once logged in, go to
File > Settings
, and make the following changes:- Enable Developer Mode
- Untick "Use built-in Content Security Policy"
- Restart Webcord via
File > Relaunch
. - Return to your terminal and run the following command:
docker run -it --rm \ --name nso-rpc \ --network host \ -v $PWD/NSO-RPC:/root/Documents/NSO-RPC \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ ghcr.io/hotarublaze/nso-rpc-docker:latest
- Follow the instructions on screen. If clicking on the link gives you "The request contains an error," the URL may not have been copied correctly.
- After setting your user ID, you wont get output back, wait a couple of seconds or a minute then you can stop the Docker container via
Ctrl + C
. - Now bring up nso-rpc with WebCord and check the logs for the NSO-RPC service:
docker-compose up -d && docker-compose logs -f nso-rpc
- You should see something like the following output:
nso-rpc | [arRPC] arRPC v3.1.0
nso-rpc | (node:7) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
nso-rpc | (Use `node --trace-warnings ...` to show where the warning was created)
nso-rpc | [arRPC > bridge] listening on 1337
nso-rpc | [arRPC > ipc] listening at /tmp/discord-ipc-0
nso-rpc | [arRPC > websocket] 6463 in use!
nso-rpc | [arRPC > websocket] listening on 6464
nso-rpc | [arRPC > process] started
nso-rpc | [arRPC > ipc] new connection!
- Open Chrome Dev Tools in Webcord by pressing
Ctrl + Shift + I
, and then select console, and typeallow pasting
- Now paste the contents of
webcord-hook.js
into the console. (This script can also be found on arRPC's repo here). - Return to your console output. You should now see
[arRPC > bridge] web connected
.
You should now be fully setup and should see Switch RPC presence on your account.