jew.pizza Website ✡️🍕
Here's the code for the website that powers jew.pizza, my personal website. Built using the CLANG! THUD! IT'S A DARN JEW'S PANDA! stack.
I can't imagine why on earth in a million years you'd want to run this code. So, these instructions are mostly for me — in case of sudden amnesia or coming back to this project after a period of neglect.
It's built using the wildly popular and extremely common CLANG! THUD! IT'S A DARN JEW'S PANDA! stack, ie,
- C is for Compose, ie Docker Compose, a multi-container orchestration tool;
- L is for Liquidsoap, a fantastic scripting language for declaratively describing audio streams;
- A is for Alpine Linux, a lightweight Linux distribution perfect for containers, based on musl libc and BusyBox;
- N is for nginx, a web server and reverse proxy using the jonasal/nginx-certbot container as its base (for HTTPS), using embedded Lua;
- G is for Gunicorn to run the web app via Python's Web Server Gateway Interface;
- T is for Tailwind CSS, a utility-first CSS framework;
- H is for huey, a lightweight asynchronous task queue for Python;
- U is for Umami to get insights via web analytics;
- D is for Docker to run all this crap in containers;
- I for Icecast, a streaming media server for listeners to connect (using Karl Heyes's fork);
- T for Twilio, an API to send programmable communications — in this case, text messages (SMS);
- S for S3, ie Amazon S3 Cloud Object Storage, to store large audio files (I use the compatible DigitalOcean Spaces);
- A is for AlpineJS, a lightweight, reactive front-end JavaScript framework;
- D is for Django, a Python back-end web framework;
- A is for Action