You can download all the source code for this site from Github and browse it completely offline.
Most PLDB domains are registered with Google Domains and PLDB uses Google Domains and Digital Ocean for DNS.
This site is served using Node.js and Express running on a Digital Ocean droplet named marconi
. SSL certificates are generated using certbot.
This site does not use cookies or include any tracking scripts. Server logs are kept and used primarily for catching broken links, broken scripts, and other QA. If you need even more privacy, you can run the site locally or on your own servers.
You can view traffic reports from GoAccess. GoAccess runs every hour thanks to the cron
job listed below.
apt update
apt upgrade
apt install git cloc goaccess
curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n
bash n lts
# Now node and npm are available
npm install -g n
npm install -g pm2 typescript jtree
# Generate keys
# ssh-keygen -t rsa
# Get pldb
# git clone git@github.com:breck7/pldb.git
git clone https://github.com/breck7/pldb
cd pldb
npm install .
npm run tsc
# Test that it works over http
node ./PLDB.js startDevServer 80
# Now get SSL cert for https
snap install core
snap refresh core
snap install --classic certbot
certbot certonly --standalone
mkdir ignore
cp /etc/letsencrypt/live/pldb.com/privkey.pem ignore
cp /etc/letsencrypt/live/pldb.com/fullchain.pem ignore
# Now start with pm2 over http2
pm2 start ./PLDB.js -- startProdServer
pm2 startup systemd
# add the server stats cron job below with:
crontab -e
service cron restart
# uncomment the cron line and point the log to /root/pldb/site/cron.log
vim /etc/rsyslog.d/50-default.conf
service rsyslog restart
service cron restart
0 * * * * /root/pldb/code/updateStats.sh >> /root/pldb/site/cron.log 2>&1
ssh root@pldb.com
cd pldb
git pull
npm install .
npm run tsc
pm2 restart 0