########## begin pump.io setup ########## # once pump adds a logrotation script, turn off nologger, # and add # "logfile": "/var/log/pumpio/pumpio.log", # s dd of=/etc/pump.io.json <<'EOF' { "secret": "SECRET_REPLACE_ME", "driver": "mongodb", "params": { "dbname": "pumpio" }, "noweb": false, "site": "pump.iankelling.org", "owner": "Ian Kelling", "ownerURL": "https://iankelling.org/", "port": 8001, "urlPort": 443, "hostname": "pump.iankelling.org", "nologger": true, "datadir": "/home/pumpio/pumpdata", "enableUploads": true, "debugClient": false, "disableRegistration": true, "noCDN": true, "key": "/home/pumpio/privkey.pem", "cert": "/home/pumpio/fullchain.pem", "address": "localhost", "sockjs": false } EOF s sed -i "s#SECRET_REPLACE_ME#$(cat /p/c/machine_specific/li/pump-secret)#" /etc/pump.io.json # stretch node is too old # https://nodejs.org/en/download/package-manager/ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - pi nodejs graphicsmagick mongodb cd /home/iank if [[ -e pump.io ]]; then cd pump.io git pull else git clone https://github.com/pump-io/pump.io.git cd pump.io fi # note: these 2 commands seem # note: doing this or the npm install pump.io as root had problems. npm install npm run build # normally, next command would be # s npm install -g odb # but it\'s this until a bug in pump gets fixed # https://github.com/pump-io/pump.io/issues/1287 s npm install -g databank-mongodb@0.19.2 if ! getent passwd pumpio &>/dev/null; then s useradd -Um -s /bin/false pumpio fi sudo -u pumpio mkdir -p /home/pumpio/pumpdata # for testing browser when only listening to localhost, # in the pump.io.json, set hostname localhost, urlPort 5233 #ssh -L 5233:localhost:5233 li s mkdir -p /var/log/pumpio/ s chown pumpio:pumpio /var/log/pumpio/ web-conf - apache2 pump.iankelling.org <<'EOF' # currently a bug in pump that we cant terminate ssl SSLProxyEngine On ProxyPreserveHost On ProxyPass / https://127.0.0.1:8001/ ProxyPassReverse / https://127.0.0.1:8001/ # i have sockjs disabled per people suggesting that # it won\'t work with apache right now. # not sure if it would work with this, # but afaik, this is pointless atm. ProxyPass wss://127.0.0.1:8001/main/realtime/sockjs/ ProxyPassReverse wss://127.0.0.1:8001/main/realtime/sockjs/ EOF sudo -i <<'EOF' export RENEWED_LINEAGE=/etc/letsencrypt/live/pump.iankelling.org /a/bin/distro-setup/certbot-renew-hook EOF s dd of=/etc/systemd/system/pump.service <<'EOF' [Unit] Description=pump.io After=syslog.target network.target mongodb.service Requires=mongodb.service [Service] Type=simple User=pumpio Group=pumpio ExecStart=/home/iank/pump.io/bin/pump Environment=NODE_ENV=production # failed to find databank-mongodb without this. # I just looked at my environment variables took a guess. Environment=NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript [Install] WantedBy=multi-user.target EOF ser daemon-reload sgo pump ########## end pump.io setup ############