Jak používat Enver
Kompletní návod k aplikaci Enver. Názvy v aplikaci uvádíme tak, jak je uvidíte v češtině.
Jak Enver funguje
Enver je řídicí panel pro vaše kontejnery. Aplikace běží na vašich vlastních serverech; Enver drží jejich konfiguraci, říká serverům, co mají spustit, a ukazuje vám, co se děje. Stavební kameny jsou:
- Účet – vaše firma nebo tým. Vše ostatní patří k účtu a jeho členové v něm mají oprávnění.
- Container registry – odkud se berou vaše image: Docker Hub nebo jakékoli registry kompatibilní s OCI (GHCR, GitLab, Harbor…).
- Služba – jedna aplikace popsaná jednou pro celý účet: image, výchozí tag, porty, volumes, příkaz a proměnné.
- Edge server – váš server (Debian/Ubuntu nebo macOS) s nainstalovaným malým agentem Enveru. Kontejnery spouští přes Docker nebo na vašem Kubernetes clusteru.
- Prostředí – dev, staging, produkce… Prostředí běží na jednom edge serveru a obsahuje služby s vlastními tagy, proměnnými a nastavením.
Vaše kontejnery, volumes a zálohy nikdy neopouštějí vaše servery. Když je Enver nedostupný, prostředí běží dál; jen je do té doby nemůžete spravovat.
Rychlý start
- Přihlaste se přes Google nebo GitHub a zvolte Vytvořit account (nebo Počkat na pozvání, pokud vás přidává kolega).
- Připojte registry v sekci Registry, pokud máte privátní image. Veřejné image z Docker Hubu fungují i bez něj.
- Popište služby v sekci Servisky: image, výchozí tag, porty a proměnné.
- Přidejte edge server v sekci Edge Servery → Nový server, otevřete ho a postupujte podle Instalace: jeden příkaz na serveru a token.
- Vytvořte prostředí v sekci Prostředí, vyberte edge server a Docker nebo Kubernetes a přidejte do něj služby.
- Spusťte ho. Detail prostředí ukazuje živý stav, dobu běhu a logy každé služby.
Účty a tým
Účty
Kdo účet založí, je jeho vlastníkem a smí v něm vše. Můžete vlastnit více účtů (Nastavení uživatele → Účty → Nový účet) a být členem dalších; přepínáte mezi nimi přepínačem účtů v záhlaví. Názvy účtů jsou v Enveru jedinečné.
Pozvání členů
V Účet → Uživatelé pozvete kolegu e-mailem. Dostane e-mail s pozvánkou a uvidí ji v Nastavení uživatele → Účty → Pozvánky, kde ji přijme nebo odmítne. Pozvaný se musí nejdřív do Enveru s tímto e-mailem přihlásit. Čekající pozvánky se počítají do limitu uživatelů účtu.
Členové
Vlastník a správci uživatelů vidí, kdo je online, a upravují oprávnění (Oprávnění); vlastník může členy odebrat nebo Přenést vlastnictví jinému členovi (dosavadní vlastník tím přijde o práva vlastníka).
Export a smazání
V Účet → Data a smazání si vlastník stáhne vše, co Enver o účtu ukládá, jako soubor JSON (bez tajných hodnot a tokenů), a účet smaže. Smazat ho lze po ukončení placených předplatných; účet pak okamžitě zmizí všem členům a jeho data smažeme do 30 dnů. Kontejnerů a svazků na vašich edge serverech se to nedotkne. Svůj profil smažete v Nastavení uživatele → Obecné → Smazat profil, jakmile nevlastníte žádný účet.
Oprávnění
Členové dostávají oprávnění pro celý účet. Vyšší oprávnění zahrnuje nižší. Názvy oprávnění jsou v aplikaci anglicky.
| Oprávnění | Umožňuje |
|---|---|
| Env Admin | Vytvářet, upravovat, spouštět a zastavovat všechna prostředí, přidávat a nastavovat jejich služby. |
| Env Tag Switching | Přepínat tagy, restartovat služby a číst logy – ideální pro vývojáře, kteří nasazují svou větev. |
| Env Viewer | Vidět prostředí, jejich stav a proměnné (bez tajných hodnot). |
| Service Admin / Viewer | Spravovat nebo vidět katalog služeb a skupiny služeb. |
| Edge Server Admin / Viewer | Spravovat (včetně tokenů a nastavení) nebo vidět edge servery. |
| Variable Group Admin / Viewer | Spravovat nebo vidět skupiny proměnných. |
| Registry Admin / Viewer, Registry Tag Search | Spravovat nebo vidět registry, vyhledávat image a tagy. |
| User Admin | Zvát členy a měnit jejich oprávnění; Invites Admin, Permissions Admin a User Viewer dávají jednotlivé části zvlášť. |
| Monitoring Viewer | Vidět metriky edge serverů. |
| DB Backups Admin / Operator / Viewer | Nastavovat a mazat zálohy / vytvářet a obnovovat je / vidět je. |
| Secrets Reveal | Zkopírovat uloženou tajnou hodnotu. Každé zobrazení se zapíše do auditního logu. |
Oprávnění pro jednotlivá prostředí
V prostředí může vlastník přes Oprávnění doladit přístup jednoho člena: whitelist přidá Env Admin, Tag Switching nebo Viewer jen v tomto prostředí, blacklist je jen tady odebere (např. vývojář smí přepínat tagy všude kromě produkce). Zablokování úrovně blokuje i úrovně nad ní.
Container registry
V sekci Registry přidáte Docker Hub nebo vlastní registry (jeho URL, např. https://ghcr.io) s uživatelem a přístupovým tokenem. Token se ukládá šifrovaně a už se nikdy nezobrazí; při úpravě ho nechte prázdný, aby zůstal. Enver registry používá ke stahování imagů na edge serverech a k našeptávání imagů a tagů ve formulářích.
Automatické nasazení z Docker Hubu
U registry Docker Hub zobrazí Nastavit Docker Hub webhook URL, kterou vložíte do webhooků repozitáře na Docker Hubu. Po každém pushi Enver restartuje – stáhne a znovu vytvoří – každou běžící službu, která používá pushnutý repozitář a tag. Kdo URL zná, může tyto restarty spouštět, proto ji držte v tajnosti. Pokud unikne, vygenerujte v témže okně novou (Vygenerovat novou URL): stará okamžitě přestane platit a na Docker Hubu ji nahradíte novou.
Služby
V Servisky → Nová serviska popíšete aplikaci jednou pro celý účet:
- název a image kontejneru (např.
ghcr.io/acme/api) s výchozím tagem, - registry pro privátní image (navrhne se podle názvu imagu),
- příkaz, pokud ho image ke spuštění potřebuje (např.
npm run start), - výchozí porty (interní → vystavený) a volumes (cesta v kontejneru → cesta na hostiteli),
- výchozí proměnné, každou veřejnou nebo tajnou.
Porty, volumes a proměnné jsou výchozí bod: zkopírují se do prostředí, když do něj službu přidáte, a pozdější změny služby se prostředí, kde už je, nedotknou. Službu lze smazat, až když není v žádném prostředí.
Proměnné a tajné hodnoty
Odkud se hodnoty berou
Při nasazení se proměnné služby skládají v tomto pořadí, pozdější vyhrává:
- výchozí hodnoty služby,
- přiřazené skupiny proměnných (vyhrává později přiřazená),
- hodnoty nastavené přímo v prostředí.
Formulář služby v prostředí ukazuje zděděné proměnné s jejich původem a Přepsat nastaví hodnotu prostředí.
Tajné hodnoty
Tajná hodnota se ukládá šifrovaně a nikdy se neposílá zpět do prohlížeče – formulář ukazuje jen, zda je nastavená. Členové s oprávněním Secrets Reveal ji mohou zkopírovat do schránky a každé zobrazení se zapíše do auditního logu. Proměnná, kterou služba deklaruje jako tajnou, je tajná v každém prostředí; prostředí může utajit i svou vlastní hodnotu. Uložená tajná hodnota se stane veřejnou jen spolu s novou hodnotou.
Import, export a odkazy
- Import .env / Export .env přenáší proměnné v běžném formátu
.env. Řádek s komentářem# secretoznačí následující proměnnou jako tajnou. - Napište do hodnoty
@a odkážete na jinou službu téhož prostředí: při nasazení se nahradí názvem jejího kontejneru, např.postgres://@db:5432/app.
Skupiny služeb a proměnných
Skupiny služeb (Skupiny servisek) sdružují služby, např. „backend“, aby je šlo v prostředí najednou spustit, zastavit nebo přepnout jejich tag. Skupiny proměnných (Skupiny proměnných) drží sdílenou konfiguraci – třeba SMTP nebo message broker – kterou přiřadíte službám v prostředích místo kopírování hodnot. Obě podporují veřejné i tajné hodnoty a import a export .env.
Edge servery
Instalace
V Edge Servery → Nový server server pojmenujte, otevřete ho a klikněte na Instalace. Dialog ukáže příkazy s vyplněným tokenem. Na Debianu/Ubuntu (amd64 nebo arm64):
curl -fsSL -o /tmp/enver-edge-server.deb "https://enver-api.apinecka.com/v1/edge-servers/installer" \
&& echo "<SHA-256 z dialogu> /tmp/enver-edge-server.deb" | sha256sum -c - \
&& sudo dpkg -i /tmp/enver-edge-server.deb && rm /tmp/enver-edge-server.deb
Na macOS (s Docker Desktop, OrbStack nebo Colima):
curl -fsSL -o /tmp/enver-edge-server.tar.gz "https://enver-api.apinecka.com/v1/edge-servers/installer/macos" \
&& echo "<SHA-256 z dialogu> /tmp/enver-edge-server.tar.gz" | shasum -a 256 -c - \
&& tar -xzf /tmp/enver-edge-server.tar.gz -C /tmp && sudo /tmp/enver-edge-server/install.sh \
&& rm -rf /tmp/enver-edge-server /tmp/enver-edge-server.tar.gz
Potom vložte nastavení připojení z dialogu do /etc/enver/edge-server.env a agenta restartujte:
EDGE_SERVER_PORT=10999
EDGE_SERVER_TOKEN=<token z dialogu>
API_URL=https://enver-api.apinecka.com
sudo systemctl restart enver-edge-server # Linux
sudo launchctl kickstart -k system/com.enver.edge-server # macOS
Server se během několika sekund přepne na Online. Token držte v tajnosti – kdo ho má, může se připojit jako váš server. Agent drží spojení s Enverem (jen odchozí, do internetu nemusíte otevírat žádný port), hlásí stavy každých pár sekund a metriky hostitele každou minutu.
Ověření staženého souboru
Příkazy v dialogu instalaci nespustí, dokud SHA-256 souboru nesouhlasí s hodnotou, kterou pro něj Enver zveřejňuje. Jsou-li instalátory podepsané, dialog ukáže i ověření podpisu GPG; otisk klíče před prvním použitím porovnejte s tím, který zveřejňujeme:
curl -fsSL "https://enver-api.apinecka.com/v1/edge-servers/installer/signing-key" | gpg --import
curl -fsSL -o /tmp/enver-edge-server.deb "https://enver-api.apinecka.com/v1/edge-servers/installer" \
&& curl -fsSL -o /tmp/enver-edge-server.deb.asc "https://enver-api.apinecka.com/v1/edge-servers/installer.asc"
gpg --verify /tmp/enver-edge-server.deb.asc /tmp/enver-edge-server.deb && sudo dpkg -i /tmp/enver-edge-server.deb
Co agent dělá a co potřebuje
- Přístup k Dockeru. Běží jako systémový uživatel
enver-edge-serverve skupinědocker(na macOS jako služba launchd pod vaším účtem). Přístup k Docker socketu se rovná rootu na stroji, proto spouští jen to, co nastavíte v Enveru: stahuje image (s přístupy k registry, které Enver pošle ke každému nasazení), vytváří, spouští, zastavuje a maže kontejnery, svazky a sítě, maže staré image a pro zálohy PostgreSQL spouštípg_dump/pg_restoreuvnitř databázového kontejneru a zapisuje do adresáře záloh, který nastavíte. - Kubernetes jen s tokenem service accountu, který zadáte; příkaz v dialogu mu dá právě ta práva, která používá.
- Síť: jen odchozí spojení HTTPS a WebSocket na API Enveru. Na
EDGE_SERVER_PORTodpovídá jen naGET /health; tento port nevystavujte. - Co posílá: stavy kontejnerů, tagy a digesty imagů, metriky hostitele (CPU, paměť, swap, disk, uptime), názvy a velikosti souborů záloh a logy kontejnerů jen když si je prohlížíte (posledních 250 řádků, neukládají se). Obsah kontejnerů a svazků stroj nikdy neopustí.
- Co přijímá: požadovaný stav vašich služeb včetně proměnných. Tajné hodnoty se dešifrují jen kvůli tomu a putují šifrovaným spojením.
- Sám se neaktualizuje; novou verzi nainstalujete stejným příkazem.
Token
Token serveru prokazuje Enveru, kdo je. Když unikne, klikněte v detailu edge serveru na Vygenerovat nový token: starý přestane okamžitě platit a agent se odpojí. Nový token vložte do /etc/enver/edge-server.env a agenta restartujte. Smazání edge serveru ho odpojí také.
Logy a odinstalace
- Linux:
journalctl -u enver-edge-server -f; odinstalacesudo apt remove enver-edge-server. - macOS:
/var/log/enver-edge-server.log; odinstalacesudo /opt/enver/edge-server/uninstall.sh(soubor s nastavením ponechá).
Nastavení Dockeru
V detailu edge serveru se Docker & Kubernetes nastavení projeví do minuty bez restartu:
- Cesta k Docker socketu – výchozí
/var/run/docker.sock. Pokud instalátor na macOS nahlásí jiný socket (např.~/.docker/run/docker.sock), zadejte jeho absolutní cestu. - Čištění imagů – mazat jen image, který nahradila nová verze (výchozí), nebo každý nepoužívaný image jednou za hodinu a po každé aktualizaci.
Kubernetes
Prostředí typu Kubernetes spouští své služby na clusteru, ke kterému se připojuje edge server. Jednou připravte service account s právy cluster-admina (totéž ukazuje Nastavení Kubernetes clusteru v aplikaci):
kubectl create serviceaccount enver-edge-server -n default
kubectl create clusterrole enver-edge-server --verb=get,list,watch,create,update,patch,delete \
--resource=namespaces,deployments,pods,pods/log,services,secrets,ingresses,networkpolicies
kubectl create clusterrolebinding enver-edge-server \
--clusterrole=enver-edge-server --serviceaccount=default:enver-edge-server
kubectl create token enver-edge-server -n default --duration=87600h
kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}'
URL API, token a případně CA certifikát clusteru (PEM) zadejte v nastavení edge serveru. Nastavte také ingress class (výchozí nginx) a případně cert-manager ClusterIssuer, aby ingress hosty dostaly TLS certifikáty.
Každé prostředí dostane vlastní namespace, izolovaný od ostatních síťovou politikou (ingress controller se k němu dostane). Každá služba se stane Deploymentem se Service, volitelným Ingressem pro svůj ingress host a pull secrety z vašich přístupů k registry; počet replik se nastavuje u služby v prostředí.
Prostředí
V Prostředí → Nové prostředí nastavíte:
- název a subdoménu (a–z, 0–9, pomlčky), obojí jedinečné v účtu,
- typ nasazení – Docker nebo Kubernetes,
- edge server, na kterém prostředí běží.
Začněte prázdným prostředím, nebo zvolte Duplikovat existující – zkopíruje se každá služba s tagem, nastavením, proměnnými a skupinami a začne zastavená. Pozdější změna typu nebo názvu běžící služby restartuje (názvy kontejnerů se odvozují od názvu prostředí).
Přidání služeb
Přidat servisu vybere službu z katalogu a nastaví pro toto prostředí její tag, index (pořadí spouštění), repliky, ingress host (Kubernetes), porty, volumes, proměnné a skupiny proměnných. Enver upozorní, když je vystavený port na stejném edge serveru už obsazený. Při úpravě služby v prostředí ji můžete i vypnout nebo přepsat její příkaz. Kopírovat do prostředí… zkopíruje jednu službu i s nastavením do jiného prostředí; odkazy @ se přesměrují na služby cílového prostředí.
Provoz služeb
- Spustit / Zastavit / Restartovat jde službu, skupinu nebo celé prostředí. Enver drží požadovaný stav: agent ho každou minutu kontroluje, takže zastavená služba zůstane zastavená a spuštěná se vrátí.
- Přepínání tagů v poli tagu s našeptáváním z registry. Změny se sbírají; Uložit tagy je nasadí najednou, Zahodit změny je zruší.
- Logy ukazují živě posledních 250 řádků služby, s barvami a vyhledáváním. Enver je neukládá.
- Stav prostředí je Běží, Zastaveno, Spouští se, Zastavuje se, nebo Varování, když je některá služba v jiném stavu nebo se chvíli neozvala. Každá služba ukazuje dobu běhu a poslední chybu.
Monitoring
Monitoring ukazuje pro každý edge server využití CPU, paměti, swapu a disku (s volným místem) a jeho dostupnost za posledních 24 hodin. Metriky se posílají každou minutu a uchovávají 7 dní.
Zálohy PostgreSQL
DB Backupy ukazují každou službu postgres ve vašich prostředích typu Docker. V Nastavení zálohování určíte adresář záloh na edge serveru, zapnete denní automatickou zálohu a kolik záloh uchovávat (starší se po každé nové záloze smažou). Zálohu můžete kdykoli vytvořit (Vytvořit zálohu), obnovit (Obnovit; aktuální data se nahradí 1:1) nebo smazat.
Zálohy vznikají přes pg_dump uvnitř kontejneru a ukládají se jen na edge serveru, nikdy v Enveru. Mějte kopii i jinde – záloha na stejném stroji nepřežije ztrátu jeho disku.
Notifikace
Enver vám může poslat push notifikaci do prohlížeče nebo telefonu, když služba začne běžet na novém imagi – jiném tagu nebo novém buildu pushnutém pod stejným tagem.
- V Nastavení uživatele → Notifikace klikněte na Zapnout na tomto zařízení (jednou pro každý prohlížeč nebo telefon) a případně omezte časové okno ve svém časovém pásmu. Notifikace mimo něj se zahodí.
- V detailu prostředí u služby zvolte Upozornit jednou nebo Upozornit při každé změně.
Notifikace jsou součástí balíčků PRO a Business nebo je lze koupit jako doplněk.
Tarify a fakturace
Tarif účtu najdete v Účet → Tarif a platby, vlastní fakturaci (ověření, další účty, všechna předplatná, která platíte) v Nastavení uživatele → Předplatné a platby. Ceny jsou v EUR za měsíc; roční platba je o 20 % levnější.
| FREE | FREE ověřený | PRO – 10 € | Business – 80 € | |
|---|---|---|---|---|
| Prostředí | 1 | 2 | 6 | 22 |
| Služby | 5 | 10 | neomezeně | neomezeně |
| Edge servery | 1 | 2 | 6 | 22 |
| Uživatelé | 1 | 5 | 15 | 105 |
| Notifikace | – | – | ✓ | ✓ |
Doplňky zvyšují jednotlivé limity: další prostředí 4 €, další edge server 3 €, další uživatel 1 €, neomezené služby 5 €, notifikace 2 € a další vlastní účet 5 € měsíčně. Pro větší potřeby si v aplikaci řekněte o Enterprise.
- Ověření odemkne FREE ověřený: uložíte kartu ve Stripe, nic se nestrhne a karta se neuchovává. Jedna karta ověří jednoho uživatele. Jakákoli platba vás ověří také.
- Změna předplatného se hned vyúčtuje poměrně; vyšší limity platí po zaplacení rozdílu.
- Zrušit obnovení ponechá limity do konce zaplaceného období; Ukončit hned s vrácením peněz ho ukončí okamžitě a nevyčerpanou část vrátí na kartu.
- Když se obnovu nepodaří zaplatit, limity zůstanou ještě 3 dny, pak se účet vrátí k bezplatným limitům. Nic se nesmaže.
- Platby a faktury otevře zákaznický portál Stripe s fakturami a kartou.
Když narazíte na limit, Enver místo chyby ukáže, co navýšit. Úplné podmínky jsou v obchodních podmínkách.
Údržba a zpětná vazba
Plánovanou údržbu Enver ohlásí pod záhlavím nejméně 2 hodiny předem. Během ní aplikace ukáže stránku údržby a po jejím konci se sama znovu načte; vaše prostředí běží dál. Našli jste chybu nebo máte nápad? Použijte Poslat feedback v záhlaví – každá zpráva jde přímo týmu Enveru.