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
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
# Brewfile – instalace všech macOS aplikací
|
||||
# Tento soubor použij s: brew bundle --file=Brewfile
|
||||
# Generováno z produkčního Macu (viz README)
|
||||
|
||||
# ───────────── TAPS ─────────────
|
||||
tap "homebrew/bundle"
|
||||
tap "homebrew/cask"
|
||||
tap "homebrew/cask-fonts"
|
||||
tap "homebrew/core"
|
||||
|
||||
# ───────────── FORMULAS (CLI) ─────────────
|
||||
brew "aom"
|
||||
brew "bat"
|
||||
brew "btop"
|
||||
brew "ca-certificates"
|
||||
brew "cairo"
|
||||
brew "certifi"
|
||||
brew "dav1d"
|
||||
brew "deno"
|
||||
brew "diffutils"
|
||||
brew "exiftool"
|
||||
brew "eza"
|
||||
brew "fastfetch"
|
||||
brew "fd"
|
||||
brew "ffmpeg"
|
||||
brew "fish"
|
||||
brew "fontconfig"
|
||||
brew "freetype"
|
||||
brew "fribidi"
|
||||
brew "fzf"
|
||||
brew "gettext"
|
||||
brew "giflib"
|
||||
brew "glib"
|
||||
brew "graphite2"
|
||||
brew "harfbuzz"
|
||||
brew "htop"
|
||||
brew "icu4c@78"
|
||||
brew "img2pdf"
|
||||
brew "jpeg-turbo"
|
||||
brew "jq"
|
||||
brew "json-c"
|
||||
# ... další nainstalované balíky (viz `brew list --formula`)
|
||||
|
||||
# ───────────── CASKS (GUI) ─────────────
|
||||
cask "alt-tab"
|
||||
cask "balenaetcher"
|
||||
cask "bartender"
|
||||
cask "bitwarden"
|
||||
cask "copilot-cli"
|
||||
cask "daisydisk"
|
||||
cask "discord"
|
||||
cask "dockdoor"
|
||||
cask "font-meslo-lg-nerd-font"
|
||||
cask "google-chrome"
|
||||
cask "google-drive"
|
||||
cask "keepassxc"
|
||||
cask "keepingyouawake"
|
||||
cask "keka"
|
||||
cask "microsoft-teams"
|
||||
cask "nextcloud"
|
||||
cask "nextcloud-talk"
|
||||
cask "notion"
|
||||
cask "nvidia-geforce-now"
|
||||
cask "obs"
|
||||
cask "obsidian"
|
||||
cask "omnidisksweeper"
|
||||
cask "qbittorrent"
|
||||
cask "rustdesk"
|
||||
cask "spotify"
|
||||
cask "transmission"
|
||||
cask "visual-studio-code"
|
||||
cask "vlc"
|
||||
cask "whatsapp"
|
||||
cask "whichspace"
|
||||
# ... další (viz `brew list --cask`)
|
||||
|
||||
# ───────────── FONTS ─────────────
|
||||
cask "font-meslo-lg-nerd-font"
|
||||
@@ -0,0 +1,85 @@
|
||||
# 🍎 macOS Setup
|
||||
|
||||
> Automatizovaná instalace a konfigurace macOS workstation.
|
||||
|
||||
## 📦 Obsah
|
||||
|
||||
| Soubor | Účel |
|
||||
|---|---|
|
||||
| [`Brewfile`](Brewfile) | Všechny nainstalované CLI/GUI aplikace (Homebrew Bundle) |
|
||||
| [`install-brew.sh`](install-brew.sh) | Instaluje Homebrew (pokud chybí) |
|
||||
| [`configure-fish.sh`](configure-fish.sh) | Nastaví Fish shell s aliasy |
|
||||
| [`osx-defaults.sh`](osx-defaults.sh) | macOS výchozí nastavení (Finder, Dock, klávesnice) |
|
||||
| [`README.md`](README.md) | Tento soubor |
|
||||
|
||||
## 🚀 Quickstart (nový Mac)
|
||||
|
||||
```bash
|
||||
# 1. Instalace Homebrew (pokud chybí)
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# 2. Instalace všech aplikací
|
||||
brew bundle --file=Brewfile
|
||||
|
||||
# 3. macOS výchozí nastavení (Finder, Dock, ...)
|
||||
bash osx-defaults.sh
|
||||
|
||||
# 4. Fish shell s aliasy
|
||||
bash configure-fish.sh
|
||||
```
|
||||
|
||||
## 🔧 Fish aliasy
|
||||
|
||||
`configure-fish.sh` nastaví tyto aliasy (viz skript):
|
||||
|
||||
| Alias | Příkaz |
|
||||
|---|---|
|
||||
| `update` | `brew update && brew upgrade` |
|
||||
| `ll` | `eza -la` |
|
||||
| `cat` | `bat` |
|
||||
| `find` | `fd` |
|
||||
| `top` | `btop` |
|
||||
| `g` | `git` |
|
||||
| `k` | `kubectl` |
|
||||
| `d` | `docker` |
|
||||
| `dc` | `docker compose` |
|
||||
|
||||
## ⚙️ macOS Defaults
|
||||
|
||||
`osx-defaults.sh` nastaví:
|
||||
|
||||
- **Finder:** zobrazit skryté soubory, všechny přípony, cestu k aktuálnímu adresáři
|
||||
- **Dock:** auto-hide, rychlejší animace
|
||||
- **Keyboard:** rychlejší opakování kláves
|
||||
- **Trackpad:** rychlejší tracking
|
||||
- **Safari:** vývojářské nástroje
|
||||
|
||||
## 🔐 Bezpečnost
|
||||
|
||||
- **FileVault** – povolit (v System Settings → Privacy & Security)
|
||||
- **Firewall** – povolit (v System Settings → Network → Firewall)
|
||||
- **XProtect** – default zapnutý
|
||||
- **Gatekeeper** – default `App Store a identified developers`
|
||||
|
||||
## 📚 Apple ekosystém
|
||||
|
||||
- **iCloud** – dokumenty, plocha, fotografie
|
||||
- **Handoff** – pokračovat na iOS/iPadOS
|
||||
- **Universal Clipboard**
|
||||
- **Sidecar** – iPad jako druhá obrazovka
|
||||
|
||||
## 🔄 Aktualizace
|
||||
|
||||
```bash
|
||||
# Homebrew
|
||||
brew update && brew upgrade && brew cleanup
|
||||
|
||||
# macOS
|
||||
System Settings → Software Update
|
||||
```
|
||||
|
||||
## 📚 Dokumentace
|
||||
|
||||
- [Homebrew](https://brew.sh/)
|
||||
- [Brewfile](https://github.com/Homebrew/homebrew-bundle)
|
||||
- [macOS defaults](https://macos-defaults.com/)
|
||||
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Nastaví Fish shell s užitečnými aliasy
|
||||
# - uloží konfiguraci do ~/.config/fish/config.fish
|
||||
# - pokud Fish neexistuje, nainstaluje ho
|
||||
# - idempotentní (přidá/aktualizuje aliasy, nesmaže existující)
|
||||
#
|
||||
# Vyžaduje fish 3.0+ a Homebrew
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
FISH_CONFIG="$HOME/.config/fish/config.fish"
|
||||
|
||||
# Pokud fish není nainstalovaný, nainstaluj
|
||||
if ! command -v fish &>/dev/null; then
|
||||
echo "▶ Instaluji fish..."
|
||||
if command -v brew &>/dev/null; then
|
||||
brew install fish
|
||||
else
|
||||
echo "✗ Homebrew není nainstalován. Nainstaluj ho ručně: https://brew.sh/" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Vytvoř adresář
|
||||
mkdir -p "$(dirname "$FISH_CONFIG")"
|
||||
|
||||
# Definice aliasů
|
||||
declare -A ALIASES=(
|
||||
["update"]="brew update && brew upgrade && brew cleanup"
|
||||
["ll"]="eza -la --git --time-style=long-iso"
|
||||
["ls"]="eza"
|
||||
["cat"]="bat --paging=never"
|
||||
["find"]="fd"
|
||||
["grep"]="rg"
|
||||
["top"]="btop"
|
||||
["ps"]="procs"
|
||||
["g"]="git"
|
||||
["d"]="docker"
|
||||
["dc"]="docker compose"
|
||||
["k"]="kubectl"
|
||||
["llog"]="docker compose logs -f --tail=100"
|
||||
["dip"]="docker compose logs -f --tail=100 \\\\"
|
||||
["myip"]="curl -s https://api.ipify.org && echo"
|
||||
["weather"]="curl -s 'wttr.in?format=3'"
|
||||
)
|
||||
|
||||
# Funkce pro generování
|
||||
{
|
||||
echo "# ~/.config/fish/config.fish"
|
||||
echo "# Generováno configure-fish.sh – $(date +%Y-%m-%d)"
|
||||
echo ""
|
||||
echo "set -g fish_greeting \"\""
|
||||
echo "set -gx PATH /opt/homebrew/bin \$PATH"
|
||||
echo "set -gx EDITOR vim"
|
||||
echo ""
|
||||
for alias in "${!ALIASES[@]}"; do
|
||||
echo "alias $alias='${ALIASES[$alias]}'"
|
||||
done
|
||||
} > "$FISH_CONFIG"
|
||||
|
||||
echo "✓ Konfigurace Fish v $FISH_CONFIG"
|
||||
echo
|
||||
echo "Použití: spusť 'fish' v terminálu"
|
||||
echo "Ověření: alias ll → ${ALIASES[ll]}"
|
||||
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# macOS výchozí nastavení (defaults write)
|
||||
# Spustit JEDNOU po čisté instalaci macOS
|
||||
#
|
||||
# Vyžaduje: macOS (testováno na 13+)
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
if [[ "$(uname)" != "Darwin" ]]; then
|
||||
echo "Tento skript je pouze pro macOS" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "▶ Nastavuji macOS defaults..."
|
||||
|
||||
# ──── Finder ────
|
||||
# Zobrazit skryté soubory
|
||||
defaults write com.apple.finder AppleShowAllFiles -bool true
|
||||
# Zobrazit všechny přípony
|
||||
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
|
||||
# Zobrazit cestovní panel
|
||||
defaults write com.apple.finder ShowPathbar -bool true
|
||||
# Zobrazit stavový řádek
|
||||
defaults write com.apple.finder ShowStatusBar -bool true
|
||||
# Výchozí pohled: seznam
|
||||
defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"
|
||||
# Vyhledávání v aktuálním adresáři (default od Mojave)
|
||||
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
|
||||
# Rozšíření "Uložit dialog" o textové lišty
|
||||
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
|
||||
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true
|
||||
# Default nový Finder okno: domovský adresář
|
||||
defaults write com.apple.finder NewWindowTarget -string "PfHm"
|
||||
|
||||
# ──── Dock ────
|
||||
# Auto-hide
|
||||
defaults write com.apple.dock autohide -bool true
|
||||
# Rychlejší animace
|
||||
defaults write com.apple.dock autohide-time-modifier -float 0.3
|
||||
defaults write com.apple.dock expose-animation-duration -float 0.2
|
||||
# Zobrazit indikátory otevřených aplikací
|
||||
defaults write com.apple.dock show-process-indicators -bool true
|
||||
# Velikost ikon
|
||||
defaults write com.apple.dock tilesize -int 48
|
||||
# Skrýt nedávné aplikace
|
||||
defaults write com.apple.dock show-recents -bool false
|
||||
|
||||
# ──── Klávesnice ────
|
||||
# Rychlejší opakování kláves
|
||||
defaults write NSGlobalDomain KeyRepeat -int 2
|
||||
defaults write NSGlobalDomain InitialKeyRepeat -int 15
|
||||
# Plná klávesnice pro přístup
|
||||
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
|
||||
# Funkční klávesy jako F1-F12
|
||||
defaults write NSGlobalDomain "com.apple.keyboard.fnState" -bool true
|
||||
|
||||
# ──── Trackpad ────
|
||||
# Tap-to-click
|
||||
defaults write com.apple.AppleMultitouchTrackpad Clicking -bool true
|
||||
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
|
||||
# Rychlejší tracking
|
||||
defaults write NSGlobalDomain com.apple.trackpad.scaling -float 1.5
|
||||
|
||||
# ──── Safari ────
|
||||
# Zobrazit vývojářské nástroje
|
||||
defaults write com.apple.Safari IncludeDevelopMenu -bool true
|
||||
defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true
|
||||
# Privacy: omezit cross-site tracking
|
||||
defaults write com.apple.Safari WebKitStorageBlockingPolicy -int 1
|
||||
|
||||
# ──── TextEdit ────
|
||||
# Plain text mode
|
||||
defaults write com.apple.TextEdit RichText -int 0
|
||||
|
||||
# ──── Terminal ────
|
||||
# UTF-8
|
||||
defaults write com.apple.terminal StringEncodings -array 4
|
||||
|
||||
echo "✓ macOS defaults nastaveny"
|
||||
echo
|
||||
echo "Pro aplikaci změn: odhlas se a prihlas se, nebo restartuj Finder/Dock:"
|
||||
echo " killall Finder Dock"
|
||||
Reference in New Issue
Block a user