Running a server

How to run your own Syncplay server

As an alternative to the existing public servers, people can run their own public or private Syncplay server.

How to use the Syncplay server software

Run syncplay-server / syncplayServer.exe to host a Syncplay server. If you have a public IP then you can try to launch the server on your computer and give your friends your IP number so that they can connect to it. The server software will listen on port 8999 by default, but you can specify a different port. You might need to specifically allow connections to syncplayServer in your firewall/router. If that is the case then please consult your firewall/router instructions or contact your network administrator.

Pass the IP or hostname (and password / port if necessary) to people you want to watch with and you’re ready to go. There are various online services that will tell you what your IP address is. For example, querying “my ip” in Google gives you your public IP address.

Check out the Syncplay TLS Support guide and issue #250 for more information on how Syncplay supports secure connections.

If you want to install just the server for Syncplay on Linux, you can git clone the repository and run sudo make install-server.

Server command-line switches (Syncplay 1.5.2+)

  • --port [port] – Use stated port instead of the default one.
  • --isolate-room – If specified then ‘room isolation’ is enabled. This means that viewers will not be able to see information about users who are in rooms other than the one they are in. This feature is recommended for a public server, but not for a small private server.
  • --password [password] – Restrict access to the Syncplay server to only those who use this password when they connect to the server. This feature is recommended for a private server but is not needed for a public server. By default the password is blank (i.e. there is no password restriction). DO NOT USE A PASSWORD THAT YOU USE ANYWHERE ELSE! You can also specify this value via the SYNCPLAY_PASSWORD environmental variable.
  • --salt [salt]  – Random salt string used to generate controlled room passwords – needs to be the same for controlled room passwords to work between server instances. You can also specify this value via the SYNCPLAY_SALT environmental variable.
  • --motd-file [filepath] – Path to file from which motd will be fetched
  • --disable-ready – Disables the readiness indicator feature
  • --disable-chat – Disables the chat feature
  • --max-chat-message-length – Maximum length of chat messages (number of characters)
  • --max-username-length – Maximum length of usernames (number of characters)
  • --stats-db-file [filepath]  – Enable server stats using the SQLite db file provided
  • --tls [path] – Enable TLS using certificates at the specified path. See the Syncplay TLS guide for more instructions. This feature is only available in  Syncplay >= 1.6.3.

Why someone might not be able to connect

If one person can’t connect to your server then it could very well be their firewall. If nobody can connect, then it is probably either your firewall configuration (either with your Operating System or on your router) or your ISP does not allow you to host on the specified port. You can try varying the port you host on to see if it helps.

Running on Windows

  • To specify command line options you can create a shortcut to Syncplay server and change the target to something along the lines of:
    "C:\Program Files (x86)\Syncplay\syncplayServer.exe" --password foobar --salt NBPPGALGGL

Setting up a Syncplay server on Ubuntu / Debian

Running on macOS

  • Starting from v1.5.3, the syncplayServer binary is embedded in the Syncplay.app bundle. If the app is installed in the usual Applications folder, the server can be executed by running in Terminal:
    /Applications/Syncplay.app/Contents/MacOS/syncplayServer

Running via Raspberry Pi

Running via AWS (Amazon Web Services)

  1. You may need to install python-twisted
  2. To run server as a background process, use: ./syncplayServer.py &

Running via Uberspace (German shared hosting provider)

Running via NordVPN’s MeshNet