<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://admin.wiki.kzoli.hu/index.php?action=history&amp;feed=atom&amp;title=A_docker-skeleton_le%C3%ADr%C3%A1sa</id>
	<title>A docker-skeleton leírása - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://admin.wiki.kzoli.hu/index.php?action=history&amp;feed=atom&amp;title=A_docker-skeleton_le%C3%ADr%C3%A1sa"/>
	<link rel="alternate" type="text/html" href="https://admin.wiki.kzoli.hu/index.php?title=A_docker-skeleton_le%C3%ADr%C3%A1sa&amp;action=history"/>
	<updated>2026-05-24T23:20:07Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://admin.wiki.kzoli.hu/index.php?title=A_docker-skeleton_le%C3%ADr%C3%A1sa&amp;diff=985&amp;oldid=prev</id>
		<title>KZoli: Új oldal, tartalma: „A [https://gitea.marcusconsulting.hu/marcusconsulting/docker-skeleton/ docker-skeleton] egy shell script framework, amely Docker konténerekből összeállított (komponált) webszolgáltatások menedzselésére szolgál standalone (nem orkesztrált) Ubuntu Linux Docker host környezetben. Ilyen környezet kialakítását az Ubuntu szerver alaptelepítése, annak Ubuntu szerver általános biztonsági beállításai…”</title>
		<link rel="alternate" type="text/html" href="https://admin.wiki.kzoli.hu/index.php?title=A_docker-skeleton_le%C3%ADr%C3%A1sa&amp;diff=985&amp;oldid=prev"/>
		<updated>2026-02-04T14:19:01Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „A [https://gitea.marcusconsulting.hu/marcusconsulting/docker-skeleton/ docker-skeleton] egy shell script framework, amely Docker konténerekből összeállított (komponált) webszolgáltatások menedzselésére szolgál standalone (nem orkesztrált) Ubuntu Linux Docker host környezetben. Ilyen környezet kialakítását az Ubuntu szerver &lt;a href=&quot;/index.php/Ubuntu_szerver_alaptelep%C3%ADt%C3%A9s_(24.04_LTS)&quot; title=&quot;Ubuntu szerver alaptelepítés (24.04 LTS)&quot;&gt;alaptelepítése&lt;/a&gt;, annak Ubuntu szerver általános biztonsági beállításai…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;A [https://gitea.marcusconsulting.hu/marcusconsulting/docker-skeleton/ docker-skeleton] egy shell script framework, amely Docker konténerekből összeállított (komponált) webszolgáltatások menedzselésére szolgál standalone (nem orkesztrált) Ubuntu Linux Docker host környezetben. Ilyen környezet kialakítását az Ubuntu szerver [[Ubuntu szerver alaptelepítés (24.04 LTS)|alaptelepítése]], annak [[Ubuntu szerver általános biztonsági beállításai (24.04 LTS)|általános biztonsági beállításai]] és a [[Docker host telepítése (24.04 LTS)|Docker host telepítése]] wikilapok ismertetik. A framework működése ebben a környezetben részletesen tesztelt, de egyéb, hasonló környezetben is működőképes lehet.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Work in progress&amp;#039;&amp;#039;&amp;#039; - még ne vedd komolyan!&lt;br /&gt;
&lt;br /&gt;
==Áttekintés==&lt;br /&gt;
===Házirend===&lt;br /&gt;
A [[Docker host telepítése (24.04 LTS)|Docker host telepítése]] wikilapon részletezett elrendezés használata során az alábbi házirendet valósítjuk meg:&lt;br /&gt;
&lt;br /&gt;
* A hostgépen futó valamennyi dockerezett szolgáltatás egyetlen, nem perszonalizált, dedikált Linux felhasználó (a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;) tárterületén helyezkedik el (a &amp;#039;&amp;#039;/srv/docker/services&amp;#039;&amp;#039; könyvtár alatt). Ezen belül az egyes szolgáltatások elkülönített könyvtárakba kerülnek. Arra törekszünk, hogy a szolgáltatáshoz tartozó minden specifikus állomány a szolgáltatás alapkönyvtárán belül kapjon helyet, így a szolgáltatás ezen könyvtár lemásolásával klónozható, költöztethető, illetve menthető legyen.&lt;br /&gt;
* Minden szolgáltatás különálló Docker kompozícióban fut (akkor is, ha azt csak egyetlen konténer biztosítja), és a Dockeren belül a szolgáltatás számára dedikált networkre csatlakozik. Ezek a networkök közvetlenül nem átjárhatóak (azaz az egyes szolgáltatások egymásra nem látnak rá).&lt;br /&gt;
* A szolgáltatások publikus portjait a TCP/8201-től kezdve egyesével emelkedő számsorrendben osztjuk ki. Ezek a portok a hostgépen kívülről közvetlenül nem, csak SSH tunnelen vagy reverse proxyn keresztül érhetőek el. A dockerezett webszolgáltatások számára a reverse proxyt a hostgépen futó webszerver biztosítja.&lt;br /&gt;
* A dockerezett szolgáltatások konténereinek naplóit (a &amp;#039;&amp;#039;docker log&amp;#039;&amp;#039; kimeneteket), valamint a dockerezett webszolgáltatások webnaplóit perzisztensen megőrizzük és rotáljuk.&lt;br /&gt;
* A dockerezett szolgáltatásokról automatikus napi mentés készül, amelynek tartalma a szolgáltatás receptjében van meghatározva. A recept definiálásánál törekszünk arra, hogy a mentésből a szolgáltatás (szükség esetén annak újratelepítése után) teljesen visszaállítható legyen. Ez a mentés a naplókat általában nem tartalmazza.&lt;br /&gt;
* A dockerezett szolgáltatásokat adminisztráló &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználó közvetlenül nem &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039;-képes, de a &amp;#039;&amp;#039;docker&amp;#039;&amp;#039; Linux csoport tagjaként jogosult a &amp;#039;&amp;#039;docker&amp;#039;&amp;#039; és &amp;#039;&amp;#039;docker-compose&amp;#039;&amp;#039; parancsok teljes körű használatára. &amp;lt;br/&amp;gt;A &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználót megbízhatónak tekintjük; tisztában vagyunk avval, hogy a fenti jogosultság birtokában a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; képes lenne a hostgépen a teljes körű &amp;#039;&amp;#039;root&amp;#039;&amp;#039; jogosultság megszerzésére is (&amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
* A &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználó jogosult shell futtatására; mindennapi tevékenysége során parancssori műveleteket használ. Bejelentkezése PPK authentikációval, (a &amp;#039;&amp;#039;/srv/docker/.ssh/authorized_keys&amp;#039;&amp;#039; publikus kulcsai közé felvett egyéni magánkulccsal) történik.&lt;br /&gt;
* A &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználó jogosult a hostgépen futó reverse proxy webszerver konfigurációjának teszteltetésére és annak újraolvastatására.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
===Könyvtárszerkezet===&lt;br /&gt;
A [[Docker host telepítése (24.04 LTS)|Docker host telepítése]] wikilapon részletezett Docker host telepítés esetén a framework az alábbi könyvtárszerkezetben működik:&lt;br /&gt;
  /srv                 a dockeradmin Linux felhasználó HOME könyvtára&lt;br /&gt;
    /bin               a frameworkhöz tartozó binárisok könyvtára&lt;br /&gt;
    /services          a dockerezett szolgáltatások alapkönyvtára&lt;br /&gt;
    /tmp               tetszőlegesen felhasználható ideiglenes könyvtár&lt;br /&gt;
      .nginx           a dockerezett webszolgáltatások nginx konfigurációira mutató symlinkek könyvtára&lt;br /&gt;
      first_service    az első dockerezett szolgáltatás alapkönyvtára&lt;br /&gt;
      second_service   a második dockerezett szolgáltatás alapkönyvtára&lt;br /&gt;
      ...&lt;br /&gt;
A fenti könyvtárszerkezetet a framework telepítése (a konkrét webszolgáltatások könyvtárainak kivételével) kialakítja és megfelelően fel is tölti. Telepítés után a könyvtárszerkezet a &amp;#039;&amp;#039;dockeradmin:dockeradmin&amp;#039;&amp;#039; Linux felhasználó tulajdonában van, a könyvtárakra vonatkozón 2771, a fájlokra vonatkozóan 660 (scripteknél 770) jogosultságokkal. &lt;br /&gt;
&lt;br /&gt;
Az egyes szolgáltatások könyvtárszerkezete minden szolgáltatás esetében lényegében azonos:&lt;br /&gt;
&lt;br /&gt;
  service_base         a szolgáltatás alapkönyvtára&lt;br /&gt;
    .recipes           előre definiált szolgáltatás-receptek állományai&lt;br /&gt;
    .templates         a szolgáltatás testre szabásánál használt sablonok&lt;br /&gt;
    .utils             a docker-skeletonhoz kapcsolódó külső szolgáltatások&lt;br /&gt;
    configs            konfigurációs állományok (pl. nginx.conf)&lt;br /&gt;
      acme             az automatikus SSL tanúsítvány frissítés állományai&lt;br /&gt;
      certs            nem automatikusan frissített SSL tanúsítványok&lt;br /&gt;
    docker             helyben buildelendő szolgáltatás esetén annak állományai &lt;br /&gt;
    logs               a Dockertől származó naplók&lt;br /&gt;
      web              a webszervertől származó naplók&lt;br /&gt;
    storage            a szolgáltatáshoz kapcsolódó tárhely&lt;br /&gt;
      backup           az automatikus mentések tárhelye&lt;br /&gt;
        dumps          az adatbázis-mentések könyvtára&lt;br /&gt;
        export         opcionálisan publikált automatikus mentések könyvtára&lt;br /&gt;
        tarballs       a konfiguráció- és egyéb tárterület mentések könyvtára&lt;br /&gt;
      volumes          a perzisztens Docker kötetek könyvtára&lt;br /&gt;
    tools              a framework szolgáltatás-szintű futtatható állományai&lt;br /&gt;
      backup.d         az automatikus mentéskor futtatandó scriptek&lt;br /&gt;
      build.d          az esetleges buildeléskor futtatandó scriptek&lt;br /&gt;
      shutdown.d       a szolgáltatás leállításakor futtatandó scriptek&lt;br /&gt;
      startup.d        a szolgáltatás indításakor futtatandó scriptek&lt;br /&gt;
A fenti könyvtárszerkezetet a szolgáltatás telepítésekor a &amp;#039;&amp;#039;docker-skeleton&amp;#039;&amp;#039; kiadás általános tartalmának és a konkrét szolgáltatás receptjének összefűzésével alakítjuk ki. &lt;br /&gt;
&lt;br /&gt;
A szolgáltatások könyvtárszerkezete alapértelmezésben a &amp;#039;&amp;#039;dockeradmin:dockeradmin&amp;#039;&amp;#039; Linux felhasználó tulajdonában marad, a könyvtárakra vonatkozón 2771, a fájlokra vonatkozóan 660 (scripteknél 770) jogosultságokkal. A &amp;#039;&amp;#039;storage/volumes&amp;#039;&amp;#039; könyvtárban esetlegesen (a használt receptben meghatározott) ettől eltérő tulajdonosra és jogosultságokra lehet szükség (ennek beállításához a szolgáltatás telepítésénél &amp;#039;&amp;#039;root&amp;#039;&amp;#039; jogosultság kellhet). A könnyebb adminisztrálhatóság érdekében törekedjünk arra, hogy ilyen esetben is a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználónak legyen (pl. ACL-lel biztosított) olvasási- és írásjoga a szolgáltatás teljes tárterületére.&lt;br /&gt;
&lt;br /&gt;
===Webszolgáltatás===&lt;br /&gt;
A dockerezett webalkalmazások számára a hostgépen telepített natív webszerver (jelenleg Apache vagy nginx) biztosít SSL végződtetést (tanúsítványkezelést) és http(s) =&amp;gt; http reverse proxy szolgáltatást. A dockerezett alkalmazás saját szolgáltató portját (esetleg portjait) a hostgépen a &amp;#039;&amp;#039;localhost:[8201-]&amp;#039;&amp;#039; tartományban exportálhatja, itt kapja a számára releváns lekéréseket a reverse proxy webszervertől. A fenti elrendezésben a webszolgáltatás akkor is válaszképes, ha az upstream dockerezett webalkalmazás éppen nem fut - ez esetben a webszerver a publikus lekérésre customizált hibaüzenettel válaszol.&lt;br /&gt;
&lt;br /&gt;
A &amp;#039;&amp;#039;docker-skeleton&amp;#039;&amp;#039; frameworkben egy-egy komponált szolgáltatás minden webes alkatrésze - konfigurációja, SSL tanúsítványa, tárterülete, naplóállományai - a szolgáltatás alapkönyvtára alatt helyezkedik el, az alábbiak szerint:&lt;br /&gt;
&lt;br /&gt;
 service_base         a szolgáltatás alapkönyvtára&lt;br /&gt;
   configs            konfigurációs állományok&lt;br /&gt;
     acme             az automatikus SSL tanúsítvány frissítés állományai&lt;br /&gt;
     certs            nem automatikusan frissített SSL tanúsítványok&lt;br /&gt;
     nginx.conf       virtualhost konfiguráció (nginx)&lt;br /&gt;
     apache.conf      virtualhost konfiguráció (apache)&lt;br /&gt;
   logs               naplóállományok&lt;br /&gt;
     web              a webszervertől származó naplók&lt;br /&gt;
   storage            a szolgáltatáshoz kapcsolódó tárhely&lt;br /&gt;
     volumes          a perzisztens Docker kötetek könyvtára&lt;br /&gt;
&lt;br /&gt;
Minden dockerezett webszolgáltatás a hostgépre vonatkozóan önálló virtualhost konfigurációval rendelkezik, amelyben az alanti beállítások definiálva vannak. Az alapértelmezett konfiguráció sablon alapján történő létrehozását script támogatja, ezután azonban a konfiguráció &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;-ként manuálisan tetszés szerint módosítható és a módosítás érvényesíthető (a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználó jogosult a hostgépen a webszerver beállítások újraolvastatására).&lt;br /&gt;
&lt;br /&gt;
A hostgép webszervere számára a &amp;#039;&amp;#039;~/services&amp;#039;&amp;#039; alatt lépezik egy katalógus könyvtár (&amp;#039;&amp;#039;.apache&amp;#039;&amp;#039; vagy &amp;#039;&amp;#039;.nginx&amp;#039;&amp;#039; néven) amelyben az egyes &amp;#039;&amp;#039;[service]/configs/&amp;#039;&amp;#039; alatti webszerver konfigurációkra mutató (scripttel létrehozott) symlinkek találhatóak. A reverse proxy webszerver ezt a katalógus könyvtárat include-olja, így szerez tudomást az egyes webszolgáltatások egyéni konfigurációiról.&lt;br /&gt;
&lt;br /&gt;
A webalkalmazások virtualhostjainak SSL tanúsítványait (magánkulcsaikkal együtt) a &amp;#039;&amp;#039;configs/acme&amp;#039;&amp;#039; illetve &amp;#039;&amp;#039;configs/certs&amp;#039;&amp;#039; könyvtárak tartalmazhatják. Amennyiben a virtualhost alkalmas [https://certbot.eff.org/ CertBot]-jellegű automatikus tanúsítványfenntartásra, annak egyszeri (scriptelt) igénylését követően azt a &amp;#039;&amp;#039;docker-skeleton&amp;#039;&amp;#039; automatikusan képes frissíteni, fenntartani. Ezek a tanúsítványok kerülnek a &amp;#039;&amp;#039;configs/acme&amp;#039;&amp;#039; könyvtárba. A manuálisan telepített és fenntartott tanúsítványok javasolt helye a &amp;#039;&amp;#039;config/certs&amp;#039;&amp;#039; könyvtár - az itt elhelyezett tanúsítványok érvényességét a &amp;#039;&amp;#039;docker-skeleton&amp;#039;&amp;#039; naponta ellenőrzi és lejáratuk előtt figyelmeztetést küld. Amennyiben biztonsági, vagy egyéb okból a tanúsítványokat mégsem itt (hanem pl. a szervergép &amp;#039;&amp;#039;/etc/ssl&amp;#039;&amp;#039; könyvtára alatt) szeretnénk elhelyezni, javasolt a releváns tanúsítványt a &amp;#039;&amp;#039;config/certs&amp;#039;&amp;#039;-be symlinkelni, hogy a lejárati ellenőrzés megmaradjon.&lt;br /&gt;
&lt;br /&gt;
Mind a konfigurációk, mind a tanúsítványok kezdeti beolvasását a host webszervere &amp;#039;&amp;#039;root&amp;#039;&amp;#039;-ként végzi, ezért ezen állományok a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; tulajdonában maradhatnak.&lt;br /&gt;
&lt;br /&gt;
Az egyes webszolgáltatások virtualhostjaira vonatkozó webnaplókat a reverse proxy webszerver szolgáltatás a &amp;#039;&amp;#039;logs/web&amp;#039;&amp;#039; könyvtárba írja. Ez a tárhely a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; számára is írható-olvasható, így a karbantartási feladatok el tudják végezni a naplók rotálását (alapértelmezésben naponta rotálva és tömörítve, 60 nap megőrzésével).&lt;br /&gt;
&lt;br /&gt;
===Karbantartási funkciók===&lt;br /&gt;
A &amp;#039;&amp;#039;docker-skeleton&amp;#039;&amp;#039; framework rendelkezik a teljes Docker hostra kiterjedő, illetve az egyes szolgáltatásokon külön-külön használható karbantartási funkciókkal. Ezek a funkciók alapértelmezésben automatikusak (a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; Linux felhasználó &amp;#039;&amp;#039;crontab&amp;#039;&amp;#039;-jából indítottak), de &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználóként belépve parancssorból manuálisan is elindíthatóak.&lt;br /&gt;
&lt;br /&gt;
Az automatikus karbantartási funkciókat a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; Linux felhasználó &amp;#039;&amp;#039;crontab&amp;#039;&amp;#039;-ja indítja az alábbi híváslánc szerint:&lt;br /&gt;
  crontab&lt;br /&gt;
  &lt;br /&gt;
    ~/bin/maintenance_midnight                          alapértelmezésben minden nap 00:01&lt;br /&gt;
      [service]/tools/maintenance_midnight&lt;br /&gt;
        [service]/tools/rotate-logs                       Docker- és webnaplók rotálása&lt;br /&gt;
  &lt;br /&gt;
    ~/bin/maintenance_daily                             alapértelmezésben minden nap 04:00&lt;br /&gt;
      [service]/tools/maintenance_daily&lt;br /&gt;
        [service]/tools/acme&lt;br /&gt;
          ~/bin/acme.sh [service parameters]              SSL webtanúsítvány automatikus frissítése&lt;br /&gt;
        [service]/tools/backup&lt;br /&gt;
          [service]/tools/configs_backup.sh               konfigurációs állományok tar.gz mentése&lt;br /&gt;
          [service]/tools/backup.d/*.sh                   a receptben meghatározott egyéb mentések&lt;br /&gt;
        ~/bin/rotate_folder [service parameters]          mentésállományok rotálása&lt;br /&gt;
  &lt;br /&gt;
    ~/bin/maintenance_reboot                            a szervergép (újra)indításakor&lt;br /&gt;
      [service]/tools/maintenance_reboot&lt;br /&gt;
        [service]/tools/startup.d/110-startlogs.sh        a Docker naplók elindítása&lt;br /&gt;
&lt;br /&gt;
====maintenance_midnight====&lt;br /&gt;
A teljes Docker hostra kiterjedő, alapértelmezésben 00:01-kor elindított karbantartás. Lefuttatja az egyes szolgáltatások &amp;#039;&amp;#039;tools/maintenance_midnight&amp;#039;&amp;#039; scriptjét a szolgáltatások könyvtára szerint betűrendben, egy-egy indítás között alapértelmezésben 60 másodperc türelmi idővel. A szolgáltatásonkénti azonos nevű karbantartó script a szolgáltatás &amp;#039;&amp;#039;tools/rotate_logs&amp;#039;&amp;#039; scriptjének meghívásával gondoskodik az aktív (futó) szolgáltatáshoz tartozó Docker- és webnaplók rotálásáról. Nem aktív szolgáltatás naplói nem rotálódnak.&lt;br /&gt;
&lt;br /&gt;
====maintenance_daily====&lt;br /&gt;
A teljes Docker hostra kiterjedő, alapértelmezésben 04:00-kor elindított karbantartás.&lt;br /&gt;
&lt;br /&gt;
Első lépésként összeállít, és a karbantartást futtató Linux felhasználónak elküld egy emailt (napi jelentés), amelyben többek között a hostgép tárterület-foglaltságáról és a Linux disztribúció várakozó csomagfrissítéseiről szerepel tájékoztatás. Ezt az emailt a &amp;#039;&amp;#039;~.forward&amp;#039;&amp;#039; állomány megfelelő beállításával irányíthatjuk létező email címekre. Amennyiben az email küldés az adott hostgépen nem telepített vagy nem biztosított, a &amp;#039;&amp;#039;~/bin/mail&amp;#039;&amp;#039; (fake mailer) scriptre futtatási jogot adva elkerülhető a sikertelen levélküldési kísérlet okozta hibaüzenet.&lt;br /&gt;
&lt;br /&gt;
A levélküldési kísérlet után a karbantartás lefuttatja az egyes szolgáltatások &amp;#039;&amp;#039;tools/maintenance_daily&amp;#039;&amp;#039; scriptjét a szolgáltatások könyvtára szerint betűrendben, egy-egy indítás között alapértelmezésben 120 másodperc türelmi idővel. A szolgáltatásonkénti azonos nevű karbantartó script a következő feladatokat látja el:&lt;br /&gt;
&lt;br /&gt;
* webszolgáltatás esetén az SSL tanúsítvány automatikus frissítése&lt;br /&gt;
Amennyiben a &amp;#039;&amp;#039;tools/acme&amp;#039;&amp;#039; script létezik és futtatható, azt elindítja. Ez a script a &amp;#039;&amp;#039;~/bin/acme.sh&amp;#039;&amp;#039; [https://certbot.eff.org/ Certbot] [https://github.com/acmesh-official/acme.sh variáns] hívásával ellenőrzi, és szükség esetén automatikusan frissíti a webszolgáltatáshoz tartozó, a szolgáltatás &amp;#039;&amp;#039;configs/acme&amp;#039;&amp;#039; könyvtára alatt található SSL tanúsítványát. Ha ilyen tanúsítvány nem létezik, ez a lépés nem csinál semmit.&lt;br /&gt;
&lt;br /&gt;
* a napi mentés elkészítése&lt;br /&gt;
A napi mentés elkészítése a &amp;#039;&amp;#039;tools/backup.d/*.sh&amp;#039;&amp;#039; scriptek betűrendben történő, egymás utáni lefuttatásával történik. Ebben a könyvtárban alapértelmezésben egyetlen script szerepel (&amp;#039;&amp;#039;configs_backup.sh&amp;#039;&amp;#039;), amely a &amp;#039;&amp;#039;docker-compose.yml&amp;#039;&amp;#039;, &amp;#039;&amp;#039;configs&amp;#039;&amp;#039; és &amp;#039;&amp;#039;docker&amp;#039;&amp;#039; könyvtárak tartalmát menti (az esetleges szimbolikus linkek feloldásával) a &amp;#039;&amp;#039;storage/backups/tarball&amp;#039;&amp;#039; alatt létrejövő, egyedi nevű &amp;#039;&amp;#039;.tgz&amp;#039;&amp;#039; tömörítvénybe. A használt recept általában tartalmaz további mentő scripteket (adatbázis dump, web tárterület, stb.) amelyek eredménye ugyancsak a &amp;#039;&amp;#039;storage/backups&amp;#039;&amp;#039; alatti könyvtárszerkezetbe kerül.&lt;br /&gt;
&lt;br /&gt;
* a mentésállományok rotálása&lt;br /&gt;
A mentésállományok rotálása a &amp;#039;&amp;#039;~/bin/rotate_folder&amp;#039;&amp;#039; script egyenkénti, paraméterezett hívásával valósul meg a &amp;#039;&amp;#039;storage/backups&amp;#039;&amp;#039; alatti könyvtárakra. csak azok a könyvtártartalmak rotálódnak, amely könyvtárak tartalmaznak &amp;#039;&amp;#039;.rotate_folder&amp;#039;&amp;#039; elnevezésű konfigurációs állományt. Ebben az állományban lehet meghatározni a megtartandó állományok körét. Az alapértelmezett rotálás megtartja az elmúlt 7 napban keletkezett valamennyi állományt, az előtte lévő 4 hétből heti egy-egy állományt (a legrégebbieket), illetve az előtte lévő 11 hónapból havi 1-1- állományt (ugyancsak a legrégebbieket). Ez a lépés nem fut le, ha a szolgáltatás nem fut (nem aktív).&lt;br /&gt;
&lt;br /&gt;
====maintenance_reboot====&lt;br /&gt;
A teljes Docker hostra kiterjedő, a szervergép (újra)indításakor lefutó karbantartás.&lt;br /&gt;
&lt;br /&gt;
A szervergép újraindításakor az &amp;#039;&amp;#039;always&amp;#039;&amp;#039;, illetve &amp;#039;&amp;#039;unless-stopped&amp;#039;&amp;#039; policyvel definiált konténerek automatikusan elindulnak, azonban ez az indulás nem scriptelt (nem futnak le a &amp;#039;&amp;#039;[service]/tools/startup.d/*&amp;#039;&amp;#039; scriptek), így az érintett konténerek logjai nem irányítódnak át a &amp;#039;&amp;#039;[service]/logs&amp;#039;&amp;#039; alatti fájlokba. Ennek pótlására ez a karbantartás meghívja minden szolgáltatás &amp;#039;&amp;#039;[service]/tools/startup.d/110-startlogs.sh&amp;#039;&amp;#039; scriptjét, amely ellenőrzi, hogy a szolgáltatás fut-e, és ha igen, elvégzi a logok átirányítását.&lt;br /&gt;
===Mentés és visszállítás===&lt;br /&gt;
&lt;br /&gt;
==Műveletek==&lt;br /&gt;
===Szolgáltatás telepítése recept alapján===&lt;br /&gt;
Új szolgáltatás telepítését a Docker hostra &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039; felhasználóként belépve végezzük.&lt;br /&gt;
====Fájlműveletek====&lt;br /&gt;
* [https://gitea.marcusconsulting.hu/marcusconsulting/docker-skeleton/ Töltsük le] a &amp;#039;&amp;#039;docker-skeleton&amp;#039;&amp;#039; legfrissebb változatát a &amp;#039;&amp;#039;~/tmp&amp;#039;&amp;#039; könyvtárba, és tömörítsük ki:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/tmp&lt;br /&gt;
wget https://gitea.marcusconsulting.hu/marcusconsulting/docker-skeleton/archive/master.tar.gz -O docker-skeleton-$(date &amp;#039;+%Y%m%d&amp;#039;).tar.gz&lt;br /&gt;
tar xzf docker-skeleton-$(date &amp;#039;+%Y%m%d&amp;#039;).tar.gz  # =&amp;gt; ~/tmp/docker-skeleton&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Futtassuk le a skeleton gyökerében található &amp;#039;&amp;#039;setpermissions.sh&amp;#039;&amp;#039; scriptet, amely helyreállítja a jogosultságokat, a fájlok dátum-és idő adatait, valamint törli a felesleges (&amp;#039;&amp;#039;.gitignore&amp;#039;&amp;#039;, stb.) fájlokat. Futtatás után ez a script is törölhető:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd docker-skeleton&lt;br /&gt;
/bin/bash setpermissions.sh&lt;br /&gt;
rm .metadata README.md setpermissions.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Hozzunk létre egy új szolgáltatáskönyvtárat a &amp;#039;&amp;#039;~/services&amp;#039;&amp;#039; alatt, és másoljuk a skeleton tartalmát a &amp;#039;&amp;#039;.recipes&amp;#039;&amp;#039; és &amp;#039;&amp;#039;.utils&amp;#039;&amp;#039; kivételével ebbe a könyvtárba (azért másolunk, és nem mozgatunk, hogy érvényesüljenek a &amp;#039;&amp;#039;services&amp;#039;&amp;#039;-re beállított, öröklődő ACL-ek). A könyvtár neve egyben a komponált Docker szolgáltatás neve is lesz, ezért ügyeljünk arra, hogy ne használjunk a könytárnévben ékezeteket, írásjeleket (beleértve a pontot), egzotikus karaktereket, illetve kötőjelet sem. Javasolt séma: &amp;#039;&amp;#039;alkalmazás_webhelynév&amp;#039;&amp;#039;, pl. &amp;#039;&amp;#039;wordpress_mysite&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;newservice=&amp;#039;myapp_mysite&amp;#039;&lt;br /&gt;
mkdir ~/services/$newservice&lt;br /&gt;
rsync -a --exclude=&amp;quot;.recipes&amp;quot; --exclude=&amp;quot;.utils&amp;quot; . ~/services/$newservice&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Válasszuk ki a kívánt receptet - lépjünk be a &amp;#039;&amp;#039;.recipes/[recept]&amp;#039;&amp;#039; könyvtárba, és tartalmával egészítsük ki az imént létrehozott szolgáltatás könyvtárat:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd .recipes/wordpress_mariadb  # Csak példa, a megfelelő receptet használjuk :)&lt;br /&gt;
rsync -a --exclude=&amp;quot;README.md&amp;quot; . ~/services/$newservice&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ezzel a szükséges fájlmásolásokat elvégeztük. A &amp;#039;&amp;#039;~/tmp/docker-skeleton&amp;#039;&amp;#039; könyvtárat tetszés szerint törölhetjük, vagy megtarthatjuk.&lt;br /&gt;
&lt;br /&gt;
====A reverse web proxy beállítása====&lt;br /&gt;
Amennyiben webszolgáltatást telepítünk, érdemes már most beállítanunk a rá mutató reverse web proxy szolgáltatást a host szervergépen. Ehhez szükségünk van egy (vagy több), a szervergépre mutató DNS rekordra (ennek hiányában csak &amp;#039;&amp;#039;hosts&amp;#039;&amp;#039; fájllal konfigurált klienseknek fogunk tudni szolgáltatni).&lt;br /&gt;
=====nginx beállítása=====&lt;br /&gt;
A konfiguráláshoz lépjünk be a &amp;#039;&amp;#039;~/services/[service]&amp;#039;&amp;#039; könyvtárba, és szerkesszük meg a &amp;#039;&amp;#039;tools/customize_nginx.sh&amp;#039;&amp;#039; állomány alábbi sorait:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PAR_SERVICENAME=&amp;quot;myapp_mysite&amp;quot;&lt;br /&gt;
PAR_PROXYHOST=&amp;quot;localhost&amp;quot;&lt;br /&gt;
PAR_PROXYPORT=&amp;quot;8201&amp;quot;&lt;br /&gt;
PAR_SERVERNAME=&amp;quot;mysite.example.com&amp;quot;&lt;br /&gt;
PAR_LOCATION=&lt;br /&gt;
PAR_WEBMASTER=&amp;quot;webmaster@example.com&amp;quot;  # Valid support email address&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ahol&lt;br /&gt;
* &amp;#039;&amp;#039;PAR_SERVICENAME&amp;#039;&amp;#039; kötelezően egyezzen meg a &amp;#039;&amp;#039;[service]&amp;#039;&amp;#039; könyvtár nevével;&lt;br /&gt;
* &amp;#039;&amp;#039;PAR_PROXYHOST&amp;#039;&amp;#039; maradjon &amp;#039;&amp;#039;localhost&amp;#039;&amp;#039;;&lt;br /&gt;
* &amp;#039;&amp;#039;PAR_PROXYPORT&amp;#039;&amp;#039; helyére a házirend szerint válasszuk a szervergépen a 8201-től kezdve első, még nem használt szabad portot - a dockerezett alkalmazás szolgáltató portját erre a külső portra kell exponálni;&lt;br /&gt;
* &amp;#039;&amp;#039;PAR_SERVERNAME&amp;#039;&amp;#039; az nginx virtualhost neve, egyezzen meg a webszolgáltatásra mutató (valamelyik) DNS névvel;&lt;br /&gt;
* &amp;#039;&amp;#039;PAR_LOCATION&amp;#039;&amp;#039; az webszolgáltatás URL-jének alkönyvtár része (&amp;#039;&amp;#039;context&amp;#039;&amp;#039; - pl. /nextcloud) - ha a webszolgáltatás a gyökér contextben fut, hagyjuk üresen;&lt;br /&gt;
* &amp;#039;&amp;#039;PAR_WEBMASTER&amp;#039;&amp;#039; a szerverhiba esetén megjelenő tájékoztató oldalon szereplő hibabejelentő e-mail cím.&lt;br /&gt;
Ha elkészültünk, futtassuk le a paraméterezett állományt:&lt;br /&gt;
&amp;lt;pre&amp;gt;/bin/bash customize_nginx.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
amely létre fogja hozni a &amp;#039;&amp;#039;configs/nginx.conf&amp;#039;&amp;#039; állományt, és az erre mutató &amp;#039;&amp;#039;~/services/.nginx/[service].conf&amp;#039;&amp;#039; symlinket, publikálva ezzel a létrehozott konfigurációt a hostgép reverse proxy webszervere számára. Amennyiben szükséges, a létrehozott &amp;#039;&amp;#039;configs/nginx.conf&amp;#039;&amp;#039; állományt manuálisan megszerkeszthetjük, pl. több rámutató DNS hostnév esetén azokat felvehetjük a &amp;#039;&amp;#039;server_name&amp;#039;&amp;#039; direktívába:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    ...&lt;br /&gt;
    server_name mysite.example.com&lt;br /&gt;
           myothersite.example.com;&lt;br /&gt;
    ...&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ha elkészültünk, ellenőriztessük és érvényesítsük a konfigurációt:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nginx -t                # szintaktikai ellenőrzés&lt;br /&gt;
sudo systemctl reload nginx  # módosítások érvényesítése&amp;lt;/pre&amp;gt;&lt;br /&gt;
A fenti parancsok a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;-tól nem fognak &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039; jelszót kérni.&lt;br /&gt;
&lt;br /&gt;
Ezzel a HTTP webszolgáltatást beállítottuk. Gyorstesztként a szervergépet http kapcsolaton elérni képes eszközön, böngészőprogrammal megtekintve a szolgáltatásra mutató bármelyik URL-t, a reverse proxy webszervertől a virtualhost konfigurációjában a &amp;#039;&amp;#039;@proxy_error&amp;#039;&amp;#039; location-ben definiált üzenetet fogjuk kapni:&lt;br /&gt;
&amp;lt;pre&amp;gt;Sorry something went wrong. Try again a bit later.&lt;br /&gt;
You may report this at webmaster@example.com.&amp;lt;/pre&amp;gt;&lt;br /&gt;
A lekérések a &amp;#039;&amp;#039;logs/web/access.log&amp;#039;&amp;#039; és &amp;#039;&amp;#039;log/web/error.log&amp;#039;&amp;#039; naplókban is megjelennek.&lt;br /&gt;
=====Apache beállítása=====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=====SSL tanúsítás=====&lt;br /&gt;
HTTPs webszolgáltatás esetén a szükséges tanúsítvány(ok) kezelését intézhetjük a &amp;#039;&amp;#039;docker-skeleton&amp;#039;&amp;#039; frameworkön kívül, vagy rábízhatjuk annak kezelését a frameworkre.&lt;br /&gt;
======Tanúsítás a framework közreműködése nélkül======&lt;br /&gt;
Ha a tanúsítványt a framework közreműködése nélkül szereztük meg, a PEM (Base64/ASCII) formátumú tanúsítványt és annak magánkulcsát elhelyezhetjük a szervergép &amp;#039;&amp;#039;/etc/ssl/certs&amp;#039;&amp;#039; illetve &amp;#039;&amp;#039;/etc/ssl/private&amp;#039;&amp;#039; könyvtáraiban (Debian/Ubuntu alapértelmezés, ehhez &amp;#039;&amp;#039;root&amp;#039;&amp;#039; jogosultság kell), vagy tárolhatjuk a szolgáltatás &amp;#039;&amp;#039;config/certs&amp;#039;&amp;#039; könyvtárában, pl. az alábbi (javasolt) elrendezésben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service_base                      a szolgáltatás alapkönyvtára&lt;br /&gt;
  configs                         konfigurációs állományok&lt;br /&gt;
    certs                         nem automatikusan frissített SSL tanúsítványok könyvtára&lt;br /&gt;
      mysite.example.com          a virtualhosthoz tartozó tanúsítványok könyvtára&lt;br /&gt;
        fullchain.cer             Base64/ASCII formátumú tanúsítványlánc &lt;br /&gt;
        mysite.example.com.cer    Base64/ASCII formátumú tanúsítvány&lt;br /&gt;
        mysite.example.com.key    Base64/ASCII formátumú magánkulcs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ahol a &amp;#039;&amp;#039;fullchain.cer&amp;#039;&amp;#039; állomány a tanúsítványhoz konkatenálva tartalmazza az esetleges köztes (&amp;#039;&amp;#039;intermediate&amp;#039;&amp;#039;) tanúsítványokat is.&lt;br /&gt;
&lt;br /&gt;
A fenti elrendezés használata esetén a HTTPs engedélyezéséhez és a tanúsítvány figyelembe vételéhez &amp;#039;&amp;#039;&amp;#039;nginx&amp;#039;&amp;#039;&amp;#039; használata esetén a &amp;#039;&amp;#039;configs/nginx.conf&amp;#039;&amp;#039; állományban az alábbi sorok elől távolítsuk el a kommentezést:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    ...&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    ...&lt;br /&gt;
    # For a (possibly symlinked) static certificate.&lt;br /&gt;
    ssl_certificate     /srv/docker/services/myapp_mysite/configs/certs/mysite.example.com/fullchain.cer;&lt;br /&gt;
    ssl_certificate_key /srv/docker/services/myapp_mysite/configs/certs/mysite.example.com/mysite.example.com.key;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A sablonból létrehozott konfigurációs állományban alapértelmezetten a fenti elrendezésnek megfelelő útvonalak szerepelnek, de tetszőleges egyéb útvonalakat is megadhatunk.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Apache&amp;#039;&amp;#039;&amp;#039; használata esetén &amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
======Tanúsítás a framework közreműködésével======&lt;br /&gt;
A tanúsítványok kezelését a frameworkre bízhatjuk, ha a tanúsítandó hostnév a nagyvilág felől http kapcsolaton keresztül folyamatosan elérhető, és üzleti céljainknak a [https://letsencrypt.org/ Let&amp;#039;s Encrypt], [https://zerossl.com/ ZeroSSL], stb. jellegű tanúsítvány megfelelő.&lt;br /&gt;
&lt;br /&gt;
Tanúsításhoz a szolgáltatás alapkönyvtárában állva hívjuk meg a framework &amp;#039;&amp;#039;acme&amp;#039;&amp;#039; parancsát az alábbi minta szerinti paraméterezéssel:&lt;br /&gt;
&amp;lt;pre&amp;gt;./tools/acme --issue --keylength 4096 -d mysite.example.com -d myothersite.example.com --standalone --httpport 8100 --accountemail &amp;quot;webmaster@example.com&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
ahol tetszőleges számú &amp;#039;&amp;#039;-d&amp;#039;&amp;#039; bejegyzéssel tetszőleges számú hostnevet foglaltathatunk bele ugyanabba a tanúsítványba (de * wildcardot nem használhatunk). Az &amp;#039;&amp;#039;accountemail&amp;#039;&amp;#039;-re a tanúsítványszolgáltató figyelmeztetést fog küldeni, ha a tanúsítvány automatikus meghosszabbítása valamiért sikertelen lenne, ezért ide valid email címet érdemes megadni. A paraméterek között meghatározott 8100-as TCP porti (technikai) forgalom a &amp;#039;&amp;#039;localhost&amp;#039;&amp;#039;-on belül marad, ezt a portot a külvilág felé kinyitni nem szükséges (nem szabad).&lt;br /&gt;
&lt;br /&gt;
Sikeres futtatás esetén a &amp;#039;&amp;#039;configs&amp;#039;&amp;#039; alatt létrejön az alábbi könyvtárszerkezet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service_base                      a szolgáltatás alapkönyvtára&lt;br /&gt;
  configs                         konfigurációs állományok&lt;br /&gt;
    acme                          automatikusan frissített SSL tanúsítványok könyvtára&lt;br /&gt;
      ca                          regisztrációs adatok a tanúsítványszolgáltatókhoz&lt;br /&gt;
      mysite.example.com          a virtualhosthoz tartozó tanúsítványok könyvtára&lt;br /&gt;
        ca.cer                    Base64/ASCII formátumú tanúsítvány(lánc)&lt;br /&gt;
        fullchain.cer             Base64/ASCII formátumú tanúsítványlánc &lt;br /&gt;
        mysite.example.com.cer    Base64/ASCII formátumú tanúsítvány&lt;br /&gt;
        mysite.example.com.key    Base64/ASCII formátumú magánkulcs&lt;br /&gt;
        ...                       egyéb technikai állományok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Az így létrehozott tanúsítvány lejáratának figyeléséről és annak szükség szerinti periodikus megújításáról a framework &amp;#039;&amp;#039;maintenance_daily&amp;#039;&amp;#039; karbantartási feladata gondoskodik. A tanúsítványkezeléssel kapcsolatos műveletek üzenetei a webnaplókkal azonos módon kezelt és rotált &amp;#039;&amp;#039;logs/web/acme.log&amp;#039;&amp;#039; naplóba kerülnek.&lt;br /&gt;
&lt;br /&gt;
A HTTPs engedélyezéséhez és a tanúsítvány figyelembe vételéhez &amp;#039;&amp;#039;&amp;#039;nginx&amp;#039;&amp;#039;&amp;#039; használata esetén a &amp;#039;&amp;#039;configs/nginx.conf&amp;#039;&amp;#039; állományban az alábbi sorok elől távolítsuk el a kommentezést:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    ...&lt;br /&gt;
    listen 443 ssl;&lt;br /&gt;
    ...&lt;br /&gt;
    # For an ACME-handled certificate.&lt;br /&gt;
    ssl_certificate     /srv/docker/services/myapp_mysite/configs/acme/mysite.example.com/fullchain.cer;&lt;br /&gt;
    ssl_certificate_key /srv/docker/services/myapp_mysite/configs/acme/mysite.example.com/mysite.example.com.key;&lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A sablonból létrehozott konfigurációs állományban alapértelmezetten a fenti útvonalak szerepelnek, ezeket ne változtassuk meg.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Apache&amp;#039;&amp;#039;&amp;#039; használata esetén &amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
======A HTTPs használatba vétele======&lt;br /&gt;
Ha a fentiekkel elkészültünk, ellenőriztessük és érvényesítsük a konfigurációt, &amp;#039;&amp;#039;&amp;#039;nginx&amp;#039;&amp;#039;&amp;#039; használata esetén:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nginx -t                # szintaktikai ellenőrzés&lt;br /&gt;
sudo systemctl reload nginx  # módosítások érvényesítése&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Apache&amp;#039;&amp;#039;&amp;#039; használata esetén:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apachectl -t               # szintaktikai ellenőrzés&lt;br /&gt;
sudo systemctl reload apache2   # módosítások érvényesítése&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A fenti parancsok a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;-tól nem fognak sudo jelszót kérni.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Gyorstesztként&amp;#039;&amp;#039;&amp;#039; a szervergépet https kapcsolaton elérni képes eszközön, böngészőprogrammal megtekintve a szolgáltatásra mutató bármelyik (tanúsított) URL-t, a korábban látott hibaoldalt tanúsítványhibára utaló figyelmeztetés nélkül kell megkapjuk. Sikeres teszt esetén érdemes az SSL biztonságát pl. a [https://www.ssllabs.com/ssltest/ Qualis] szolgáltatásával ellenőriztetni (A-t kell kapnunk).&lt;br /&gt;
======A HTTPs kényszerítése======&lt;br /&gt;
Amennyiben nincsen nyomós ellenérvünk, érdemes az érdemi webszolgáltatást csak https-en nyújtani (a http klienseket érdemi kiszolgálás helyett már a reverse proxy webszerverben a https URL-re átirányítani).&lt;br /&gt;
&lt;br /&gt;
Az átirányításhoz &amp;#039;&amp;#039;&amp;#039;nginx&amp;#039;&amp;#039;&amp;#039; használata esetén a &amp;#039;&amp;#039;configs/nginx.conf&amp;#039;&amp;#039; állományban távolítsuk el a kommenteket az alábbi sorok elől:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    # Forced redirect to https.&lt;br /&gt;
    if ($scheme = http) {&lt;br /&gt;
        return 301 https://$host$request_uri;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ellenőriztessük és érvényesítsük a konfigurációt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nginx -t                # szintaktikai ellenőrzés&lt;br /&gt;
sudo systemctl reload nginx  # módosítások érvényesítése&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A fenti parancsok a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;-tól nem fognak sudo jelszót kérni.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Apache&amp;#039;&amp;#039;&amp;#039; használata esetén &amp;#039;&amp;#039;&amp;#039;TODO!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ellenőriztessük és érvényesítsük a konfigurációt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apachectl -t               # szintaktikai ellenőrzés&lt;br /&gt;
sudo systemctl reload apache2   # módosítások érvényesítése&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
A fenti parancsok a &amp;#039;&amp;#039;dockeradmin&amp;#039;&amp;#039;-tól nem fognak sudo jelszót kérni.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Gyorstesztként&amp;#039;&amp;#039;&amp;#039; a szervergépet http és https kapcsolaton elérni képes eszközön, böngészőprogrammal &amp;lt;u&amp;gt;http-n&amp;lt;/u&amp;gt; elkérve a szolgáltatásra mutató bármelyik (tanúsított) URL-t, a korábban látott hibaoldalt (a háttérben lezajló böngésző redirect után) &amp;lt;u&amp;gt;https-en&amp;lt;/u&amp;gt; kell megkapjuk.&lt;br /&gt;
=====Speciális beállítások=====&lt;/div&gt;</summary>
		<author><name>KZoli</name></author>
	</entry>
</feed>