Files
mates-infra/docs/contributing.md
T
mates 444191d16d feat: initial infra repo
- docker-services: 14 generic compose templates (portainer, npm, vaultwarden, gitea, jotty, nextcloud-aio, rustdesk, audiobookshelf, calibre-web, plex, erugo, jswiki, speedtest, watchtower)
- install-scripts: bash scripts for Ubuntu server bootstrap, docker, portainer, npm, backup, restore
- ansible: 4 playbooks (bootstrap, deploy-services, update-services, security-hardening) + roles skeleton
- hermes-install: Hermes CLI setup on macOS
- macos-setup: Brewfile + osx-defaults + fish-config
- home-nas-tools: metadata index for NAS projects (no binaries)
- docs: architecture, security, contributing
- README, LICENSE (MIT), .gitignore
2026-08-01 16:25:58 +02:00

117 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🤝 Contributing
> Jak přispívat do tohoto repozitáře.
## 📝 Pravidla
### Commit messages
Používej **Conventional Commits**:
- `feat:` nová služba nebo funkce
- `fix:` oprava chyby
- `docs:` pouze dokumentace
- `chore:` údržba, refactoring
- `style:` formatting, bez funkční změny
- `refactor:` přestavba kódu
- `test:` přidání testů
Příklad: `feat(vaultwarden): přidat 2FA podporu`
### Branch naming
- `feature/<name>` nová feature
- `fix/<name>` bugfix
- `docs/<name>` dokumentace
Příklad: `feature/audiobookshelf-metadata`
### Pull Request
1. Fork → branch → commit → push → PR
2. **Titulek PR** krátký, výstižný
3. **Popis** co, proč, jak
4. **Screenshoty** pokud měníš UI/dokumentaci
5. **Testy** pokud měníš Ansible playbooks
## 🏗 Struktura
```
repo/
├── docker-services/ # Každá služba v samostatném adresáři
├── install-scripts/ # Bash skripty pro nové servery
├── ansible/ # Playbooky + role
├── hermes-install/ # Hermes CLI setup
├── macos-setup/ # Homebrew + macOS defaults
├── home-nas-tools/ # Metadata (žádné binárky!)
└── docs/ # Architektura, bezpečnost
```
## ✅ Checklist pro novou službu
- [ ] `docker-services/<service>/docker-compose.yml` generický, placeholders
- [ ] `docker-services/<service>/.env.example` šablona env vars
- [ ] `docker-services/<service>/README.md` dokumentace
- [ ] Aktualizován `docker-services/README.md` (tabulka)
- [ ] Aktualizován hlavní `README.md` (pokud je service klíčová)
- [ ] **Žádné citlivé údaje** v commitu
## 🔐 Bezpečnost
-**NEcommituj** hesla, API klíče, IP adresy serveru
-**NEcommituj** `~/.env` (je v `.gitignore`)
-**NEcommituj** SSH klíče
-**Vždy** používej `.env.example` jako šablonu
-**Vždy** testuj nové compose lokálně před commitem
## 🧪 Testování
Před commitem:
```bash
# Validace YAML
python3 -c "import yaml; yaml.safe_load(open('docker-services/<service>/docker-compose.yml'))"
# Validace compose (na serveru)
docker compose -f docker-services/<service>/docker-compose.yml config
# Syntax check bash
shellcheck install-scripts/<script>.sh
# Lint Ansible
ansible-lint ansible/playbooks/<playbook>.yml
```
## 📋 Verzování
- **Semver** `MAJOR.MINOR.PATCH`
- **Tagy:** `v1.0.0`, `v1.1.0`, …
- **Release notes** v GitHub/Gitea Releases
## 🐛 Hlášení chyb
Vytvoř **issue** v Gitea s:
1. **Název** krátký popis
2. **Kroky k reprodukci** co jsi udělal
3. **Očekávané chování** co jsi čekal
4. **Skutečné chování** co se stalo
5. **Verze** `git describe` + verze OS
## 💡 Návrhy features
1. Otevři **issue** s labelem `enhancement`
2. Popiš use case co chceš dělat
3. Jaké alternativy jsi zvážil
4. Jak to navrhuješ implementovat
## 📞 Kontakt
- **Issues:** Gitea
- **Email:** viz Gitea profil
- **Diskuze:** Gitea Discussions (pokud povoleno)
## 📜 Licence
Přispěním do tohoto repo souhlasíš s licencí [MIT](../LICENSE).