Foundry Virtual Tabletop is an Alternative to Roll20 and maptool and many other platforms that enable you to play tabletop role playing games online.
Foundry is not free software, but you can host it on your own server.
In this example I will use the very good hoster from Germany uberspace. This post is not sponsored I am just convinced for everyone who is willing to use a command line this is the best hoster for foundry on a budget. You can set your hosting price as low as 1€/month but please, if you can afford it set it to 5€ or higher to keep the lights on. But this hoster cares that people can participate online also when they are poor. Also their service is second to none.
Buy foundry
go to their website and buy the software. If you choose banktranfer it will take serveral days for the payment to clear, you will get an e-mail, if it done.
register with uberspace
uberspace is well documented. Chose a username and sign up. the first month is totally free, but you should upload money to your account asap.
Yes the entire interface is German but this will change soon. go to the Tab „Zugänge“

and go set and SSH Password. This is a good time to open a document to write down an commands and passwords. (better use a passwordmanager for the latter)
For this tutorial I will assume your username is „alrik“whenever commands have the word alrik you will need to replace them with your username.
connect with your uberspace
If you know how to connect to a server via ssh. skip this section and connect to alrik.uber.space with the user alrik and the password you have set before.
I am going to assume you don’t know what ssh is. It’s a way to securely send text commands to another computer. Servers usually don’t have a graphical user interface. You control them via text commands. To send commands we need an ssh-client program. I recommend putty. It’s minimal and free.
start the program then enter alrik@alrik.uber.space
in the host name field. Make sure SSH is chosen as the connection type

then click Open . the window will look something like this

Now enter your password. if your ssh-password is very long (which it should be), you can copy it to your clipboard. Then click in the PuTTY window and right click once to paste the password. No change will be visible, this is normal, then press enter.
you are now connected to your server. Congratualtions!
Installing foundry
Set the node js version
foundry uses something called node.js we need to tell our uberspace server to use version 14.
Enter or paste this in the window:
uberspace tools version use node 14
after a while the command line will look normal again. to verify the change your can enter
uberspace tools version show node
If everything checks out the following prompt will apear after a moment:
Using 'Node.js' version: '14'
prepare installation
mkdir
is the command to create new folders foundryvtt and foundrydata. mkir myfolder
creates the folder „myfolder“. for foundry we need to create two folders. press enter after each line
mkdir foundryvtt
mkdir foundrydata
to see if you did it correct you can enter ls . this will show you a list of folders. Something like this:

Downloading and unpacking
Download the software to your server. you need to get a current link from the foundry website, the link expires after a few minutes:

Then use this command with your link
wget -O foundryvtt/foundryvtt.zip "https://foundryvtt.s3.amazonaws.com/longlink"
after the download has completed, unpack the package with this command
unzip foundryvtt/foundryvtt.zip unzip -d ~/foundryvtt
Setting up the enviroment
So the site is available we need to enter this command
uberspace web backend set / --http --port 30000
Again there will be no feedback for this.
Create a config file, so foundry gets automatically started and updated.
create the file etc/services.d/foundry.ini with this content:
[program:foundry]
command=node home/alrik/foundryvtt/resources/app/main.js --dataPath=home/alrik/foundrydata
autostart=yes
autorestart=yes
This generic variable %(ENV_HOME)s should be automatically resolved to your home path
[program:foundry]
command=node %(ENV_HOME)s/foundryvtt/resources/app/main.js --dataPath=%(ENV_HOME)s/foundrydata
autostart=yes
autorestart=yes
you can to this by entering
nano etc/services.d/foundry.ini
you are now in the text editor nano. Paste the text above (don’t forget to enter your username). Then press Control+O then Enter to confirm. „wrote 5 lines
“ will be prompted. You now saved the file and closed nano.
start foundry
start the foundry by
supervisorctl update
supervisorctl start all
you can now visit your foundry installation under alrik.uber.space
Thanks
Thanks to everyone in the comments and elsewhere, who is helping to make this guide useful.
Thank you for this guide! Without it, I would never have been able to get foundry running!
Please recommend it to the [uberlab][1] and the [foundry wiki][2].
Some minor changes I had to make to get it:
### 1. **Downloading and unpacking:**
You have to unzip it in the directory /foundryvtt
With the command in your description it unzipped in the directory you’re working from. (i.e. the home directory)
> unzip foundryvtt/foundryvtt.zip -d ~/foundryvtt
should work.
### 2. **Setting up the enviroment**
#### Port Backend
Setting the port to 3000 I got feedback, that some process should listening
#### foundry.ini
> command=node home/alrik/foundryvtt/resources/app/main.js –dataPath=home/alrik/foundrydata
should be one same line
Thanks again for your effort!
[1]: https://lab.uberspace.de/
[2]: https://foundryvtt.wiki/
LikeGefällt 1 Person
Hello, Please add a step to make sure the user has cd-d into the foundryvtt folder before unzipping. I’m aware of a couple of people who’ve made this mistake and then had to undo it. Thanks for the guide! Really useful!
LikeGefällt 1 Person
I changed the commands so cd should not be nessecary
LikeLike
Hi,
you might use the following content for ~/etc/services.d/foundry.ini to avoid defining a static path:
[program:foundry]
command=node %(ENV_HOME)s/foundryvtt/resources/app/main.js –dataPath=%(ENV_HOME)s/foundrydata
autostart=yes
autorestart=yes
This way the user doesn’t have to adjust to his/her specific home dir.
Regards
Chris
LikeGefällt 1 Person
thanks for the tip!
LikeLike