23 Commits

Author SHA1 Message Date
Bas Nijholt
ea220058ec Support multiple compose filename conventions
Try compose.yaml, compose.yml, docker-compose.yml, and
docker-compose.yaml when locating compose files for a service.
v0.2.0
2025-12-13 14:52:43 -08:00
basnijholt
b5773a3f7f chore(docs): update TOC v0.1.0 2025-12-13 22:43:47 +00:00
Bas Nijholt
37300b4a8d Add .DS_Store to gitignore 2025-12-13 14:43:18 -08:00
Bas Nijholt
501c69184e Add --version/-v flag to CLI 2025-12-13 14:43:12 -08:00
Bas Nijholt
8cff744c08 Add hatch-vcs for automatic version management
Version is now derived from git tags instead of hardcoded.
2025-12-13 14:42:37 -08:00
Bas Nijholt
6133174f94 Add more workflows 2025-12-13 14:39:37 -08:00
Bas Nijholt
1f34fb844d Refactor Traefik generator for clarity 2025-12-13 10:04:15 -08:00
Bas Nijholt
7d0f829895 Add Traefik file-provider generator and docs 2025-12-13 09:51:43 -08:00
Bas Nijholt
d432667584 docs(CLAUDE.md): rename Development Notes to Communication Notes in CLAUDE.md 2025-12-11 11:27:22 -08:00
Bas Nijholt
0f2499038d Organization improvements (#2) 2025-12-11 11:25:23 -08:00
Bas Nijholt
896a096ced Merge pull request #1 from basnijholt/feature/dockerfarm-snapshot-log
feature/dockerfarm snapshot log
2025-12-11 10:52:30 -08:00
Bas Nijholt
9ce930b6e3 Add .envrc 2025-12-11 10:48:53 -08:00
Bas Nijholt
8998e10179 Add snapshot command to log compose image digests 2025-12-11 10:28:25 -08:00
Bas Nijholt
f4973f7cc3 refactor(docs): add AGENTS.md and GEMINI.md symlinks to CLAUDE.md 2025-12-11 10:23:29 -08:00
Bas Nijholt
aaaf0b9323 Improve README: clarify shared storage assumption 2025-12-11 10:05:20 -08:00
Bas Nijholt
a1b16d988d Add GitHub Actions CI workflow 2025-12-11 10:03:00 -08:00
Bas Nijholt
68aab82ef9 Rename project from sdc to compose-farm
- Package: sdc → compose_farm
- CLI command: sdc → compose-farm
- Config file: sdc.yaml → compose-farm.yaml
- Config path: ~/.config/sdc/ → ~/.config/compose-farm/
- Updated all documentation, tests, and examples
2025-12-11 09:54:03 -08:00
Bas Nijholt
6feb2bbad9 Add examples/sdc.yaml config file 2025-12-11 09:30:33 -08:00
Bas Nijholt
ddcf58fb9d Add example folder with test compose files
- hello: Simple hello-world container for testing
- nginx: Nginx web server on port 8080
- sdc.yaml: Local config (no SSH needed)
- README with usage instructions
2025-12-11 09:30:06 -08:00
Bas Nijholt
f1bb33c646 Add pytest test suite
- Tests for config module (Host, Config, load_config)
- Tests for ssh module (local detection, command execution)
- 30 tests, all passing
- pytest-asyncio for async test support
2025-12-11 09:28:54 -08:00
Bas Nijholt
61aa1143a7 Add local execution support (skip SSH for localhost)
When host address is 'local', 'localhost', '127.0.0.1', or '::1',
commands run locally via subprocess instead of SSH. This is useful
when running sdc from one of the target nodes.
2025-12-11 09:26:41 -08:00
Bas Nijholt
72faa02f15 Add pre-commit with ruff, mypy, and standard hooks
- ruff check + format with ALL rules (ignoring D, ANN, FBT, T201)
- mypy strict mode with pydantic plugin
- Standard pre-commit hooks (trailing whitespace, end-of-file, etc.)
- Fix all type annotations for strict mypy compliance
2025-12-11 09:22:41 -08:00
Bas Nijholt
4baf908b36 Initial implementation of SDC (Simple Distributed Compose)
A minimal CLI tool to run docker compose commands across multiple hosts via SSH.
Features:
- Pydantic config parsing (hosts, services mapping)
- asyncssh for parallel command execution with streaming output
- Typer CLI with up, down, pull, restart, update, logs, ps commands
- Config search: ./sdc.yaml or ~/.config/sdc/sdc.yaml
2025-12-11 09:19:33 -08:00