that site (https://aol.ton618.org)
root
Alameda Online
Basic web app to do some useful things for Alameda denizens.
Notes
- To load, ensure SBCL and Quicklisp are installed.
- start
rlwrap sbcl
(load "alameda-online.asd")
(ql:quickload "alameda-online")
(in-package :alameda-online)
(start-server)
To build, run sbcl --non-interactive --load build.lisp
.
Great read: https://atomized.org/blog/2020/07/06/common-lisp-in-practice/ https://ashok-khanna.medium.com/an-introduction-to-lisp-packages-7a9ee352006e https://stevelosh.com/blog/2018/07/fun-with-macros-if-let/ https://learnxbyexample.com/lisp/signals/
Deployment
- Push changes up to Darcshub.
- On Obsd.am, setup cron job to check Darcshub every 10 minutes for updates. Make sure to publish the binary alongside the code.
- Hit an endpoint on the existing app to notify users of a service disruption in the next 10 minutes.
- Setup caddy. Ensure I can live reload the configuration. Bring the new code up alongside the old code, but don't route traffic to it yet.
- Add a write-lock to the old code.
- Remove the write-lock on the new code.
- Check health of new binary with write-lock disabled. If successful, update Caddy to switch the old code routing to the new code.
- Since the new code doesn't have the user downtime notice, no need to remove it manually.