orchard
mirrorEvery site I host, in one repo, along with the Cloudflare Tunnel and Caddy that front them. It's all Go, Vite, and SQLite, and it runs on a desktop at home with nothing listening on an inbound port.
blogbuncaddycloudflare-tunneldockergogolanghomelabhtml-templatemonorepoself-hostedseosqlitestatic-sitetypstuptime-monitoringviteweb-analytics
1# Docker reads this, not .gitignore. One per site, because each site's build
2# context is its own directory now rather than the repo root. Without it the frontend stage copies
3# node_modules from the host into the build, which is slow and pointless since
4# the image installs its own from the lockfile.
5**/node_modules
6**/build
7**/bin
8# Compiled inside the build stage; shipping the host's copy in would only
9# slow the context transfer.
10**/pdfs
11**/og
12# Runtime state. The GeoIP mmdb alone is 131MB, and sending it in the build
13# context would dominate every single build.
14**/data
15# Generated in its own build stage from Natural Earth.
16**/static_maps
17# Generated inside the build from frontend/images/. Excluding it stops the
18# later COPY of the whole frontend directory clobbering what was just built.
19**/frontend/public/images
20.git
21.playwright-cli
22**/.env
23**/*.pem