# 🛠️ Adminer: Webový správce databází pro PostgreSQL a další 👉 [[1.1.1 O projektu]] 👉 [[1.1.2 Vlastní digitální svět (přehled článků)]] ## 📌 Úvod: Proč potřebujeme Adminer? [Adminer](https://www.adminer.org/) je **lehčí alternativa k [phpMyAdmin](https://www.phpmyadmin.net/)** a umožňuje **správu databází přes webové rozhraní**. Podporuje: - ✅ **PostgreSQL, MySQL, MariaDB a další databázové systémy.** - ✅ **Jednoduché připojení a správa databází přes webový prohlížeč.** - ✅ **Možnost spravovat více databází z jednoho rozhraní.** V tomto článku si ukážeme, jak nasadit Adminer v Dockeru a připojit ho k PostgreSQL. ![[image_adminer.png]] --- ## 📜 Licence a cena | Aspekt | Detail | |--------|--------| | **Licence** | Apache 2.0 / GPL 2.0 (dual license) | | **Self-hosting** | ✅ Ano, zcela zdarma | | **Komerční použití** | ✅ Bez jakýchkoliv omezení | | **Cloud verze** | ❌ Pouze self-hosted | | **Zdrojový kód** | [github.com/vrana/adminer](https://github.com/vrana/adminer) | > Adminer je **open-source pod dual licencí Apache 2.0 / GPL 2.0**. Můžete si vybrat, která vám více vyhovuje. Oba varianty umožňují neomezené komerční použití. ### Adminer vs phpMyAdmin | Funkce | Adminer | phpMyAdmin | |--------|---------|------------| | Velikost | ~500 KB (1 soubor) | ~13 MB | | Databáze | PostgreSQL, MySQL, SQLite, Oracle, MS SQL | Pouze MySQL/MariaDB | | Instalace | 1 soubor | Složitější | | UI/UX | ⭐⭐⭐⭐⭐ Moderní | ⭐⭐⭐ Zastaralý | | Výkon | Rychlejší | Pomalejší | --- ## 🚀 Instalace Admineru v Dockeru (s `docker-compose.yml`) ```yaml version: '3.8' services: adminer: image: adminer:latest container_name: adminer restart: always networks: - digilifehub_network ports: - "8080:8080" environment: ADMINER_DEFAULT_SERVER: postgres_db networks: digilifehub_network: external: true ``` 📌 **Adminer je nyní dostupný na `http://IP_ADRESA:8080`** 📌 **Podporuje PostgreSQL i MySQL – stačí změnit přihlašovací údaje.** --- ## 🔌 Rozšíření Admineru pomocí pluginů Adminer lze rozšířit pomocí **pluginů**, které umožňují přidání užitečných funkcí jako: - **Dynamické sloupce a filtry** - **Přizpůsobené exporty a importy** - **Pokročilé řízení oprávnění** 📌 Více informací a seznam dostupných pluginů: 🔗 [https://www.adminer.org/cs/plugins/](https://www.adminer.org/cs/plugins/) ### **Použití pluginů v Dockeru** Chcete-li Adminer rozšířit o pluginy v Dockeru, můžete použít vlastní `Dockerfile`: ```Dockerfile FROM adminer:latest COPY plugins-enabled /var/www/html/plugins-enabled ``` Poté vytvořte složku `plugins-enabled` a přidejte soubory pluginů. --- ## 🔑 Připojení k PostgreSQL přes Adminer 1️⃣ Otevřete **`http://IP_ADRESA:8080`** 2️⃣ Vyplňte přihlašovací údaje: - **Server:** `postgres_db` (název kontejneru PostgreSQL) - **Uživatel:** `admin` - **Heslo:** `supersecurepassword` - **Databáze:** `main_db` 3️⃣ Klikněte na **Přihlásit** – můžete spravovat svou databázi. --- ## 💡 Praktické použití ### Use case 1: Rychlý debugging produkčních dat **Situace:** Zákazník hlásí problém s objednávkou. Potřebujete rychle ověřit stav v databázi, ale SSH přístup je komplikovaný. **Řešení s Adminer:** - **Webový přístup:** Adminer běží za Traefik s HTTPS - **Quick query:** `SELECT * FROM orders WHERE id = 12345` - **Edit inline:** Oprava špatného statusu jedním kliknutím - **Export:** Stažení záznamu jako SQL pro analýzu - **Audit:** Historie změn v application logu **Výsledek:** Debug za minuty místo hodin SSH tunelování. ### Use case 2: Database migration a refactoring **Situace:** Potřebujete přejmenovat sloupce, přidat indexy, změnit datové typy. CLI migrace jsou složité. **Řešení s Adminer:** - **Alter table:** Vizuální úprava struktury tabulky - **SQL preview:** Adminer ukáže SQL před provedením - **Foreign keys:** Přehledná správa relací - **Indexes:** Vytvoření/smazání indexů kliknutím - **Compare:** Porovnání schématu s jinou databází **Výsledek:** Bezpečnější migrace s vizuální kontrolou. ### Use case 3: Onboarding nových vývojářů **Situace:** Nový vývojář potřebuje pochopit datový model. ERD diagramy jsou zastaralé nebo neexistují. **Řešení s Adminer:** - **Browse:** Procházení tabulek a jejich obsahu - **Relations:** Vizualizace foreign keys - **Sample data:** Rychlý pohled na reálná data - **Schema export:** Generování aktuálního SQL schema - **Learning:** Méně zkušení vývojáři preferují GUI **Výsledek:** Rychlejší pochopení datového modelu. ### Use case 4: Testovací data a seeding **Situace:** QA potřebuje specifická testovací data. Ruční INSERT přes CLI je zdlouhavý. **Řešení s Adminer:** - **Import CSV:** Hromadný import testovacích dat - **Insert form:** Formulář pro vkládání záznamů - **Clone:** Duplikace existujícího záznamu - **SQL file:** Import připraveného seed scriptu - **Truncate:** Rychlé vyčištění testovacích tabulek **Výsledek:** QA si připraví data sám bez pomoci vývojářů. ### Use case 5: Multi-database správa **Situace:** Projekt používá PostgreSQL pro hlavní data, Redis pro cache, MySQL pro legacy systém. Potřebujete jednotné rozhraní. **Řešení s Adminer:** - **Multiple connections:** Přepínání mezi databázemi - **Universal UI:** Stejné rozhraní pro PostgreSQL, MySQL, SQLite - **Bookmarks:** Uložené připojení pro rychlý přístup - **Cross-database queries:** Porovnání dat mezi systémy - **Jeden nástroj:** Místo pgAdmin + phpMyAdmin + SQLite Browser **Výsledek:** Jeden nástroj pro všechny databáze. --- ## 🆚 Adminer vs alternativy | Nástroj | Licence | Multi-DB | Web-based | Velikost | |---------|---------|----------|-----------|----------| | **Adminer** | Apache/GPL | ✅ | ✅ | ~500 KB | | **phpMyAdmin** | GPL | ❌ MySQL only | ✅ | ~13 MB | | **pgAdmin** | PostgreSQL | ❌ PG only | ✅ | ~100 MB | | **DBeaver** | Apache | ✅ | ❌ Desktop | ~100 MB | | **TablePlus** | Proprietary | ✅ | ❌ Desktop | ~50 MB | > **Adminer** je nejlepší volba pro lehký, univerzální webový správce. Pro pokročilou práci s jednou databází jsou specializované nástroje (pgAdmin, TablePlus) lepší. --- ## 🏁 Závěr a další kroky ✅ **Adminer je rychlý a jednoduchý webový správce databází.** ✅ **Apache/GPL dual licence – plně open-source, bez omezení.** ✅ **Podporuje více databázových systémů (PostgreSQL, MySQL, SQLite...).** ✅ **Možnost rozšíření pomocí pluginů.** --- ### ⏪ Související články ⏩ > **🔙 Předchozí článek:** > [[2025-02-10 PostgreSQL (relační databáze)|PostgreSQL (relační databáze)]] > > **🔜 Následující článek:** > [[2025-03-01 Coolify (self-hosted Vercel alternativa)|Coolify (self-hosted Vercel alternativa)]] #docker #adminer #postgresql #osobniDigitalizace #digilifehub