# Mi a MainWP és hogyan működik?

> A MainWP részei, a saját kiszolgálón futó működés előnyei, a kommunikáció alapjai és a nyílt forráskód.

A **MainWP** ingyenes, nyílt forráskódú rendszer, amellyel több WordPress-webhelyet kezelhetsz egyetlen, saját kiszolgálón futó vezérlőpultról. Személyes blogokhoz és ügyfélwebhelyekhez is használható.

## A rendszer részei

| Rész | Hova kerül | Szerepe |
|---|---|---|
| **MainWP vezérlőpult** | Egy külön, erre szánt WordPress-webhelyre | A központ, innen irányítod az összes webhelyet |
| **MainWP Child** | Minden kezelni kívánt webhelyre | Biztonságos kapcsolatot ad a vezérlőpulttal, így távolról kezelhető a webhely, és automatikus műveletek is futhatnak rajta |
| **Kiegészítők** | A vezérlőpultra (nem a Child-webhelyekre) | Nem kötelező bővítmények például mentéshez, SEO-hoz, karbantartáshoz, biztonsághoz és figyeléshez |

A vezérlőpultot és a Child bővítményt mindenképp telepíteni kell, a kiegészítők nélkül is teljes értékű a rendszer.

A vezérlőpultot érdemes tiszta, új WordPress-telepítésre rakni, hogy ne legyen bővítményütközés.

Néhány fontos korlát:

- A MainWP nem WordPress Multisite-hálózatokra készült.
- Csak saját üzemeltetésű (self-hosted) WordPress-webhelyekhez használható. A WordPress.com-os webhelyekre nem lehet egyedi bővítményt telepíteni, így azokat nem lehet kezelni.
- A kezelhető webhelyek száma nem korlátozott. Hogy egy vezérlőpult hány webhelyet bír, az a tárhely teljesítményétől függ.

## Hogyan kommunikál a vezérlőpult a webhelyekkel?

| Elem | Részlet |
|---|---|
| Portok | 80 (HTTP) és 443 (HTTPS) |
| Kérések aláírása | Alapértelmezetten OpenSSL, kiválasztható alternatíva a PHPSecLib |
| Átvitel titkosítása | HTTPS (TLS), ha a Child-webhely címe HTTPS-sel kezdődik |
| User-Agent | `Mozilla/5.0 (compatible; MainWP/[verzió])` kezdetű, a MainWP weboldalának címét is tartalmazó azonosító |

Alapértelmezetten a MainWP nem hagy nyomot a kiszolgálón. A részletekről a [Biztonság, szinkronizálás és adatkezelés](https://hub.hellowp.io/hu/plugins/mainwp/elso-lepesek-biztonsag-szinkron/) fejezetben olvashatsz.

## Miért számít, hogy saját kiszolgálón fut?

A vezérlőpult a te WordPress-telepítéseden fut, az adatok a te adatbázisodban maradnak, és a kommunikáció közvetlenül a vezérlőpult és a Child-webhelyek kiszolgálói között zajlik.

- A szinkronizálás a Child-webhelyek adatait a vezérlőpult adatbázisába tölti.
- A frissítési parancsok a vezérlőpultról mennek a Child-webhelyekre.
- A jelentések és elemzések a vezérlőpult kiszolgálóján készülnek és tárolódnak.
- A MainWP saját kiszolgálóin semmilyen adat nem halad át.

A webhelyleltárad, az ügyféladataid, a frissítési előzményeid és a kezelési műveleteid tehát végig nálad maradnak. Te döntöd el, hol fut a vezérlőpult, ki fér hozzá, és meddig őrzöd az adatokat.

### Összehasonlítás a felhőalapú megoldásokkal

| Szempont | MainWP (saját kiszolgálón) | Felhőalapú megoldások |
|---|---|---|
| Adattárolás | A te kiszolgálód, a te adatbázisod | A szolgáltató infrastruktúrája |
| Adathozzáférés | Csak te és a csapatod | A szolgáltatónak is van hozzáférése |
| Megfelelőség | Te határozod meg, hol tárolódnak az adatok | A szolgáltató telephelyétől függ |
| MainWP-kapcsolat nélküli működés | Működik anélkül, hogy a MainWP felé internetkapcsolat kellene | Folyamatos kapcsolat kell |
| Kód láthatósága | Teljesen nyílt forráskódú | Általában zárt |
| Testreszabás | Bármi módosítható | A szolgáltató lehetőségeire korlátozódik |

## Nyílt forráskód

A MainWP GPLv3 licenc alatt jelenik meg, a teljes forráskód elérhető a GitHubon. Telepítés előtt átnézheted a kódot, ellenőrizheted, hogy a biztonsági megoldások megfelelnek a leírásnak, követheted a változásokat a commitelőzményekben, módosított változatot készíthetsz, és a fejlesztéseket visszaküldheted a közösségnek.

A kód átvizsgálásához:

1. Nyisd meg a MainWP GitHub-szervezetét.
2. Tallózd vagy klónozd a vezérlőpult vagy a MainWP Child tárolóját.
3. Érdemes ezeket a részeket megnézni: a `/class/` mappa a fő működést, az `/includes/` mappa az API-t és az adatbázis-műveleteket tartalmazza. A kapcsolat titkosítása OpenSSL-t használ.

Biztonsági kutatók és fejlesztők rendszeresen átvizsgálják a kódot, és a felelős bejelentést szívesen fogadják.
