- 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
3.1 KiB
3.1 KiB
🤝 Contributing
Jak přispívat do tohoto repozitáře.
📝 Pravidla
Commit messages
Používej Conventional Commits:
feat:– nová služba nebo funkcefix:– oprava chybydocs:– pouze dokumentacechore:– údržba, refactoringstyle:– formatting, bez funkční změnyrefactor:– přestavba kódutest:– přidání testů
Příklad: feat(vaultwarden): přidat 2FA podporu
Branch naming
feature/<name>– nová featurefix/<name>– bugfixdocs/<name>– dokumentace
Příklad: feature/audiobookshelf-metadata
Pull Request
- Fork → branch → commit → push → PR
- Titulek PR – krátký, výstižný
- Popis – co, proč, jak
- Screenshoty – pokud měníš UI/dokumentaci
- 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ý, placeholdersdocker-services/<service>/.env.example– šablona env varsdocker-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.examplejako šablonu - ✅ Vždy testuj nové compose lokálně před commitem
🧪 Testování
Před commitem:
# 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:
- Název – krátký popis
- Kroky k reprodukci – co jsi udělal
- Očekávané chování – co jsi čekal
- Skutečné chování – co se stalo
- Verze –
git describe+ verze OS
💡 Návrhy features
- Otevři issue s labelem
enhancement - Popiš use case – co chceš dělat
- Jaké alternativy jsi zvážil
- 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.