First, select the **Host...** action from the *Session* menu.
You will see this dialog pop up:
This computer? Remote? What do I choose?
I want to invite or one two friends for a quick drawing session
Try the "This computer" option. It will start a server built-in to Drawpile itself. Note that if you list your session publicly, your IP address will be visible in the listing.
A session hosted this way will end when you close Drawpile.
If your friends are in the same local network (e.g. connected to the same Wifi hotspot,) they can connect to you using your local IP address. Your server will appear in the Nearby list in the Join dialog.
...but I got a message saying my server is not accessible from the Internet!
This means you have a firewall blocking incoming connections. See below for the Dealing with firewalls section for tips.
If you're not able to run your own server, you can host your session on a public server. Use the remote server option and enter the address of a public server, such as drawpile.net
I want to make a long running session with people coming and going
Use a remote server. A public free-for-all server is provided at drawpile.net, but depending on the time of the day, might be full.
When using public servers, not all features might be enabled by the server administrator. For example, at drawpile.net, sessions will automatically end when the last user logs out.
I want to set up my own server!
Running your own server means you get to decide the rules. You can choose whether to accept (or require) registered user accounts, choose which features are enabled and who gets to hosts sessions.
Take a look at the Server HOWTO for instructions on how to set up your own server on a cheap cloud VPS.
Start your session
Fill in a title and optionally a password for the session. (These can be changed at any time later.) If you're hosting a long running or recurring session and want a nicer URL, you can add a custom ID alias. Typically you should leave this empty, though.
If you're hosting a session that's open to the public, you can check the List at checkbox to announce the session at a list server. Listing a session also gives you a room code: a five letter code that works like a short URL. If you're hosting a private session but still want to make use of the room code feature, select the Private listing type. This way, the session is not shown in the public list, but you still get the room code.
Next, you must decide where to host the session. If you select the this computer option, the server will run on your computer and other users must connect to it directly. (It also means that when you quit Drawpile, the session ends.) This is best for sessions with just a few users at most, and when every participant is on the same local network. Using the built-in server means you may need to configure your firewall to allow incoming connections. See more below.
Another option is to host on an external server. A public server is hosted here
on drawpile.net you can use: just enter
drawpile.net in the remote option box. See also
the dedicated server page on how to set up your own dedicated server.
Click Host to start the session.
Now, you just need to invite friends to join! If you announced the session this is easy: your session will appear in the list in the join dialog. Also, take a look at the bottom right corner of the status bar. You should see something like Room code: ABCDE there. This session can also be joined by entering this code in the join address box.
Tip: Right click on the status bar address label for more options.
Dealing with firewalls
Due to the shortage of IPv4 addresses, home routers typically come with a NAT firewall enabled by default. This means all the computers in the network are hidden behind a single IP address. For basic web surfing this is not a problem, but it makes it difficult for others to connect to you since the router doesn't know which machine on the internal network the incoming connection should be directed to.
The above picture is complicated a little by the fact that some ISPs deploy Carrier-grade NAT. If the ISP does not have enough addresses for their customers, they may add another layer of NAT so that even your router does not get a public address. In this case, port forwarding will not work and your only option is to use a dedicated server hosted elsewhere. (At least until IPv6 becomes widely available.)
Note that even a bridging router may have a firewall that blocks incoming connections! In this case, the port used by Drawpile (by default 27750) should be allowed.
There are a few ways the NAT problem can be worked around:
- Check if you can use IPv6
- Have someone who is not behind a NAT host the session
- Run a dedicated server on a machine not behind a NAT
- Use a public server
- Use a virtual private network
- Set up port forwarding
Using IPv6 (if available) is the best solution, but it has the downside that all other users connecting to you must also have IPv6. Note that Drawpile currently always shows your IPv4 address, even if you have a public IPv6 address. (This is actually a bug, but the behavior is OK for the moment, since IPv6 is not universally available yet.)
How to set up port forwarding depends on your router, but it typically goes something like this:
- Go to the router configuration site (Often 192.168.1.1 or 10.0.0.1)
- Go to the "forwarding" or "virtual servers" page
- Create a new forwarding entry: port 27750, TCP protocol and the IP address of your computer. (It helps to assign a static IP to your computer, so you don't need to change the forwarding entry later)
If you have a local firewall (Windows firewall, Comodo, McAfee, F-secure, etc.), you need to configure that as well. For more detailed guides, check out portforward.com.
When hosting from behind a NAT, the address in the status bar is your private network address. For people from the outside Internet to join your session, you need to give out your public IP address. Drawpile 0.7.2 can look up your externally visible IP address automatically using ipecho.net service.
Right click on the address and select "Get externally visible IP address" to replace the internal address with the public one.