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>
27 lines
893 B
Plaintext
27 lines
893 B
Plaintext
# 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
|