A collection of concise write-ups on small things I learn day to day. Powered by Datasette and deployed automatically to Fly.io via GitHub Actions.
Search these TILs at https://docs.luca-borruto.com/
12 TILs so far. Atom feed here.- Tautulli in Docker - 2026-02-07
- Plex Media Server in Docker - 2026-02-07
- Jackett and Byparr in Docker - 2026-02-07
- Radarr and Sonarr in Docker - 2026-02-07
- Home Server Setup - 2026-02-07
- Watchtower in Docker - 2026-02-07
- Twingate in Docker - 2026-02-07
- qBittorrent in Docker - 2026-02-07
- Dispatcharr in Docker - 2026-02-07
- AdGuard Home in Docker - 2026-02-07
- FormD T1 V2.1 SFF Build - 2026-02-07
- Useful Links - 2026-02-08
- Write a Markdown file in a topic folder (e.g.
python/my-trick.md). - Push to
main-- GitHub Actions builds a SQLite database, updates this README, and deploys a Datasette instance to Fly.io. - Browse the live site with full-text search, topic browsing, Atom feeds, and a GraphQL API.
| File | Purpose |
|---|---|
build_database.py |
Scans */*.md files, renders Markdown via GitHub API, stores in SQLite |
update_readme.py |
Regenerates README index from the database |
metadata.yaml |
Datasette configuration: title, feeds, search queries, plugins |
templates/ |
Custom Datasette HTML templates |
plugins/ |
Custom Datasette plugins |
- Create a Fly app:
fly apps create your-app-name
- Get a deploy token:
fly tokens create deploy -a your-app-name
- Add these to your GitHub repo:
- Secret
FLY_TOKEN-- the deploy token from step 2 - Variable
FLY_APP_NAME-- your app name from step 1 (Settings > Secrets and variables > Actions)
- Secret
- Push to
main-- the workflow handles the rest.
To point docs.yourdomain.com at your Fly app:
- Add a CNAME in your DNS:
docs->your-app-name.fly.dev. - Add the certificate in Fly:
fly certs create docs.yourdomain.com -a your-app-name
Each TIL is a GitHub-Flavored Markdown file inside a topic folder:
topic-name/my-til-title.md
The folder name becomes the topic, the filename (minus .md) becomes the slug.
The only requirement is that the file starts with a # Title on the first line -- this is extracted as the TIL title. Everything after it is the body.
# Title of Your TIL
Content goes here.- Keep TILs short and focused on a single concept.
- Use descriptive filenames with hyphens:
parsing-json-with-jq.md. - Use lowercase for topic folder names:
python/,github-actions/,docker/. - The first paragraph is used as the summary/preview on the website.
- Dates are extracted automatically from git history -- no need to add them manually.