39.3 Solid Server

20201017 Set up a web server as described in Section ??. This might be a cloud server running Ubuntu 20.04 on Azure. To then set up a solid server:

$ wajig install npm
$ sudo npm install -g solid-server

$ sudo su
# cd
# solid init
? Path to the folder you want to serve. Default is /var/www/solid.togaware.com/data
? SSL port to run on. Default is 8443
? Solid server uri (with protocol, hostname and port) https://solid.togaware.com
? Enable WebID authentication Yes
? Serve Solid on URL path /
? Path to the config directory /var/www/solid.togaware.com/config
? Path to the config file /var/www/solid.togaware.com/config.json
? Path to the server metadata db directory /var/www/solid.togaware.com/.db
? Path to the SSL private key /etc/letsencrypt/live/solid.togaware.com/privkey.pem
? Path to the SSL certificate key /etc/letsencrypt/live/solid.togaware.com/fullchain.pem
? Enable multi-user mode Yes
? Do you want to set up an email service? No
? A name for your server solid.togaware.com
? A description of your server (not required) Experimental Server
? A logo that represents you, your brand, or your server (not required) 
? Do you want to enforce Terms & Conditions for your service? No
? Do you want to disable password strength checking? No
? The support email you provide for your users (not required) 
config created on /root/config.json

# mkdir -p /var/www/solid.australiaeast.cloudapp.azure.com/data
# mkdir /var/www/solid.australiaeast.cloudapp.azure.com/config
# mkdir /var/www/solid.australiaeast.cloudapp.azure.com/.db
# mv config.json /var/www/solid.australiaeast.cloudapp.azure.com/
# adduser --system --ingroup www-data --no-create-home solid

# emacs /lib/systemd/system/solid.service

[Unit]
Description=solid - Social Linked Data
Documentation=https://solid.inrupt.com/docs/
After=network.target

[Service]
Type=simple
User=solid
WorkingDirectory=/var/www/solid.togaware.com
ExecStart=/usr/bin/solid start
Restart=on-failure

[Install]
WantedBy=multi-user.target

# ln -s /lib/systemd/system/solid.service /etc/systemd/system/multi-user.target.wants/

# cd /var/www/solid.togaware.com/
# chown solid:www-data config.json
# chown solid:www-data -R config/ data/ .db/

# solid start

Visit https://solid.togaware.com:8443 to view the Welcome to the Solid Prototype page that allows you to Login or Register. Choose to Register then Login.

TODO: Use reverse proxy and setup gmail to send email. Resources: https://solidproject.org/for-developers/pod-server and https://github.com/solid/node-solid-server for details of setting up a Solid server.



Your donation will support ongoing development and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2021 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0.