# Keep the felis image build context lean, but mind the embeds: three trees MUST # stay in the context or the image build fails. internal/store/migrations/*.sql, # deploy/bootstrap.sh and deploy/crd/*.yaml are //go:embed-ed by Go packages the # binary compiles, and internal/panel/static is the panel the Dockerfile panel # stage builds from panel/. Exclude only build-irrelevant trees below; never add # panel/, deploy/, or internal/ here without checking `grep -rn go:embed`. .git .claude **/node_modules # The MAIN felis binary //go:embed-s all four plugin source trees (see # bootstrap_asset.go): `felis bootstrap-assets game-stack` emits them as the tar the # limbo/lobby images and the host Velocity install build from. Every plugins/ source # tree the embed names MUST stay in this context or `go build ./cmd/felis` fails with # "pattern plugins//...: no matching files found". # `plugins/*` excludes each sibling module individually (so plugins/ itself is still # walked and the negations below can re-include), then the embedded source trees are # pulled back in and their Gradle outputs re-excluded to keep the context lean. plugins/* !plugins/limbo !plugins/paper !plugins/shared !plugins/velocity plugins/**/build plugins/**/.gradle docs *.md Dockerfile .dockerignore .gitignore *.pem *.key felis felis.exe