PLDB
Languages Features Creators Calendar CSV Resources Blog About Donate Add Language
GitHub icon

About our servers

You can download all the source code for this site from Github and browse it completely offline.

Domains and DNS

Most PLDB domains are registered with Google Domains and PLDB uses Google Domains and Digital Ocean for DNS.

Express app

This site is served using Node.js and Express running on a Digital Ocean droplet. SSL certificates are generated using certbot.

Analytics

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 today and/or traffic trends for the last two weeks. GoAccess generates these reports. It runs every hour thanks to the cron jobs listed below.

Build Server Setup

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 npm run build # Test that it works over http node ./code/PLDBServer.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 ./code/PLDBServer.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

Deploying Build Server

ssh root@pldb.com cd pldb git pull npm install . npm run tsc npm run build pm2 restart 0

Logo and favicons

Favicon designed with this and favicon files generated with this.

View source

PLDB - Build the next great programming language Search v2023 Day 160 Docs Acknowledgements Traffic Today Traffic Trends Mirrors GitHub feedback@pldb.com