# 🛠️ 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