Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ewingson/f2c8ba64e57addef76a13b10582f6929 to your computer and use it in GitHub Desktop.
Save ewingson/f2c8ba64e57addef76a13b10582f6929 to your computer and use it in GitHub Desktop.
pop
connect root-server to net (depends on provider) (you will need ssh)<br />
* order vserver at provider of your choice<br />
assign FQDN to the machine<br />
* setup DNS properly<br />
get and deploy https certificate<br />
* ssh into the machine<br />
* deploy two certificates with letsencrypt/certbot (domain-cert and wildcard-cert)<br />
(you will need to edit a DNS-text-record depending on the challenge)
apache config<br />
* enable modules (ssl.conf, ssl.load, proxy.conf, proxy.load, proxy_html.conf, proxy_html.load, proxy_http.conf, proxy_http.load, rewrite.load, socache_shmcb.load)
* edit 000-default.conf
* edit default-ssl.conf
install nodejs and npm<br />
* https://crycode.de/installation-von-node-js<br />
install solid server<br />
* `$ npm install -g solid-server`<br />
init solid server (config)<br />
* ? Path to the folder you want to serve. Default is (./data) /var/www/your.host.example.org/data<br />
? SSL port to run on. Default is (8443) 8443<br />
? Solid server uri (with protocol, hostname and port) https://your.host.example.org<br />
? Enable WebID authentication Yes<br />
? Serve Solid on URL path /<br />
? Path to the config directory (for example: /etc/solid-server) (./config) /var/www/your.host.example.org/config<br />
? Path to the config file (for example: ./config.json) (./config.json) /var/www/your.host.example.org/config.json<br />
? Path to the server metadata db directory (for users/apps etc) (./.db) /var/www/your.host.example.org/.db<br />
? Path to the SSL private key in PEM format /etc/letsencrypt/live/your.host.example.org/privkey.pem<br />
? Path to the SSL certificate key in PEM format /etc/letsencrypt/live/your.host.example.org/fullchain.pem<br />
? Enable multi-user mode Yes<br />
? Do you want to set up an email service (y/N) N<br />
? A name for your server (not required) your.host.example.org<br />
? A description of your server (not requred) undefined<br />
? A logo (not required) undefined<br />
? Do you want to enforce Terms & Conditions for your service (y/N) N<br />
? Do you want to disable password strength checking (y/N) N<br />
? The support email you provide for your users (not required) undefined<br />
config created on /root/config.json<br />
Then, you need to create the paths that you entered. You would also need to copy the config.json file to where you indicated it should be.<br />
add user solid<br />
* `$ adduser --system --ingroup www-data --no-create-home solid`<br />
create /lib/systemd/system/solid.service<br />
* `[Unit]`<br />
`Description=solid - Social Linked Data`<br />
`Documentation=https://solid.inrupt.com/docs/`<br />
`After=network.target`<br />
`[Service]`<br />
`Type=simple`<br />
`User=solid`<br />
`WorkingDirectory=/var/www/your.host.example.org`<br />
`ExecStart=/usr/bin/solid start`<br />
`Restart=on-failure`<br />
`[Install]`<br />
`WantedBy=multi-user.target`<br />
create symlink<br />
* `$ ln -s /lib/systemd/system/solid.service /etc/systemd/system/multi-user.target.wants/`<br />
chown solid config directories<br />
* `$ cd /var/www/your.host.example.org/`<br />
`$ chown solid:www-data config/ data/ .db/`<br />
start service
* `$ systemctl start solid.service`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment