articles
https://kerkour.com/sqlite-for-servers
https://crawshaw.io/blog/one-process-programming-notes
https://archive.ph/Xfjh6#selection-171.1-179.14
https://thmsmlr.com/cheap-infra
https://blog.wesleyac.com/posts/consider-sqlite
https://berthub.eu/articles/posts/a-brief-post-on-sqlite3-database-locked-despite-timeout/
full text search
Sqlite implements its own full text search engine using bm25. This is the same algorithm used by elasticsearch, but with other limitations. It's not perfect, but in a lot of cases it's totally good enough.
https://emschwartz.me/understanding-the-bm25-full-text-search-algorithm/
backups
https://litestream.io/alternatives/cron/
https://litestream.io/guides/sftp/
Open or Create a database
sqlite3 database.db
List Tables
.tables
List columns
PRAGMA table_info(table_name);