# Local Docker Management Cross-platform docker stack pro lokální vývoj s Traefikem a Portainerem ### Traefik - Reverzní proxy - Validní https pro lokální vývoj (wildcard certifikát s vlastním CA) - Přizpůsobitelné nastavení nuceného přesměrování HTTP na HTTPS - Připojení dalších (vlastních) služeb pomocí Traefik labels - Dashboard pro monitorování a správu routování ### Portainer - Webové rozhraní pro správu kontejnerů, obrazů, sítí i volumů - Podpora Docker, Compose, Swarm i Kubernetes - Persistentní úložiště dat (složka `portainer`) ### Požadavky - Docker & Docker Compose ## Instalace ### 1. Konfigurace prostředí Při prvním spuštění se automaticky spustí průvodce konfigurací, který vytvoří soubor `.env` s potřebnými nastaveními. Budete dotázáni na: - **Development domain name** - doména pro lokální vývoj (výchozí: `dev.linuxak.com`) - **External Docker network name** - název externí sítě pro kontejnery (výchozí: `traefiknet`) - **HTTPS redirect** - vynucené přesměrování HTTP na HTTPS (výchozí: `true`) > **Tip:** Stačí mačkat Enter pro použití výchozích hodnot, které jsou plně funkční. > > Přednastavenou doménu `dev.linuxak.com` můžete ponechat - směřuje na IP `127.0.0.1` (váš lokální počítač). ### 2. Certifikáty pro HTTPS Traefik používá náš certifikát pro HTTPS komunikaci podepsaný naší vlastní autoritou. Pro správné fungování je potřeba importovat CA soubor autority `traefik/certs/linuxakCA.pem` do důvěryhodných certifikátů vašeho operačního systému. **Integrovaný certifikát je platný pro:** - `dev.linuxak.com` a všechny subdomény (`*.dev.linuxak.com`) - `localhost` - IP adresu `127.0.0.1` - **Platnost:** do 27. února 2036 > **Poznámka:** Pokud změníte `DEV_URL` na jinou doménu než výše uvedené, bude potřeba dodat vlastní > certifikát pro HTTPS komunikaci a integrovat jej do Traefiku. ### 2.1 Import CA do systému **Linux (CentOS/RHEL/Fedora)** ```bash sudo cp traefik/certs/linuxakCA.pem /etc/pki/ca-trust/source/anchors/linuxak-dev-ca.crt sudo update-ca-trust ``` **Linux (Ubuntu/Debian)** ```bash sudo cp traefik/certs/linuxakCA.pem /usr/local/share/ca-certificates/linuxak-dev-ca.crt sudo update-ca-certificates ``` **MacOS** ```bash sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain traefik/certs/linuxakCA.pem ``` **Windows (PowerShell jako Admin)** ```bash Import-Certificate -FilePath "traefik/certs/linuxakCA.pem" -CertStoreLocation Cert:\LocalMachine\Root ``` ### 3. Spuštění ```bash ./run up # Spustit stack (při prvním spuštění se spustí průvodce konfigurací) ./run restart # Restartovat stack ./run down # Zastavit stack ``` Při prvním spuštění `./run up` budete provedeni konfigurací - stačí postupovat podle pokynů na obrazovce. ## Přístup ke službám | Služba | URL | |:------------------|:----------------------------------| | Traefik Dashboard | https://traefik.dev.linuxak.com | | Portainer | https://portainer.dev.linuxak.com | ## Struktura ``` Stack/ ├── docker-compose.yml # Definice služeb ├── run # Skript pro správu ├── .env # Konfigurace prostředí (automaticky vytvořen při prvním spuštění) ├── traefik/ # Traefik konfigurace, certifikáty a logy └── portainer/ # Portainer data ``` ## Připojení vaší služby do Traefiku Do vašeho `docker-compose.yml` přidejte Traefik labels: `` - nahraďte skutečnou doménou své služby `` - nahraďte skutečným portem své služby `` - nahraďte skutečným názvem své externí sítě Příklad pro službu s názvem `myapp`: ```yaml labels: - "traefik.enable=true" - "traefik.http.routers.myapp.rule=Host(`myapp.`)" - "traefik.http.routers.myapp.entrypoints=websecure" - "traefik.http.routers.myapp.tls=true" - "traefik.http.services.myapp.loadbalancer.server.port=" networks: - ```