Template
feat: bootstrap meta — cross-project best-practices template
Extract patterns from 18 projects across two machines (12 local infra + 6 remote personal/business via ssh survey). Ship a reusable Gitea template with AGENTS.md, 5 Crush PreToolUse hooks, git pre-commit/pre-push, a generalized rules engine, shared bash library, Makefile, lifecycle scripts, and gardening loop. Includes the canonical BASELINE-PROMPT.md (13 sections) and PATTERNS.md (standardization scorecard). The repo self-applies: it passes its own shellcheck (zero info-level), make fast, and all check-rules.sh checks. 💘 Generated with Crush Assisted-by: Crush via Crush <crush@charm.land>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# docker-compose.yml — lifecycle template.
|
||||
#
|
||||
# Copy to docker-compose.yml (gitignored by default in some projects) and edit.
|
||||
# Naming law: every service MUST set container_name with a project prefix.
|
||||
# Never rely on Docker's default `<dir>_<n>` naming.
|
||||
|
||||
# PROJECT_PREFIX should match this repo's name (lowercase, hyphenated).
|
||||
# Define it once here and reuse via interpolation where supported.
|
||||
|
||||
services:
|
||||
example:
|
||||
image: alpine:3.20 # pin every image — no :latest
|
||||
container_name: ${PROJECT_NAME:-project}-example
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- LOG_LEVEL=${LOG_LEVEL:-info}
|
||||
# Bind-mount the repo so in-container work stays host-owned.
|
||||
volumes:
|
||||
- ./:/data
|
||||
working_dir: /data
|
||||
# Pin resource limits appropriate to a cluster-of-1 default.
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.50'
|
||||
memory: 256M
|
||||
Reference in New Issue
Block a user