4781 (Pod Provider)

Becoming a Solid IDP

  • deploying CSS on a remote machine means you are a public accessible Pod Provider
  • the pure installation of CSS is relatively simple (a couple of npm commands) but there is more needed, e.g. the certificates, the underlying web server (if wanted) or the configuration of the server, the service and the setup of the webroot
  • detailed steps can be seen here https://gist.github.com/ewingson/dbfee4d329c803aed0b0bd87e7a2fa00 but this may vary depending on the hosting service provider and the booked virtual server (this must be a root machine, means you need ssh-access as user root)
  • I’m not really sure, if using the SSL-options of the provider can simplify the process, I doubt that
  • I’ll try to get into the details now
  1. sign the domain name at a hosting service provider
  2. sign the server package at a hosting service provider (here it is called “virtual server” and you get along with 10 bucks a month) (this may be a different provider as 1., but for simplicity I’ll recommend booking both on the same service)
  3. OS: Debian 10 (or if possible 11)
  4. the price of 1. depends on the Top Level Domain, the price of 2. depends on the booked (virtual) hardware (vCores, storage, memory)
  5. you don’t need to book SSL cause that’s handled by letsencrypt
  6. configure a root-password for the vServer (accessed by IP or FullyQualifiedDomainName)
  7. connect the IP of 2. to the domain name, this means setup of DNS (IPv4 and IPv6) and a configuration in the customer GUI of the provider
  8. ssh into the machine (console: ssh root@ip, then confirm storing the key on the local machine)
  9. install node and npm (I’ll find out my versions, maybe possible to use nvm to handle different versions, but I chose to go without) ((>= node 12.7 is needed, I use node 12.22.7 and npm 6.14.15 but this is, because I have NSS and CSS running on the same machine, for CSS I’ll recommend @latest of node and npm))
  10. decide whether using an nginx (web server) with solid or ONLY the solid server (I’ll recommend using nginx because we need a reverse proxy, as which nginx can act)
  11. https://certbot.eff.org/ to install certbot (possibly using pip)
  12. run certbot command
  13. leave the certbot command hanging and open a parallel browser window with the DNS settings of the hosting service provider
  14. DNS-Challenge works with deploying two DNS-Text-Records in a parallel window, call them both _acme-challenge I think, detailed instructions how to call the file in the instructions of the terminal of 12.
  15. wait a minute or 2, if want to be sure 5, but that’s a bit paranoid
    1. will tell you where the keys are stored
  16. delete the text records
  17. install nginx latest (if I remember right including a thing or option called “express”)
  18. npm install -g @solid/community-server
  19. proceed with https://gist.github.com/ewingson/dbfee4d329c803aed0b0bd87e7a2fa00
  20. check and install https://github.com/solid/community-server-recipes for mashlib, adjust the service command
  21. I think this gives an impression of the complexity
  22. be careful with the steps, cause one single mistake can fuck up the whole system

Leave a comment