41 lines
1.5 KiB
Markdown
41 lines
1.5 KiB
Markdown
# Docker Swarm Services Repository
|
|
|
|
This repository is for Docker Swarm stack files for Wheelz's HomeLab.
|
|
|
|
## Repository Purpose
|
|
|
|
- Store stack files intended for `docker stack deploy`.
|
|
- Do not add regular non-Swarm Docker Compose stacks here.
|
|
- Use this repo for services that are deployed to a Docker Swarm cluster.
|
|
|
|
## Rules
|
|
|
|
- Never commit real secrets, passwords, tokens, API keys, private keys, or recovery codes.
|
|
- Use `.env.example` files and Docker secrets/config references for sensitive values.
|
|
- Prefer Swarm-compatible Compose syntax. Avoid features that only work with local `docker compose` unless documented as unsupported in Swarm.
|
|
- Use `deploy:` settings intentionally: replicas, placement constraints, restart policies, resources, labels, and update/rollback config where useful.
|
|
- Use overlay networks for inter-service communication.
|
|
- Preserve existing files unless the user explicitly asks to replace or reorganize them.
|
|
- Do not push to Gitea unless the user explicitly asks.
|
|
|
|
## Validation
|
|
|
|
For Swarm stack files, syntax-check with:
|
|
|
|
```bash
|
|
docker compose --env-file <service>.env.example -f <service>-compose.yml config
|
|
```
|
|
|
|
Then review for Swarm compatibility before deployment with:
|
|
|
|
```bash
|
|
docker stack deploy -c <stack-file>.yml <stack-name>
|
|
```
|
|
|
|
Do not actually deploy unless the user explicitly asks.
|
|
|
|
## Current Files
|
|
|
|
- `claude-compose.yml` — Docker Swarm stack for Claude Code.
|
|
- `claude.env.example` — example environment values for Claude Code stack.
|