- 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
117 lines
3.1 KiB
Markdown
117 lines
3.1 KiB
Markdown
# 🤝 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).
|