A miserend.hu weboldal teljes forráskódja. Próbáld ki!
Csak git és Docker legyen nálad és mehet is:
git clone https://github.com/borazslo/miserend.hu/
cd miserend.hu
docker-compose -f docker/compose.yml -f docker/compose.test.yml upMáris elérhető a http://localhost:8000 címen a miserend alkalmazás. Az admin felhasználóval be is lehet lépni az alapérelmezett jelszóval: miserend.
Kapcsolódj be a fejlesztésbe! Ehhez szükséged lesz egy fejlesztői környezetre amit ripsz-ropsz felállíthatsz.
- git mindenképp legyen nálad, vannak akik Github Desktopot is használnak mellé.
- Docker vagy Podman is nélkülözhetetlen.
- nodejs/npm és python a naptár rész fejlesztéséhez kell
- MySQL vagy MariaDB kliens ajánlott az az adatbázisban turkáláshoz.
Elsősorban linux alapú fejlesztésre van minden optimalizálva, de nem lehetetlen windows és osx használata sem. Erről a végén írunk még.
git clone https://github.com/borazslo/miserend.hu/
npm --prefix miserend.hu/webapp ci
docker pull ghcr.io/borazslo/miserend.hu:{{ version }}
docker tag ghcr.io/borazslo/miserend.hu:{{ version }} localhost/miserend.hu:latest
docker-compose -f docker/compose.yml -f docker/compose.dev.yml upAhol a {{ version }} helyére (kapcsoszárojeleket is elhagyva), azt a verziót konténer image verziót kell beírni, amelyikkel dolgozni szeretnél.
git clone https://github.com/borazslo/miserend.hu/
cd miserend.hu/webapp
npm ci
Természetesen magunk is felépíthetjük a helyi "miserend" docker conatinert, de sokkal gyorsabb és stabilabb, ha egy már kiadott release-t töltünk le és használunk.
A github oldalunkon található tag-elt release-k közül válogathatunk.
Például:
docker pull ghcr.io/borazslo/miserend.hu:v2026.2.23
A developer környezet a localhost/miserend.hu:latest image-t keresi, így az előbb letöltött változatnak adjunk egy megfelelő aliast.
Előbbi példát folytatva:
docker tag ghcr.io/borazslo/miserend.hu:v2026.2.23 localhost/miserend.hu:latest
A docker compose valamennyi konténert szépen felépíti, bekonfigurálja, feltölti adatokkal, és elindítja:
docker-compose -f docker/compose.yml -f docker/compose.dev.yml up
Máris elérhető a http://localhost:8000 címen a miserend alkalmazás. Az admin felhasználóval be is lehet lépni az alapérelmezett jelszóval: miserend.
Az alkalmazás öt komponensből áll.
Az adatbázis egyszerű MySQL / MariaDB. Megőrzi az adatokat újraindítás esetén is.
Az adatbázis konténer első futtatáskor a docker/mysql/initdb.d könyvtár alapján inicializálja az adatbázist. Valamint a data alkönytár alapján fel is töltjük minta adatokkal az adatbázist.
Ha az adatbázis sémán változtatsz, ebbe a könyvtárba vezesd be a módosításokat! Ha pedig pár committal korábban változtattak az adatbázison, akkor szükséget lehet az adatbázis újrainicializálására amire legjobb megoldás a conatiner törlése, majd -- és ez fontos -- a hozzá tartozó volume törlése is. Így már újraindításnál szépen újra épül az adatbázis, bár minden korábbi saját adatbázis adatot elveszik.
Ha grafikus adatbázis elérésre lenne szükség, az adminer ajánlott, egyszerűen /webapp valamelyik könyvtárába kell tenni és már megy is. Természetesen ezt a fájl nem kell a git tárolóba elmenteni.
Az alkalmazás keresőmotorját az Elasticsearch adja. A fent leírt standard konténer alapú telepítés során szépen elindul ez is. Sőt az elasticache-init konténer gondoskodik az inicializálásról. Azaz egy jó nagy fájlt lehúzva feltölti rögtön adatokkal is.
A templom kereső frissítéséhez az Externalapi\ElasticsearchApi::updateChurches() függvényt, a szentmisék keresésének frissítéséhez az Externalapi\ElasticsearchApi::updateMasses() függvényt kell futtatni. Legkönnyebb a /index.php?q=cron&cron_id=38 és /index.php?q=cron&cron_id=39 cron oldalak betöltése révén.
Vigyázat! Az 5000 misézőhelyhez évente több mint 500 ezer (!) konkrét liturgikus esemény tartozik, így az updateMass() eltarthat fél óráig is!
Elasticsearch web interfész fejlesztéshez, teszteléshez.
Beizzítása kis varázslást igényelhet.
Fejlesztői környezetben indul egy Mailcatcher is, ami a levelezés szimulálásában és tesztelésében segít. A mailcatcher működése esetén bármit csinálhatunk a honlapon, a keletkező emaileket sosem küldi el, hanem a mailcatcher kapja el. Így nem kell ideiglenes smtp beállításokkal nyüglődni.
Alapértelmezetten a http://localhost:11080/ oldalon lehet nyomon követni a kiküldött emaileket.
A webalkalmazás fő komponense a miserend konténerben indul. A repó webapp könyvtárát a dev composer rá-mappeli a konténerre. Így ha bármit változtatsz, rögtön tesztelhető is.
A PHP függőségeket composer segítségével lehet telepíteni, a JavaScript/CSS függőségeket pedig nodejs/npm-el.
Ha új PHP van NodeJS függőséget építesz be, akkor a dev composer fájlból a két volume-ot ki kell venni és a függőségeket helyben telepíteni.
A http://localhost:8000 címen érhető el. Az admin / miserend az első felhasználó neve / jelszava.
A naptárnézet és naptár szerkesztő felület egy különállóm Angular alap projekt, mely a miserend konténerban van szintén.
A calendar könyvtárban található Angular alkalmazás forrása.
- Első alkalommal le kell generálni az időszakokat:
- Admin joggal, az
/periodyeareditorfelületen - A minta adatok idővel elévülhetnek, fontos az aktualizálásuk!
Amennyiben a naptár alkalmazáson dolgozunk, az npm build után a docker/miserend/calendar_deploy.py szkript futtatásával lehet az alkalmazásba integrálni.
A /calendar könyvtárban az alábbi parancsokat futtassuk:
Ha még nem volt, akkor:
npm installng build --configuration=localProd
python ../docker/miserend/calendar_deploy.py
npm run start:integrated- Ezzel egyrészt elérjük, hogy fejlesztői legyen a naptár
- Másrészt elérjük, hogy ha valamit módosítunk, az szinte egyből érvényre jusson
- Ilyenkor egy python script a
/calendarmappában buildeli az Angularos projektet, majd a megfelelő helyre átmásolja a legenerált fájlokat
Egyes beállításokat, pl. portokat, az .env.example fájl tartalmának átmásolásával az .env fájlban lehet módosítani.
- Ha a
docker uphibát generál, mondván hogy egy port már foglalt, akkor ez lehet a megoldás. Egyébként opcionális. MISEREND_WEBAPP_ENVIRONMENT=development|staging|production
Az alkamazásból helyben is lehet container image-t készíteni, ehhez a következő parancsot kell lefuttatni:
docker build -t miserend:latest -f docker/miserend/DockerfileHa ki szeretnéd próbálni, hogyan működne a valóságban, akkor a dev composer fájlban írd ät a miserend service image attribútumát localhost/miserend:latest-re.
Ha dump-ot szeretnénk készíteni az adatbázisról fejlesztési célra, a kényes adatok eltávolításáról gondoskodni kell, erre a docker/mysql/dump.sh szkript szolgál. A fájl elején lévő változóktat környezeti változóként lehet felülbírálni.
Lehetséges Windows Subsystem for Linux nélkül is felépíteni egy miserend fejlesztői környezetet, de mivel az alkalmazás komponensei alapvetően natív linuxos eszközök, a windowsos futtatás mindig extra odafigyelést igényel.
Mindenesetre, a szükséges eszközök winget-tel is telepíthetőek.
winget install --id=Git.Git -e
winget install --id=Python.Python.3.14 -e
winget install --id=Docker.DockerCLI -e
winget install --id=Docker.DockerCompose -e
winget install --id=OpenJS.NodeJS.LTS -e
De szinte biztos, hogy a végén valami extra masszírozás kell.
docker exec -it [mysql|mailcatcher|miserend] bashdocker exec miserend composer install|require|updatemaster➜ staging környezet (staging.miserend.hu)production➜ éles honlap
Fejlesztés végén azonban egy megfelelő környezetbe való build kell, például:
ng build --configuration=production
python ../docker/miserend/calendar_deploy.py