Arkádový automat Arcade-101 – modernizácia z RetroPie na Batocera 43.1

Obsah

  • Čo je Batocera Linux?
  • Čo všetko Batocera umožňuje?
  • Batocera ako multimediálne centrum
  • Minimálne hardvérové požiadavky
  • 1. Použitý hardvér
  • 1.1 Hardvérová konfigurácia
  • 1.2 Rozdelenie úložísk
  • 1.3 Arkádové ovládanie
  • 2. Inštalácia Batocera Linux 43.1
  • 2.1 Stiahnutie operačného systému
  • 2.2 Príprava microSD karty
  • 2.3 Prvé spustenie Batocery
  • 2.4 Povolenie SSH a vzdialená správa Batocery
  • 2.5 Overenie hardvéru a operačného systému
  • 2.6 Dôležité adresáre a konfiguračné súbory Batocery
  • 3. Konfigurácia GPIO joysticku a arkádových tlačidiel
  • 3.1 Identifikácia GPIO ovládača
  • 3.2 Aktivácia GPIO ovládača v Batocere
  • 3.3 Mapovanie joysticku a tlačidiel v EmulationStation
  • 3.4 Nastavenie HOTKEY a ukončovania hier
  • 4. Konfigurácia zvukovej karty WM8960 Audio HAT
  • 4.1 Kontrola dostupných zvukových zariadení
  • 4.2 Aktivácia WM8960 Audio HAT
  • 4.3 Kontrola hardvérovej konfigurácie Raspberry Pi
  • 4.4 Reštart systému a kontrola zvukovej karty
  • 4.5 Nastavenie zvukového výstupu
  • 4.6 Testovanie zvuku
  • 4.7 Riešenie problémov so zvukom
  • 4.8 Výsledok konfigurácie
  • 5. Konfigurácia externého USB SSD na ukladanie hier
  • 5.1 Identifikácia externého SSD
  • 5.2 Nastavenie automatického pripojenia SSD
  • 5.3 Kontrola dostupnosti SSD a bezpečný prenos hier
  • 6. Príprava ROM súborov a hier pre Batocera Linux 43.1
  • 6.1 Príprava pracovného prostredia na Linux Mint
  • 6.2 Príprava MS-DOS hier pre DOSBox Pure
  • 6.3 Príprava hier pre klasické herné konzoly
  • 7. Konfigurácia DOSBox Pure a individuálne mapovanie MS-DOS hier
  • 7.1 Kontrola emulačného jadra DOSBox Pure
  • 7.2 Mapovanie arkádových tlačidiel na klávesnicu v DOSBox Pure
  • 7.3 Kontrola a správa súborov .rmp v RetroArchu
  • 7.4 Praktické nastavenie ovládania hier Dyna Blaster a Heretic
  • 7.5 Výkonové obmedzenia Raspberry Pi 3 pri MS-DOS hrách
  • 7.6 Zhrnutie konfigurácie DOSBox Pure a odporúčania

Čo je Batocera Linux?

Batocera Linux je bezplatná open-source linuxová distribúcia určená predovšetkým na emuláciu klasických herných konzol, arkádových automatov a starších počítačov.

Jej hlavnou výhodou je, že obsahuje pripravené prostredie na spúšťanie retro hier bez potreby inštalácie a konfigurácie každého emulátora samostatne.

O prehľadné používateľské rozhranie sa stará EmulationStation, prostredníctvom ktorého môžeme organizovať hernú knižnicu, vyberať jednotlivé herné platformy, nastavovať ovládače a spúšťať hry.

Batocera podporuje viacero hardvérových platforiem vrátane počítačov s architektúrou x86-64 a vybraných jednodoskových počítačov, medzi ktoré patrí aj Raspberry Pi.

Čo všetko Batocera umožňuje?

Medzi hlavné možnosti patria:

  • Emulácia retro hier – podpora klasických konzol, arkádových automatov a starších počítačov vrátane MS-DOS hier.
  • Správa hernej knižnice – prehľadné rozdelenie hier podľa jednotlivých systémov, obrázky, popisy a obľúbené tituly.
  • Podpora herných ovládačov – používanie joystickov, USB a Bluetooth gamepadov či vybraných GPIO ovládačov.
  • Sieťová správa – prenos hier a správa konfigurácií prostredníctvom lokálnej siete.
  • Multimediálne centrum Kodi – možnosť prehrávania videí, hudby a ďalšieho multimediálneho obsahu.

Batocera ako multimediálne centrum

Batocera nemusí slúžiť výhradne na hranie hier. Súčasťou podporovaných systémových obrazov je aj multimediálne centrum Kodi.

Kodi umožňuje prehrávať filmy, seriály, hudbu a ďalší multimediálny obsah uložený na lokálnych diskoch alebo dostupný prostredníctvom sieťového úložiska NAS.

Vďaka tomu môže jedno zariadenie slúžiť ako retro herná konzola aj ako jednoduché multimediálne centrum.

Kodi možno podľa dostupnej konfigurácie aktivovať v nastaveniach systému:

MAIN MENU → SYSTEM SETTINGS → KODI SETTINGS

Treba však počítať s tým, že dostupnosť Kodi a výkon prehrávania závisia od konkrétnej hardvérovej platformy, systémového obrazu a použitého formátu videa.

V mojom prípade je prioritou predovšetkým emulácia retro hier. Kodi predstavuje ďalšiu zaujímavú možnosť využitia Batocery, ktorú môžem otestovať aj na Raspberry Pi 3.

Minimálne hardvérové požiadavky

Batocera nemá jediné univerzálne minimálne hardvérové požiadavky. Závisia od zvolenej hardvérovej platformy a od hier, ktoré chceme emulovať.

Pre inštaláciu na Raspberry Pi 3 Model B je vhodné pripraviť nasledujúce vybavenie:

KomponentPožiadavka alebo odporúčanie
Jednodoskový počítačRaspberry Pi 3 Model B alebo kompatibilný model s príslušným obrazom Batocery
Procesor a RAMHardvér Raspberry Pi 3 s procesorom ARM Cortex-A53 a 1 GB RAM
Pamäťová kartamicroSD, minimálne 16 GB, odporúčané 32 GB alebo viac
NapájanieStabilný a kvalitný napájací zdroj vhodný pre Raspberry Pi 3
Obrazový výstupKompatibilný displej pripojený k Raspberry Pi
OvládanieUSB gamepad, klávesnica alebo správne nakonfigurovaný GPIO joystick
Úložisko hiermicroSD alebo voliteľný externý USB disk či SSD
Sieťové pripojenieOdporúčané na správu systému a prenos hier

Pre samotné spustenie Batocery nie je potrebné externé SSD. V mojom projekte som ho však použil na oddelenie knižnice hier od systémovej konfigurácie.

Dôležité: Minimálne požiadavky na spustenie operačného systému nie sú totožné s požiadavkami na plynulú emuláciu všetkých herných platforiem.

Raspberry Pi 3 si poradí s množstvom klasických 8-bitových a 16-bitových hier, no pri náročnejších systémoch a niektorých MS-DOS tituloch treba počítať s výkonovými obmedzeniami.

Práve tieto obmedzenia som si overil pri testovaní hry Blood, ktorej sa venujem v ďalšej časti dokumentácie.

Viac informácií o projekte a dostupných systémových obrazoch nájdeme na oficiálnej stránke:

https://batocera.org

Arkádové automaty neodmysliteľne patria k histórii počítačových hier. Aj dnes majú svoje čaro – najmä keď si na nich môžeme zahrať klasické tituly, ktoré si pamätáme z detstva.

V roku 2021 som sa pustil do zostavenia vlastného arkádového automatu Waveshare Arcade-101-1P, ktorého základom je minipočítač Raspberry Pi 3. Pôvodne som na emuláciu retro hier využíval operačný systém RetroPie. Celý postup zostavenia som zdokumentoval v pôvodnom článku Arkádový automat Arcade-101.

Po niekoľkých rokoch som sa rozhodol automat opäť oživiť a modernizovať. Tentoraz som zvolil Batocera Linux 43.1, systém určený na emuláciu retro herných konzol a počítačov.

Cieľom modernizácie nebolo iba spustiť staré hry. Chcel som vytvoriť stabilné a pohodlne ovládateľné herné zariadenie, pri ktorom nebude potrebné používať externú klávesnicu ani myš.

Modernizácia zahŕňala konfiguráciu GPIO joysticku a arkádových tlačidiel, sprevádzkovanie zvukovej karty WM8960, pripojenie externého SSD úložiska, prípravu hier a individuálne nastavenie emulátorov.

Samostatnou výzvou bolo spúšťanie klasických MS-DOS hier prostredníctvom DOSBox Pure. Pri tituloch ako Commander Keen, Duke Nukem 2, Dyna Blaster či Heretic bolo potrebné vyriešiť mapovanie klávesnice na arkádové tlačidlá, ovládanie hier a ich bezpečné ukončovanie.

V tomto článku postupne predstavím jednotlivé kroky modernizácie vrátane použitých príkazov, konfiguračných súborov, riešených problémov a praktických skúseností z testovania.

Výsledkom má byť plnohodnotný arkádový automat, na ktorom si možno pohodlne zahrať retro klasiky priamo pomocou joysticku a farebných tlačidiel.

1. Použitý hardvér

Základom celého projektu je arkádový automat Waveshare Arcade-101-1P, ktorý som pôvodne zostavil v roku 2021. Jeho hlavnou výhodou je kompaktné vyhotovenie, klasický arkádový joystick a farebné tlačidlá pripomínajúce herné automaty z minulosti.

Srdcom zariadenia je Raspberry Pi 3 Model B, na ktorom je nainštalovaný operačný systém Batocera Linux 43.1. Napriek staršiemu hardvéru dokáže Raspberry Pi 3 bez väčších problémov emulovať množstvo klasických herných konzol a počítačov.

1.1 Hardvérová konfigurácia

KomponentPoužitý hardvér
Arkádový automatWaveshare Arcade-101-1P
Jednodoskový počítačRaspberry Pi 3 Model B
ProcesorBroadcom BCM2837, ARM Cortex-A53
Operačná pamäť1 GB RAM
DisplejLCD, rozlíšenie 1024 × 600
OvládanieGPIO arkádový joystick a farebné tlačidlá
ZvukWM8960 Audio HAT
Systémové úložiskomicroSD karta
Úložisko hierExterný USB SSD, 64 GB
Operačný systémBatocera Linux 43.1

1.2 Rozdelenie úložísk

Pri modernizácii som sa rozhodol oddeliť operačný systém od samotných hier.

MicroSD karta slúži na spúšťanie operačného systému Batocera a uchovávanie systémových konfigurácií.

Externý USB SSD je určený na ukladanie ROM súborov a hier pre jednotlivé emulátory. Je naformátovaný súborovým systémom EXT4 a pripojený do adresára /userdata/roms.

Toto riešenie umožňuje rozširovať zbierku hier bez potreby ukladať všetky dáta na microSD kartu.

1.3 Arkádové ovládanie

Arkádový automat Waveshare Arcade-101-1P je vybavený klasickým joystickom a ôsmimi farebnými tlačidlami, ktoré sú pripojené prostredníctvom GPIO rozhrania Raspberry Pi 3.

Na rozdiel od bežných USB herných ovládačov bolo potrebné zabezpečiť, aby operačný systém Batocera Linux správne rozpoznával jednotlivé GPIO vstupy a dokázal ich priradiť k funkciám herného ovládača.

Na ovládacom paneli sa nachádzajú tlačidlá označené A, B, X, Y, L1, R1, START a SELECT. Ich fyzické rozloženie je znázornené na nasledujúcom obrázku.

Pri konfigurácii som musel zohľadniť aj skutočnosť, že jednotlivé emulátory používajú odlišné ovládacie schémy. Najväčšiu pozornosť si vyžadovali klasické MS-DOS hry, pri ktorých bolo potrebné namapovať klávesy pôvodnej počítačovej klávesnice na arkádové tlačidlá.

Samostatnou úlohou bolo nastavenie kombinácie tlačidiel na bezpečné ukončovanie hier a návrat do rozhrania EmulationStation.

Podrobnému nastaveniu GPIO joysticku, testovaniu jednotlivých tlačidiel a konfigurácii ovládania sa budem venovať v kapitole 3.

2. Inštalácia Batocera Linux 43.1

Po príprave hardvéru som pristúpil k nahradeniu pôvodného systému RetroPie operačným systémom Batocera Linux 43.1.

Batocera je linuxová distribúcia zameraná na emuláciu klasických herných konzol, arkádových automatov a počítačov. Jej súčasťou je grafické rozhranie EmulationStation, ktoré umožňuje pohodlné prehliadanie, organizovanie a spúšťanie hier.

V nasledujúcich krokoch si ukážeme prípravu microSD karty, prvé spustenie systému, povolenie vzdialeného prístupu cez SSH a základnú kontrolu konfigurácie.

2.1 Stiahnutie operačného systému

Inštalačný obraz operačného systému Batocera Linux je dostupný na oficiálnej stránke:

https://batocera.org/download

Pri sťahovaní je potrebné vybrať obraz určený pre Raspberry Pi 3, pretože jednotlivé modely Raspberry Pi môžu vyžadovať odlišné systémové obrazy.

V mojom prípade používam nasledujúcu konfiguráciu:

  • Operačný systém: Batocera Linux
  • Verzia: 43.1
  • Dátum zostavenia: 30. mája 2026
  • Hardvér: Raspberry Pi 3 Model B
  • Architektúra systému: aarch64

Po stiahnutí príslušného systémového obrazu môžeme pokračovať jeho zápisom na microSD kartu.

2.2 Príprava microSD karty

Po stiahnutí obrazu operačného systému Batocera Linux je potrebné pripraviť microSD kartu, z ktorej bude Raspberry Pi 3 spúšťať operačný systém.

Na zápis systémového obrazu môžeme použiť napríklad aplikáciu Raspberry Pi Imager alebo balenaEtcher. Obidve umožňujú zapisovať obraz operačného systému na pamäťovú kartu.

V mojom prípade bol postup nasledujúci:

  1. Vložil som microSD kartu do čítačky kariet pripojenej k počítaču.
  2. Spustil som aplikáciu na zápis systémových obrazov.
  3. Vybral som stiahnutý obraz Batocera Linux určený pre Raspberry Pi 3.
  4. Ako cieľové zariadenie som zvolil microSD kartu.
  5. Spustil som zápis operačného systému.
  6. Po dokončení zápisu a overení dát som kartu bezpečne odpojil od počítača.

Upozornenie: Zápis systémového obrazu odstráni pôvodné dáta na vybranej microSD karte. Pred zápisom je preto potrebné skontrolovať správnosť cieľového zariadenia a v prípade potreby zálohovať jeho obsah.

Po úspešnom zápise je microSD karta pripravená na vloženie do Raspberry Pi 3.

Samotné hry budú neskôr uložené na externom USB SSD. MicroSD karta bude slúžiť predovšetkým na spúšťanie Batocery a uchovávanie jej systémovej konfigurácie.

2.3 Prvé spustenie Batocery

Po úspešnom zápise operačného systému som vložil pripravenú microSD kartu do Raspberry Pi 3 a zapol arkádový automat.

Pri prvom spustení Batocera inicializuje systémové prostredie a podľa potreby rozšíri dátový oddiel na dostupnú kapacitu microSD karty. Tento proces môže trvať dlhšie než bežné spustenie systému.

Po dokončení inicializácie sa zobrazí grafické používateľské rozhranie EmulationStation, ktoré slúži na správu herných systémov, prehliadanie knižnice hier a spúšťanie jednotlivých emulátorov.

V tejto fáze ešte nebolo všetko pripravené na používanie arkádového automatu. Bolo potrebné nakonfigurovať najmä GPIO joystick a tlačidlá, zvukovú kartu WM8960 a externé úložisko s hrami.

Pripojenie do lokálnej siete

Pre jednoduchšiu konfiguráciu som Raspberry Pi 3 pripojil do lokálnej siete. Sieťové pripojenie umožňuje vzdialenú administráciu prostredníctvom SSH a prenos hier z počítača s Linux Mint.

Sieťové nastavenia možno skontrolovať v grafickom rozhraní:

MAIN MENU → NETWORK SETTINGS

Po úspešnom pripojení zariadenie získa IP adresu prostredníctvom DHCP servera.

V mojom prípade Raspberry Pi počas konfigurácie používalo adresu 10.10.8.56.

Pridelenú IP adresu je vhodné poznačiť si, pretože ju budeme používať pri ďalšej konfigurácii cez SSH.

Dôležité: Pri našej inštalácii Batocera 43.1 nebolo možné okamžite nadviazať SSH spojenie. Vzdialený prístup bolo potrebné najskôr povoliť v nastaveniach systému. Tomuto postupu sa budeme venovať v nasledujúcej kapitole.

2.4 Povolenie SSH a vzdialená správa Batocery

Na ďalšiu konfiguráciu arkádového automatu som využíval vzdialený prístup prostredníctvom protokolu SSH (Secure Shell). Ten umožňuje spravovať Raspberry Pi 3 z iného počítača bez potreby pripájať externý monitor alebo klávesnicu.

V mojom prípade som na vzdialenú administráciu používal počítač s operačným systémom Linux Mint.

2.4.1 Povolenie SSH

Pri prvom pokuse o pripojenie k Batocere nebolo SSH spojenie dostupné. Pred pokračovaním bolo preto potrebné povoliť SSH službu.

Batocera umožňuje nastavenie vzdialeného prístupu prostredníctvom konfiguračného súboru:

/userdata/system/batocera.conf

Pre povolenie SSH sa používa nastavenie:

system.ssh.enabled=1

Toto nastavenie zabezpečuje povolenie SSH prístupu pri štarte systému.

SSH môže byť v niektorých inštaláciách povolené už predvolene. Vždy je preto vhodné skontrolovať jeho aktuálny stav.

2.4.2 Zistenie IP adresy zariadenia

V grafickom rozhraní Batocery otvoríme:

MAIN MENU → NETWORK SETTINGS

V sieťových nastaveniach nájdeme IP adresu, ktorú Raspberry Pi získalo prostredníctvom DHCP servera.

Počas mojej konfigurácie bola adresa zariadenia:

10.10.8.56

IP adresa sa môže po reštarte alebo opätovnom pripojení do siete zmeniť. Ak chceme používať stabilnú adresu, môžeme na DHCP serveri vytvoriť rezerváciu.

2.4.3 Pripojenie cez SSH z Linux Mint

Po povolení SSH služby v operačnom systéme Batocera Linux som pristúpil k nastaveniu vzdialeného administrátorského prístupu.

V mojom prípade bolo potrebné v grafickom rozhraní Batocery aktivovať aj bezpečnostné nastavenie, ktoré zabezpečilo vygenerovanie nového hesla používateľa root.

V hlavnom menu otvoríme:

MAIN MENU → SYSTEM SETTINGS → SECURITY

Následne aktivujeme možnosť:

ENFORCE SECURITY

Po aktivovaní tejto funkcie a reštartovaní systému Batocera vygeneruje nové, náhodné heslo administrátorského účtu.

Toto heslo môžeme zobraziť v rovnakej sekcii nastavení, v položke ROOT PASSWORD.

Dôležité: Po aktivovaní zabezpečenia už nepoužívame predvolené heslo linux, ale heslo vygenerované systémom Batocera.

Pripojenie z Linux Mint

Na počítači s operačným systémom Linux Mint otvoríme terminál a zadáme:

ssh root@10.10.8.56

V mojom prípade bola IP adresa Raspberry Pi 10.10.8.56. Pri inej inštalácii je potrebné použiť aktuálnu IP adresu zariadenia.

Pri prvom pripojení môže SSH klient požiadať o potvrdenie odtlačku verejného kľúča servera. Po overení jeho správnosti potvrdíme pripojenie zadaním yes.

Následne zadáme heslo vygenerované Batocerou, ktoré sme získali v nastaveniach zabezpečenia.

Pri zadávaní hesla sa v termináli z bezpečnostných dôvodov nezobrazujú žiadne znaky.

Po úspešnom prihlásení získame prístup k príkazovému riadku Batocery.

Funkčnosť pripojenia môžeme overiť príkazom:

uname -m

V mojom prípade systém vrátil:

aarch64

Vzdialené pripojenie ukončíme príkazom:

exit

Bezpečnostné odporúčanie: Vygenerované administrátorské heslo si bezpečne uschováme a nikdy ho nezverejňujeme v dokumentácii ani na snímkach obrazovky. SSH prístup odporúčam používať iba v dôveryhodnej lokálnej sieti.

2.4.4 Overenie konfigurácie

Po pripojení môžeme skontrolovať, či je SSH povolené aj v hlavnom konfiguračnom súbore:

grep -n '^system.ssh.enabled=' /userdata/system/batocera.conf

Očakávané nastavenie:

system.ssh.enabled=1

Ak príkaz nič nevypíše, znamená to, že uvedená položka nie je v konfiguračnom súbore výslovne zapísaná. Samotný prázdny výpis ešte neznamená, že SSH služba nefunguje.

Funkčnosť služby môžeme overiť aj príkazom:

ps | grep '[d]ropbear'

Batocera používa SSH server Dropbear, ktorý zabezpečuje vzdialené pripojenie.

2.4.5 Bezpečnostné odporúčania

Keďže SSH poskytuje administrátorský prístup s oprávneniami používateľa root, odporúča sa dodržiavať základné bezpečnostné pravidlá:

  • Zmeniť predvolené heslo správcu.
  • Povoliť SSH iba v dôveryhodnej lokálnej sieti.
  • Nevystavovať SSH port priamo do internetu.
  • V prípade potreby využívať autentifikáciu pomocou SSH kľúčov.

Po úspešnom sprevádzkovaní SSH bolo možné vykonávať všetky ďalšie konfigurácie vzdialene z Linux Mint, vrátane nastavenia GPIO joysticku, zvukovej karty WM8960 a externého SSD úložiska.

2.5 Overenie hardvéru a operačného systému

Po úspešnom pripojení cez SSH som najskôr overil základné informácie o hardvéri a operačnom systéme Batocera.

Tieto údaje sú dôležité pred ďalšou konfiguráciou, pretože umožňujú identifikovať model Raspberry Pi, architektúru systému, dostupnú operačnú pamäť a stav úložísk.

2.5.1 Identifikácia modelu Raspberry Pi

Model zariadenia zistíme príkazom:

cat /proc/device-tree/model

V mojom prípade ide o:

Raspberry Pi 3 Model B Rev 1.2

2.5.2 Overenie architektúry procesora

Architektúru bežiaceho systému overíme pomocou:

uname -m

Výstup:

aarch64

Hodnota aarch64 znamená, že operačný systém používa 64-bitovú architektúru ARM.

2.5.3 Overenie verzie Batocery

Verziu operačného systému môžeme zistiť príkazom:

cat /etc/os-release

Prípadne môžeme zobraziť identifikáciu zostavenia:

cat /etc/batocera.version

V mojom prípade používam Batocera Linux 43.1, zostavenú 30. mája 2026.

2.5.4 Kontrola operačnej pamäte

Dostupnú operačnú pamäť zobrazíme príkazom:

free -h

Raspberry Pi 3 Model B disponuje 1 GB RAM, pričom časť pamäte využíva operačný systém a grafický subsystém.

Tento údaj je dôležitý najmä pri náročnejších emulátoroch, napríklad DOSBox Pure.

2.5.5 Kontrola úložísk

Obsadenie diskov a súborových systémov zobrazíme:

df -h

Pre podrobnejší prehľad pripojených blokových zariadení môžeme použiť:

lsblk -f

V mojom zapojení používam microSD kartu pre systém Batocera a externý 64 GB USB SSD na ukladanie hier.

Správne pripojenie adresára s hrami overíme:

findmnt -T /userdata/roms

Po konfigurácii externého SSD je očakávaným výsledkom zariadenie /dev/sda1 so súborovým systémom ext4, pripojené do /userdata/roms.

Podrobnému nastaveniu externého SSD sa budem venovať v samostatnej kapitole.

2.5.6 Kontrola teploty procesora

Pri emulácii náročnejších hier je vhodné sledovať aj teplotu procesora:

vcgencmd measure_temp

Kontrolu prípadného obmedzovania výkonu procesora vykonáme príkazom:

vcgencmd get_throttled

Hodnota:

throttled=0x0

znamená, že neboli zaznamenané príznaky podpätia ani teplotného obmedzovania výkonu od posledného spustenia či resetovania príslušných príznakov.

Tieto príkazy som využil aj pri testovaní náročnejšej MS-DOS hry Blood, kde bolo potrebné rozlíšiť výkonové obmedzenia emulátora od prípadného prehrievania Raspberry Pi.

Po overení základného stavu hardvéru a systému môžeme pristúpiť ku konfigurácii arkádového joysticku, tlačidiel a ďalších hardvérových komponentov.

2.6 Dôležité adresáre a konfiguračné súbory Batocery

Pred ďalšou konfiguráciou je vhodné oboznámiť sa so základnou adresárovou štruktúrou operačného systému Batocera Linux.

Na rozdiel od bežných linuxových distribúcií je systém Batocera navrhnutý ako špecializované prostredie na emuláciu hier. Väčšina používateľských nastavení, konfiguračných súborov a hier sa nachádza v adresári /userdata.

2.6.1 Základná adresárová štruktúra

Adresár alebo súborÚčel
/userdataPoužívateľské dáta a nastavenia
/userdata/romsROM súbory a hry
/userdata/biosBIOS súbory jednotlivých emulovaných systémov
/userdata/savesUložené pozície a dáta hier
/userdata/systemPoužívateľské konfigurácie
/userdata/system/batocera.confHlavný konfiguračný súbor Batocery
/userdata/system/configs/retroarchKonfigurácia emulátora RetroArch
/userdata/system/configs/emulationstationNastavenia grafického rozhrania a ovládačov
/boot/config.txtHardvérová konfigurácia Raspberry Pi

2.6.2 Hlavný konfiguračný súbor

Jedným z najdôležitejších súborov je:

/userdata/system/batocera.conf

Obsahuje nastavenia operačného systému, emulátorov a hardvérových komponentov.

Jeho obsah môžeme zobraziť príkazom:

cat /userdata/system/batocera.conf

Pred vykonaním zmien je vhodné vytvoriť zálohu:

cp -a /userdata/system/batocera.conf /userdata/system/batocera.conf.bak

V prípade potreby tak môžeme obnoviť predchádzajúcu konfiguráciu.

2.6.3 Konfigurácia RetroArchu

Pri testovaní klasických MS-DOS hier sme využívali emulátor DOSBox Pure, ktorý je integrovaný do prostredia RetroArch.

Jeho konfiguračné súbory sa nachádzajú v adresári:

/userdata/system/configs/retroarch

Dôležité sú napríklad:

  • retroarchcustom.cfg – konfigurácia RetroArchu.
  • cores/retroarch-core-options.cfg – nastavenia jednotlivých emulačných jadier.
  • config/remaps/ – mapovania herných ovládačov.

Pri individuálnom mapovaní DOS hier bolo potrebné dávať pozor na spoločné konfiguračné profily, pretože viaceré hry používali rovnaké emulačné jadro DOSBox Pure.

2.6.4 Oddelenie systémových nastavení a hier

Pri modernizácii arkádového automatu som ponechal systémové konfigurácie na microSD karte, zatiaľ čo adresár /userdata/roms využíva externý USB SSD.

Správne pripojenie úložiska môžeme kedykoľvek overiť:

findmnt -T /userdata/roms

Toto rozdelenie je dôležité aj pri zálohovaní. Samotná záloha ROM súborov na externom SSD totiž neobsahuje všetky systémové konfigurácie uložené v /userdata/system.

Pred väčšími úpravami odporúčam zálohovať nielen hry, ale aj konfiguráciu Batocery, nastavenia ovládačov a príslušné súbory emulátorov.

Po oboznámení sa s adresárovou štruktúrou môžeme pristúpiť ku konfigurácii GPIO joysticku a arkádových tlačidiel.

3. Konfigurácia GPIO joysticku a arkádových tlačidiel

Jednou z najdôležitejších častí modernizácie arkádového automatu Waveshare Arcade-101-1P bolo sprevádzkovanie pôvodného joysticku a farebných tlačidiel v operačnom systéme Batocera Linux 43.1.

Na rozdiel od bežného USB gamepadu sú ovládacie prvky automatu pripojené prostredníctvom GPIO rozhrania Raspberry Pi 3. Systém ich preto musí sprístupniť ako vstupné zariadenie, ktoré následne dokážu využívať EmulationStation a jednotlivé emulátory.

Na tento účel som použil ovládač mk_arcade_joystick_rpi, vďaka ktorému Batocera rozpoznáva GPIO joystick a tlačidlá ako herný ovládač.

3.1 Identifikácia GPIO ovládača

Po konfigurácii GPIO vstupov bolo potrebné overiť, či operačný systém správne rozpoznáva arkádový ovládač.

Najskôr môžeme skontrolovať načítanie príslušného jadrového modulu:

lsmod | grep mk_arcade

Ak je modul načítaný, mal by sa vo výstupe objaviť mk_arcade_joystick_rpi.

Následne overíme dostupné joystickové zariadenia:

ls -lah /dev/input/js*

V mojom prípade bol arkádový joystick dostupný ako:

/dev/input/js0

Podrobnejšiu identifikáciu zariadenia získame pomocou nástroja jstest:

jstest --event /dev/input/js0

Výpis obsahoval:

Joystick (GPIO Custom Controller 1) has 2 axes (X, Y)
and 9 buttons (BtnA, BtnB, BtnX, BtnY, BtnTL, BtnTR, BtnSelect, BtnStart, BtnMode).

Z výsledku vidíme, že Batocera rozpoznala zariadenie GPIO Custom Controller 1 s dvoma osami a deviatimi logickými tlačidlami.

Pri pohybe joysticku alebo stláčaní farebných tlačidiel nástroj jstest priebežne vypisuje udalosti. Takýmto spôsobom možno zistiť, či jednotlivé ovládacie prvky správne reagujú a aké čísla vstupov im systém priraďuje.

Test ukončíme klávesovou kombináciou:

Ctrl + C

Poznámka: Označenia a čísla vstupov predstavujú logické mapovanie ovládača. Nemusia priamo zodpovedať fyzickému rozloženiu tlačidiel na arkádovom paneli. Práve preto je dôležité overiť ich pomocou jstest pred nastavovaním jednotlivých emulátorov.

3.2 Aktivácia GPIO ovládača v Batocere

Aby bolo možné používať pôvodný joystick a arkádové tlačidlá automatu Waveshare Arcade-101-1P, bolo potrebné aktivovať podporu GPIO ovládačov v operačnom systéme Batocera Linux 43.1.

Na tento účel Batocera využíva jadrový modul mk_arcade_joystick_rpi, ktorý sprístupňuje ovládacie prvky pripojené ku GPIO pinom Raspberry Pi ako herný ovládač.

Konfigurácia sa vykonáva prostredníctvom hlavného konfiguračného súboru:

/userdata/system/batocera.conf

3.2.1 Zálohovanie pôvodnej konfigurácie

Pred vykonaním akýchkoľvek zmien v konfigurácii Batocery je vhodné vytvoriť zálohu pôvodného konfiguračného súboru.

Po pripojení cez SSH zadáme:

cp -a /userdata/system/batocera.conf /userdata/system/batocera.conf.bak-gpio

Týmto príkazom vytvoríme záložnú kópiu súboru batocera.conf s názvom batocera.conf.bak-gpio.

V prípade problémov môžeme pôvodnú konfiguráciu obnoviť príkazom:

cp -a /userdata/system/batocera.conf.bak-gpio /userdata/system/batocera.conf

Upozornenie: Obnovenie zo zálohy prepíše aktuálnu konfiguráciu, preto tento príkaz použijeme iba v prípade potreby.

3.2.2 Aktivácia GPIO joysticku

Po vytvorení zálohy môžeme pristúpiť k aktivácii GPIO joysticku a arkádových tlačidiel.

Hlavný konfiguračný súbor Batocery otvoríme pomocou textového editora nano:

nano /userdata/system/batocera.conf

Do konfiguračného súboru pridáme alebo upravíme nasledujúce riadky:

controllers.gpio.enabled=1
controllers.gpio.args="map=5 gpio=16,5,27,12,6,4,22,23,24,25,26,17,-1"

Toto nastavenie sa mi osvedčilo pri konfigurácii arkádového automatu Waveshare Arcade-101-1P s Raspberry Pi 3.

Význam jednotlivých parametrov:

ParameterVýznam
controllers.gpio.enabled=1Aktivuje podporu GPIO ovládača
map=5Používa vlastné mapovanie GPIO vstupov
gpio=16,5,...Určuje GPIO piny priradené k jednotlivým vstupom ovládača
-1Označuje nevyužitú pozíciu v mapovaní

Po dokončení úprav uložíme súbor klávesovou kombináciou Ctrl + O, potvrdíme klávesom Enter a editor ukončíme pomocou Ctrl + X.

Upozornenie: Uvedené GPIO mapovanie vychádza z konkrétneho zapojenia môjho arkádového automatu. Pri inom zapojení joysticku alebo tlačidiel sa môžu používať odlišné GPIO piny. Konfiguráciu preto nemožno považovať za univerzálnu.

Zároveň je dôležité skontrolovať, či sa v súbore batocera.conf nenachádzajú duplicitné nastavenia controllers.gpio.enabled alebo controllers.gpio.args s rozdielnymi hodnotami.

3.2.3 Kontrola uloženej konfigurácie

Po úprave konfiguračného súboru je vhodné overiť, či sa nastavenia GPIO joysticku správne uložili.

Na kontrolu použijeme príkaz:

grep -n '^controllers.gpio' /userdata/system/batocera.conf

Príkaz vyhľadá všetky riadky začínajúce na controllers.gpio a zároveň zobrazí ich čísla v konfiguračnom súbore.

V mojom prípade je požadovaná konfigurácia nasledujúca:

controllers.gpio.enabled=1
controllers.gpio.args="map=5 gpio=16,5,27,12,6,4,22,23,24,25,26,17,-1"

Čísla riadkov vo výstupe príkazu grep sa môžu líšiť podľa obsahu konfiguračného súboru.

Ak sa vo výpise nachádza viacero aktívnych riadkov s rovnakým konfiguračným parametrom, je potrebné skontrolovať, či si navzájom neodporujú.

Konfiguračný súbor môžeme v prípade potreby znova otvoriť:

nano /userdata/system/batocera.conf

Dôležité: Správny zápis konfigurácie ešte neznamená, že je GPIO ovládač úspešne načítaný. Jeho skutočnú funkčnosť overíme až po reštartovaní Raspberry Pi a následnej kontrole vstupného zariadenia.

3.2.4 Reštart Raspberry Pi

Po uložení a kontrole konfigurácie GPIO joysticku je potrebné reštartovať Raspberry Pi, aby Batocera pri ďalšom štarte načítala nové nastavenia.

Reštart vykonáme cez SSH príkazom:

reboot

Po vykonaní príkazu sa SSH spojenie preruší a Raspberry Pi začne proces reštartovania.

Po opätovnom spustení systému sa z počítača s Linux Mint znova pripojíme:

ssh root@10.10.8.56

Pri prihlasovaní použijeme administrátorské heslo vygenerované systémom Batocera po aktivovaní funkcie ENFORCE SECURITY.

Poznámka: Uvedená IP adresa platila pre moje zariadenie počas konfigurácie. Ak Raspberry Pi získava adresu prostredníctvom DHCP, je vhodné pred pripojením overiť jej aktuálnu hodnotu v sieťových nastaveniach Batocery.

Po úspešnom prihlásení môžeme pristúpiť ku kontrole načítania GPIO ovládača.

3.2.5 Overenie načítania GPIO modulu

Po reštartovaní Raspberry Pi je potrebné overiť, či operačný systém Batocera Linux správne načítal GPIO ovládač a sprístupnil joystick spolu s arkádovými tlačidlami.

Kontrola jadrového modulu

Najskôr overíme načítanie modulu mk_arcade_joystick_rpi:

lsmod | grep mk_arcade

Ak je ovládač úspešne načítaný, vo výstupe sa zobrazí názov modulu mk_arcade_joystick_rpi.

Kontrola vstupného zariadenia

Následne skontrolujeme dostupné joystickové zariadenia:

ls -lah /dev/input/js*

V mojom prípade bol GPIO joystick dostupný ako:

/dev/input/js0

Identifikácia joysticku a tlačidiel

Na podrobnejšiu diagnostiku som použil nástroj jstest:

jstest --event /dev/input/js0

Batocera rozpoznala arkádový ovládač pod názvom GPIO Custom Controller 1.

Výpis zariadenia obsahoval:

Joystick (GPIO Custom Controller 1) has 2 axes (X, Y)
and 9 buttons (BtnA, BtnB, BtnX, BtnY, BtnTL, BtnTR, BtnSelect, BtnStart, BtnMode).

Z výsledku vidíme, že operačný systém rozpoznal dve osi joysticku a deväť logických tlačidiel.

Testovanie jednotlivých vstupov

Po spustení príkazu jstest môžeme postupne pohybovať joystickom do všetkých smerov a stláčať jednotlivé farebné tlačidlá.

V termináli sa zobrazujú udalosti, ktoré obsahujú typ vstupu, jeho číslo a aktuálnu hodnotu.

Pri diagnostike sa stretávame najmä s týmito typmi udalostí:

Typ udalostiVýznam
type 1Stlačenie alebo uvoľnenie tlačidla
type 2Zmena polohy osi joysticku
value 1Stlačené tlačidlo
value 0Uvoľnené tlačidlo alebo neutrálna poloha osi
value -32767 alebo 32767Krajné hodnoty osi joysticku v našom testovaní

Pri testovaní som zistil, že niektoré fyzické tlačidlá sa v systéme hlásili ako osi joysticku namiesto bežných tlačidiel.

Táto skutočnosť bola dôležitá najmä pri mapovaní funkcií START, SELECT a HOTKEY v EmulationStation a RetroArchu.

Diagnostiku ukončíme kombináciou:

Ctrl + C

Výsledok: GPIO joystick a arkádové tlačidlá boli v Batocere úspešne rozpoznané ako zariadenie GPIO Custom Controller 1, dostupné cez /dev/input/js0.

Týmto sme overili funkčnosť GPIO ovládača na úrovni operačného systému. V ďalšom kroku bude potrebné správne priradiť jednotlivým vstupom ich funkcie v grafickom rozhraní EmulationStation.

3.3 Mapovanie joysticku a tlačidiel v EmulationStation

Po úspešnej aktivácii GPIO ovládača a overení jeho funkčnosti bolo potrebné priradiť jednotlivým smerom joysticku a farebným tlačidlám správne funkcie v grafickom rozhraní EmulationStation.

Operačný systém Batocera síce rozpoznal zariadenie GPIO Custom Controller 1, ale samotné rozpoznanie ovládača ešte nezaručuje správne mapovanie jeho vstupov.

V mojom prípade bola konfigurácia špecifická tým, že niektoré fyzické tlačidlá sa hlásili ako osi joysticku namiesto klasických tlačidiel.

3.3.1 Spustenie konfigurácie ovládača

V hlavnom rozhraní Batocery otvoríme:

MAIN MENU → CONTROLLER & BLUETOOTH SETTINGS → CONTROLLER MAPPING

Následne podržíme niektoré tlačidlo na arkádovom paneli, aby systém rozpoznal ovládač, ktorý chceme nakonfigurovať.

EmulationStation nás postupne vyzve na priradenie smerov joysticku, akčných tlačidiel a ďalších funkcií.

Postupne nastavíme požadované vstupy podľa pokynov na obrazovke.

Ak náš arkádový panel nemá samostatné tlačidlo pre niektorú požadovanú funkciu, môžeme danú položku preskočiť podržaním už priradeného tlačidla.

3.3.2 Rozloženie arkádových tlačidiel

Na mojom automate sa nachádza osem farebných tlačidiel s nasledujúcimi označeniami:

OznačenieFarba
SELECTŽltá
STARTŽltá
YZelená
XČervená
L1Ružová
BŽltá
AModrá
R1Biela

Fyzické rozloženie jednotlivých tlačidiel je znázornené na obrázku v kapitole 1.3 Arkádové ovládanie.

Pri mapovaní je dôležité rozlišovať medzi označením tlačidla na ovládacom paneli a jeho skutočnou funkciou v konkrétnej hre.

Jednotlivé emulátory môžu využívať odlišné ovládacie schémy, preto správne nastavenie tlačidiel v EmulationStation ešte neznamená, že budú všetky hry fungovať bez ďalších úprav.

3.3.3 Kontrola uloženej konfigurácie

EmulationStation ukladá konfiguráciu herných ovládačov do súboru:

/userdata/system/configs/emulationstation/es_input.cfg

Po pripojení cez SSH môžeme vyhľadať konfiguráciu GPIO ovládača:

grep -n -A 18 'deviceName="GPIO Custom Controller 1"' /userdata/system/configs/emulationstation/es_input.cfg

V mojom prípade sa v konfigurácii nachádzali napríklad nasledujúce hodnoty:

<input name="select" type="button" id="2" value="1" code="307" />
<input name="start" type="axis" id="1" value="1" code="1" />
<input name="hotkey" type="button" id="2" value="1" code="307" />

Z uvedeného výpisu vidíme, že funkcia START bola priradená k osi joysticku, zatiaľ čo SELECT a HOTKEY používali rovnaký logický vstup.

To bolo dôležité pri neskoršej konfigurácii klávesových skratiek v RetroArchu.

Upozornenie: Uvedené hodnoty vychádzajú z konkrétneho GPIO zapojenia môjho automatu. Pri inom zapojení môžu byť čísla vstupov aj ich typy odlišné.

3.3.4 Overenie funkčnosti ovládania

Po dokončení mapovania som overil základné ovládanie prostredia EmulationStation.

Pomocou joysticku bolo možné prechádzať jednotlivé položky menu, zatiaľ čo akčné tlačidlá slúžili na potvrdzovanie výberu a návrat do predchádzajúcej ponuky.

Následne som otestoval aj ovládanie hier.

Pri klasických herných konzolách bolo možné využívať štandardné mapovanie ovládača. Pri niektorých MS-DOS hrách však bolo potrebné individuálne priradiť klávesy pôvodnej počítačovej klávesnice k arkádovým tlačidlám.

Samostatnou výzvou bolo aj nastavenie kombinácie HOTKEY na bezpečné ukončovanie hier bez potreby reštartovania Raspberry Pi.

Tomuto nastaveniu sa budem venovať v nasledujúcej podkapitole.

Výsledkom konfigurácie bolo funkčné ovládanie hlavného rozhrania Batocery pomocou pôvodného GPIO joysticku a farebných arkádových tlačidiel.

Na nasledujúcom obrázku je zobrazené fyzické rozloženie joysticku a tlačidiel, ktoré bolo použité pri mapovaní ovládania v Batocere.

Obrázok: Rozloženie joysticku a farebných tlačidiel arkádového automatu Waveshare Arcade-101-1P.
Takto to bude pôsobiť profesionálne a čitateľ sa v dokumentácii ľahko zorientuje.

3.4 Nastavenie HOTKEY a ukončovania hier

Po úspešnom nakonfigurovaní GPIO joysticku a arkádových tlačidiel bolo potrebné vyriešiť ešte jednu dôležitú funkciu – bezpečné ukončovanie hier a návrat do hlavného rozhrania EmulationStation.

Pri bežných herných ovládačoch sa na ukončenie emulátora často používa kombinácia tlačidiel HOTKEY + START.

V mojom prípade však bolo mapovanie neštandardné. Niektoré fyzické tlačidlá systém rozpoznával ako osi joysticku, čo komplikovalo použitie bežnej kombinácie.

Pri testovaní klasických MS-DOS hier sa preto ukázalo, že je potrebné nastaviť vlastnú kombináciu na ukončenie emulátora DOSBox Pure.

3.4.1 Kontrola nastavenia HOTKEY

Najskôr som skontroloval konfiguráciu RetroArchu, ktorá sa nachádza v súbore:

/userdata/system/configs/retroarch/retroarchcustom.cfg

Príslušné nastavenia môžeme vyhľadať pomocou príkazu:

grep -nE 'input_(enable_hotkey|exit_emulator|player1_start|player1_select)' /userdata/system/configs/retroarch/retroarchcustom.cfg

Pri testovaní sa v konfigurácii nachádzali napríklad tieto hodnoty:

input_enable_hotkey_btn = 2
input_enable_hotkey = "shift"
input_exit_emulator = "escape"
input_player1_start_axis = +1
input_player1_select_btn = 2

Z konfigurácie vyplýva, že funkcia HOTKEY bola priradená k logickému tlačidlu číslo 2, zatiaľ čo START bol rozpoznávaný ako kladná hodnota osi joysticku.

Toto neštandardné mapovanie bolo jedným z dôvodov, prečo sme pri ukončovaní hier nemohli jednoducho využiť bežnú kombináciu HOTKEY + START.

3.4.2 Zálohovanie konfigurácie

Pred úpravou hlavného konfiguračného súboru Batocery som vytvoril zálohu:

cp -a /userdata/system/batocera.conf /userdata/system/batocera.conf.bak-exit

Záloha umožňuje v prípade problémov obnoviť predchádzajúce nastavenia.

3.4.3 Nastavenie ukončovania MS-DOS hier

Hlavný konfiguračný súbor otvoríme príkazom:

nano /userdata/system/batocera.conf

Pre emuláciu MS-DOS hier cez RetroArch som použil nasledujúce nastavenie:

dos.retroarch.input_exit_emulator_btn=7

Týmto nastavením som pre MS-DOS hry určil logické tlačidlo číslo 7 ako tlačidlo pre ukončenie emulátora v kombinácii s funkciou HOTKEY.

Dôležité je, že ide o nastavenie pre MS-DOS hry spúšťané prostredníctvom RetroArchu. Nemožno automaticky predpokladať, že rovnaká konfigurácia bude platiť pre všetky ostatné emulátory.

Po vykonaní úprav súbor uložíme a ukončíme editor.

3.4.4 Overenie uloženej konfigurácie

Správnosť nastavenia skontrolujeme príkazom:

grep -n '^dos.retroarch.input_exit_emulator_btn=' /userdata/system/batocera.conf

Očakávaný výsledok:

dos.retroarch.input_exit_emulator_btn=7

Následne som spustil MS-DOS hru a otestoval ukončovanie pomocou fyzických tlačidiel na arkádovom paneli.

3.4.5 Funkčná kombinácia tlačidiel

V mojom konkrétnom zapojení sa osvedčila nasledujúca kombinácia:

Podržať pravé malé žlté tlačidlo HOTKEY a následne stlačiť zelené tlačidlo.

Postup ukončenia hry:

  1. Počas spustenej MS-DOS hry podržíme pravé malé žlté tlačidlo, ktoré používa funkciu HOTKEY.
  2. Pri jeho podržaní stlačíme zelené tlačidlo.
  3. RetroArch ukončí emulátor a systém sa vráti do rozhrania EmulationStation.

Túto kombináciu sa mi podarilo úspešne otestovať pri spúšťaní MS-DOS hier.

Výsledok: Po nastavení kombinácie HOTKEY a ukončovacieho tlačidla už nebolo potrebné pri odchode z hry reštartovať Raspberry Pi.

3.4.6 Núdzové ukončenie emulátora cez SSH

Počas testovania sa občas stalo, že emulátor nereagoval na ovládanie alebo sa nepodarilo hru štandardným spôsobom ukončiť.

V takom prípade bolo možné pripojiť sa k Batocere cez SSH a ukončiť proces RetroArchu príkazom:

pkill -TERM -x retroarch

Príkaz odošle procesu RetroArch signál na ukončenie.

Upozornenie: Ide o núdzový spôsob ukončenia emulátora. Neuložený postup v hre sa môže stratiť. Používame ho iba vtedy, keď štandardné ukončenie nefunguje.

Vďaka správnemu nastaveniu HOTKEY bolo možné používať arkádový automat podstatne pohodlnejšie, pretože spúšťanie aj ukončovanie podporovaných MS-DOS hier bolo dostupné priamo z ovládacieho panela.

4. Konfigurácia zvukovej karty WM8960 Audio HAT

Ďalšou dôležitou súčasťou modernizácie arkádového automatu Waveshare Arcade-101-1P bolo sprevádzkovanie zvukovej karty WM8960 Audio HAT, ktorá zabezpečuje prehrávanie zvuku prostredníctvom reproduktorov automatu.

Táto zvuková karta využíva rozhrania Raspberry Pi, predovšetkým I²C na riadenie zvukového kodeku a I²S na prenos digitálnych zvukových dát.

Pri prechode z RetroPie na Batocera Linux 43.1 bolo potrebné zabezpečiť správne načítanie ovládača WM8960 a nastaviť výstupné zvukové zariadenie.

Samotné rozpoznanie zvukovej karty totiž ešte neznamená, že na ňu operačný systém automaticky smeruje všetok zvuk.

4.1 Kontrola dostupných zvukových zariadení

Po pripojení do Batocery cez SSH môžeme najskôr skontrolovať, aké zvukové zariadenia systém rozpoznáva.

Použijeme príkaz:

cat /proc/asound/cards

Príkaz zobrazí zvukové karty rozpoznané systémom ALSA.

Ďalšou možnosťou je:

aplay -l

Tento príkaz zobrazí dostupné hardvérové zariadenia na prehrávanie zvuku, pokiaľ je nástroj aplay v systéme dostupný.

Pri správne načítanej zvukovej karte by sa mal vo výpise nachádzať záznam zodpovedajúci zvukovému zariadeniu WM8960.

Ak zvuková karta nie je rozpoznaná, je potrebné skontrolovať jej konfiguráciu a načítanie príslušného hardvérového ovládača.

4.2 Aktivácia WM8960 Audio HAT

Na aktiváciu podpory zvukovej karty som využil konfiguračné nástroje dostupné priamo v Batocere.

Najskôr som zadal príkaz:

batocera-settings-set system.power.switch WM8960_AUDIO_HAT

Následne som použil:

rpi_gpioswitch config WM8960_AUDIO_HAT

Hoci názov nastavenia system.power.switch môže pôsobiť nezvyčajne, Batocera používa mechanizmus rpi_gpioswitch aj na konfiguráciu niektorých prídavných modulov Raspberry Pi.

V mojom prípade tento postup umožnil aktivovať potrebnú konfiguráciu zvukovej karty WM8960.

Upozornenie: Tieto príkazy sú určené pre príslušnú konfiguráciu Raspberry Pi a Batocery. Pri inom modeli zvukového modulu nemusí byť postup rovnaký.

4.3 Kontrola hardvérovej konfigurácie Raspberry Pi

Po aktivácii zvukovej karty som skontroloval systémový konfiguračný súbor Raspberry Pi:

/boot/config.txt

Na vyhľadanie príslušných nastavení použijeme:

grep -nE 'i2c_arm|i2s|wm8960' /boot/config.txt

V mojej funkčnej konfigurácii sa nachádzali nasledujúce riadky:

dtparam=i2c_arm=on
dtparam=i2s=on
dtoverlay=wm8960-soundcard

Význam jednotlivých nastavení:

ParameterVýznam
dtparam=i2c_arm=onAktivuje I²C rozhranie používané na komunikáciu so zvukovým kodekom
dtparam=i2s=onAktivuje digitálne zvukové rozhranie I²S
dtoverlay=wm8960-soundcardAktivuje príslušné hardvérové nastavenie zvukovej karty WM8960

Tieto parametre sú dôležité na správne rozpoznanie a fungovanie zvukového modulu.

Dôležité: Ak sú už uvedené riadky v súbore prítomné a zvuková karta funguje, nie je potrebné ich pridávať opakovane ani meniť ďalšie nastavenia.

Pri ručných úpravách súboru /boot/config.txt je potrebné postupovať opatrne, pretože nesprávna konfigurácia môže ovplyvniť spustenie systému alebo fungovanie pripojeného hardvéru.

4.4 Reštart systému a kontrola zvukovej karty

Po aktivovaní konfigurácie zvukovej karty vykonáme reštart:

reboot

Po opätovnom spustení Batocery sa pripojíme cez SSH a overíme dostupné zvukové zariadenia:

cat /proc/asound/cards

Skontrolovať môžeme aj príslušné systémové správy:

dmesg | grep -iE 'wm8960|sound|audio'

Tieto príkazy pomáhajú zistiť, či systém rozpoznal zvukovú kartu a či pri načítavaní ovládača nevznikli chyby.

Ak Batocera zvukovú kartu rozpoznáva, môžeme pokračovať nastavením jej použitia na prehrávanie zvuku.

4.5 Nastavenie zvukového výstupu

Po sprevádzkovaní WM8960 sa ukázalo, že samotné načítanie zvukovej karty nestačí.

Bolo potrebné zabezpečiť, aby Batocera používala správne zvukové zariadenie namiesto iného dostupného výstupu.

Na tento účel som použil príkaz:

batocera-audio set alsa_output._sys_devices_platform_soc_soc_sound_sound_card1.stereo-fallback

Tento príkaz nastaví konkrétne výstupné zvukové zariadenie, ktoré bolo funkčné v mojej konfigurácii.

Po jeho použití sa podarilo zabezpečiť prehrávanie zvuku aj v spustených hrách.

Upozornenie: Identifikátor zvukového zariadenia nemusí byť na každej inštalácii rovnaký. Je závislý od rozpoznaného hardvéru a konfigurácie zvukového systému.

Pred použitím uvedeného príkazu na inom zariadení je vhodné zistiť dostupné výstupy:

batocera-audio list

Následne zvolíme identifikátor príslušného zvukového zariadenia.

Zvukový výstup možno nastaviť aj prostredníctvom grafického rozhrania Batocery:

MAIN MENU → SYSTEM SETTINGS → AUDIO OUTPUT

Ak je to potrebné, skontrolujeme aj dostupné možnosti v položke AUDIO PROFILE.

4.6 Testovanie zvuku

Po dokončení konfigurácie som funkčnosť zvuku overil najskôr v prostredí Batocery a následne v jednotlivých hrách.

Dôležité bolo skontrolovať:

  1. Či je zvuková karta WM8960 rozpoznaná operačným systémom.
  2. Či je ako výstupné zariadenie nastavený správny zvukový výstup.
  3. Či sa zvuk prehráva cez reproduktory arkádového automatu.
  4. Či funguje prehrávanie zvukov aj po spustení emulátorov.

Po správnom nastavení zvukového výstupu bolo možné počuť zvuky v retro hrách bez potreby používať externé reproduktory alebo iné zvukové zariadenie.

4.7 Riešenie problémov so zvukom

Ak sa po aktivovaní WM8960 zvuk neprehráva, odporúčam postupovať nasledovne.

Zvuková karta nie je rozpoznaná

Skontrolujeme hardvérovú konfiguráciu:

grep -nE 'i2c_arm|i2s|wm8960' /boot/config.txt

Následne overíme dostupné zvukové karty:

cat /proc/asound/cards

Zvuková karta je rozpoznaná, ale nepočuť zvuk

Skontrolujeme dostupné výstupy:

batocera-audio list

Následne overíme správnosť výstupného zariadenia v nastaveniach Batocery.

Zvuk funguje v menu, ale nie v hre

V takom prípade je potrebné skontrolovať nastavenia konkrétneho emulátora alebo herného jadra.

Ak je zvuk prerušovaný alebo skreslený, príčinou môže byť aj vysoké zaťaženie Raspberry Pi 3 pri emulácii náročnejších hier.

Zvuk prestal fungovať po zmene konfigurácie

Najskôr skontrolujeme, ktoré nastavenia boli upravené, a overíme, či sa nezmenil zvukový profil alebo výstupné zariadenie.

Pred ďalšími zásahmi je vhodné vytvoriť zálohu aktuálnej konfigurácie.

4.8 Výsledok konfigurácie

Po aktivovaní podpory WM8960 Audio HAT, kontrole hardvérových nastavení Raspberry Pi a správnom výbere zvukového výstupu sa podarilo zabezpečiť funkčné prehrávanie zvuku v operačnom systéme Batocera Linux 43.1.

Zvuková karta WM8960 tak zostala plnohodnotnou súčasťou modernizovaného arkádového automatu bez potreby jej výmeny.

Výsledkom bolo funkčné prehrávanie zvuku prostredníctvom pôvodného zvukového hardvéru automatu, a to aj pri spúšťaní klasických retro hier.

V ďalšej kapitole sa budem venovať pripojeniu externého USB SSD, jeho konfigurácii a využitiu na ukladanie ROM súborov a hier.

5. Konfigurácia externého USB SSD na ukladanie hier

Pri modernizácii arkádového automatu Waveshare Arcade-101-1P som sa rozhodol oddeliť operačný systém od samotnej knižnice hier.

Operačný systém Batocera Linux 43.1 a jeho používateľské konfigurácie zostali uložené na microSD karte, zatiaľ čo na ukladanie hier som použil externý 64 GB USB SSD.

Toto riešenie umožňuje jednoduchšiu správu ROM súborov bez nutnosti ukladať celú hernú knižnicu na microSD kartu.

Dôležitou požiadavkou bolo, aby externý SSD obsahoval iba hry, zatiaľ čo adresáre so systémovými nastaveniami, konfiguráciami emulátorov a ovládačov zostali na pôvodnom úložisku.

Na tento účel som využil možnosť selektívneho pripojenia úložiska, ktorú podporuje Batocera.

5.1 Identifikácia externého SSD

Po pripojení externého SSD k Raspberry Pi 3 som najskôr overil, či ho operačný systém správne rozpoznáva.

Prostredníctvom SSH som spustil:

lsblk -f

Príkaz zobrazí pripojené blokové zariadenia, ich oddiely, súborové systémy a identifikátory UUID.

V mojom prípade bol externý SSD rozpoznaný ako zariadenie:

/dev/sda1

Jeho súborový systém bol EXT4.

Podrobnejšie informácie o oddiele môžeme získať pomocou:

blkid /dev/sda1

V mojom prípade mal oddiel nasledujúci identifikátor UUID:

2cdad15a-7143-44dc-a70b-7dc85dda2e29

UUID predstavuje jedinečný identifikátor súborového systému, pomocou ktorého môžeme určiť konkrétny diskový oddiel bez toho, aby sme sa spoliehali iba na označenie /dev/sda1.

To je dôležité, pretože označenie zariadenia sa môže pri zmene pripojeného hardvéru zmeniť.

Upozornenie: Uvedené UUID patrí môjmu konkrétnemu SSD. Pri konfigurácii iného zariadenia je potrebné zistiť a použiť jeho vlastný identifikátor.

5.1.1 Kontrola kapacity SSD

Kapacitu pripojeného úložiska môžeme skontrolovať pomocou:

lsblk -o NAME,SIZE,FSTYPE,UUID,MOUNTPOINTS

Pri 64 GB SSD sa v Linuxe môže zobrazovať kapacita približne 59 GiB. Rozdiel vyplýva najmä z používania odlišných jednotiek GB a GiB.

5.1.2 Použitie súborového systému EXT4

Pre externé úložisko som zvolil súborový systém EXT4, ktorý je bežne používaný v operačných systémoch Linux.

Je vhodný na ukladanie hier a adresárovej štruktúry Batocery, pretože podporuje linuxové prístupové práva a ďalšie vlastnosti súborového systému.

V mojom prípade bol SSD pripravený so súborovým systémom EXT4 ešte pred jeho nastavením ako úložiska hier.

Dôležité: Ak je externý SSD už naformátovaný a obsahuje hry alebo iné dáta, nie je potrebné ho opätovne formátovať. Formátovanie by odstránilo jeho existujúci obsah.

Po identifikácii SSD a zistení jeho UUID môžeme pokračovať nastavením automatického pripojenia úložiska do adresára /userdata/roms.

5.2 Nastavenie automatického pripojenia SSD

Po identifikácii externého SSD a zistení jeho UUID som pristúpil k nastaveniu automatického pripojenia úložiska.

Mojím cieľom bolo, aby operačný systém Batocera Linux 43.1 používal externý SSD výhradne na ukladanie hier v adresári /userdata/roms, zatiaľ čo používateľské konfigurácie a nastavenia emulátorov zostanú na microSD karte.

Na tento účel som upravil konfiguračný súbor:

/boot/batocera-boot.conf

Batocera umožňuje prostredníctvom tohto súboru nastaviť selektívne pripojenie externých úložísk.

5.2.1 Kontrola a zálohovanie pôvodnej konfigurácie

Najskôr zobrazíme aktuálne nastavenie úložiska:

grep -nE '^sharedevice|^sharewait' /boot/batocera-boot.conf

Pred vykonaním zmien vytvoríme záložnú kópiu konfiguračného súboru.

Keďže systémový oddiel /boot je štandardne pripojený iba na čítanie, zálohu uložíme do zapisovateľného adresára /userdata/system:

cp -a /boot/batocera-boot.conf /userdata/system/batocera-boot.conf.bak-ssd

Táto záloha nám umožní obnoviť pôvodné nastavenie, ak by sa po úprave vyskytli problémy.

5.2.2 Povolenie zápisu na systémový oddiel

Pred úpravou konfiguračného súboru dočasne povolíme zápis na systémový oddiel:

mount -o remount,rw /boot

Týmto príkazom sa oddiel /boot pripojí v režime čítania aj zápisu.

Upozornenie: Ide o systémový oddiel Batocery. Pri jeho úpravách je potrebné postupovať opatrne a meniť iba nastavenia, ktorých význam poznáme.

5.2.3 Konfigurácia externého SSD

Konfiguračný súbor otvoríme pomocou textového editora nano:

nano /boot/batocera-boot.conf

V mojom prípade som použil nasledujúce nastavenie:

sharedevice=DEVICES
sharedevice_part1=ROMS@2cdad15a-7143-44dc-a70b-7dc85dda2e29

Význam jednotlivých parametrov:

ParameterVýznam
sharedevice=DEVICESAktivuje možnosť používania viacerých úložísk pre vybrané časti používateľských dát
sharedevice_part1=Definuje prvé pravidlo pripojenia úložiska
ROMS@Určuje, že externé úložisko sa použije pre adresár s hrami
2cdad15a-7143-44dc-a70b-7dc85dda2e29UUID súborového systému môjho externého SSD

Kľúčové je označenie ROMS@, ktorým Batocere určujeme, že sa externý SSD použije iba pre knižnicu hier.

Ostatné používateľské adresáre, napríklad /userdata/system a /userdata/bios, zostávajú na internom dátovom oddiele microSD karty.

Dôležité: UUID uvedené v príklade patrí môjmu konkrétnemu SSD. Pri inej inštalácii je potrebné použiť vlastné UUID zistené príkazom:

blkid

Zároveň je potrebné skontrolovať, aby konfiguračný súbor neobsahoval viacero aktívnych a vzájomne si odporujúcich nastavení sharedevice.

Po dokončení úprav uložíme súbor kombináciou Ctrl + O, potvrdíme klávesom Enter a editor ukončíme pomocou Ctrl + X.

5.2.4 Kontrola konfigurácie a obnovenie ochrany oddielu

Pred reštartovaním skontrolujeme uložené nastavenia:

grep -nE '^sharedevice' /boot/batocera-boot.conf

V mojom prípade má konfigurácia obsahovať:

sharedevice=DEVICES
sharedevice_part1=ROMS@2cdad15a-7143-44dc-a70b-7dc85dda2e29

Následne zapíšeme čakajúce zmeny na disk:

sync

Systémový oddiel opäť pripojíme iba na čítanie:

mount -o remount,ro /boot

Týmto krokom obnovíme pôvodný režim pripojenia systémového oddielu.

5.2.5 Reštart Batocery

Aby sa nové nastavenie úložiska prejavilo, reštartujeme Raspberry Pi:

reboot

Po opätovnom spustení systému sa pripojíme cez SSH a skontrolujeme, či Batocera používa externý SSD na ukladanie hier.

5.2.6 Overenie správneho pripojenia SSD

Najdôležitejším krokom je kontrola adresára /userdata/roms.

Použijeme príkaz:

findmnt -T /userdata/roms

Vo výpise skontrolujeme, či zdrojový súborový systém zodpovedá nášmu externému SSD.

Následne zobrazíme kapacitu úložiska:

df -h /userdata/roms

V mojom prípade išlo o 64 GB SSD, ktorého využiteľná kapacita sa zobrazovala približne ako 59 GiB.

Pre kontrolu UUID a súborového systému môžeme použiť aj:

lsblk -f

Pri správnej konfigurácii musí byť možné priradiť súborový systém používaný pre /userdata/roms k externému SSD.

Pozor: Samotná existencia adresára /userdata/roms ešte nedokazuje, že je SSD správne pripojený.

Ak Batocera externé úložisko nepripojí, adresár /userdata/roms môže stále existovať na internom dátovom oddiele microSD karty.

Pri kopírovaní alebo odstraňovaní veľkého množstva hier je preto dôležité najskôr overiť skutočný zdroj úložiska pomocou findmnt a df.

5.2.7 Výsledok konfigurácie

Po správnom nastavení súboru /boot/batocera-boot.conf sa podarilo oddeliť systémové konfigurácie od samotnej knižnice hier.

Výsledné rozdelenie úložísk:

ÚložiskoÚčel
microSD kartaOperačný systém Batocera Linux 43.1
microSD kartaKonfigurácie, nastavenia emulátorov a ovládačov
Externý USB SSD, 64 GBROM súbory a hry v adresári /userdata/roms

Týmto spôsobom môžem spravovať a rozširovať knižnicu hier na externom SSD bez toho, aby bolo potrebné presúvať celú používateľskú konfiguráciu Batocery.

Výsledkom bolo funkčné automatické pripojenie externého SSD pri spustení Raspberry Pi, pričom systémové nastavenia zostali na microSD karte.

5.3 Kontrola dostupnosti SSD a bezpečný prenos hier

Po nastavení automatického pripojenia externého SSD bolo potrebné overiť, či je úložisko dostupné a pripravené na kopírovanie hier.

Pri prenose ROM súborov som používal počítač s operačným systémom Linux Mint, z ktorého som sa k Raspberry Pi 3 pripájal cez SSH.

5.3.1 Kontrola pripojenia SSD

Pred kopírovaním hier najskôr overíme, či adresár /userdata/roms skutočne používa externý SSD:

findmnt -T /userdata/roms

Následne skontrolujeme jeho dostupnú kapacitu:

df -h /userdata/roms

V mojom prípade sa používal externý 64 GB SSD so súborovým systémom EXT4.

Dôležité: Ak externý SSD nie je pripojený, adresár /userdata/roms môže naďalej existovať na microSD karte.

Preto pred kopírovaním väčšieho množstva hier vždy skontrolujeme, či je pripojené správne úložisko.

5.3.2 Príprava hier na počítači s Linux Mint

Na prípravu hier som si v domovskom adresári vytvoril pracovnú štruktúru:

~/batocera-compile/
├── 01-original/
├── 02-working/
├── 03-ready/
├── 04-tested/
├── 05-favorites/
└── logs/

Jednotlivé adresáre slúžili na oddelenie pôvodných súborov, pracovných verzií, pripravených hier a výsledkov testovania.

Pre samotný prenos som používal adresár:

~/batocera-compile/03-ready/

V tomto adresári sa nachádzali hry pripravené na zaradenie do adresárovej štruktúry Batocery.

5.3.3 Prenos hier pomocou rsync

Na prenos súborov som použil nástroj rsync, ktorý umožňuje bezpečnejšie a prehľadnejšie kopírovanie väčšieho množstva dát cez SSH.

Na počítači s Linux Mint som spustil:

rsync -avh --progress --ignore-existing --omit-dir-times \
  "$HOME/batocera-compile/03-ready/" \
  root@10.10.8.56:/userdata/roms/

Význam použitých parametrov:

ParameterVýznam
-aRekurzívne kopíruje súbory a zachováva vybrané atribúty
-vZobrazuje podrobnejší priebeh
-hZobrazuje veľkosti v čitateľnej podobe
--progressZobrazuje priebeh prenosu jednotlivých súborov
--ignore-existingNeprepisuje súbory, ktoré už existujú v cieľovom umiestnení
--omit-dir-timesNepokúša sa zachovávať časy úprav adresárov

V mojom prípade sme týmto spôsobom prenášali pripravenú knižnicu približne 190 súborov s celkovou veľkosťou približne 111 MB.

Upozornenie: Parameter --ignore-existing chráni existujúce súbory pred prepísaním, ale zároveň znamená, že ich obsah sa pri prenose neaktualizuje. Príkaz neobsahuje parameter --delete, takže neodstraňuje súbory, ktoré sa už nachádzajú na SSD.

5.3.4 Kontrola prenesených hier

Po dokončení prenosu sa cez SSH pripojíme k Batocere:

ssh root@10.10.8.56

Obsah adresára s hrami zobrazíme:

ls -lah /userdata/roms

Napríklad MS-DOS hry sa nachádzajú v adresári:

ls -lah /userdata/roms/dos

Pre záverečnú kontrolu môžeme znova overiť aj pripojené úložisko:

findmnt -T /userdata/roms

Po úspešnom skopírovaní ROM súborov je potrebné v EmulationStation obnoviť zoznam hier, prípadne reštartovať grafické rozhranie, aby sa nové tituly zobrazili.

5.3.5 Výsledok

Použitím externého SSD a prenosu cez rsync sa podarilo oddeliť správu hernej knižnice od systémových súborov Batocery.

Hry môžem pripravovať na počítači s Linux Mint, otestovať ich adresárovú štruktúru a následne ich preniesť do arkádového automatu cez lokálnu sieť.

Tento postup zároveň znižuje riziko náhodného prepísania už existujúcich hier.

Pred každým väčším prenosom je však potrebné overiť, že adresár /userdata/roms skutočne smeruje na externý SSD.

6. Príprava ROM súborov a hier pre Batocera Linux 43.1

Po úspešnej konfigurácii externého SSD som pristúpil k príprave hernej knižnice pre jednotlivé emulátory.

Keďže Batocera podporuje široké spektrum klasických herných konzol a počítačov, bolo potrebné zohľadniť požiadavky jednotlivých emulačných systémov na formáty súborov a adresárovú štruktúru.

Najväčšiu pozornosť som venoval klasickým MS-DOS hrám, ktoré som sa rozhodol spúšťať prostredníctvom emulačného jadra DOSBox Pure.

Pri tituloch ako Commander Keen, Duke Nukem 2, Dyna Blaster, Heretic či Blood nestačilo iba skopírovať pôvodné herné súbory. Bolo potrebné správne pripraviť adresáre, spúšťacie skripty a následne otestovať funkčnosť hier.

6.1 Príprava pracovného prostredia na Linux Mint

Na prípravu herných súborov som využíval počítač s operačným systémom Linux Mint.

Aby som mal jednotlivé verzie súborov prehľadne oddelené, vytvoril som si pracovný adresár:

~/batocera-compile

V termináli môžeme pripraviť potrebnú adresárovú štruktúru:

mkdir -p ~/batocera-compile/{01-original,02-working,03-ready,04-tested,05-favorites,logs}

Výsledná štruktúra:

batocera-compile/
├── 01-original/
├── 02-working/
├── 03-ready/
├── 04-tested/
├── 05-favorites/
└── logs/

Význam jednotlivých adresárov:

AdresárÚčel
01-originalPôvodné herné súbory bez úprav
02-workingPracovné verzie hier
03-readyHry pripravené na prenos do Batocery
04-testedSúbory a hry určené na testovanie
05-favoritesVýber obľúbených hier
logsPomocné záznamy z prípravy a testovania

Zachovanie pôvodných súborov

Pri príprave hier som dodržiaval zásadu, že pôvodné súbory zostávajú nezmenené.

Všetky potrebné úpravy som vykonával až na pracovných kópiách v adresári 02-working.

Vďaka tomu bolo možné v prípade problémov začať prípravu hry odznova bez rizika poškodenia pôvodných dát.

Po dokončení prípravy som výsledné súbory ukladal do adresára 03-ready, ktorý slúžil ako zdroj pri prenose hier na externý SSD arkádového automatu.

Dôležité: Pri používaní ROM súborov a klasických počítačových hier je potrebné rešpektovať autorské práva a licenčné podmienky. Batocera neobsahuje komerčné hry, preto si používateľ musí zabezpečiť herné súbory z oprávnených zdrojov.

6.2 Príprava MS-DOS hier pre DOSBox Pure

Pri modernizácii arkádového automatu som sa rozhodol sprevádzkovať aj klasické MS-DOS hry, ktoré som v minulosti hrával na osobných počítačoch.

Na ich emuláciu som použil DOSBox Pure, ktorý je dostupný ako emulačné jadro v prostredí RetroArch.

DOSBox Pure umožňuje spúšťanie hier určených pre operačný systém MS-DOS a ich ovládanie prostredníctvom herného ovládača.

6.2.1 Adresár pre MS-DOS hry

V Batocere sa MS-DOS hry nachádzajú v adresári:

/userdata/roms/dos/

Jednotlivé hry som pripravil ako samostatné adresáre s príponou .pc.

V mojom prípade vznikla nasledujúca štruktúra:

/userdata/roms/dos/
├── Blood.pc/
├── CommanderKeen1.pc/
├── CommanderKeen4.pc/
├── DukeNukem2.pc/
├── DynaBlaster.pc/
├── Heretic.pc/
└── Wolfenstein3D.pc/

Prípona .pc umožňuje Batocere rozpoznávať príslušné adresáre ako samostatné MS-DOS hry.

6.2.2 Príprava herných súborov

Pôvodné herné súbory som najskôr skopíroval do pracovného adresára 02-working na počítači s Linux Mint.

Každá hra mala vlastný adresár, v ktorom sa nachádzali jej súbory potrebné na spustenie.

Následne som pre jednotlivé hry pripravil spúšťací dávkový súbor:

dosbox.bat

Jeho úlohou je spustiť príslušný program hry po načítaní adresára v DOSBox Pure.

Príklad obsahu súboru pre hru Commander Keen 1:

@echo off
KEEN1.EXE

Poznámka: Ide o ilustračný príklad. Skutočný názov spustiteľného súboru je potrebné prispôsobiť konkrétnej verzii hry.

6.2.3 Kontrola spúšťacieho súboru

Po prenesení hier do Batocery môžeme skontrolovať obsah vybraného adresára:

ls -lah /userdata/roms/dos/CommanderKeen1.pc/

Následne zobrazíme obsah spúšťacieho súboru:

cat /userdata/roms/dos/CommanderKeen1.pc/dosbox.bat

Týmto spôsobom môžeme overiť, aký program sa má po spustení DOSBox Pure vykonať.

Pri inom titule môže byť potrebné pred spustením hry nastaviť pracovný adresár alebo vykonať ďalšie príkazy.

6.2.4 Overenie dostupných hier

Zoznam pripravených MS-DOS hier zobrazíme príkazom:

ls -lah /userdata/roms/dos/

V mojom prípade som pripravil sedem titulov:

HraVýsledok prvotného testovania
Commander Keen 1Funkčná
Commander Keen 4Funkčná
Duke Nukem 2Funkčná
Dyna BlasterFunkčná po úprave ovládania
HereticFunkčná, individuálne mapovanie ovládania
BloodSpustiteľná, ale výkon Raspberry Pi 3 je nedostatočný na plynulé hranie
Wolfenstein 3DSpustiteľná, ovládanie ešte vyžaduje úpravy

Pri náročnejších tituloch sa ukázalo, že aj keď sa hra úspešne spustí, nemusí byť jej emulácia dostatočne plynulá.

Najvýraznejšie sa tento problém prejavil pri hre Blood, ktorá kladie na výkon emulovaného procesora vyššie nároky.

6.2.5 Aktualizácia zoznamu hier

Po skopírovaní hier na externý SSD je potrebné aktualizovať hernú knižnicu v EmulationStation.

V hlavnom menu Batocery otvoríme:

MAIN MENU → GAME SETTINGS → UPDATE GAMELISTS

Po obnovení zoznamu sa pripravené MS-DOS hry zobrazia v príslušnej kategórii.

Ak sa niektorá hra nezobrazuje, je potrebné skontrolovať jej adresárovú štruktúru, príponu .pc a dostupnosť súborov potrebných na spustenie.

Výsledkom bolo sedem pripravených MS-DOS hier v adresári /userdata/roms/dos, ktoré som následne testoval prostredníctvom emulačného jadra DOSBox Pure.

6.3 Príprava hier pre klasické herné konzoly

Okrem klasických MS-DOS hier som sa rozhodol rozšíriť hernú knižnicu aj o tituly určené pre staršie herné konzoly.

Batocera Linux 43.1 podporuje viacero emulovaných systémov, pričom každý z nich má vlastný adresár na ukladanie hier.

V mojom prípade som pripravoval hry pre tieto platformy:

  • Nintendo Entertainment System (NES)
  • Super Nintendo Entertainment System (SNES)
  • Game Boy
  • Game Boy Color
  • Game Boy Advance
  • Nintendo 64

Pri príprave bolo potrebné zohľadniť správne umiestnenie ROM súborov, ich formát a kompatibilitu s príslušným emulátorom.

6.3.1 Adresárová štruktúra konzolových hier

Batocera používa pre jednotlivé herné systémy samostatné adresáre v /userdata/roms.

Herná konzolaAdresár
Nintendo NES/userdata/roms/nes
Super Nintendo/userdata/roms/snes
Game Boy/userdata/roms/gb
Game Boy Color/userdata/roms/gbc
Game Boy Advance/userdata/roms/gba
Nintendo 64/userdata/roms/n64

Pripravené hry som najskôr ukladal do pracovného adresára 03-ready na počítači s Linux Mint.

Jeho štruktúra kopírovala adresáre Batocery:

03-ready/
├── nes/
├── snes/
├── gb/
├── gbc/
├── gba/
└── n64/

Takto pripravené súbory bolo možné preniesť na externý SSD pri zachovaní správneho umiestnenia.

6.3.2 Kontrola formátov ROM súborov

Jednotlivé emulátory podporujú rôzne formáty herných súborov.

Príklady bežne používaných formátov:

Herná konzolaPríklady formátov
NES.nes, .zip, .7z
SNES.sfc, .smc, .zip, .7z
Game Boy.gb, .zip
Game Boy Color.gbc, .zip
Game Boy Advance.gba, .zip
Nintendo 64.z64, .n64, .v64, .zip, .7z

Podporované formáty sa môžu líšiť podľa konkrétneho emulátora alebo emulačného jadra.

Informácie o podporovaných príponách môžeme skontrolovať aj priamo v Batocere. Každý podporovaný systém spravidla obsahuje informačný súbor _info.txt.

Napríklad:

cat /userdata/roms/n64/_info.txt

Tento súbor obsahuje informácie o podporovaných typoch ROM súborov a príslušnom hernom systéme.

6.3.3 Problém s komprimovanými hrami Nintendo 64

Pri príprave hier pre Nintendo 64 som narazil na problém, keď sa niektoré ROM súbory uložené v archívoch ZIP nepodarilo správne spustiť.

Hoci Batocera podporuje aj komprimované formáty, ich funkčnosť závisí od zvoleného emulátora.

Preto som pri problematických hrách pristúpil k rozbaleniu archívov a použitiu pôvodných ROM súborov.

Napríklad:

DukeNukem64.zip

Po rozbalení archívu môžeme získať súbor s príponou:

DukeNukem64.z64

Názvy súborov v uvedenom príklade sú ilustračné; skutočná prípona závisí od obsahu archívu.

Na počítači s Linux Mint môžeme najskôr skontrolovať obsah archívu:

unzip -l DukeNukem64.zip

Ak archív obsahuje požadovaný ROM súbor, môžeme ho rozbaliť:

unzip DukeNukem64.zip

Pri mojej konfigurácii som pre Nintendo 64 používal priamo rozbalené súbory s príponami .z64, .v64 alebo .n64.

Pôvodné ZIP archívy som si ponechal ako zálohu.

Dôležité: Nie všetky ZIP archívy je potrebné rozbaľovať. Pri Nintendo 64 závisí podpora komprimovaných ROM súborov od konkrétneho emulátora.

6.3.4 Rozdiel medzi konzolovými ROM súbormi a MAME

Pri práci s ROM súbormi je potrebné rozlišovať medzi hrami pre klasické konzoly a arkádovými hrami určenými pre emulátor MAME.

Pri MAME sa jednotlivé hry spravidla nachádzajú v ZIP archívoch, ktoré obsahujú súbory potrebné na emuláciu pôvodného arkádového hardvéru.

Tieto archívy sa zvyčajne nerozbaľujú.

Ich obsah, názvy a vzájomné závislosti musia zodpovedať konkrétnej verzii ROMsetu a použitému emulátoru.

Preto nemožno postup použitý pri problematickom ZIP archíve Nintendo 64 automaticky aplikovať na MAME.

6.3.5 Prenos pripravených hier do Batocery

Po príprave konzolových hier som súbory preniesol z Linux Mint na externý SSD pomocou nástroja rsync, ktorému sme sa venovali v kapitole 5.3.

Pred prenosom je potrebné overiť, že externý SSD je skutočne pripojený do adresára /userdata/roms.

Po úspešnom prenose môžeme obsah jednotlivých adresárov skontrolovať napríklad príkazmi:

ls -lah /userdata/roms/nes/
ls -lah /userdata/roms/snes/
ls -lah /userdata/roms/n64/

Následne v grafickom rozhraní EmulationStation vykonáme aktualizáciu zoznamu hier:

MAIN MENU → GAME SETTINGS → UPDATE GAMELISTS

Týmto spôsobom Batocera načíta nové ROM súbory do hernej knižnice.

6.3.6 Testovanie konzolových hier

Po prenose som pristúpil k testovaniu vybraných hier.

Medzi pripravenými titulmi sa nachádzali napríklad:

  • Duke Nukem 64
  • Santa Claus Saves the Earth
  • The Grinch
  • Home Alone
  • Home Alone 2
  • Daze Before Christmas
  • Road Fighter
  • The Bugs Bunny Crazy Castle
  • Duck Hunt

Pri testovaní bolo potrebné zohľadniť obmedzenia konkrétnych emulátorov a ovládacích zariadení.

Napríklad hra Duck Hunt bola pôvodne navrhnutá na ovládanie pomocou svetelnej pištole, takže jej plnohodnotné hranie nemusí byť možné iba pomocou klasického arkádového joysticku.

Pri Nintendo 64 môže byť zase limitujúcim faktorom výkon samotného Raspberry Pi 3.

Výsledkom bola pripravená knižnica konzolových hier rozdelená podľa jednotlivých emulovaných systémov, ktorú bolo možné spravovať priamo prostredníctvom EmulationStation.

7. Konfigurácia DOSBox Pure a individuálne mapovanie MS-DOS hier

Jednou z najnáročnejších častí modernizácie arkádového automatu Waveshare Arcade-101-1P bolo nastavenie ovládania klasických MS-DOS hier.

Na ich spúšťanie som použil emulačné jadro DOSBox Pure, ktoré je integrované do prostredia RetroArch.

Zatiaľ čo pri mnohých konzolových hrách stačilo štandardné mapovanie GPIO joysticku a tlačidiel, pri MS-DOS hrách bolo potrebné riešiť aj emuláciu pôvodnej počítačovej klávesnice.

Každá hra totiž používala trochu odlišné klávesové skratky a ovládacie prvky. Univerzálna konfigurácia preto nebola vždy postačujúca.

7.1 Kontrola emulačného jadra DOSBox Pure

Po úspešnom prenesení MS-DOS hier na externý SSD som najskôr overil dostupnosť emulačného jadra DOSBox Pure.

Na Raspberry Pi 3 s Batocerou 43.1 sa príslušná knižnica nachádzala v adresári:

/usr/lib/libretro/

Jej existenciu môžeme overiť príkazom:

ls -lh /usr/lib/libretro/dosbox_pure_libretro.so

Súbor dosbox_pure_libretro.so predstavuje emulačné jadro, ktoré RetroArch používa na spúšťanie MS-DOS hier.

7.1.1 Kontrola konfigurácie emulačného jadra

Nastavenia jadra DOSBox Pure sa nachádzajú v súbore:

/userdata/system/configs/retroarch/cores/retroarch-core-options.cfg

Príslušné parametre môžeme zobraziť príkazom:

grep '^dosbox_pure_' /userdata/system/configs/retroarch/cores/retroarch-core-options.cfg

Pri našom testovaní sme pracovali okrem iného s nasledujúcimi hodnotami:

dosbox_pure_auto_mapping = "true"
dosbox_pure_cpu_core = "auto"
dosbox_pure_cycles = "auto"
dosbox_pure_cycles_scale = "1.0"

Význam nastavení:

ParameterVýznam
dosbox_pure_auto_mappingAutomatické mapovanie ovládača
dosbox_pure_cpu_coreVýber režimu emulácie procesora
dosbox_pure_cyclesNastavenie emulovaného výkonu procesora
dosbox_pure_cycles_scaleNásobiteľ nastavenia emulovaných cyklov

Tieto hodnoty predstavovali východiskovú konfiguráciu pri testovaní hier.

Samotné automatické mapovanie však nepostačovalo pre všetky tituly. Pri hrách Dyna Blaster a Heretic bolo potrebné upraviť ovládanie individuálne.

7.1.2 Otvorenie nastavení RetroArchu počas hry

Po spustení MS-DOS hry môžeme otvoriť ponuku RetroArchu pomocou pripojenej USB klávesnice.

Pri našom testovaní sme používali kláves F1.

V ponuke RetroArchu následne otvoríme:

QUICK MENU → CONTROLS → PORT 1 CONTROLS

Tu môžeme upraviť spôsob, akým DOSBox Pure interpretuje vstupy herného ovládača.

Pri niektorých hrách som používal režim:

DEVICE TYPE → CUSTOM KEYBOARD BINDINGS

Tento režim umožňuje priradiť jednotlivým tlačidlám arkádového ovládača klávesy pôvodnej počítačovej klávesnice.

Dôležité: Samotná zmena mapovania v ponuke RetroArchu nemusí znamenať jeho trvalé uloženie. Upravené nastavenia je potrebné uložiť prostredníctvom QUICK MENU → CONTROLS → MANAGE REMAP FILES.

Pri testovaní som narazil aj na problém, keď sa po opätovnom spustení hry načítalo spoločné mapovanie jadra DOSBox Pure namiesto individuálneho profilu konkrétnej hry. Tento problém sa prejavil najmä pri hre Heretic, kde bolo možné funkčné mapovanie načítať manuálne, ale jeho automatické načítanie ešte vyžadovalo ďalšie úpravy.

Jeho využitie bolo dôležité najmä pri hrách, ktoré nemali natívnu podporu herného ovládača alebo používali špecifické klávesové skratky.

V ďalších častiach sa budem venovať konkrétnym nastaveniam jednotlivých hier a problémom, ktoré sa objavili pri ukladaní a opätovnom načítavaní profilov ovládania.

7.2 Mapovanie arkádových tlačidiel na klávesnicu v DOSBox Pure

Pri testovaní klasických MS-DOS hier som narazil na problém s ovládaním. Hoci joystick a farebné tlačidlá správne fungovali v prostredí EmulationStation, niektoré hry očakávali vstupy z klasickej počítačovej klávesnice.

Na vyriešenie tohto problému som využil funkciu Custom Keyboard Bindings, ktorá umožňuje emulovať jednotlivé klávesy pomocou arkádového ovládača.

7.2.1 Aktivácia režimu Custom Keyboard Bindings

Najskôr spustíme požadovanú MS-DOS hru.

Pomocou pripojenej USB klávesnice otvoríme ponuku RetroArchu a prejdeme do:

QUICK MENU → CONTROLS → PORT 1 CONTROLS

Pri položke Device Type vyberieme:

Custom Keyboard Bindings

Týmto nastavením umožníme DOSBox Pure interpretovať vstupy herného ovládača ako klávesy počítačovej klávesnice.

Jednotlivým smerom joysticku a akčným tlačidlám následne môžeme priradiť klávesy podľa požiadaviek konkrétnej hry.

7.2.2 Mapovanie smerov joysticku

Pri našom testovaní sme používali aj mapovanie smerov joysticku na numerickú klávesnicu.

V konfiguračných súboroch sa nachádzali nasledujúce hodnoty:

input_player1_key_up = "264"
input_player1_key_down = "258"
input_player1_key_left = "260"
input_player1_key_right = "262"

Ich význam:

Smer joystickuEmulovaný kláves
HoreNumpad 8
DoleNumpad 2
DoľavaNumpad 4
DopravaNumpad 6

Tieto hodnoty predstavujú konkrétne nastavenie použité pri našom testovaní. Nie všetky MS-DOS hry však používajú numerickú klávesnicu na pohyb, preto môže byť potrebné mapovanie pre jednotliv

7.2 Mapovanie arkádových tlačidiel na klávesnicu v DOSBox Pure

Pri testovaní klasických MS-DOS hier som narazil na problém s ovládaním. Hoci joystick a farebné tlačidlá správne fungovali v prostredí EmulationStation, niektoré hry očakávali vstupy z klasickej počítačovej klávesnice.

Na vyriešenie tohto problému som využil funkciu Custom Keyboard Bindings, ktorá umožňuje emulovať jednotlivé klávesy pomocou arkádového ovládača.

7.2.1 Aktivácia režimu Custom Keyboard Bindings

Najskôr spustíme požadovanú MS-DOS hru.

Pomocou pripojenej USB klávesnice otvoríme ponuku RetroArchu a prejdeme do:

QUICK MENU → CONTROLS → PORT 1 CONTROLS

Pri položke Device Type vyberieme:

Custom Keyboard Bindings

Týmto nastavením umožníme DOSBox Pure interpretovať vstupy herného ovládača ako klávesy počítačovej klávesnice.

Jednotlivým smerom joysticku a akčným tlačidlám následne môžeme priradiť klávesy podľa požiadaviek konkrétnej hry.

7.2.2 Mapovanie smerov joysticku

Pri našom testovaní sme používali aj mapovanie smerov joysticku na numerickú klávesnicu.

V konfiguračných súboroch sa nachádzali nasledujúce hodnoty:

input_player1_key_up = "264"
input_player1_key_down = "258"
input_player1_key_left = "260"
input_player1_key_right = "262"

Ich význam:

Smer joystickuEmulovaný kláves
HoreNumpad 8
DoleNumpad 2
DoľavaNumpad 4
DopravaNumpad 6

Tieto hodnoty predstavujú konkrétne nastavenie použité pri našom testovaní. Nie všetky MS-DOS hry však používajú numerickú klávesnicu na pohyb, preto môže byť potrebné mapovanie pre jednotlivé tituly upraviť.

7.2.3 Mapovanie akčných tlačidiel

Okrem smerov joysticku bolo potrebné priradiť aj ďalšie klávesy.

Pri konfigurácii sme pracovali napríklad s nasledujúcimi nastaveniami:

input_player1_key_a = "271"
input_player1_key_b = "305"
input_player1_key_x = "112"

Význam použitých hodnôt:

NastavenieEmulovaný kláves
input_player1_key_aEnter na numerickej klávesnici
input_player1_key_bPravý Ctrl
input_player1_key_xP

Tieto nastavenia sme využívali pri prispôsobovaní ovládania jednotlivých hier.

Pri hre Dyna Blaster sa nám podarilo nastaviť modré akčné tlačidlo na pokladanie bômb a žlté tlačidlo na pozastavenie hry.

Pri hre Heretic sme potrebovali odlišné priradenie akčných klávesov, pretože hra používa samostatné klávesy na streľbu a otváranie dverí.

7.2.4 Ukladanie konfigurácie ovládača

Po nastavení ovládania môžeme v RetroArchu prejsť do:

QUICK MENU → CONTROLS → MANAGE REMAP FILES

Tu sú dostupné možnosti uloženia mapovania pre emulačné jadro, adresár alebo konkrétnu hru.

Pri individuálnom nastavovaní MS-DOS hier je vhodné použiť možnosť:

Save Game Remap File

Je však potrebné upozorniť na špecifické správanie DOSBox Pure.

Viaceré naše hry používali spúšťací súbor dosbox.bat. Pri opätovnom spustení sa preto mohlo načítať spoločné mapovanie namiesto profilu pripraveného pre konkrétnu hru.

Tento problém sme zaznamenali najmä pri hre Heretic. Jej individuálne mapovanie fungovalo po manuálnom načítaní, ale automatické načítanie po ďalšom spustení nebolo spoľahlivé.

V nasledujúcej časti si ukážeme, kde RetroArch tieto konfiguračné súbory ukladá a ako ich možno kontrolovať cez SSH.

7.3 Kontrola a správa súborov .rmp v RetroArchu

Pri individuálnom nastavovaní MS-DOS hier prostredníctvom DOSBox Pure som narazil na problém s ukladaním a automatickým načítavaním konfigurácie ovládania.

RetroArch umožňuje uložiť vlastné mapovanie tlačidiel do súborov s príponou .rmp, ktoré označujeme ako remap súbory.

Tieto súbory obsahujú priradenia vstupov herného ovládača k funkciám emulátora, prípadne ku klávesom emulovanej počítačovej klávesnice.

7.3.1 Umiestnenie remap súborov

V mojej konfigurácii sa súbory pre DOSBox Pure nachádzali v adresári:

/userdata/system/configs/retroarch/config/remaps/DOSBox-pure/

Jeho obsah môžeme zobraziť príkazom:

ls -lah /userdata/system/configs/retroarch/config/remaps/DOSBox-pure/

Pri našom testovaní sa tu nachádzali napríklad tieto súbory:

dosbox.rmp
DynaBlaster.pc.rmp
Heretic.pc.rmp
Heretic.rmp

Okrem nich vznikli počas diagnostiky aj záložné alebo dočasne odložené verzie niektorých profilov.

Dôležité: Samotná existencia súboru .rmp ešte nezaručuje, že ho RetroArch pri spustení konkrétnej hry automaticky načíta.

7.3.2 Kontrola obsahu mapovania

Obsah spoločného profilu DOSBox Pure môžeme zobraziť príkazom:

cat /userdata/system/configs/retroarch/config/remaps/DOSBox-pure/dosbox.rmp

Pri testovaní sa v ňom nachádzali napríklad nasledujúce nastavenia:

input_player1_key_up = "264"
input_player1_key_down = "258"
input_player1_key_left = "260"
input_player1_key_right = "262"

input_player1_key_a = "271"
input_player1_key_b = "305"
input_player1_key_x = "112"

V uvedenom príklade boli smery joysticku priradené k numerickej klávesnici a akčné tlačidlá ku klávesom používaným v MS-DOS hrách.

Toto mapovanie bolo užitočné pri hre Dyna Blaster, no nemuselo vyhovovať ostatným titulom.

7.3.3 Individuálne mapovanie hry Heretic

Pri hre Heretic bolo potrebné nastaviť samostatné ovládanie streľby a otvárania dverí.

V jej individuálnom profile sme používali napríklad:

input_player1_key_l = "32"
input_player1_key_r = "306"

Význam nastavení:

ParameterKlávesFunkcia v hre
input_player1_key_lSpaceOtváranie dverí a používanie predmetov
input_player1_key_rĽavý CtrlStreľba

Po manuálnom načítaní súboru Heretic.rmp sa podarilo dosiahnuť funkčné ovládanie:

  • Ružové tlačidlo slúžilo na streľbu.
  • Červené tlačidlo slúžilo na otváranie dverí.

Problém nastal po ukončení a opätovnom spustení hry. Individuálny profil sa automaticky nenačítal vždy správne a ovládanie sa vrátilo k spoločnému mapovaniu.

7.3.4 Prečo dochádzalo k načítaniu nesprávneho profilu

Jednou z možných príčin bolo používanie rovnakého názvu spúšťacieho súboru dosbox.bat pri viacerých MS-DOS hrách.

RetroArch môže pri výbere profilu vychádzať z názvu načítaného obsahu, preto sa pri jednotlivých hrách mohli uplatniť spoločné pravidlá mapovania.

Počas testovania sme zaznamenali, že po opätovnom spustení Heretic sa načítalo mapovanie zo súboru dosbox.rmp, aj keď existoval samostatný profil Heretic.rmp.

Poznámka: Túto príčinu sme považovali za pravdepodobnú, ale automatické načítanie individuálneho profilu nebolo v čase testovania definitívne vyriešené.

7.3.5 Zálohovanie remap súborov

Pred úpravami odporúčam vytvoriť záložnú kópiu príslušného profilu.

Napríklad:

cp -a \
  /userdata/system/configs/retroarch/config/remaps/DOSBox-pure/dosbox.rmp \
  /userdata/system/configs/retroarch/config/remaps/DOSBox-pure/dosbox.rmp.bak

Záloha umožňuje obnoviť predchádzajúce nastavenie bez nutnosti opätovného mapovania všetkých tlačidiel.

Pred ďalšími úpravami si môžeme tiež zobraziť všetky dostupné profily:

find /userdata/system/configs/retroarch/config/remaps/DOSBox-pure/ \
  -maxdepth 1 -type f -name '*.rmp' -print

Tieto príkazy slúžia iba na kontrolu a vytvorenie zálohy. Neodstraňujú existujúce mapovania.

7.3.6 Manuálne načítanie profilu v RetroArchu

Ak sa individuálne mapovanie automaticky nenačíta, môžeme ho počas spustenej hry vybrať manuálne.

V RetroArchu otvoríme:

QUICK MENU → CONTROLS → MANAGE REMAP FILES → LOAD REMAP FILE

Následne vyberieme požadovaný súbor, napríklad:

Heretic.rmp

Po jeho načítaní overíme ovládanie priamo v hre.

Pri našom testovaní tento postup fungoval, ale po ďalšom spustení hry bolo niekedy potrebné profil načítať znova.

Výsledok: Podarilo sa nám vytvoriť funkčné individuálne mapovania pre vybrané MS-DOS hry a identifikovať problém so spoločnými profilmi DOSBox Pure. Automatické načítavanie profilu hry Heretic však zostalo otvorenou úlohou, ktorú bolo potrebné ďalej doladiť.

7.4 Praktické nastavenie ovládania hier Dyna Blaster a Heretic

Po príprave základného mapovania DOSBox Pure som pristúpil k testovaniu jednotlivých MS-DOS hier priamo na arkádovom automate.

Pri testovaní som sa snažil dosiahnuť, aby bolo možné hry ovládať výhradne pomocou pôvodného joysticku a farebných tlačidiel bez nutnosti používať externú klávesnicu.

Najviac času som venoval hrám Dyna Blaster a Heretic, pretože každá z nich vyžadovala odlišné priradenie klávesov.

7.4.1 Nastavenie hry Dyna Blaster

Dyna Blaster je klasická arkádová hra, v ktorej hráč pomocou bômb odstraňuje prekážky a poráža protivníkov.

Pre pohodlné hranie bolo potrebné nakonfigurovať pohyb postavy, pokladanie bômb a pozastavenie hry.

Pri našom testovaní sa osvedčilo nasledujúce ovládanie:

Ovládací prvokFunkcia v hre
Arkádový joystickPohyb postavy
Modré tlačidloPoloženie bomby
Žlté akčné tlačidloPozastavenie hry

Pre modré tlačidlo sme použili mapovanie na kláves pravý Ctrl:

input_player1_key_b = "305"

Pre pozastavenie hry sme pracovali s mapovaním klávesu P:

input_player1_key_x = "112"

Tieto hodnoty boli súčasťou konfigurácie mapovania DOSBox Pure.

Po úprave ovládania sa podarilo hru Dyna Blaster úspešne ovládať pomocou arkádového panela.

7.4.2 Nastavenie hry Heretic

Heretic patrí medzi klasické akčné hry z pohľadu prvej osoby. Na rozdiel od Dyna Blaster vyžaduje viacero ovládacích funkcií vrátane pohybu, streľby a otvárania dverí.

Pri našom testovaní bolo potrebné pripraviť individuálne mapovanie.

Dôležité boli najmä tieto klávesy:

KlávesFunkcia v hre
Ľavý CtrlStreľba
SpaceOtváranie dverí a používanie
Smerové klávesy alebo príslušné klávesy pohybuOvládanie postavy

V súbore Heretic.rmp sme použili nasledujúce priradenia:

input_player1_key_l = "32"
input_player1_key_r = "306"

Hodnota 32 predstavuje kláves Space a hodnota 306 predstavuje ľavý Ctrl.

Po manuálnom načítaní profilu sa podarilo dosiahnuť nasledujúce funkčné ovládanie:

Fyzické tlačidloFunkcia
RužovéStreľba
ČervenéOtváranie dverí

Toto mapovanie som úspešne otestoval priamo v hre.

7.4.3 Problém s automatickým načítaním profilu Heretic

Hoci sa po manuálnom načítaní súboru Heretic.rmp podarilo správne namapovať tlačidlá, po ukončení a opätovnom spustení hry sa niekedy obnovilo spoločné mapovanie DOSBox Pure.

Individuálny profil bolo následne potrebné znova načítať cez ponuku RetroArchu:

QUICK MENU → CONTROLS → MANAGE REMAP FILES → LOAD REMAP FILE

Následne som vybral súbor:

Heretic.rmp

Po jeho načítaní ovládanie opäť fungovalo podľa pripravených nastavení.

Pri diagnostike som zároveň skúšal konfiguráciu režimu Custom Keyboard Bindings priamo pre hru Heretic pomocou nasledujúcej položky v súbore /userdata/system/batocera.conf:

dos["Heretic.pc"].controller1_dosbox_pure=3

Táto konfigurácia nastavovala požadovaný typ ovládača pre DOSBox Pure, ale sama osebe nevyriešila problém s automatickým načítavaním individuálneho remap súboru.

Dôležité: V čase testovania bolo individuálne mapovanie Heretic funkčné po manuálnom načítaní. Jeho spoľahlivé automatické načítanie po každom spustení hry ešte nebolo dokončené.

7.4.4 Ukončovanie MS-DOS hier

Okrem samotného ovládania bolo potrebné zabezpečiť aj pohodlný návrat do hlavného menu Batocery.

Na mojom arkádovom automate sa osvedčila kombinácia:

Podržať pravé malé žlté tlačidlo HOTKEY a následne stlačiť zelené tlačidlo.

Táto kombinácia bola úspešne otestovaná pri ukončovaní MS-DOS hier a podrobne je zdokumentovaná v kapitole 3.4.

7.4.5 Výsledky testovania

Pri testovaní sa ukázalo, že používanie arkádového joysticku s DOSBox Pure je možné, ale pri niektorých hrách si vyžaduje individuálnu konfiguráciu.

Dyna Blaster sa podarilo nastaviť tak, aby bolo možné pohybovať postavou, pokladať bomby a pozastaviť hru pomocou arkádových tlačidiel.

Heretic bolo možné ovládať pomocou individuálneho profilu, avšak automatické načítavanie tohto profilu ešte vyžadovalo ďalšie doladenie.

Tieto skúsenosti ukázali, že pri emulácii MS-DOS hier nestačí vždy iba univerzálne mapovanie ovládača. Pre jednotlivé tituly je vhodné pripraviť a otestovať samostatné konfigurácie.

7.5 Výkonové obmedzenia Raspberry Pi 3 pri MS-DOS hrách

Po úspešnom nastavení ovládania som sa venoval aj testovaniu výkonu náročnejších MS-DOS hier.

Raspberry Pi 3 Model B disponuje štvorjadrovým procesorom Broadcom BCM2837 s architektúrou ARM Cortex-A53 a 1 GB operačnej pamäte.

Hoci tento hardvér postačuje na emuláciu mnohých starších hier, pri náročnejších tituloch môžu byť jeho možnosti obmedzené.

Najvýraznejšie sa to prejavilo pri testovaní hry Blood.

7.5.1 Testovanie hry Blood

Blood je akčná hra z pohľadu prvej osoby, ktorá využíva herný engine Build.

Hru som pripravil v adresári:

/userdata/roms/dos/Blood.pc/

Po spustení prostredníctvom DOSBox Pure sa hra načítala, ale jej priebeh nebol dostatočne plynulý na pohodlné hranie.

Preto som začal kontrolovať, či problém spôsobuje vysoké zaťaženie procesora, nedostatok operačnej pamäte alebo prehrievanie Raspberry Pi.

7.5.2 Kontrola zaťaženia procesora

Počas spustenej hry som sa cez SSH pripojil k Batocere a sledoval aktuálne zaťaženie systému.

Na tento účel môžeme použiť príkaz:

top

Pri testovaní sa zaťaženie procesu RetroArch pohybovalo približne na úrovni 134 % CPU.

V nástroji top môže proces na viacjadrovom systéme vykazovať viac ako 100 % využitia procesora, ak využíva výkon viacerých jadier.

Zvýšené zaťaženie potvrdilo, že emulácia hry kladie na Raspberry Pi 3 značné nároky. Samotná hodnota CPU však ešte neurčuje presnú príčinu nízkej snímkovej frekvencie.

7.5.3 Kontrola teploty Raspberry Pi

Aby som vylúčil prípadné prehrievanie, skontroloval som teplotu procesora:

vcgencmd measure_temp

Počas testovania hry Blood dosahovala teplota približne:

temp=73.6'C

Následne som overil, či nedochádza k obmedzovaniu výkonu v dôsledku vysokej teploty alebo problémov s napájaním:

vcgencmd get_throttled

Výsledok:

throttled=0x0

Táto hodnota znamená, že v sledovanom stave neboli hlásené aktuálne ani zaznamenané príznaky podpätia alebo obmedzovania výkonu, ktoré tento príkaz sleduje.

Pri danom meraní sa teda nepotvrdilo, že príčinou pomalého chodu hry bolo teplotné obmedzovanie procesora.

7.5.4 Nastavenia procesora v DOSBox Pure

Pri diagnostike som skontroloval aj nastavenia emulačného jadra DOSBox Pure.

Príslušné hodnoty zobrazíme príkazom:

grep -E '^dosbox_pure_(cpu_core|cycles|cycles_scale)' /userdata/system/configs/retroarch/cores/retroarch-core-options.cfg

V našej konfigurácii sa používali nasledujúce hodnoty:

dosbox_pure_cpu_core = "auto"
dosbox_pure_cycles = "auto"
dosbox_pure_cycles_scale = "1.0"

DOSBox Pure pri automatickom režime upravuje parametre emulácie podľa dostupných možností a požiadaviek emulovaného programu.

Zmena počtu emulovaných cyklov však nemusí priniesť vyšší výkon. Ak hardvér nedokáže požadovanú emuláciu spracovať dostatočne rýchlo, príliš vysoké nastavenie môže plynulosť ešte zhoršiť.

Preto som nepovažoval za vhodné bez ďalšieho testovania meniť systémové nastavenia, ktoré fungovali pri ostatných hrách.

7.5.5 Porovnanie s Linux Mint

Hru Blood som testoval aj na výkonnejšom počítači s operačným systémom Linux Mint prostredníctvom klasického DOSBoxu.

Pri tomto testovaní som využíval nastavenia:

core=dynamic
cycles=max

Na počítači s architektúrou x86 bolo možné dosiahnuť výrazne lepšiu hrateľnosť než na Raspberry Pi 3.

Je však potrebné zdôrazniť, že klasický DOSBox a DOSBox Pure nie sú totožné implementácie. Rovnako sa líšia možnosti procesora Raspberry Pi 3 a výkonnejšieho osobného počítača.

Toto porovnanie preto slúžilo predovšetkým na potvrdenie, že samotné herné súbory sú funkčné a hra môže na výkonnejšom hardvéri pracovať plynulejšie.

7.5.6 Výsledok testovania

Testovanie hry Blood prinieslo nasledujúce zistenia:

Kontrolovaná oblasťVýsledok
Spustenie hry BloodÚspešné
Plynulosť hraniaNedostatočná
Zaťaženie procesu RetroArchPribližne 134 % CPU
Teplota procesoraPribližne 73,6 °C
Kontrola obmedzovania výkonuthrottled=0x0
Test na výkonnejšom počítačiVýrazne lepšia hrateľnosť

Z výsledkov vyplýva, že hra Blood predstavuje pre Raspberry Pi 3 v použitom emulačnom prostredí príliš náročnú úlohu na pohodlné hranie.

Naopak, pri menej náročných tituloch, ako Commander Keen, Duke Nukem 2 alebo Dyna Blaster, sa podarilo dosiahnuť funkčnú emuláciu a použiteľné ovládanie.

Hru Blood som sa rozhodol v hernej knižnici ponechať na ďalšie experimentovanie, napríklad s alternatívnym ovládaním alebo na prípadné testovanie výkonnejšieho hardvéru.

Záver: Raspberry Pi 3 dokáže aj v súčasnosti poslúžiť ako základ arkádového automatu pre množstvo klasických hier. Pri náročnejších MS-DOS tituloch však treba počítať s výkonovými obmedzeniami, ktoré nemožno vyriešiť iba zmenou mapovania tlačidiel alebo pripojením nového herného ovládača.

7.6 Zhrnutie konfigurácie DOSBox Pure a odporúčania

Konfigurácia emulačného jadra DOSBox Pure patrila medzi časovo najnáročnejšie časti modernizácie arkádového automatu Waveshare Arcade-101-1P.

Najväčšou výzvou nebolo samotné spustenie klasických MS-DOS hier, ale prispôsobenie ich ovládania pôvodnému GPIO joysticku a farebným tlačidlám.

Pri testovaní som dospel k niekoľkým dôležitým zisteniam.

7.6.1 Overené výsledky

HraVýsledok testovania
Commander Keen 1Funkčná
Commander Keen 4Funkčná
Duke Nukem 2Funkčná
Dyna BlasterFunkčná vrátane ovládania pomocou arkádových tlačidiel
HereticFunkčná po manuálnom načítaní individuálneho mapovania
Wolfenstein 3DSpustiteľná, ovládanie vyžaduje ďalšie úpravy
BloodSpustiteľná, ale výkon Raspberry Pi 3 nestačí na plynulé hranie

7.6.2 Odporúčania pri konfigurácii

Pri nastavovaní DOSBox Pure sa mi osvedčilo najskôr overiť funkčnosť hry pomocou klávesnice a až následne pristúpiť k mapovaniu arkádových tlačidiel.

Dôležité je tiež vytvárať zálohy konfiguračných súborov, pretože nesprávne mapovanie môže znemožniť pohodlné ovládanie hry.

Pri individuálnych profiloch RetroArchu treba skontrolovať nielen uloženie súboru .rmp, ale aj to, či sa správny profil automaticky načíta pri ďalšom spustení hry.

Osobitnú pozornosť si vyžadujú hry používajúce rovnaký názov spúšťacieho súboru dosbox.bat, pri ktorých sme zaznamenali problémy s načítavaním individuálnych profilov.

7.6.3 Otvorené úlohy

Aj po úspešnej konfigurácii zostali niektoré oblasti, ktorým sa chcem v budúcnosti venovať:

  • Spoľahlivé automatické načítavanie individuálneho mapovania hry Heretic.
  • Dokončenie ovládania hry Wolfenstein 3D.
  • Testovanie ďalších možností ovládania pomocou externého herného ovládača.
  • Prípadné porovnanie výkonu náročnejších MS-DOS hier na výkonnejšom Raspberry Pi.

Výsledkom celej konfigurácie bolo sprevádzkovanie viacerých klasických MS-DOS hier na pôvodnom arkádovom hardvéri, pričom väčšinu bežných herných činností bolo možné vykonávať priamo pomocou joysticku a farebných tlačidiel.

Automatizovaný backup Linux serverov na Synology NAS pomocou Restic

    Pri väčšom množstve Docker služieb a Linux serverov som potreboval vytvoriť jednotný spôsob zálohovania na lokálny Synology NAS.

    Cieľom bolo vytvoriť riešenie, ktoré:

    • automaticky zálohuje Linux server,
    • používa šifrované Restic repository,
    • ukladá dáta na Synology NAS cez NFS,
    • vytvára konzistentné dumpy databáz,
    • používa deduplikáciu,
    • automaticky maže staré snapshoty,
    • spúšťa sa cez systemd timer,
    • po dokončení odošle e-mail BACKUP OK alebo BACKUP FAILED.

    Použitá retention politika:

    7 denných snapshotov
    4 týždenné snapshoty
    6 mesačných snapshotov

    Čo budeme potrebovať?

    Linux server
    Synology NAS
    NFS
    Restic
    systemd
    msmtp
    SMTP server

    V tomto návode budeme používať ukážkové hodnoty:

    Linux server:  192.0.2.10
    Synology NAS:  192.0.2.20
    
    NAS share:
    /volume1/NetBackup
    
    Lokálny mount:
    /mnt/nas-backup
    
    Restic repository:
    /mnt/nas-backup/BACKUP/server01/restic

    Reálne IP adresy a názvy si samozrejme nahraďte vlastnými.

    Príprava Synology NAS

    Na Synology vytvoríme zdieľaný priečinok, napríklad:

    NetBackup

    Výsledná cesta môže byť:

    /volume1/NetBackup

    Pre daný Linux server následne povolíme NFS prístup.

    Odporúčam povoliť prístup iba konkrétnej IP adrese alebo subnetu, z ktorého sa bude backup vykonávať.

    Pripojenie NAS cez NFS

    Na Linux serveri vytvoríme mount point:

    sudo mkdir -p /mnt/nas-backup

    Nainštalujeme NFS klienta:

    sudo apt update
    sudo apt install nfs-common

    Do:

    sudo nano /etc/fstab

    Pridáme:

    192.0.2.20:/volume1/NetBackup /mnt/nas-backup nfs4 rw,vers=4.1,_netdev,nofail,x-systemd.automount 0 0

    Aplikujeme:

    sudo systemctl daemon-reload

    Mount môžeme aktivovať napríklad:

    ls /mnt/nas-backup

    Kontrola:

    mountpoint /mnt/nas-backup

    Správny výsledok:

    /mnt/nas-backup is a mountpoint

    Inštalácia Restic

    Na Ubuntu:

    sudo apt update
    sudo apt install restic

    Verziu skontrolujeme:

    restic version

    Vytvorenie Restic hesla

    Najprv vytvoríme adresár:

    sudo mkdir -p /root/.config/restic
    sudo chmod 700 /root/.config/restic

    Vygenerujeme silné náhodné heslo:

    openssl rand -base64 48

    Výsledné heslo uložíme:

    sudo nano /root/.config/restic/server01.pass

    Nastavíme práva:

    sudo chmod 600 /root/.config/restic/server01.pass

    Toto heslo je kritické. Bez neho nie je možné Restic repository obnoviť.

    Je preto potrebné uložiť jeho kópiu aj mimo samotného servera.

    Vytvorenie Restic repository

    Na NAS vytvoríme adresár:

    sudo mkdir -p /mnt/nas-backup/BACKUP/server01/restic

    Nastavíme heslo:

    export RESTIC_PASSWORD_FILE=/root/.config/restic/server01.pass

    A inicializujeme repository:

    restic -r /mnt/nas-backup/BACKUP/server01/restic init

    Prvý manuálny backup

    Napríklad:

    restic -r /mnt/nas-backup/BACKUP/server01/restic backup \
        /etc \
        /home \
        --tag server01

    Po úspešnom backupe Restic vytvorí nový snapshot.

    Snapshoty zobrazíme:

    restic -r /mnt/nas-backup/BACKUP/server01/restic snapshots

    Ako Restic funguje

    Restic nevytvára pri každom spustení kompletnú fyzickú kópiu všetkých dát.

    Používa:

    • snapshoty
    • deduplikáciu
    • kompresiu
    • šifrovanie

    Ak sa teda medzi dvoma backupmi väčšina súborov nezmenila, Restic znovu neuloží identické bloky dát.

    Nový snapshot preto môže reprezentovať napríklad niekoľko GB dát, ale fyzicky do repository pribudne iba niekoľko MB.

    Príklad:

    processed 22000 files, 4.6 GiB
    Added to repository: 25 MiB

    Backup databáz

    Databázový adresár by sme nemali jednoducho kopírovať počas behu databázového servera.

    Pre MariaDB vytvoríme pred Restic snapshotom konzistentný SQL dump.

    Príklad:

    docker exec aplikacia-db sh -lc '
    DUMP="$(command -v mariadb-dump || command -v mysqldump)"
    
    "$DUMP" \
        -u"$MYSQL_USER" \
        -p"$MYSQL_PASSWORD" \
        --single-transaction \
        --quick \
        "$MYSQL_DATABASE"
    ' | gzip -1 > /var/backups/aplikacia.sql.gz

    Integritu gzip súboru môžeme skontrolovať:

    gzip -t /var/backups/aplikacia.sql.gz

    Ak príkaz nič nevypíše a skončí exit code 0, archív je v poriadku.

    Automatický backup skript

    Vytvoríme:

    sudo nano /usr/local/sbin/backup-server01.sh

    Príklad kompletného skriptu:

    #!/usr/bin/env bash
    
    set -Eeuo pipefail
    umask 077
    
    REPO="/mnt/nas-backup/BACKUP/server01/restic"
    PASSWORD_FILE="/root/.config/restic/server01.pass"
    TAG="server01"
    
    NAS="/mnt/nas-backup"
    STAGE="/var/backups/server01"
    
    LOCK_FILE="/run/lock/backup-server01.lock"
    
    export RESTIC_PASSWORD_FILE="$PASSWORD_FILE"
    
    log() {
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
    }
    
    # Zabránenie súbežnému spusteniu
    exec 9>"$LOCK_FILE"
    
    if ! flock -n 9; then
        log "ERROR: Backup už beží."
        exit 1
    fi
    
    # Kontrola Restic hesla
    if [[ ! -r "$PASSWORD_FILE" ]]; then
        log "ERROR: Restic password file neexistuje."
        exit 1
    fi
    
    # Aktivácia systemd automountu
    ls "$NAS" >/dev/null 2>&1 || true
    
    # Kontrola NAS
    if ! mountpoint -q "$NAS"; then
        log "ERROR: NAS nie je pripojený."
        exit 1
    fi
    
    # Kontrola repository
    if [[ ! -d "$REPO" ]]; then
        log "ERROR: Restic repository neexistuje."
        exit 1
    fi
    
    mkdir -p "$STAGE"
    chmod 700 "$STAGE"
    
    log "=== Restic backup ==="
    
    restic -r "$REPO" backup \
        /etc \
        /home \
        "$STAGE" \
        --exclude='/home/*/.cache/**' \
        --tag "$TAG"
    
    log "=== Retention ==="
    
    restic -r "$REPO" forget \
        --keep-daily 7 \
        --keep-weekly 4 \
        --keep-monthly 6 \
        --group-by host,tags \
        --tag "$TAG" \
        --prune
    
    log "============================================"
    log "Backup úspešne dokončený."
    log "============================================"

    Nastavíme práva:

    sudo chmod 750 /usr/local/sbin/backup-server01.sh

    Syntax skontrolujeme:

    sudo bash -n /usr/local/sbin/backup-server01.sh

    Retention politika

    V našom skripte používame:

    restic -r "$REPO" forget \
        --keep-daily 7 \
        --keep-weekly 4 \
        --keep-monthly 6 \
        --group-by host,tags \
        --tag "$TAG" \
        --prune

    To znamená:

    7 posledných denných backupov
    4 týždenné backupy
    6 mesačných backupov

    Parameter:

    --prune

    následne odstráni dátové bloky, ktoré už nepoužíva žiadny zachovaný snapshot.

    Systemd service

    Vytvoríme:

    sudo nano /etc/systemd/system/backup-server01.service

    Obsah:

    [Unit]
    Description=Restic backup SERVER01
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    Type=oneshot
    ExecStart=/usr/local/sbin/backup-server01.sh
    
    User=root
    Group=root

    Systemd timer

    Vytvoríme:

    sudo nano /etc/systemd/system/backup-server01.timer

    Napríklad backup každý deň približne o 02:30:

    [Unit]
    Description=Daily Restic backup SERVER01
    
    [Timer]
    OnCalendar=*-*-* 02:30:00
    RandomizedDelaySec=300
    Persistent=true
    
    [Install]
    WantedBy=timers.target

    Načítame konfiguráciu:

    sudo systemctl daemon-reload

    Timer aktivujeme:

    sudo systemctl enable --now backup-server01.timer

    Kontrola:

    systemctl list-timers --all | grep backup-server01

    Manuálny test

    Service môžeme spustiť ručne:

    sudo systemctl start backup-server01.service

    Stav:

    sudo systemctl status backup-server01.service

    Log:

    sudo journalctl -u backup-server01.service -n 100 --no-pager

    E-mailové notifikácie

    Na odosielanie informácie o stave backupu môžeme použiť msmtp.

    Inštalácia:

    sudo apt install msmtp msmtp-mta

    Konfigurácia:

    sudo nano /etc/msmtprc

    Príklad:

    defaults
    auth on
    tls on
    tls_starttls on
    tls_trust_file /etc/ssl/certs/ca-certificates.crt
    
    account backup
    host mail.example.com
    port 587
    from backup@example.com
    user backup@example.com
    passwordeval "cat /root/.config/msmtp/backup.pass"
    
    account default : backup

    Nastavíme:

    sudo chmod 600 /etc/msmtprc

    SMTP heslo:

    sudo nano /root/.config/msmtp/backup.pass

    Práva:

    sudo chmod 600 /root/.config/msmtp/backup.pass

    Test:

    printf 'Subject: Backup test\n\nSMTP funguje.\n' \
    | msmtp admin@example.com

    Backup OK / FAILED e-mail

    Do backup skriptu môžeme doplniť:

    MAIL_TO="admin@example.com"
    MAIL_FROM="backup@example.com"
    SERVER_NAME="SERVER01"
    
    send_backup_mail() {
        local SUBJECT="$1"
        local BODY="$2"
    
        {
            printf 'From: %s\n' "$MAIL_FROM"
            printf 'To: %s\n' "$MAIL_TO"
            printf 'Subject: %s\n' "$SUBJECT"
            printf 'Date: %s\n' "$(date -R)"
            printf 'MIME-Version: 1.0\n'
            printf 'Content-Type: text/plain; charset=UTF-8\n'
            printf '\n%s\n' "$BODY"
        } | msmtp "$MAIL_TO"
    }

    A následne EXIT trap:

    backup_exit_notification() {
        local RC=$?
    
        trap - EXIT
        set +e
    
        local HOST
        local NOW
    
        HOST="$(hostname -f 2>/dev/null || hostname)"
        NOW="$(date '+%Y-%m-%d %H:%M:%S %Z')"
    
        if [[ "$RC" -eq 0 ]]; then
    
            send_backup_mail \
                "[BACKUP OK] ${SERVER_NAME}" \
                "Backup bol úspešne dokončený.
    
    Server: ${SERVER_NAME}
    Hostname: ${HOST}
    Čas: ${NOW}
    Status: SUCCESS"
    
        else
    
            send_backup_mail \
                "[BACKUP FAILED] ${SERVER_NAME}" \
                "Backup servera zlyhal.
    
    Server: ${SERVER_NAME}
    Hostname: ${HOST}
    Čas: ${NOW}
    Exit code: ${RC}"
    
        fi
    
        exit "$RC"
    }
    
    trap backup_exit_notification EXIT

    Tak dostaneme po každom spustení napríklad:

    [BACKUP OK] SERVER01

    alebo:

    [BACKUP FAILED] SERVER01

    Kontrola posledného snapshotu

    sudo env \
    RESTIC_PASSWORD_FILE=/root/.config/restic/server01.pass \
    restic \
    -r /mnt/nas-backup/BACKUP/server01/restic \
    snapshots \
    --latest 1 \
    --tag server01

    Kontrola obsahu snapshotu

    Najprv získame ID snapshotu:

    restic -r "$REPO" snapshots

    Napríklad:

    ID        Time                 Host
    ef739d4d  2026-08-27 02:30     server01

    Obsah:

    restic -r "$REPO" ls ef739d4d

    Vyhľadanie konkrétneho backupu:

    restic -r "$REPO" ls ef739d4d \
    | grep database.sql.gz

    Obnova jednotlivého súboru

    Napríklad:

    mkdir -p /tmp/restic-restore
    restic -r "$REPO" restore latest \
        --target /tmp/restic-restore \
        --include /etc/fstab

    Výsledok bude napríklad:

    /tmp/restic-restore/etc/fstab

    Obnova celého snapshotu

    restic -r "$REPO" restore ef739d4d \
        --target /tmp/server-restore

    Pred kopírovaním obnovených dát späť do produkčného systému je vhodné ich najprv skontrolovať.

    Kontrola integrity Restic repository

    Priebežne môžeme spustiť:

    restic -r "$REPO" check

    Dôkladnejšia kontrola dát:

    restic -r "$REPO" check --read-data

    Pri veľkom repository môže táto kontrola trvať výrazne dlhšie.

    Príklad zálohovania Docker aplikácie

    Pri Docker aplikácii je vhodné zálohovať:

    docker-compose.yml
    .env
    databázový dump
    persistentné volumes
    aplikačné kľúče
    SSL certifikáty

    Príklad:

    restic -r "$REPO" backup \
        /var/backups/aplikacia \
        /home/user/aplikacia \
        /var/lib/docker/volumes/aplikacia_data/_data \
        --tag server01

    Ak /home/user/aplikacia/.env obsahuje heslá, nie je problém ho ukladať do Restic repository, pretože Restic dáta šifruje.

    Samotné Restic heslo však musí byť uložené samostatne mimo repository.

    Praktická štruktúra backupu

    Výsledok môže vyzerať napríklad:

    Synology NAS
    │
    └── NetBackup
        │
        └── BACKUP
            │
            ├── server01
            │   └── restic
            │
            ├── server02
            │   └── restic
            │
            └── server03
                └── restic

    Každý server má:

    vlastné Restic repository
    vlastné Restic heslo
    vlastný tag
    vlastný systemd timer
    vlastný backup skript

    Bezpečnostné odporúčania

    Restic repository je šifrované, ale stále odporúčam:

    NFS povoliť iba vybraným serverom
    Restic heslo uložiť mimo servera
    .env súbory chmod 600
    backup skripty spúšťať ako root iba ak je to potrebné
    DB heslá nevkladať priamo do verejných skriptov
    pravidelne kontrolovať backup logy
    testovať obnovu dát

    Najdôležitejšie pravidlo je:

    Backup, ktorý sme nikdy neskúsili obnoviť, ešte nemáme reálne overený.

    Záver

    Výsledkom je plne automatizovaný backup systém:

    Linux server
          ↓
    databázové dumpy
          ↓
    Restic
          ↓
    šifrovanie + deduplikácia
          ↓
    NFS
          ↓
    Synology NAS
          ↓
    retention + prune
          ↓
    e-mail OK / FAILED

    Takto je možné relatívne jednoducho zálohovať viac Linux serverov a Docker aplikácií do jedného NAS zariadenia, pričom každý server zostáva oddelený vlastným repository a vlastným šifrovacím heslom.

    Reálny príklad – FreeIPA + BookStack + Jellyfin

    Nasledujúci príklad vychádza z reálneho nasadenia, kde jeden Linux server prevádzkuje viac služieb naraz.

    Pred vytvorením Restic snapshotu skript:

    FreeIPA
    → vytvorí natívny ipa-backup
    → skontroluje stav FreeIPA služieb

    BookStack
    → vytvorí konzistentný MariaDB dump
    → skontroluje integritu gzip
    → porovná počet tabuliek
    → nájde aktuálny /config Docker volume

    Jellyfin
    → zálohuje aplikačné dáta
    → vynechá cache

    Restic
    → vytvorí šifrovaný snapshot
    → aplikuje retention
    → vykoná prune

    E-mail
    → pošle BACKUP OK alebo BACKUP FAILED

    Kompletný backup skript

    Vytvoríme:

    sudo nano /usr/local/sbin/backup-server01.sh

    Obsah:

    #!/usr/bin/env bash
    
    set -Eeuo pipefail
    umask 077
    
    
    # ============================================================
    # E-mail notification
    # ============================================================
    
    MAIL_TO="admin@example.com"
    MAIL_FROM="backup@example.com"
    SERVER_NAME="SERVER01"
    
    NOTIFY_REPO="/mnt/nas-backup/BACKUP/server01/restic"
    NOTIFY_RESTIC_PASS="/root/.config/restic/server01.pass"
    NOTIFY_TAG="server01"
    
    
    send_backup_mail() {
        local SUBJECT="$1"
        local BODY="$2"
    
        {
            printf 'From: %s\n' "$MAIL_FROM"
            printf 'To: %s\n' "$MAIL_TO"
            printf 'Subject: %s\n' "$SUBJECT"
            printf 'Date: %s\n' "$(date -R)"
            printf 'MIME-Version: 1.0\n'
            printf 'Content-Type: text/plain; charset=UTF-8\n'
            printf '\n%s\n' "$BODY"
        } | msmtp "$MAIL_TO"
    }
    
    
    backup_exit_notification() {
        local RC=$?
    
        trap - EXIT
        set +e
    
        local HOST
        local NOW
        local LATEST
    
        HOST="$(hostname -f 2>/dev/null || hostname)"
        NOW="$(date '+%Y-%m-%d %H:%M:%S %Z')"
    
        if [[ "$RC" -eq 0 ]]; then
    
            LATEST="$(
                RESTIC_PASSWORD_FILE="$NOTIFY_RESTIC_PASS" \
                restic -r "$NOTIFY_REPO" snapshots \
                    --latest 1 \
                    --tag "$NOTIFY_TAG" \
                    --compact 2>/dev/null
            )"
    
            send_backup_mail \
                "[BACKUP OK] ${SERVER_NAME}" \
                "Backup bol uspesne dokonceny.
    
    Server: ${SERVER_NAME}
    Hostname: ${HOST}
    Cas: ${NOW}
    Status: SUCCESS
    
    Posledny Restic snapshot:
    
    ${LATEST}
    
    Repository:
    ${NOTIFY_REPO}"
    
        else
    
            send_backup_mail \
                "[BACKUP FAILED] ${SERVER_NAME}" \
                "Backup servera ZLYHAL.
    
    Server: ${SERVER_NAME}
    Hostname: ${HOST}
    Cas: ${NOW}
    Exit code: ${RC}
    
    Skontroluj:
    
    systemctl status backup-server01.service
    journalctl -u backup-server01.service -n 100 --no-pager"
    
        fi
    
        exit "$RC"
    }
    
    
    trap backup_exit_notification EXIT
    
    
    # ============================================================
    # Základná konfigurácia
    # ============================================================
    
    LOCK_FILE="/run/lock/backup-server01.lock"
    
    NAS="/mnt/nas-backup"
    
    REPO="${NAS}/BACKUP/server01/restic"
    
    PASSWORD_FILE="/root/.config/restic/server01.pass"
    
    TAG="server01"
    
    
    FREEIPA_STAGE="/var/backups/server01/freeipa"
    BOOKSTACK_STAGE="/var/backups/server01/bookstack"
    
    
    FREEIPA_CONTAINER="freeipa-server"
    
    BOOKSTACK_CONTAINER="bookstack"
    BOOKSTACK_DB_CONTAINER="bookstack-db"
    
    
    log() {
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
    }
    
    
    # ============================================================
    # Zabránenie súbežnému spusteniu
    # ============================================================
    
    exec 9>"$LOCK_FILE"
    
    if ! flock -n 9; then
        log "ERROR: Backup už beží."
        exit 1
    fi
    
    
    # ============================================================
    # Kontrola Restic hesla
    # ============================================================
    
    if [[ ! -r "$PASSWORD_FILE" ]]; then
        log "ERROR: Restic password file neexistuje alebo nie je čitateľný."
        exit 1
    fi
    
    
    # ============================================================
    # Aktivácia systemd NFS automountu
    # ============================================================
    
    ls "$NAS" >/dev/null 2>&1 || true
    
    
    # ============================================================
    # Kontrola NAS
    # ============================================================
    
    if ! mountpoint -q "$NAS"; then
        log "ERROR: NAS nie je pripojený na $NAS."
        exit 1
    fi
    
    
    # ============================================================
    # Kontrola repository
    # ============================================================
    
    if [[ ! -d "$REPO" ]]; then
        log "ERROR: Restic repository neexistuje: $REPO"
        exit 1
    fi
    
    
    # ============================================================
    # Príprava staging adresárov
    # ============================================================
    
    mkdir -p "$FREEIPA_STAGE"
    mkdir -p "$BOOKSTACK_STAGE"
    
    chmod 700 "$FREEIPA_STAGE"
    chmod 700 "$BOOKSTACK_STAGE"
    
    
    export RESTIC_PASSWORD_FILE="$PASSWORD_FILE"
    
    
    
    # ============================================================
    # 1. FreeIPA native backup
    # ============================================================
    
    log "=== FreeIPA native backup ==="
    
    
    docker exec "$FREEIPA_CONTAINER" ipa-backup
    
    
    log "Kontrola FreeIPA služieb..."
    
    docker exec "$FREEIPA_CONTAINER" ipactl status
    
    
    LATEST_IPA_BACKUP="$(
        docker exec "$FREEIPA_CONTAINER" bash -lc \
        'ls -1dt /var/lib/ipa/backup/ipa-full-* 2>/dev/null | head -n1'
    )"
    
    
    if [[ -z "$LATEST_IPA_BACKUP" ]]; then
        log "ERROR: Nenašiel sa FreeIPA backup."
        exit 1
    fi
    
    
    IPA_BACKUP_NAME="$(basename "$LATEST_IPA_BACKUP")"
    
    
    log "Kopírujem $IPA_BACKUP_NAME na hosta..."
    
    
    rm -rf "${FREEIPA_STAGE:?}/${IPA_BACKUP_NAME}"
    
    
    docker cp \
        "${FREEIPA_CONTAINER}:${LATEST_IPA_BACKUP}" \
        "${FREEIPA_STAGE}/"
    
    
    if [[ ! -f "${FREEIPA_STAGE}/${IPA_BACKUP_NAME}/ipa-full.tar" ]]; then
        log "ERROR: ipa-full.tar nebol skopírovaný."
        exit 1
    fi
    
    
    log "FreeIPA backup pripravený: ${FREEIPA_STAGE}/${IPA_BACKUP_NAME}"
    
    
    
    # ============================================================
    # 2. BookStack MariaDB backup
    # ============================================================
    
    log "=== BookStack MariaDB backup ==="
    
    
    BOOKSTACK_TMP="${BOOKSTACK_STAGE}/bookstack.sql.gz.tmp"
    
    BOOKSTACK_FINAL="${BOOKSTACK_STAGE}/bookstack.sql.gz"
    
    
    rm -f "$BOOKSTACK_TMP"
    
    
    docker exec "$BOOKSTACK_DB_CONTAINER" sh -lc '
    
    if command -v mariadb-dump >/dev/null 2>&1; then
        DUMP=mariadb-dump
    else
        DUMP=mysqldump
    fi
    
    "$DUMP" \
        -u"$MYSQL_USER" \
        -p"$MYSQL_PASSWORD" \
        --single-transaction \
        --quick \
        --skip-lock-tables \
        "$MYSQL_DATABASE"
    
    ' | gzip -1 > "$BOOKSTACK_TMP"
    
    
    # ============================================================
    # Kontrola gzip integrity
    # ============================================================
    
    gzip -t "$BOOKSTACK_TMP"
    
    
    
    # ============================================================
    # Počet tabuliek v živej DB
    # ============================================================
    
    DB_TABLES="$(
        docker exec "$BOOKSTACK_DB_CONTAINER" sh -lc '
    
        mariadb \
            -u"$MYSQL_USER" \
            -p"$MYSQL_PASSWORD" \
            "$MYSQL_DATABASE" \
            -Nse "SHOW TABLES;" | wc -l
    
        '
    )"
    
    
    # ============================================================
    # Počet tabuliek v SQL dumpe
    # ============================================================
    
    DUMP_TABLES="$(
        gzip -dc "$BOOKSTACK_TMP" |
        grep -c '^CREATE TABLE' || true
    )"
    
    
    log "BookStack DB tabuliek: $DB_TABLES"
    
    log "BookStack dump tabuliek: $DUMP_TABLES"
    
    
    
    if [[ "$DB_TABLES" -lt 1 ]]; then
        log "ERROR: BookStack databáza nemá žiadne tabuľky."
        exit 1
    fi
    
    
    if [[ "$DUMP_TABLES" -ne "$DB_TABLES" ]]; then
        log "ERROR: Počet tabuliek v dumpe nesedí s databázou."
        exit 1
    fi
    
    
    mv "$BOOKSTACK_TMP" "$BOOKSTACK_FINAL"
    
    
    log "BookStack SQL backup OK."
    
    
    
    # ============================================================
    # 3. Zistenie aktuálneho BookStack /config volume
    # ============================================================
    
    BOOKSTACK_CONFIG="$(
        docker inspect "$BOOKSTACK_CONTAINER" \
        --format '{{range .Mounts}}{{if eq .Destination "/config"}}{{.Source}}{{end}}{{end}}'
    )"
    
    
    if [[ -z "$BOOKSTACK_CONFIG" || ! -d "$BOOKSTACK_CONFIG" ]]; then
        log "ERROR: BookStack /config volume sa nepodarilo nájsť."
        exit 1
    fi
    
    
    log "BookStack config: $BOOKSTACK_CONFIG"
    
    
    
    # ============================================================
    # 4. Restic backup
    # ============================================================
    
    log "=== Restic backup ==="
    
    
    restic -r "$REPO" backup \
        /var/backups/server01 \
        /home/user/freeipa-docker \
        /home/user/bookstack \
        "$BOOKSTACK_CONFIG" \
        /home/user/jellyfin \
        /etc/fstab \
        --exclude='/home/user/jellyfin/cache/**' \
        --tag "$TAG"
    
    
    
    # ============================================================
    # 5. Retention
    # ============================================================
    
    log "=== Restic retention ==="
    
    
    restic -r "$REPO" forget \
        --keep-daily 7 \
        --keep-weekly 4 \
        --keep-monthly 6 \
        --group-by host,tags \
        --tag "$TAG" \
        --prune
    
    
    
    # ============================================================
    # 6. Cleanup lokálnych FreeIPA backupov
    #    ponecháme posledné 2
    # ============================================================
    
    log "=== Cleanup starých FreeIPA staging backupov ==="
    
    
    mapfile -t OLD_LOCAL < <(
    
        find "$FREEIPA_STAGE" \
            -mindepth 1 \
            -maxdepth 1 \
            -type d \
            -name 'ipa-full-*' \
            -printf '%T@ %p\n' |
    
        sort -nr |
    
        tail -n +3 |
    
        cut -d' ' -f2-
    
    )
    
    
    for DIR in "${OLD_LOCAL[@]}"; do
    
        log "Odstraňujem lokálny staging: $DIR"
    
        rm -rf -- "$DIR"
    
    done
    
    
    
    # ============================================================
    # Cleanup backupov priamo vo FreeIPA kontajneri
    # ponecháme posledné 2
    # ============================================================
    
    docker exec "$FREEIPA_CONTAINER" bash -lc '
    
    ls -1dt /var/lib/ipa/backup/ipa-full-* 2>/dev/null |
    tail -n +3 |
    xargs -r rm -rf --
    
    '
    
    
    
    log "============================================"
    
    log "Backup SERVER01 úspešne dokončený."
    
    log "============================================"

    Nastavíme práva:

    sudo chmod 750 /usr/local/sbin/backup-server01.sh

    Pred prvým spustením skontrolujeme syntax:

    sudo bash -n /usr/local/sbin/backup-server01.sh \
    && echo "SCRIPT OK"

    Správny výsledok:

    SCRIPT OK

    Čo tento skript reálne zálohuje

    Výsledný Restic snapshot obsahuje napríklad:

    /var/backups/server01
    │
    ├── freeipa
    │   └── ipa-full-YYYY-MM-DD-HH-MM-SS
    │       └── ipa-full.tar
    │
    └── bookstack
        └── bookstack.sql.gz
    
    
    /home/user/freeipa-docker
    
    /home/user/bookstack
    ├── docker-compose.yml
    └── .env
    
    BookStack /config Docker volume
    
    /home/user/jellyfin
    
    /etc/fstab

    Súbor:

    /home/user/bookstack/.env

    môže obsahovať napríklad:

    APP_KEY
    databázové heslá

    Jeho zálohovanie do Restic repository je v poriadku, pretože obsah repository je šifrovaný.

    Restic heslo samotné však nesmie byť uložené iba v tomto repository.

    Prečo používame SQL dump databázy

    Pri MariaDB nekopírujeme iba živý databázový adresár.

    Pred Restic snapshotom používame:

    mariadb-dump \
        --single-transaction \
        --quick \
        --skip-lock-tables

    Výsledkom je konzistentný SQL dump:

    bookstack.sql.gz

    Skript následne skontroluje:

    gzip integritu
    počet tabuliek v databáze
    počet tabuliek v dumpe

    Ak napríklad databáza obsahuje:

    41 tabuliek

    a dump takisto:

    41 tabuliek

    skript pokračuje.

    Ak čísla nesedia, celý backup skončí chybou a nevytvorí sa falošne úspešný snapshot.

    Automatické vyhľadanie Docker volume

    Namiesto zapisovania dlhého Docker volume ID priamo do skriptu:

    /var/lib/docker/volumes/xxxxxxxxxxxx/_data

    sa aktuálna cesta zisťuje automaticky:

    docker inspect bookstack \
        --format '{{range .Mounts}}{{if eq .Destination "/config"}}{{.Source}}{{end}}{{end}}'

    Takto skript nájde aktuálny /config aj v prípade, že sa názov alebo interné ID volume zmení.

    Retention

    Po úspešnom vytvorení snapshotu:

    restic forget \
        --keep-daily 7 \
        --keep-weekly 4 \
        --keep-monthly 6 \
        --prune

    zostáva:

    7 denných snapshotov
    4 týždenné snapshoty
    6 mesačných snapshotov

    Restic následne pomocou:

    --prune

    odstráni dátové bloky, ktoré už nepotrebuje žiadny existujúci snapshot.

    Cleanup FreeIPA backupov

    ipa-backup vytvára lokálne zálohy aj priamo vo FreeIPA kontajneri.

    Aby časom nezaplnili disk, skript ponecháva iba:

    2 posledné FreeIPA native backupy

    Staršie sú odstránené až po úspešnom Restic backupe.

    To znamená, že dlhodobú históriu už zabezpečuje Restic repository na NAS.

    Výsledok

    Celý proces vyzerá:

    FreeIPA
       ↓
    ipa-backup
       ↓
    FreeIPA native archive
       │
       │
    BookStack
       ↓
    MariaDB dump
       ↓
    kontrola integrity
       │
       │
    Docker /config
       │
       │
    Jellyfin
       │
       ↓
    RESTIC
       ↓
    šifrovanie
       ↓
    deduplikácia
       ↓
    Synology NAS
       ↓
    retention
       ↓
    prune
       ↓
    BACKUP OK / FAILED e-mail

    Jellyfin na Raspberry Pi s OS Ubuntu 26.04 – Docker

    Súkromný multimediálny server určený na centralizovaný streaming videa a hudby v rámci lokálnej siete. Služba sprístupňuje mediálne knižnice uložené na sieťovom úložisku (Synology NAS) cez protokoly SMB/CIFS a poskytuje webové rozhranie spolu s aplikáciami pre Smart TV a mobilné zariadenia.

    Predpríprava pripojenie NAS

    Najprv nainštalujeme potrebný balík pre prácu s CIFS/SMB:

    sudo apt update && sudo apt install cifs-utils -y

    Vytvoríme priečinok pre projekt a mount point pre NAS:

    mkdir -p ~/jellyfin
    sudo mkdir -p /mnt/nas_video

    Otvoríme /etc/fstab pre trvalé pripojenie NAS:

    sudo nano /etc/fstab

    Pridáme riadok na koniec súboru:

    
    //IP_ADRESA_NAS/video /mnt/nas_video cifs username=UZIVATELSKE_MENO,password=HESLO_K_UCTU,iocharset=utf8,vers=3.0,uid=1000,gid=1000 0 0
    

    Overíme spojenie a pripojíme zdieľaný priečinok:

    sudo mount -a
    ls -la /mnt/nas_video

    Výpis priečinkov z NAS:(príklad)

     ls -la /mnt/nas_video
    total 12
    drwxr-xr-x 2 root root    0 Aug 19 07:22  .
    drwxr-xr-x 3 root root 4096 Aug 19 07:14  ..
    -rwxr-xr-x 1 root root 6148 Dec 24  2024  .DS_Store
    drwxr-xr-x 2 root root    0 Aug 19 07:22 'Christmass movie'
    drwxr-xr-x 2 root root    0 May 10  2025  Filmy
    drwxr-xr-x 2 root root    0 Aug 19 07:22  Rozpravky
    drwxr-xr-x 2 root root    0 Aug 19 07:22  Serialy
    

    Nastavenie Dockeru a oprávnení

    Pridáme našeho uživateľa do skupiny docker

    sudo chown -R 1000:1000 ~/jellyfin
    sudo usermod -aG docker ubuntu

    V priečinku ~/jellyfin vytvoríme konfiguračný súbor:

    cd ~/jellyfin
    nano docker-compose.yml

    Vložíme obsah:

    services:
      jellyfin:
        image: jellyfin/jellyfin:latest
        container_name: jellyfin
        user: 1000:1000
        ports:
          - "8096:8096"
          - "8920:8920" # Pre voliteľné HTTPS
          - "7359:7359/udp" # Auto-discovery pre TV
          - "1900:1900/udp" # DLNA
        volumes:
          - ./config:/config
          - ./cache:/cache
          - /mnt/nas_video/Filmy:/media/filmy:ro
          - /mnt/nas_video/Serialy:/media/serialy:ro
          - /mnt/nas_video/Rozpravky:/media/rozpravky:ro
          - /mnt/nas_video/Christmass movie:/media/vianoce:ro
        restart: unless-stopped

    Následne spustíme kontajner

    docker compose up -d

    Otvorte webový prehliadač a otvorte server v tvare

    http://X.X.X.X:port

    Pomenujte si server

    Vytvorte si užívateľa. Vypíšte meno a heslo

    Kliknite na Add Media Libraly

    Zvoľte movies

    Vyberte Folders

    Keď máte viacej priečinkov, tak ich musíte voliť postupne

    Keď máte viacej priečinkov, tak ich musíte voliť postupne

    Zvoľte si jazyk na používanie

    Veľmi dôležité je zaškrtnúť Alow remote connections to this server

    Následne Finish

    SSL certifikát pomocou FreeIPA na FortiGate

    V tomto návode si ukážeme, ako vytvoriť SSL certifikát pre administračné webové rozhranie FortiGate pomocou vlastnej certifikačnej autority FreeIPA.

    Výsledkom bude, že namiesto prístupu na FortiGate cez IP adresu budeme používať DNS názov, napríklad:

    https://forti.ibasterisk.local:10444

    pričom certifikát bude podpísaný našou internou FreeIPA CA.

    Upozornenie

    FreeIPA v tomto návode nepoužívam ako DNS server. DNS záznam forti.ibasterisk.local spravuje Pi-hole.

    Vytvorenie DNS záznamu v Pi-hole

      V mojom prostredí používam ako lokálny DNS server Pi-hole. Najskôr som preto vytvoril lokálny DNS záznam pre FortiGate.

      V Pi-hole prejdeme do:

      Local DNS → DNS Records

      a pridáme nový záznam:

      Domain:
      forti.ibasterisk.local
      
      IP Address:
      10.10.8.1

      Následne si môžeme overiť, že DNS záznam funguje:

      nslookup forti.ibasterisk.local 10.10.8.1

      Príklad výstupu

      Name: forti.ibasterisk.local
      Address: 10.10.8.1

      Ak DNS preklad funguje správne, môžeme pokračovať vytvorením hosta a služby vo FreeIPA.

      Príprava hosta vo FreeIPA

      Vo FreeIPA prejdeme do:

      • Identity
      • → Host
      • → Add

      Vytvoríme host:

      forti.ibasterisk.local

      a potvrdíme tlačidlom Add.

      Následne prejdeme do:

      • Identity
      • → Services

      Klikneme na Add

      Ako Service (službu) zvolíme: HTTP a z rozbaľovacieho zoznamu vyberieme:

      forti.ibasterisk.local

      Výsledná služba bude:

      HTTP/forti.ibasterisk.local@IBASTERISK.LOCAL

      V prípade chyby môžeme použiť možnosť Force a následne kliknúť na Add.

      FortiGate

      V tomto návode používam FortiGate s FortiOS 7.4.0.

      Prejdeme do:

      • System
      • → Feature Visibility

      a skontrolujeme, či máme zapnutú položku Certificates.

      Ak nie je zapnutá, zapneme ju a klikneme na Apply.

      Následne prejdeme do:

      • System
      • → Certificates
      • → Create/Import
      • → Generate CSR.

      Ako názov certifikátu môžeme použiť napríklad:

      FortiGate_FreeIPA

      DNS názov FortiGate nastavíme na:

      forti.ibasterisk.local

      Po úspešnom nasadení certifikátu sa budeme na FortiGate pripájať prostredníctvom DNS názvu, nie IP adresy.

      Potom sa budete pripájať prostredníctvom

      https://forti.ibasterisk.local:10444

      Nie cez IP. Moderné prehliadače kontrolujú najmä Subject Alternative Name (SAN), preto musí byť DNS názov v certifikáte správny.

      CSR vyplníme nasledovne:

      • Certificate Name: FortiGate_FreeIPA
      • ID Type: Domain Name
      • Domain Name: forti.ibasterisk.local
      • Organization Unit / Organization / City / State: môžete nechať prázdne
      • E-Mail: pole môžete nechať prázdne alebo zadať platnú e-mailovú adresu, napríklad: admin@ibasterisk.local
      • Subject Alternative Name: určite vyplňte v mojom prípade forti.ibasterisk.local
      • Key Type: RSA
      • Key Size: 2048 Bit je úplne v poriadku
      • Enrollment Method: File Based

      Ja som si to vyplnil následovne

      Password for private key (Heslo pre privátny kľúč)

      Zadajte heslo pre privátny kľúč a bezpečne si ho odložte. Privátny kľúč vznikne priamo na FortiGate a zariadenie neopúšťa. Do FreeIPA budeme posielať iba CSR na podpísanie.

      Následne kliknite na OK.

      Následne skontrolujeme stav vytvoreného CSR.

      Kliknite na Search a vyhľadajte:

      FortiGate_FreeIPA

      Následne CSR stiahnite a otvorte v textovom editore. Privátny kľúč pritom zostáva vo FortiGate.

      Zadajte FreeIPA

      Skrátená ukážka CSR:
      Pri reálnom vkladaní do FreeIPA je potrebné skopírovať celý obsah CSR vrátane riadkov BEGIN CERTIFICATE REQUEST a END CERTIFICATE REQUEST.

      -----BEGIN CERTIFICATE REQUEST-----
      MIICujCCAaICAQAwTDEfMB0GA1UEAxMWZm9ydGkuaWJhc3Rlcmlzay5sb2NhbDEp
      MCcGCSqGSIb3DQEJARYaaXZhbi5iYXJvbmFrQGliYXN0ZXJpc2suZXUwggEiMA0G
      -----END CERTIFICATE REQUEST-----

      Na FreeIPA potom:

      • Identity
      • → Services
      • → HTTP/forti.ibasterisk.local

      A vyberieme náš HTTP/forti.ibasterisk.local@IBASTERISK.LOCAL

      Volíme Action a New Certificate

      Potom, keď ho vložíme klikneme na Issue

      Výsledné okno bude vyzerať

      Teraz pri certifikáte vpravo klikneme na Actions a zvolíme možnosť na Download Certificate. Potrebujeme iba verejný podpísaný certifikát, private key zostáva vo FortiGate, pretože tam vznikol pri generovaní CSR. FortiGate následne vie tento podpísaný certifikát importovať späť k existujúcemu CSR/private key.

      Stiahnutý certifikát si môžete podľa uváženia premenovať, napríklad:

      forti.ibasterisk.local.crt

      Import certifikátu do Fortigate

      • System
      • → Certificates
      • → Create/Import
      • → Certificate

      Následne import Certificate

      Klikneme na Upload

      Vyberieme certifikát

      Následne volíme možnosť Create

      A už len OK

      keď import prešiel bez chyby, lokálny certifikát máme hotový.

      Následne importujeme aj hlavný CA certifikát FreeIPA (ca.crt) do FortiGate.

      • System
      • → Certificates
      • → Create/Import
      • → CA Certificate

      Volíme File

      Následne Upload

      Volíme Náš ca.crt

      Teraz už ostáva aktivovať náš nový certifikát pre webové administračné rozhranie FortiGate.

      Pôjdeme do:

      System → Settings

      a v časti Administration Settings nájdeme položku:

      HTTPS server certificate

      Tam by sa ti mal v zozname objaviť certifikát, ktorý sme práve vytvorili/importovali, niečo v tvare FortiGate_FreeIPA:

      Zvolíme ho a klikneme na Apply

      https://forti.ibasterisk.local:10444

      Je dosť možné, že ešte budete mať načítanú webovú stránku, ako prvý test otvorte súkromné okno a tam zadajte webovú stránku, prípadne CTRL + F5 na mac cmd + Shift +R

      Poznámka: Aby prehliadač zobrazil certifikát ako dôveryhodný bez bezpečnostného upozornenia, musí byť hlavný FreeIPA CA certifikát nainštalovaný medzi dôveryhodnými certifikačnými autoritami aj na klientskom zariadení.

      SSL certifikát pre subdoménu pomocou Mailcow

      V tomto návode si ukážeme, ako sprístupniť lokálnu Docker aplikáciu prostredníctvom vlastnej subdomény a zabezpečiť ju SSL certifikátom Let’s Encrypt pomocou Mailcow.

      Ako príklad použijeme aplikáciu bežiacu lokálne na:

      10.10.8.4:3080

      ktorú chceme sprístupniť prostredníctvom adresy:

      https://video.ibasterisk.eu

      Mailcow Nginx bude v tomto prípade slúžiť ako reverse proxy a kontajner acme-mailcow zabezpečí vystavenie a obnovovanie SSL certifikátu.

      Vytvorenie DNS

      Ako prvé vytvoríme DNS záznam u poskytovateľa, ktorý spravuje DNS zónu našej domény.

      Pre subdoménu:

      video.ibasterisk.eu

      vytvoríme DNS záznam smerujúci na verejnú IP adresu servera, cez ktorý bude aplikácia dostupná z internetu.

      V mojom prípade subdoména video.ibasterisk.eu smeruje na verejnú IP adresu:

      109.230.12.223

      Port forwarding

      Následne musíme zabezpečiť, aby požiadavky z internetu na portoch 80 a 443 smerovali na server, na ktorom beží Mailcow Nginx.

      Samotná aplikácia Video beží v mojom prípade na:

      10.10.8.4:3080

      Port 3080 však nie je potrebné publikovať priamo do internetu. Verejná HTTP/HTTPS komunikácia smeruje najskôr na Mailcow Nginx a až ten následne požiadavku presmeruje na interný port aplikácie.

      Komunikácia teda vyzerá nasledovne:

      Internet
         ↓
      109.230.12.223:80 / :443
         ↓
      FortiGate
         ↓
      10.10.8.4:80 / :443
         ↓
      Mailcow Nginx
         ↓
      server_name video.ibasterisk.eu
         ↓
      reverse proxy
         ↓
      10.10.8.4:3080
         ↓
      Video Docker

      Na FortiGate prejdeme do:

      Policy & Objects → Virtual IPs

      a následne zvolíme:

      Create New

      Vytvoríme pravidlo, ktoré presmeruje komunikáciu z verejnej IP adresy na internú IP adresu servera s Mailcow.

      Následne nastavíme parametre Virtual IP pravidla podľa našej sieťovej konfigurácie.

      Príklad nastavenia port forwardingu:

      Následne prejdeme do:

      Policy & Objects → Firewall Policy

      V mojom prípade mám pravidlá rozdelené do blokov a subdomény smerujúce cez Mailcow mám zaradené pod pravidlo pre mail server.

      Otvoríme príslušné pravidlo pomocou Edit, pridáme vytvorený Virtual IP objekt a zmeny potvrdíme pomocou Apply.

      Kontrola DNS

      Keď máme DNS záznam vytvorený, môžeme si pomocou terminálu overiť, či sa subdoména správne prekladá na verejnú IP adresu.

      Použijeme príkaz:

      nslookup video.ibasterisk.eu

      V mojom prípade dostaneme napríklad:

      Server:		127.0.0.53
      Address:	127.0.0.53#53
      
      Non-authoritative answer:
      Name:	video.ibasterisk.eu
      Address: 109.230.12.223
      

      Ak sa nový DNS záznam ešte nezobrazuje, je potrebné chvíľu počkať. Propagácia DNS môže trvať niekoľko minút, v niektorých prípadoch aj dlhšie.

      Príprava SSL certifikátu prostredníctvom Mailcow

      Odporúčanie

      Pre jednoduchšiu administráciu a úpravu konfiguračných súborov odporúčam používať textový editor Vim.

      Ak ho nemáme nainštalovaný, môžeme ho doinštalovať pomocou:

      sudo apt update
      sudo apt install vim

      Základné príkazy Vim

      i             vstup do režimu editácie
      Esc           ukončenie režimu editácie
      dd            zmazanie celého riadku
      /slovo        vyhľadanie textu
      n             ďalší výsledok vyhľadávania
      N             predchádzajúci výsledok vyhľadávania
      :set number   zapnutie číslovania riadkov
      :wq           uloženie súboru a ukončenie Vim
      :q!           ukončenie Vim bez uloženia zmien   
      

      Ak si chceme pri editovaní zobraziť čísla riadkov, vo Vim použijeme:

      :set number

      Výsledok môže vyzerať napríklad takto:

      1  server {
      2      listen 80;
      3      listen [::]:80;
      4      listen 443 ssl;
      5      listen [::]:443 ssl;
      6
      7      server_name christmas.ibasterisk.eu ... video.ibasterisk.eu;
      8
      9      ssl_certificate /etc/ssl/mail/cert.pem;
      10

      Pridanie subdomény do mailcow.conf

      Najskôr prejdeme do adresára, v ktorom máme nainštalovaný Mailcow:

      cd /opt/mailcow-dockerized

      Otvoríme hlavný konfiguračný súbor:

      sudo vim mailcow.conf

      Vo Vim môžeme vyhľadať položku:

      ADDITIONAL_SAN=

      pomocou:

      /ADDITIONAL_SAN=

      Do existujúceho zoznamu pridáme na koniec, oddelenú čiarkou a bez medzery, novú subdoménu:

      video.ibasterisk.eu

      Výsledok môže vyzerať napríklad:

      ADDITIONAL_SAN=mail.ibasterisk.eu,cv.ibasterisk.eu,music.ibasterisk.eu,christmas.ibasterisk.eu,chat.ibasterisk.eu,halloween.ibasterisk.eu,ibasterisk.eu,moto.ibasterisk.eu,video.ibasterisk.eu

      ADDITIONAL_SAN určuje ďalšie DNS názvy, ktoré majú byť zahrnuté do SSL certifikátu Mailcow.

      Zmeny uložíme pomocou:

      :wq

      Pridanie subdomény do Nginx reverse proxy

      V mojom prostredí používam vlastný Nginx konfiguračný súbor pre ďalšie aplikácie:

      /opt/mailcow-dockerized/data/conf/nginx/00-custom-apps.conf

      Názov vlastného konfiguračného súboru sa môže v inom prostredí líšiť.

      Súbor otvoríme:

      sudo vim /opt/mailcow-dockerized/data/conf/nginx/00-custom-apps.conf

      Subdoménu video.ibasterisk.eu pridáme medzi domény, ktoré má tento Nginx server obsluhovať, napríklad:

      server_name christmas.ibasterisk.eu cv.ibasterisk.eu music.ibasterisk.eu chat.ibasterisk.eu halloween.ibasterisk.eu ibasterisk.eu moto.ibasterisk.eu video.ibasterisk.eu;
      

      Následne nastavíme port, na ktorom beží samotná aplikácia:

      if ($host = "video.ibasterisk.eu") {
          set $target_port "3080";
      }

      A požiadavku odošleme na lokálnu Docker aplikáciu:

      proxy_pass http://10.10.8.4:$target_port;

      Súbor opäť uložíme pomocou:

      :wq

      Aplikovanie zmeny v Mailcow

      Po zmene mailcow.conf spustíme:

      cd /opt/mailcow-dockerized
      sudo docker compose up -d

      Mailcow tým aplikuje zmenenú konfiguráciu. Tento krok odporúča aj oficiálna dokumentácia po úprave ADDITIONAL_SAN.

      Spustenie ACME klienta

      Teraz môžeme nechať Mailcow znovu spustiť ACME klienta:

      sudo docker compose restart acme-mailcow

      acme-mailcow skontroluje požadované domény a pri úspešnom overení vystaví nový Let’s Encrypt certifikát obsahujúci aj:

      video.ibasterisk.eu

      Priebeh sledujeme v druhom termináli:

      sudo docker compose logs --tail=200 -f acme-mailcow

      Sledovanie logu ukončíme pomocou:

      CTRL + C

      Reštart Nginx

      Po získaní certifikátu môžeme načítať konfiguráciu Nginx:

      sudo docker compose restart nginx-mailcow

      Po reštarte Nginx by mala byť aplikácia dostupná prostredníctvom zabezpečenej HTTPS adresy:

      https://video.ibasterisk.eu
      

      Overenie SSL certifikátu

      Najjednoduchšie:

      curl -I https://video.ibasterisk.eu

      Alebo si môžeme pozrieť priamo certifikát:

      echo | openssl s_client \
      -connect video.ibasterisk.eu:443 \
      -servername video.ibasterisk.eu 2>/dev/null \
      | openssl x509 -noout -subject -issuer -dates

      A všetky názvy zahrnuté v certifikáte:

      echo | openssl s_client \
      -connect video.ibasterisk.eu:443 \
      -servername video.ibasterisk.eu 2>/dev/null \
      | openssl x509 -noout -ext subjectAltName

      Vo výstupe by sme mali nájsť aj našu subdoménu:

      Výstup

      X509v3 Subject Alternative Name: 
      DNS:chat.ibasterisk.eu, DNS:christmas.ibasterisk.eu, DNS:cv.ibasterisk.eu, DNS:halloween.ibasterisk.eu, DNS:ibasterisk.eu, DNS:mail.ibasterisk.eu, DNS:moto.ibasterisk.eu, DNS:music.ibasterisk.eu, DNS:video.ibasterisk.eu
      

      Ak sa medzi hodnotami Subject Alternative Name nachádza DNS:video.ibasterisk.eu, znamená to, že subdoména je správne zahrnutá v SSL certifikáte.

      Celý postup v skratke

      1. DNS
         video.ibasterisk.eu
         ↓
         verejná IP adresa
      
      2. FortiGate / Firewall
         TCP 80 a 443
         ↓
         Mailcow Nginx
      
      3. /opt/mailcow-dockerized/mailcow.conf
         ↓
         ADDITIONAL_SAN=...,video.ibasterisk.eu
      
      4. data/conf/nginx/00-custom-apps.conf
         ↓
         pridať video.ibasterisk.eu
         ↓
         nastaviť target_port 3080
      
      5. docker compose up -d
      
      6. docker compose restart acme-mailcow
      
      7. skontrolovať ACME log
      
      8. docker compose restart nginx-mailcow
      
      9. overiť
         https://video.ibasterisk.eu

      Inštalácia Tailscale na Ubuntu Server 26.04

      Čo je Tailscale

      Tailscale je softvérová VPN služba založená na protokole WireGuard, ktorá umožňuje bezpečne prepojiť zariadenia cez internet do jednej privátnej siete. Každé pripojené zariadenie dostane vlastnú Tailscale IP adresu a môže komunikovať s ostatnými zariadeniami podobne, ako keby sa nachádzali v rovnakej lokálnej sieti.

      Tailscale vytvára tzv. mesh VPN, takže zariadenia sa podľa možností pripájajú priamo medzi sebou. Prenášané dáta sú šifrované pomocou protokolu WireGuard. Ak nie je možné vytvoriť priame spojenie medzi zariadeniami, Tailscale môže komunikáciu sprostredkovať prostredníctvom DERP relay servera. DERP server slúži iba na prenos komunikácie medzi zariadeniami – prenášané dáta zostávajú end-to-end šifrované a server nemá možnosť ich dešifrovať.

      Výhodou je, že nie je potrebné manuálne nastavovať port forwarding, verejné IP adresy ani prevádzkovať klasický VPN server.

      Zariadenia sa po autorizácii pridajú do privátnej Tailscale siete, ktorá sa nazýva tailnet. Prístup medzi jednotlivými zariadeniami možno následne riadiť pomocou nastavených pravidiel.

      Napríklad:

      Windows PC
      100.81.108.35
            |
            |  šifrované spojenie
            |
         Tailscale
            |
            |  šifrované spojenie
            |
      Ubuntu server
      100.69.3.6

      Používateľ sa potom môže na server pripojiť napríklad cez:

      ssh pouzivatel@TAILSCALE_IP

      bez ohľadu na to, či sa server nachádza doma, vo firme alebo v inom dátovom centre, pokiaľ majú obe zariadenia prístup na internet a sú pripojené do rovnakého tailnetu.

      Koľko zariadení je možné používať zadarmo

      Aktuálne k augustu 2026 ponúka Tailscale pre osobné a nekomerčné použitie plán Personal, ktorý je bezplatný.

      V bezplatnom pláne je aktuálne možné používať:

      • neobmedzený počet používateľských zariadení – napríklad počítače, notebooky, telefóny alebo tablety,
      • až 6 používateľov v jednom tailnete,
      • až 50 tagged resources – teda zariadení alebo služieb označených tagom, ktoré sa typicky používajú pre servery, subnet routery, exit nodes alebo inú zdieľanú infraštruktúru.

      Tailscale teda už pri bežných používateľských zariadeniach neurčuje pevný limit ich počtu. Bezplatný plán Personal je určený predovšetkým na osobné a nekomerčné použitie, napríklad pre domácu sieť, homelab, Raspberry Pi alebo vlastné servery.

      Na aké zariadenia je možné Tailscale nainštalovať

      Tailscale je multiplatformové riešenie a je možné ho používať na rôznych typoch zariadení a operačných systémov. V rámci jednej privátnej siete – tailnetu – tak môžu byť súčasne pripojené pracovné stanice, servery, mobilné zariadenia, NAS servery alebo kontajnery.

      Medzi podporované platformy patria napríklad:

      • Windows – Windows 10 a novší, Windows Server 2016 a novší.
      • Linux – Ubuntu, Debian, Fedora, RHEL, CentOS, Raspberry Pi OS, Amazon Linux, openSUSE, SUSE Linux Enterprise, Oracle Linux, Arch Linux, NixOS a ďalšie distribúcie.
      • macOS
      • Android
      • iPhone a iPad – iOS/iPadOS
      • Apple TV – tvOS
      • Chromebook / ChromeOS
      • Amazon Fire zariadenia
      • Docker kontajnery
      • Kubernetes
      • Raspberry Pi
      • NAS a ďalšie zariadenia, na ktorých je možné spustiť podporovaného Tailscale klienta.

      Vďaka tomu je možné napríklad bezpečne prepojiť:

      Windows notebook
             |
             |
         Tailscale
             |
        +----+---------+-----------+
        |              |           |
      Ubuntu        Raspberry     NAS
      server           Pi        server

      Všetky tieto zariadenia môžu následne komunikovať prostredníctvom svojich privátnych Tailscale IP adries bez potreby otvárať služby priamo do internetu.

      Inštalácia

      curl -fsSL https://tailscale.com/install.sh | sh

      Počas inštalácie môže byť potrebné zadať heslo používateľa s oprávnením sudo.

      Následne spustite

      sudo tailscale up

      Po spustení príkazu sa v termináli zobrazí prihlasovací odkaz. Tento odkaz otvorte vo webovom prehliadači.
      Následne sa prihláste kontom, pomocou ktorého chcete spravovať zariadenia v Tailscale.
      Po úspešnom prihlásení terminál zobrazí hlášku Success.

      Po úspešnej autorizácii sa zariadenie automaticky pridá do vášho tailnetu.

      Kontrola pripojenia zariadenia

      Príkaz tailscale status zobrazí stav Tailscale a zariadenia pripojené do rovnakého tailnetu.

      tailscale status

      Ak chcete zobraziť iba Tailscale IPv4 adresu daného servera, použite:

      tailscale ip -4

      Na serveri si ešte môžete overiť, či služba Tailscale beží a je nastavená na automatické spustenie:

      sudo systemctl status tailscaled

      Konfigurácia Tailscale SSH

      V Tailscale kliknite v sekcii Machines pri požadovanom zariadení na tri bodky a zvoľte Set up SSH.

      Zobrazí sa postup potrebný na povolenie Tailscale SSH na serveri.

      Tailscale SSH je možné na serveri povoliť priamo z terminálu príkazom:

      sudo tailscale set --ssh

      Po úspešnom povolení sa pri zariadení zobrazí možnosť SSH. Kliknutím na ňu môžete vytvoriť SSH spojenie so serverom.

      Po povolení Tailscale SSH je možné spravovať prístup k serveru prostredníctvom pravidiel tailnetu a administračného rozhrania Tailscale.

      Následne sa úspešne pripojíte na server prostredníctvom SSH.

      Ak na serveri beží webová služba alebo administračné rozhranie, môžete k nemu pristupovať aj prostredníctvom Tailscale siete.

      Skopírujte Tailscale IP adresu zariadenia a vložte ju do adresného riadku webového prehliadača.

      V prípade, že webová služba používa vlastný DNS názov, môže byť používateľ po otvorení služby automaticky presmerovaný na tento názov.

      Synology DSM – nasadenie SSL certifikátu z FreeIPA

      Prehľad

      Cieľom je nahradiť predvolený Synology certifikát vlastným certifikátom vystaveným pomocou FreeIPA Certificate Authority.

      1. Vytvorenie DNS záznamu

      V Pi-hole vytvoríme záznam:

      Overenie

      nslookup nas.ibasterisk.local 10.10.8.2

      Príklad výstupu

      Name: nas.ibasterisk.local
      Address: 10.10.8.3

      2. Vo FreeIPA príprava Host

      • Identity
      • → Host
      • → Add

      A na záver Add

      Teraz prejdeme do

      • Identity
      • → Services

      Klikneme na Add

      Volíme službu HTTP a vyberieme z rollup-u Náš nas.ibasterisk.local

      V prípade chyby zaškrtnite Force

      Výsledok

      3. Generovanie privátneho kľúča

      Na serveri, kde chceme uložiť certifát spustíme príkaz

      openssl genrsa -out nas.ibasterisk.local.key 4096

      Výsledok

      nas.ibasterisk.local.key

      4. Generovanie CSR

      openssl req -new \
      -key nas.ibasterisk.local.key \
      -out nas.ibasterisk.local.csr \
      -subj "/CN=nas.ibasterisk.local" \
      -addext "subjectAltName=DNS:nas.ibasterisk.local"

      Výsledok

      nas.ibasterisk.local.csr

      5. Kontrola CSR

      openssl req -in nas.ibasterisk.local.csr -noout -text | grep -A2 "Subject Alternative"

      Výstup:

      X509v3 Subject Alternative Name:
      DNS:nas.ibasterisk.local

      6. Vydanie certifikátu vo FreeIPA

      Vo FreeIPA:

      • Identity
      • → Services
      • → HTTP/nas.ibasterisk.local
      • → Actions
      • → New Certificate

      Obsah CSR:

      vložiť do formulára a klikneme na Issue

      Následne sa vygeneruje certifikát

      Klikneme na Actions

      • Actions
      • → Download

      Pre lepšiu orientáciu si môžete aj premenovať certifikát. Napríklad

      nas.ibasterisk.local.crt.pem

      7. Overenie certifikátu na koncovej stanici, kde sme stiahli certifikát

      Po overení certifikátu cez

      openssl x509 \
      -in nas.ibasterisk.local.crt.pem \
      -noout \
      -subject \
      -issuer
      subject=O=IBASTERISK.LOCAL, CN=nas.ibasterisk.local
      issuer=O=IBASTERISK.LOCAL, CN=Certificate Authority

      Dôvera certifikátu

      Aby zariadenie mohlo dôverovať webovej lokalite, tak je potrebné importovať ca.crt vystavený FreeIPA. Stačí importovať len tento certifikát a tým zabezpečíte, že všetky SSL certifikáty vystavené FreeIPA budú dôverihodné

      Na Macu:

      • Keychain Access
      • → System
      • → Import ca.crt
      • → Always Trust

      Vo Firefoxe:

      • Settings
      • → Privacy & Security
      • → Certificates
      • → Authorities
      • → Import

      a importovať:

      ca.crt

      8. Získanie CA certifikátu z freeIPA

      Z koncového zariadenia si môžete CA certifikát stiahnúť k sebe

      scp ubuntu@10.10.8.6:/home/ubuntu/ca.crt .

      Výsledok

      ubuntu@10.10.8.6's password: 
      ca.crt                                        100% 1582    48.3KB/s   00:00    

      9. Import certifikátu do Synology DSM

      Poznámka:
      Certificate predstavuje certifikát stiahnutý z FreeIPA.
      CA certifikát (ca.crt) sa do Synology DSM neimportuje.
      Používa sa iba na vytvorenie dôvery klientskych zariadení.

      V Synology DSM otvoríme:

      • Control Panel
      • → Security
      • → Certificate
      • → Add
      • → Add a new certificate
      • → Import certificate

      Aby sme mohli importovať certifikáty potrebujeme zo serveru stiahnúť napríklad

      nas.ibasterisk.local.key

      Z lokálneho termínalu si stiahneme zo servera certifikát nas.ibasterisk.local.key

      scp ivan@10.10.8.5:/home/ivan/nas.ibasterisk.local.key .
      
      

      Následne importujeme certifikáty

      • Private Key:
      • nas.ibasterisk.local.key
      • Certificate:
      • nas.ibasterisk.local.crt.pem (to je ten, čo sme stiahli z FreeIPA)
      • Intermediate Certifikate: ponecháme prázdne
      • Potvrdíme tlačidlom OK

      Následne ho traba predvoliť

      • Control Panel
      • → Security
      • → Certificate
      • → Settings

      Pôvodne býva nastavené:

      System default → synology

      Zmeníme na:

      System default → nas.ibasterisk.local

      A nastavenie uložíme

      Výsledok

      Po úspešnom importe a priradení certifikátu bude Synology DSM dostupné cez:

      https://nas.ibasterisk.local:5001

      Použitý certifikát:
      CN=nas.ibasterisk.local
      Vydavateľ:
      CN=Certificate Authority
      Stav:
      ✅ DNS funkčné
      ✅ Certifikát vydaný FreeIPA
      ✅ Certifikát importovaný do Synology DSM
      ✅ Certifikát nastavený ako System default
      ✅ HTTPS funkčné
      ✅ Connection Secure

      NETBOX-Pridanie zariadenia role a IP adresy

      Tento postup slúži na pridanie nového zariadenia do NetBoxu vrátane vytvorenia role, rozhrania a priradenia IP adresy.

      Vytvorenie Device Role

      V menu prejdite do Device Roles

      Pre príklad vytvoríme rolu Server.

      • Name
      • Server
      • Color napr. Gray

      Potom to uložíme

      Príklad vytvorenej roly

      Pridanie zariadenia

      V menu prejdite do:

      Devices → Devices

      kliknite na Add

      Postupne vyplňte požadované údaje:

      • Name
      • Device Role
      • Device Type
      • Site
      • Description (voliteľné)
      • Serial Number (voliteľné)

      Pridanie IP adresy

      V menu prejdite do:

      IPAM → IP Addresses

      Kliknite na Add.

      Vyplňte:

      • IP Address
      • Interface
      • DNS Name (voliteľné)
      • Status: Active

      Potom kliknite na Save.

      Nastavenie Primary IPv4

      Teraz sa vráťte do:

      Devices → Devices

      Otvorte zariadenie, ktorému chcete IP adresu priradiť.

      V poli Primary IPv4 vyberte novovytvorenú IP adresu a kliknite na Save.

      Výsledok

      Po dokončení postupu bude mať zariadenie:

      • vytvorenú Device Role,
      • vytvorený Device Type,
      • vytvorené sieťové rozhranie,
      • priradenú IP adresu,
      • nastavenú Primary IPv4 adresu.

      Príklad:

      Hostname: freeipa.ibasterisk.local
      Role: Server
      Device Type: Raspberry Pi 4
      Interface: eth0
      IP Address: 10.10.8.6/24
      Site: Home Lab

      Zistenie sériového čísla v Linuxe

      Na Linux serveri môžete sériové číslo zistiť príkazom:

      cat /proc/cpuinfo | grep Serial

      Získanú hodnotu vložte do poľa Serial Number.

      Po vyplnení údajov kliknite na Save.

      Po uložení bude zariadenie vytvorené, zatiaľ však bez IP adresy.

      Na konci Save

      Teraz vidíte, že máme všetko okrem IP

      Pridanie sieťového rozhrania

      V detaile zariadenia prejdite do:

      Device Components → Interfaces

      Kliknite na Add

      Vyplňte:

      Enabled: Yes

      Name: eth0

      Type: podľa typu rozhrania

      V menu prejdite do IPAM → IP Addresses a kliknite na Add

      Teraz sa vráťte do Devices

      Klikneme na Server, ktorému chceme pridať IP adresu → Otvorte zariadenie, ktorému chcete pridať IP adresu

      Výsledok

      FreeIPA pridanie SSL certikátu na lokálne domény

      Obsah

      1. Architektúra riešenia

      2. Caddy Reverse Proxy

      3. Inštalácia Caddy

      4. Vytvorenie DNS záznamu v Pi-hole

      5. Príprava FreeIPA

      6. Generovanie SSL certifikátu

      7. Vydanie certifikátu vo FreeIPA

      8. Stiahnutie a overenie certifikátu

      9. Nasadenie certifikátu do Caddy

      10. Dôvera certifikátom na klientskych zariadeniach

      11. Import FreeIPA Certificate Authority (ca.crt)

      12. Troubleshooting

      13. Používanie SSL certifikátov na ďalších zariadeniach

      Čo je SSL a na čo slúži

      SSL/TLS certifikát je digitálny certifikát slúžiaci na zabezpečenie šifrovanej komunikácie medzi klientom a serverom. Zabezpečuje overenie identity servera, ochranu prenášaných dát pred odpočúvaním a zachovanie integrity komunikácie. Je využívaný na ochranu webových stránok, aplikácií, e-mailových služieb a ďalších systémov komunikujúcich prostredníctvom siete.

      SSL/TLS certifikáty je možné nasadiť na verejne dostupné internetové služby a domény, ako aj na interné firemné systémy a lokálne servery. V internom prostredí sa používajú napríklad na zabezpečenie webových aplikácií, intranetových portálov, databázových serverov, VPN riešení alebo administrátorských rozhraní.

      Čo budeme potrebovať?

      Pre vystavenie SSL certifikátu na lokálnu IP adresu, budeme potrebovať

      • FreeIPA server,
      • DNS server
      • Caddy

      1. Architektúra riešenia

      Klient (Firefox, Chrome, Safari)
                      │
                      ▼
            Caddy Reverse Proxy
                 10.10.8.5
                      │
       ┌──────────────┼──────────────┐
       │              │              │
       ▼              ▼              ▼
      
      Grafana      Zabbix       NetBox
      :3000        :8080        :4030
      
                      │
                      ▼
      
      FreeIPA CA
      10.10.8.6
      
                      │
                      ▼
      
      Pi-hole DNS
      10.10.8.2

      2. Caddy Reverse Proxy

      Caddy je moderný webový server a reverzný proxy server, ktorý prijíma HTTPS požiadavky od klientov a presmerováva ich na interné služby bežiace na rôznych portoch.

      V našej infraštruktúre Caddy zabezpečuje:

      • SSL/TLS ukončenie
      • používanie certifikátov z FreeIPA CA
      • jednotný vstupný bod na portoch 80 a 443
      • reverzné proxy pre interné aplikácie

      3. Inštalácia Caddy

      Caddy môžete nainštalovať na ľubovoľný server. Odporúča sa však prevádzkovať ho na dedikovanom serveri, ktorý sprostredkúva HTTPS komunikáciu pre interné aplikácie.

      Ako prvé si pridáme repozitáre

      curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
      | sudo gpg --dearmor \
      -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
      
      curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
      | sudo tee /etc/apt/sources.list.d/caddy-stable.list

      Aktualizujeme repozitáre

      sudo apt update

      Nainštalujeme Caddy

      sudo apt install caddy

      Verziu nainštalovanej verzie Caddy

      caddy version

      Príklad

      caddy version 
      v2.11.4 h1:XKxkMTgNSizEvKG6QHue6cAsFOteU2qA61w2tKkCWi0=

      Certifikáty môžete ukladať napr. sem

      sudo mkdir -p /etc/caddy/certs

      4. Vytvorenie DNS záznamu v Pi-hole

      Ako prvé si musíte na DNS serveri vytvoriť A záznam. Ja používam Pi-hole

      Zvoľte Settings a následne Local DNS Records

      Môžete overiť vytvorenie A záznamu následovne

      nslookup wikijs.ibasterisk.local 10.10.8.2

      Príklad

      Server:		10.10.8.2
      Address:	10.10.8.2#53
      
      Name:	wikijs.ibasterisk.local
      Address: 10.10.8.6

      Ďalšie príklady na overenie

      dig @10.10.8.2 wikijs.ibasterisk.local A
      ping wikijs.ibasterisk.local

      A následne kliknite na plus. Týmto sa práve vytvoril A záznam, ktorý je na hostname wikijs.ibasterisk.local

      5. Príprava na FreeIPA

      Vo FreeIPA zvoľte Identity a následne Hosts

      V pravo hore Kliknite na Add

      Následne Add

      Následne kliknite v Identity naa Services

      Kliknite na Add

      • Services volíme HTTP
      • a hostname, v mojom prípade wikijs.ibasterisk.local
      • Následne kliknite na Force

      Kliknite na Add

      6. Generovanie SSL certifikátu

      Po vytvorení Host a Service záznamu vo FreeIPA môžeme vytvoriť privátny kľúč a certifikačnú požiadavku (CSR).

      Vytvorenie privátneho kľúča

      V mojom prípade vytváram certifikát pre službu:

      wikijs.ibasterisk.local

      Pomocou príkazu

      openssl genrsa -out wikijs.ibasterisk.local.key 4096

      Výsledkom je

      wikijs.ibasterisk.local.key

      Privátny kľúč slúži na identifikáciu servera a je potrebné ho uchovávať v bezpečí.

      Vytvorenie CSR požiadavky

      Následne vytvoríme požiadavku pre FreeIPA CA:

      openssl req -new \
      -key wikijs.ibasterisk.local.key \
      -out wikijs.ibasterisk.local.csr \
      -subj "/CN=wikijs.ibasterisk.local" \
      -addext "subjectAltName=DNS:wikijs.ibasterisk.local"

      Výsledkom je súbor:

      wikijs.ibasterisk.local.csr

      Kontrola CSR

      Pred odoslaním do FreeIPA odporúčam overiť SAN záznam:

      openssl req -in wikijs.ibasterisk.local.csr -noout -text | grep -A2 "Subject Alternative"

      Príklad výstupu

       X509v3 Subject Alternative Name: 
                          DNS:wikijs.ibasterisk.local
          Signature Algorithm: sha256WithRSAEncryption

      Zobrazenie CSR

      Obsah CSR zobrazíme:

      cat wikijs.ibasterisk.local.csr

      7. Vydanie certifikátu vo FreeIPA

      Vo FreeIPA otvoríme:

      • Identity
      • → Services
      • → HTTP/wikijs.ibasterisk.local
      • → Actions
      • → New Certificate

      Klikneme na službu: HTTP/wikijs.local@IBASTERISK.LOCAL

      Volíme Actions a následne New Certificate

      Do formulára vložíme celý obsah súboru:

      wikijs.ibasterisk.local.csr
      cat wikijs.ibasterisk.local.csr

      Následne klikneme na Issue

      8. Stiahnutie certifikátu

      Po úspešnom vydaní certifikátu klikneme na Actions a tam nájdeme možnosť Download:

      Pre lepšiu orientáciu som certifikát premenoval na:

      wikijs.ibasterisk.local.pem
      Poznámka:
      
      FreeIPA môže certifikát stiahnuť pod rôznymi názvami
      
      (napr. cert.pem, wikijs.ibasterisk.local.crt alebo
      
      wikijs.ibasterisk.local.crt.pem).
      
      Pre lepšiu orientáciu som certifikát premenoval na:
      
      wikijs.ibasterisk.local.pem

      Tento certifikát otvoríme v textovom editore a obsah skopírujeme (najrýchlešia cesta) a vložíme ho do:

      nano wikijs.ibasterisk.local.pem

      Overenie certifikátu

      openssl x509 \
      -in wikijs.ibasterisk.local.pem \
      -noout \
      -subject \
      -issuer

      Výstup

      subject=O=IBASTERISK.LOCAL, CN=wikijs.ibasterisk.local
      issuer=O=IBASTERISK.LOCAL, CN=Certificate Authority

      8. Nasadenie certifikátu do Caddy

      Vytvorenie adresára:

      sudo mkdir -p /etc/caddy/certs

      Kopírovanie certifikátu:

      sudo cp wikijs.ibasterisk.local.pem /etc/caddy/certs/wikijs.ibasterisk.local.crt

      Kopírovanie privátneho kľúča:

      sudo cp wikijs.ibasterisk.local.key /etc/caddy/certs/wikijs.ibasterisk.local.key

      Nastavenie oprávnení:

      sudo chown -R caddy:caddy /etc/caddy/certs/
      sudo chmod 600 /etc/caddy/certs/*.key
      sudo chmod 644 /etc/caddy/certs/*.crt

      Konfigurácia Caddy

      Otvoríme konfiguračný súbor:

      sudo nano /etc/caddy/Caddyfile
      wikijs.ibasterisk.local {
          tls /etc/caddy/certs/wikijs.ibasterisk.local.crt /etc/caddy/certs/wikijs.ibasterisk.local.key
      
          reverse_proxy 10.10.8.6:3070
      }

      10. Dôvera certifikátom na klientskych zariadeniach

      Po vytvorení a nasadení certifikátu je potrebné zabezpečiť, aby klientské zariadenia dôverovali certifikačnej autorite FreeIPA.

      Používanie certifikátov na ďalších zariadeniach

      Ak chcete využívať lokálne domény (.local) aj na ďalších zariadeniach
      (napr. notebook, PC, Mac, mobilný telefón alebo tablet),
      je potrebné importovať certifikát certifikačnej autority FreeIPA.
      
      Stačí importovať certifikát:
      
      ca.crt
      
      Po jeho importe budú automaticky dôveryhodné všetky certifikáty
      vydané FreeIPA Certificate Authority.
      
      Nie je potrebné importovať jednotlivé certifikáty služieb
      (grafana, zabbix, netbox, wikijs, synology a pod.).

      Bez tohto kroku bude prehliadač zobrazovať upozornenie:

      Not Secure

      alebo

      Warning: Potential Security Risk Ahead

      Získanie certifikátu CA

      sudo docker cp freeipa-server:/data/etc/ipa/ca.crt ~/ca.crt

      Overenie

      openssl x509 -in ~/ca.crt -noout -subject -issuer

      Príklad výstupu

      subject=O=IBASTERISK.LOCAL, CN=Certificate Authority
      issuer=O=IBASTERISK.LOCAL, CN=Certificate Authority

      Následne súbor:

      ca.crt

      stiahneme do klientského zariadenia a importujeme ho medzi dôveryhodné certifikáty.

      Po importe certifikátu ca.crt budú automaticky dôveryhodné všetky súčasné aj budúce certifikáty vydané FreeIPA Certificate Authority.

      11. Import FreeIPA Certificate Authority

      Do klientského zariadenia importujeme certifikát certifikačnej autority:

      macOS

      Keychain Access
      → System
      → Import Items

      12. Troubleshooting

      Chyba pri načítaní certifikátu

      Pri overovaní certifikátu sa môže zobraziť:

      Príčina

      Certifikát sa nenachádza v aktuálnom adresári alebo bol uložený pod iným názvom.

      Overenie

      ls -lh

      alebo

      find ~ -name "*.pem"

      Riešenie

      Použiť správny názov certifikátu:

      openssl x509 \
      -in wikijs.ibasterisk.local.pem \
      -noout \
      -subject \
      -issuer

      Chyba pri štarte Caddy

      Príklad chyby:

      loading certificates:
      permission denied

      alebo

      open /etc/caddy/certs/wikijs.ibasterisk.local.key:
      permission denied

      Príčina

      Používateľ alebo skupina caddy nemá oprávnenie čítať certifikát alebo privátny kľúč.

      Overenie

      ls -l /etc/caddy/certs/

      Nesprávny stav:

      -rw-r----- 1 root root ...

      správany stav

      -rw-r----- 1 root caddy ...

      Riešenie

      sudo chown root:caddy /etc/caddy/certs/*

      sudo chmod 640 /etc/caddy/certs/*

      Následne:

      sudo systemctl restart caddy

      Očakávaný výsledok:

      Active: active (running)

      Certifikát je platný, ale prehliadač zobrazuje „Not Secure“

      Príčina

      Klientské zariadenie nedôveruje certifikačnej autorite FreeIPA.

      Riešenie pre macOS

      Keychain Access
      → System
      → Import Items
      → ca.crt

      Nastaviť:

      Trust
      → Always Trust

      Riešenie pre Firefox

      Settings
      → Privacy & Security
      → Certificates
      → View Certificates
      → Authorities
      → Import

      Importovať

      ca.crt

      a zaškrtnúť:

      Trust this CA to identify websites

      DNS záznam vracia NXDOMAIN

      Overenie

      nslookup wikijs.ibasterisk.local 10.10.8.2

      alebo

      dig @10.10.8.2 wikijs.ibasterisk.local A

      Nesprávny DNS záznam smeruje mimo Caddy

      Príznaky

      HTTPS funguje, ale prehliadač zobrazuje:

      Not Secure

      Overenie certifikátu zobrazí:

      openssl s_client \
      -connect wikijs.ibasterisk.local:443 \
      -servername wikijs.ibasterisk.local \
      </dev/null 2>/dev/null | \
      openssl x509 -noout -subject -issuer
      subject= /O=IBASTERISK.LOCAL/CN=freeipa.ibasterisk.local
      issuer= /O=IBASTERISK.LOCAL/CN=Certificate Authority

      Napriek tomu, že bol vytvorený certifikát:

      wikijs.ibasterisk.local

      Príčina

      DNS záznam smeruje priamo na server služby namiesto na server s Caddy Reverse Proxy.

      Nesprávne:

      wikijs.ibasterisk.local -> 10.10.8.6

      Správne:

      wikijs.ibasterisk.local -> 10.10.8.5

      Overenie

      nslookup wikijs.ibasterisk.local

      Príklad nesprávneho stavu:

      Name: wikijs.ibasterisk.local
      Address: 10.10.8.6

      Riešenie

      V Pi-hole zmeniť DNS záznam:

      wikijs.ibasterisk.local

      na

      10.10.8.5

      Po úprave vyčistiť DNS cache:

      macOS

      sudo dscacheutil -flushcache
      sudo killall -HUP mDNSResponder

      Overenie

      nslookup wikijs.ibasterisk.local

      Výstup

      Name: wikijs.ibasterisk.local
      Address: 10.10.8.5

      Výsledok

      Po korekcii DNS bude klient komunikovať:

      Klient
          ↓
      Caddy (10.10.8.5)
          ↓
      Wiki.js (10.10.8.6:3070)

      a certifikát:

      CN=wikijs.ibasterisk.local

      bude zobrazený korektne.

      13. Používanie SSL certifikátov na ďalších zariadeniach

      Ak chcete pristupovať k interným službám z ďalších zariadení (napríklad notebook, PC, Mac, mobilný telefón alebo tablet), je potrebné na každom zariadení nainštalovať certifikát certifikačnej autority FreeIPA.

      Bez vykonania tohto kroku budú prehliadače zobrazovať upozornenia:

      Not Secure

      alebo

      Warning: Potential Security Risk Ahead

      Certifikát certifikačnej autority

      Zo servera FreeIPA si stiahnite:

      ca.crt

      Tento certifikát predstavuje internú certifikačnú autoritu (CA), ktorá vydáva certifikáty pre všetky lokálne služby.

      Služby využívajúce FreeIPA CA

      Po importe certifikátu ca.crt budú automaticky dôveryhodné všetky certifikáty vydané FreeIPA, napríklad:

      grafana.ibasterisk.local
      zabbix.ibasterisk.local
      netbox.ibasterisk.local
      evidence.ibasterisk.local
      wikijs.ibasterisk.local
      nas.ibasterisk.local

      Nie je potrebné importovať každý certifikát samostatne.

      Stačí importovať:Nie je potrebné importovať každý certifikát samostatne.

      Stačí importovať:

      ca.crt

      a zariadenie bude dôverovať všetkým budúcim certifikátom vydaným FreeIPA Certificate Authority.

      Výhoda

      Po vytvorení novej služby stačí:

      1. Vytvoriť DNS záznam
      2. Vytvoriť certifikát vo FreeIPA
      3. Nasadiť certifikát do služby

      Klientské zariadenia už nevyžadujú žiadnu ďalšiu konfiguráciu, pokiaľ majú nainštalovaný certifikát:

      ca.crt

      Implementácia SSL certifikatu na ďalšie typy zariadení

      NAS synology

      FortiGate 7.4.0

      Bezpečné vymazanie disku pomocou ShredOS

      ShredOS je bootovateľný malý systém určený priamo na bezpečné mazanie diskov. Ide o free/open-source nástroj, ktorý sa spúšťa priamo z USB kľúča bez potreby inštalácie do operačného systému.

      ShredOS podporuje bootovanie cez BIOS aj UEFI a je vhodný na mazanie HDD, SSD, NVMe SSD aj USB diskov. Na samotné mazanie používa nástroj nwipe. Okrem toho obsahuje aj nástroje ako hdparm a nvme-cli, ktoré sa hodia hlavne pri práci so SATA SSD a NVMe SSD diskami.

      Oficiálna stránka projektu:

      https://shredos.org/

      1. Použitie ShredOS

      ShredOS sa používa v prípadoch, keď je potrebné bezpečne vymazať dáta z disku tak, aby ich nebolo možné bežne obnoviť.

      Typické použitie:

      • vyradenie starého počítača alebo notebooku,
      • príprava disku na predaj,
      • príprava disku na opätovné použitie,
      • likvidácia dát zo starého HDD alebo SSD,
      • vymazanie citlivých firemných alebo osobných údajov.

      2. Potrebné nástroje

      Na vytvorenie bootovacieho USB kľúča je potrebné:

      • USB kľúč,
      • stiahnutý obraz ShredOS,
      • nástroj na zápis obrazu na USB kľúč.

      Na zápis ShredOS obrazu na USB je možné použiť napríklad:

      • Rufus,
      • Win32 Disk Imager,
      • balenaEtcher.

      3. Vytvorenie bootovacieho USB kľúča

      1. Stiahnite obraz ShredOS z oficiálnej stránky:
      https://shredos.org/
      1. Pripojte USB kľúč do počítača.
      2. Spustite nástroj Rufus, Win32 Disk Imager alebo balenaEtcher.
      3. Vyberte stiahnutý obraz ShredOS.
      4. Vyberte správny USB kľúč.
      5. Spustite zápis obrazu na USB kľúč.
      6. Po dokončení zápisu bezpečne odpojte USB kľúč.

      Upozornenie: Pri zápise obrazu na USB kľúč sa všetky dáta na USB kľúči vymažú.

      4. Bootovanie zo ShredOS USB

      1. Vložte pripravený USB kľúč so ShredOS do počítača alebo notebooku.
      2. Zapnite alebo reštartujte zariadenie.
      3. Otvorte boot menu.

      Najčastejšie klávesy pre boot menu sú:

      F12
      F11
      F10
      ESC
      DEL
      1. V boot menu vyberte USB kľúč.
      2. Po potvrdení sa spustí systém ShredOS.

      5. Výber disku na vymazanie

      Po spustení ShredOS sa zobrazí zoznam dostupných diskov.

      Pred označením disku je potrebné skontrolovať:

      • veľkosť disku,
      • model disku,
      • typ disku,
      • prípadne sériové číslo disku.

      Je veľmi dôležité vybrať správny disk. Po spustení mazania už nie je možné dáta jednoducho obnoviť.

      Odporúčanie: Ak je to možné, pred mazaním odpojte všetky ostatné disky, ktoré nechcete vymazať. Zníži sa tým riziko omylu.

      6. Spustenie mazania disku

      V rozhraní ShredOS označte disk, ktorý chcete vymazať.

      Keď je disk označený na vymazanie, spustenie mazania sa vykoná klávesovou skratkou:

      Shift + S

      Po stlačení tejto klávesovej skratky sa spustí proces mazania označeného disku.

      Pred spustením ešte raz skontrolujte, či je označený správny disk.

      7. Dôležité upozornenie pri SSD diskoch

      Pri SSD diskoch nie je ideálne používať staré metódy mazania typu viacnásobné prepisovanie, napríklad „7× prepísať disk“. SSD disky používajú technológie ako wear-leveling a interné rezervné bloky.

      To znamená, že niektoré dáta sa môžu nachádzať aj v častiach disku, ku ktorým sa bežný softvérový prepis nemusí dostať.

      Pri SSD a NVMe SSD diskoch je vhodnejšie použiť metódy ako:

      Secure Erase
      Sanitize
      Crypto Erase

      Tieto metódy využívajú priamo radič disku a sú vhodnejšie na bezpečné mazanie SSD diskov.

      ShredOS obsahuje aj nástroje hdparm a nvme-cli, ktoré je možné použiť pri pokročilejšom mazaní SATA SSD a NVMe SSD diskov.

      8. Logy a potvrdenie o vymazaní

      Pri mazaní cez ShredOS / nwipe sa po dokončení vytvárajú výstupné súbory, ktoré slúžia ako potvrdenie o vykonanom vymazaní.

      Po dokončení mazania sa môžu vytvoriť napríklad:

      • textový log s výsledkom mazania,
      • PDF certifikát alebo report o vymazaní,
      • údaje o disku,
      • model disku,
      • veľkosť disku,
      • sériové číslo disku,
      • výsledok mazania,
      • diagnostické súbory ako transfer.log,
      • výstup systému dmesg.

      Príklad názvu log súboru:

      nwipe_log_20200418-084910.txt

      Tieto súbory sa ukladajú na USB kľúč, z ktorého bol ShredOS spustený.

      Po dokončení mazania je vhodné USB kľúč pripojiť do bežného počítača a skopírovať si PDF report a textový log do dokumentácie alebo archívu.

      9. Kontrola po dokončení mazania

      Po dokončení procesu je potrebné skontrolovať výsledok mazania.

      V ShredOS by mal byť pri disku zobrazený stav, ktorý potvrdzuje úspešné dokončenie procesu.

      Odporúča sa skontrolovať:

      • či proces skončil úspešne,
      • či nevznikla chyba počas mazania,
      • či bol vytvorený log,
      • či bol vytvorený PDF report,
      • či údaje v reporte zodpovedajú správnemu disku.

      Ako doplnkové potvrdenie je možné odfotiť obrazovku po dokončení mazania, kde je viditeľný výsledok a označenie disku.

      10. Odporúčaný interný postup

      Odporúčaný postup pri vymazaní disku:

      1. Pripraviť bootovacie USB so ShredOS.
      2. Odpojiť všetky disky, ktoré nemajú byť vymazané.
      3. Nabootovať zariadenie zo ShredOS USB.
      4. Skontrolovať zoznam diskov.
      5. Vybrať správny disk podľa veľkosti, modelu a sériového čísla.
      6. Označiť disk na vymazanie.
      7. Spustiť mazanie klávesovou skratkou:
      Shift + S
      1. Počkať na dokončenie procesu.
      2. Skontrolovať výsledok mazania.
      3. Skopírovať log a PDF report z USB kľúča.
      4. Uložiť report do dokumentácie alebo archívu.

      11. Bezpečnostné upozornenie

      Mazanie disku pomocou ShredOS je nevratný proces. Po spustení mazania budú dáta z vybraného disku odstránené a ich obnova nebude bežným spôsobom možná.

      Pred spustením mazania je potrebné vždy skontrolovať, či je označený správny disk.

      Odporúča sa overiť:

      veľkosť disku
      model disku
      sériové číslo disku

      Ak existuje pochybnosť, mazanie nespúšťajte a najskôr overte, ktorý disk je správny.

      12. Záver

      ShredOS je jednoduchý a praktický nástroj na bezpečné vymazanie diskov. Je vhodný pre jednorazové aj opakované použitie a vďaka bootovaniu z USB ho nie je potrebné inštalovať do počítača.

      Výhodou je jednoduché ovládanie, podpora HDD, SSD a NVMe diskov a možnosť vytvorenia logu alebo PDF reportu o vykonanom vymazaní.

      Pre bežné použitie stačí vytvoriť bootovacie USB, nabootovať zariadenie, vybrať správny disk a spustiť mazanie. Pri SSD a NVMe diskoch je vhodné zvážiť použitie metód Secure Erase, Sanitize alebo Crypto Erase.

      Používanie príkazu SCP na kopírovanie súborov medzi počítačom a serverom

      Úvod

      Príkaz SCP slúži na bezpečné kopírovanie súborov medzi lokálnym počítačom a vzdialeným serverom. Skratka SCP znamená Secure Copy Protocol.

      SCP využíva na prenos dát protokol SSH, takže komunikácia medzi počítačom a serverom je šifrovaná. Používa sa hlavne pri správe Linux serverov, Docker serverov, VPS, Raspberry Pi alebo iných zariadení, ku ktorým sa pripájame cez SSH.

      Pomocou SCP je možné kopírovať:

      • súbory z lokálneho počítača na server,
      • súbory zo servera do lokálneho počítača,
      • celé priečinky,
      • konfiguračné súbory,
      • zálohy,
      • skripty,
      • logy alebo exportované dáta.

      SCP funguje na systémoch Linux, macOS aj Windows.

      Základná syntax príkazu SCP

      Základný tvar príkazu je:

      scp zdroj ciel

      Pri kopírovaní na vzdialený server sa používa tvar:

      scp subor používateľ@server:/cesta/kam/uložiť

      Pri kopírovaní zo servera do počítača sa používa tvar:

      scp používateľ@server:/cesta/k/suboru /lokálna/cesta

      Príklad:

      scp test.txt ivan@10.10.8.5:/home/ivan/

      Tento príkaz skopíruje súbor test.txt z aktuálneho počítača na server 10.10.8.5 do priečinka /home/ivan/.

      Predpoklady pre používanie SCP

      Aby bolo možné SCP používať, musia byť splnené tieto podmienky:

      1. Na serveri musí byť zapnutá služba SSH.
      2. Musíš poznať IP adresu alebo DNS názov servera.
      3. Musíš poznať používateľské meno na serveri.
      4. Musíš mať heslo alebo SSH kľúč.
      5. Firewall musí povoľovať SSH port, štandardne port 22.

      Príklad SSH pripojenia na server:

      ssh ivan@10.10.8.5

      Ak toto funguje, vo väčšine prípadov bude fungovať aj SCP.

      opírovanie súboru z počítača na server

      Linux alebo macOS

      Ak chceme skopírovať súbor z počítača na server, použijeme:

      scp /cesta/k/suboru používateľ@IP_adresa_servera:/cieľová/cesta/

      príklad

      scp /home/ivan/Dokumenty/test.txt ivan@10.10.8.5:/home/ivan/

      Tento príkaz skopíruje súbor test.txt z priečinka Dokumenty na server do priečinka /home/ivan/.

      Ak sa nachádzame priamo v priečinku, kde je súbor uložený, stačí zadať iba názov súboru:

      scp test.txt ivan@10.10.8.5:/home/ivan/

      Kopírovanie súboru zo servera do počítača

      Linux alebo macOS

      Ak chceme skopírovať súbor zo servera do lokálneho počítača, použijeme:

      scp používateľ@IP_adresa_servera:/cesta/k/suboru /lokálna/cesta/

      Príklad kopírovania do priečinka Dokumenty:

      scp ivan@10.10.8.5:/home/ivan/zaloha.txt /home/ivan/Dokumenty/

      Príklad kopírovania na pracovnú plochu:

      scp ivan@10.10.8.5:/home/ivan/zaloha.txt /home/ivan/Desktop/

      Na macOS môže byť cesta na pracovnú plochu napríklad:

      scp ivan@10.10.8.5:/home/ivan/zaloha.txt ~/Desktop/

      Alebo do dokumentov:

      scp ivan@10.10.8.5:/home/ivan/zaloha.txt ~/Documents/

      Znak ~ znamená domovský priečinok aktuálneho používateľa.

      Používanie SCP vo Windows

      Vo Windows 10 a Windows 11 je možné používať SCP priamo cez:

      • Windows Terminal,
      • PowerShell,
      • Príkazový riadok,
      • prípadne cez Git Bash.

      Moderné verzie Windows už majú často OpenSSH klienta nainštalovaného automaticky.

      Overenie, či je SCP dostupné:

      scp

      Ak sa zobrazí nápoveda k príkazu, SCP je dostupné.

      Kopírovanie súboru z Windows na server

      Príklad súboru uloženého na pracovnej ploche:

      scp C:\Users\Ivan\Desktop\test.txt ivan@10.10.8.5:/home/ivan/

      Tento príkaz skopíruje súbor test.txt z pracovnej plochy Windows na server do priečinka /home/ivan/.

      Príklad kopírovania z priečinka Dokumenty:

      scp C:\Users\Ivan\Documents\poznamky.txt ivan@10.10.8.5:/home/ivan/

      Ak cesta obsahuje medzery, treba ju dať do úvodzoviek:

      scp "C:\Users\Ivan\Desktop\moj subor.txt" ivan@10.10.8.5:/home/ivan/

      Kopírovanie súboru zo servera do Windows

      Príklad kopírovania zo servera na pracovnú plochu Windows:

      scp ivan@10.10.8.5:/home/ivan/zaloha.txt C:\Users\Ivan\Desktop\

      Príklad kopírovania do Dokumentov:

      scp ivan@10.10.8.5:/home/ivan/zaloha.txt C:\Users\Ivan\Documents\

      Ak cieľová cesta obsahuje medzery, použijeme úvodzovky:

      scp ivan@10.10.8.5:/home/ivan/zaloha.txt "C:\Users\Ivan\Desktop\Moje subory\"

      Kopírovanie celého priečinka

      Ak chceme kopírovať celý priečinok, použijeme parameter -r.

      Písmeno r znamená recursive, teda rekurzívne kopírovanie vrátane všetkých súborov a podpriečinkov.

      Kopírovanie priečinka z počítača na server

      scp -r /home/ivan/Dokumenty/projekt ivan@10.10.8.5:/home/ivan/

      Tento príkaz skopíruje celý priečinok projekt na server.

      Kopírovanie priečinka zo servera do počítača

      scp -r ivan@10.10.8.5:/home/ivan/projekt /home/ivan/Dokumenty/

      Vo Windows napríklad:

      scp -r ivan@10.10.8.5:/home/ivan/projekt C:\Users\Ivan\Desktop\

      Kopírovanie na iný SSH port

      Štandardný SSH port je 22. Ak server používa iný port, pri SCP sa používa parameter -P.

      Dôležité je, že pri SCP je parameter veľké -P, nie malé -p.

      Príklad:

      scp -P 2222 test.txt ivan@10.10.8.5:/home/ivan/

      Tento príkaz skopíruje súbor test.txt na server, kde SSH beží na porte 2222.


      Kopírovanie pomocou SSH kľúča

      Ak sa na server pripájame pomocou SSH kľúča, použijeme parameter -i.

      Príklad:

      scp -i ~/.ssh/id_rsa test.txt ivan@10.10.8.5:/home/ivan/

      Vo Windows môže cesta ku kľúču vyzerať napríklad takto:

      scp -i C:\Users\Ivan\.ssh\id_rsa C:\Users\Ivan\Desktop\test.txt ivan@10.10.8.5:/home/ivan/

      Praktické príklady

      Skopírovanie súboru na server

      scp test.txt ivan@10.10.8.5:/home/ivan/

      Skopírovanie súboru zo servera na pracovnú plochu v Linuxe

      scp ivan@10.10.8.5:/home/ivan/test.txt ~/Desktop/

      Skopírovanie súboru zo servera do Dokumentov na macOS

      scp ivan@10.10.8.5:/home/ivan/test.txt ~/Documents/

      Skopírovanie súboru zo servera na pracovnú plochu vo Windows

      scp ivan@10.10.8.5:/home/ivan/test.txt C:\Users\Ivan\Desktop\

      Skopírovanie priečinka na server

      scp -r projekt ivan@10.10.8.5:/home/ivan/

      Skopírovanie priečinka zo servera

      scp -r ivan@10.10.8.5:/home/ivan/projekt ~/Documents/

      Najčastejšie chyby

      Permission denied

      Chyba:

      Permission denied

      Znamená, že používateľ nemá oprávnenie zapisovať do cieľového priečinka, alebo je zadané nesprávne heslo.

      Riešenie:

      Skopírovať súbor najskôr do domovského priečinka používateľa:

      scp test.txt ivan@10.10.8.5:/home/ivan/

      Potom sa pripojiť na server cez SSH a súbor presunúť pomocou sudo:

      sudo mv test.txt /cieľová/cesta/

      No such file or directory

      Chyba:

      No such file or directory

      Znamená, že zadaná cesta alebo súbor neexistuje.

      Treba skontrolovať:

      • či je správny názov súboru,
      • či je správna cesta,
      • či sa v názve nenachádza preklep,
      • či cesta s medzerami je v úvodzovkách.

      Connection refused

      Connection refused

      Znamená, že sa nepodarilo pripojiť na SSH službu.

      Možné príčiny:

      • SSH služba na serveri nebeží,
      • je zadaná zlá IP adresa,
      • SSH beží na inom porte,
      • firewall blokuje spojenie.

      Overenie SSH pripojenia:

      ssh ivan@10.10.8.5

      Host key verification failed

      Chyba:

      Host key verification failed

      Táto chyba sa môže objaviť, ak sa zmenil SSH kľúč servera, napríklad po reinštalácii systému.

      Riešenie treba robiť opatrne, pretože táto hláška môže znamenať aj bezpečnostné riziko. Ak vieme, že server bol naozaj preinštalovaný, môžeme odstrániť starý záznam zo súboru known_hosts.

      Príklad:

      ssh-keygen -R 10.10.8.5

      Potom sa znova pripojíme:

      ssh ivan@10.10.8.5

      Užitočné parametre SCP

      ParameterVýznam
      -rKopírovanie celého priečinka
      -PPoužitie iného SSH portu
      -iPoužitie SSH privátneho kľúča
      -vPodrobnejší výpis pre diagnostiku
      -CKompresia počas prenosu

      Príklad s viacerými parametrami:

      scp -r -P 2222 -i ~/.ssh/id_rsa projekt ivan@10.10.8.5:/home/ivan/

      Rozdiel medzi SCP a SFTP

      SCP je jednoduchý príkaz určený hlavne na rýchle kopírovanie súborov.

      SFTP je interaktívnejší spôsob práce so súbormi na serveri. Umožňuje napríklad prehliadať priečinky, nahrávať a sťahovať súbory podobne ako cez FTP klienta.

      Na jednoduché kopírovanie jedného súboru alebo priečinka je SCP veľmi praktické. Na pravidelnú správu viacerých súborov môže byť pohodlnejší SFTP klient, napríklad WinSCP.


      Odporúčanie z praxe

      Pri práci so serverom je vhodné najskôr overiť SSH pripojenie:

      ssh ivan@10.10.8.5

      Ak SSH funguje, potom môžeme použiť SCP.

      Pri kopírovaní do systémových priečinkov, napríklad /etc, /var/www alebo /opt, je lepšie najskôr súbor skopírovať do domovského priečinka používateľa:

      scp konfiguracia.conf ivan@10.10.8.5:/home/ivan/

      Až následne ho na serveri presunúť pomocou sudo:

      sudo mv konfiguracia.conf /etc/sluzba/

      Tento postup je bezpečnejší a prehľadnejší.


      Záver

      Príkaz SCP je jednoduchý a užitočný nástroj na bezpečné kopírovanie súborov medzi lokálnym počítačom a serverom. Funguje na Linuxe, macOS aj Windows a využíva SSH spojenie, vďaka čomu sú prenášané dáta šifrované.

      Najčastejšie sa používa na kopírovanie konfiguračných súborov, záloh, skriptov, logov alebo projektových priečinkov. Pri správnej znalosti základnej syntaxe je SCP veľmi rýchly spôsob, ako preniesť súbor na server alebo zo servera späť do počítača.

      Webmin na Raspberry Pi s Ubuntu 24.04

      Čo je Webmin a na čo sa používa?

      Webmin je webové administračné rozhranie pre Linux server.

      Umožňuje spravovať server bez terminálu cez prehliadač.

      Využitie Webminu

      Webmin slúži ako webové administračné rozhranie pre Linux server. Umožňuje spravovať systém cez prehliadač bez nutnosti používať terminál pri každej bežnej úlohe. Je vhodný najmä ako prehľadová a servisná konzola pre Raspberry Pi, virtuálne servery alebo klasické Linux servery.

      Hlavné využitie

      Pomocou Webminu je možné jednoducho kontrolovať základný stav servera, napríklad vyťaženie procesora, pamäte RAM, využitie disku, sieťové rozhrania, bežiace procesy a celkovú dostupnosť systému.

      Webmin umožňuje aj správu systémových služieb. Administrátor vie cez webové rozhranie skontrolovať, či služba beží, prípadne ju reštartovať, zastaviť alebo nastaviť jej automatické spúšťanie po štarte systému.

      Ďalším praktickým využitím je správa aktualizácií. Namiesto ručného zadávania príkazov v termináli je možné dostupné aktualizácie systému skontrolovať a nainštalovať priamo cez webové rozhranie.

      Webmin poskytuje aj prístup k systémovým logom, čo pomáha pri diagnostike problémov. Vďaka tomu je možné rýchlejšie zistiť, prečo služba neštartuje, či sa nevyskytujú chyby na disku alebo či sa niekto nepokúša neoprávnene prihlasovať do systému.

      Ďalšie možnosti

      Webmin sa dá použiť aj na správu používateľov, skupín, plánovaných úloh cez cron, súborov, diskových oddielov, sieťových nastavení a základnej konfigurácie servera.

      Pri Raspberry Pi je užitočný hlavne na rýchlu kontrolu systému, kontrolu voľného miesta na disku alebo SD karte, reštartovanie služieb a jednoduchú správu aktualizácií.

      Odporúčané rozdelenie:

      Webmin    = správa Linux systému
      Portainer = správa Docker kontajnerov
      SSH       = pokročilé zásahy a opravy

      Použitie pri Pi-hole / DNS serveri

      Na Pi-hole serveri môže Webmin slúžiť ako doplnkový nástroj na kontrolu systému, aktualizácie, logy a stav služieb. Samotné DNS pravidlá a blokovanie reklám je však vhodné spravovať cez webové rozhranie Pi-hole.

      Pri DNS serveri je vhodné byť opatrný, pretože ide o dôležitú časť siete. Odporúča sa používať Webmin hlavne ako prehľadový a servisný nástroj, nie ako hlavné miesto na zmenu sieťovej konfigurácie.

      Bezpečnostné odporúčanie

      Webmin by nemal byť vystavený priamo do internetu. Odporúča sa povoliť prístup iba z lokálnej siete alebo cez VPN.

      Použitie pri Docker serveroch

      Na serveroch, kde bežia Docker aplikácie, je Webmin vhodný najmä na správu samotného operačného systému. Docker kontajnery je vhodnejšie spravovať cez Portainer alebo cez príkazy docker compose.

      Technická špecifikácia / minimálne požiadavky

      Webmin je možné používať nielen na Raspberry Pi, ale aj na klasickom Linux serveri, virtuálnom serveri alebo VPS. Ide o ľahké webové administračné rozhranie, takže nepotrebuje vysoký výkon. Nároky závisia hlavne od toho, aké ďalšie služby bežia na serveri.

      PoložkaMinimálna požiadavkaOdporúčané
      ZariadenieRaspberry Pi 3, VM, VPS alebo iný Linux serverRaspberry Pi 4/5, VM, VPS alebo klasický server
      Operačný systémUbuntu Server 24.04 alebo iná podporovaná Linux distribúciaUbuntu Server 24.04 LTS
      RAM512 MB1 GB a viac
      Disk1 GB voľného miesta4 GB a viac podľa služieb
      SieťPrístup na internet počas inštalácieStabilné LAN pripojenie
      PoužívateľÚčet so sudo oprávneniamiSamostatný admin používateľ
      Port WebminTCP port 10000Povoliť iba z LAN/VPN
      PrehliadačModerný webový prehliadačChrome, Edge, Firefox
      Ďalšie službyBez ďalších náročných služiebPri Dockeri/DNS odporúčam viac RAM

      Použitie:

      • správa používateľov a skupín
      • správa služieb (napr. SSH, Docker, DNS)
      • sledovanie CPU, RAM a disku
      • správa aktualizácií systému
      • práca s logmi
      • základná konfigurácia servera

      Ako prvé aktualizujeme zoznam balíkov:

      sudo apt update

      Inštalácia potrebných balíkov:

      sudo apt install curl gnupg apt-transport-https -y

      Pridanie Webmin repozitára:

      curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
      

      Následne spustíme skript:

      sudo sh webmin-setup-repo.sh

      Po úspešnom pridaní sa zobrazí hláška:

      Webmin and Usermin can be installed with: apt-get install --install-recommends webmin usermin
      
      Poznámka:
      
      Tento príkaz obsahuje aj balík usermin. Ak by sme ho použili celý, nainštaluje sa Webmin aj Usermin.
      
      V tejto dokumentácii budeme inštalovať iba Webmin.

      Inštalácia Webminu:

      Odporúčaná inštalácia (iba Webmin):

      sudo apt update
      sudo apt install --install-recommends webmin -y

      Overenie inštalácie:

      sudo systemctl status webmin

      Kontrola portu:

      sudo ss -tlnp | grep 10000

      Prístup do Webminu:

      Cez webový prehliadač otvorte:

      https://IP_ADRESA_SERVERA:10000

      Prihlasujete sa používateľom, ktorý má sudo oprávnenia.

      Bezpečnosť:

      • Webmin nepúšťať priamo na internet
      • používať iba LAN alebo VPN
      • používať silné heslo
      • pravidelne aktualizovať systém

      Voliteľne: Usermin

      Usermin nie je potrebný pre serverovú správu. Používa sa hlavne pre koncových používateľov, napríklad na e-mail, domovský adresár alebo zmenu hesla.

      Táto služba počúva na porte 20000.

      Príklad:

      https://IP_ADRESA_SERVERA:20000

      Prihlasujete sa používateľom, ktorý má sudo oprávnenia.

      Pi-hole a MAC os

      Pri implenetovaní Pi-hole som narazil na problém, že ak som si chcel stiahnúť aplikáciu, tak som mal problém.

      Riešenie

      Do allowed domains som poppridával

      itunes.apple.com
      apps.apple.com
      mzstatic.com
      cdn-apple.com
      apple.com
      aaplimg.com
      icloud.com
      apple-dns.net
      init.itunes.apple.com
      xp.apple.com

      Keď DHCP prideľuje hostname ale my ho chceme zmeniť na tvrdo a nastaviť statickú IP adredsu Ubuntu 24.04

      Ako prvé nastavíme statickú IP adresu na servery a DNS

      sudo vim /etc/netplan/*.yaml
      network:
        version: 2
        renderer: networkd
        ethernets:
          eth0:
            dhcp4: no
            addresses:
              - 10.10.8.5/24
            gateway4: 10.10.8.1
            nameservers:
              addresses:
                - 10.10.8.2
                - 8.8.8.8
      
      

      Potom použijeme príkaz na uloženie konfigurácie

      sudo netplan apply

      Potom otvorte cloud.cfg

      sudo vim /etc/cloud/cloud.cfg

      Nájdite riadok
      preserve_hostname a zadajte true

      preserve_hostname: true

      Uložte to a reštartujte

      sudo reboot

      Potom nastavte hostname napríklad mon.ibasterisk.local

      sudo hostnamectl set-hostname mon.ibasterisk.local

      Znovu reštartujte server

      Výsledok

      hostname
      
      mon.ibasterisk.local
      
      

      Tesseract OCR

      Tesseract OCR je open-source nástroj, ktorý prevádza obrázky (JPG, PNG) na editovateľný text. Je dostupný pre Linux, Windows a macOS a používa sa cez príkazový riadok alebo programátorské rozhrania (napr. Python). Pre presné fungovanie môže vyžadovať jazykové balíky a dostatok pamäte RAM a miesta na disku. Vhodný je na spracovanie naskenovaných dokumentov, automatizované OCR riešenia a prevod obrázkov na text.

      ParameterOdporúčanie / Poznámka
      Operačný systémLinux, Windows, macOS (32- alebo 64-bit)
      CPU2 jadrový pre rýchle spracovanie sa odporúča viac
      RAMMinimálne 1–2 GB, odporúčané 4 GB+ pri veľkých alebo viacstranových dokumentoch
      Diskový priestorMin. 100 MB pre Tesseract a základné jazykové balíky; viac pre veľké dokumenty alebo viaceré jazykové balíky
      Jazykové balíkyVoliteľné, ale odporúčané pre presné OCR (napr. čeština, angličtina)
      Prístup k sietiNie je povinný, ale môže byť potrebný pri sťahovaní jazykových balíkov
      Podpora formátovObrázky: PNG, JPG, TIFF; PDF (vyžaduje OCRmyPDF alebo ďalšie nástroje)

      Urobíme, ako prvé update

      sudo apt update
      sudo apt install tesseract-ocr tesseract-ocr-ces python3 python3-pip python3-venv -y

      Vytvoríme, ako prvé priečinok pre server

      mkdir -p ~/tesseract-server
      cd ~/tesseract-server

      Vytvoríme virtuálne prostredie

      python3 -m venv venv
      source venv/bin/activate

      Nainštalujeme python balíky

      pip install flask pillow pytesseract server.py

      Vytvoríme dokument napr.

      nano server.py

      Vložíme do neho

      from flask import Flask, request
      import pytesseract
      from PIL import Image
      import io
      
      app = Flask(__name__)
      
      @app.get("/")
      def index():
          return '''
          <h1>OCR Server</h1>
          <form action="/ocr" method="post" enctype="multipart/form-data">
              <input type="file" name="file"/>
              <input type="submit"/>
          </form>
          '''
      
      @app.post("/ocr")
      def ocr():
          if "file" not in request.files:
              return {"error": "No file uploaded"}, 400
      
          file = request.files["file"]
          img = Image.open(io.BytesIO(file.read()))
          text = pytesseract.image_to_string(img, lang="ces")
          return {"text": text}
      
      if __name__ == "__main__":
          app.run(host="0.0.0.0", port=5000)

      Uložíme a spustíme

      python3 server.py

      Otvoríme webový prehliadač v tvare

      http://X.X.X.X:5000

      Ak teraz stlačíme CTRL + C, tak program nám prestane fungovať. Aby fungoval, aj naďalej, tak je potrebné mu spustiť proces, aby sa spustil priamo s boot operačného systému

      Vytvorme systemd súbor

      sudo nano /etc/systemd/system/tesseract-server.service

      Do neho vložíme

      [Unit]
      Description=Tesseract OCR API Server
      After=network.target
      
      [Service]
      Type=simple
      User=ivan
      WorkingDirectory=/home/ivan/tesseract-server
      ExecStart=/home/ivan/tesseract-server/venv/bin/python3 /home/ivan/tesseract-server/server.py
      Restart=always
      
      [Install]
      WantedBy=multi-user.target

      Našítamea aktivujeme službu

      sudo systemctl daemon-reload
      sudo systemctl enable tesseract-server
      sudo systemctl start tesseract-server

      Môžeme skontrolovať stav

      sudo systemctl status tesseract-server

      Tactical RMM

      Definícia TacticalRMM

      TacticalRMM je open-source RMM (Remote Monitoring and Management) platforma, ktorá umožňuje spravovať, monitorovať a automatizovať správu IT endpointov, prevažne Windows a Linux zariadení.

      Hlavné funkcie:

      • Nasadenie agentov na endpointy (Windows, Linux)
      • Monitoring systému, procesov, diskov, služieb
      • Správa softvéru a aktualizácií
      • Spúšťanie skriptov a automatizovaných úloh
      • Integrácia s MeshCentral pre vzdialený prístup
      • Dashboard a webové UI pre správu klientov a lokalít

      TacticalRMM je bezplatný a open-source, využíva Django/Python na backend, PostgreSQL databázu a Nginx ako reverznú proxy.


      Porovnanie s Lansweeper

      Funkcia / vlastnosťTacticalRMMLansweeper
      TypOpen-source RMMKomerčný ITAM/RMM
      Platforma agentovWindows, LinuxWindows, Linux, MacOS, sieťové zariadenia
      MonitoringÁno – služby, disky, procesyÁno – hardware, software, licencie
      AutomatizáciaÁno – skripty, úlohyÁno – obmedzene, viac cez workflow
      Dashboard / UIWebové, vlastný dashboardWebové, detailný prehľad IT assetov
      CenaZdarma, self-hostedKomerčný, licencovaný
      IntegrácieMeshCentral (remote access)Rôzne ITSM a ticketing nástroje
      DatabázaPostgreSQLVlastná / MSSQL
      NasadenieLokálne / self-hosted / Docker optionalCloud alebo lokálne

      Hlavný rozdiel: TacticalRMM je viac RMM-focused, open-source a flexibilný, Lansweeper je IT asset management s rozšírenými reportingovými a inventárnymi funkciami.

      Minimálne požiadavky na TacticalRMM (self-hosted, bez Dockeru)

      Server (backend + frontend):

      • OS: Debian 12 (Bookworm) alebo Ubuntu 22.04 LTS
      • RAM: ≥ 4 GB (odporúčané 8 GB)
      • CPU: 2 vCPU alebo viac
      • Disk: ≥ 30 GB
      • Sieť: LAN pripojenie, otvorený port 443 (HTTPS)

      Softvér / balíky:

      • Python 3.11+ s venv a pip
      • PostgreSQL ≥ 14
      • Redis
      • Nginx
      • UFW (voliteľný firewall)
      • Curl, wget, sudo

      Endpointy (Windows/Linux):

      • Windows 10+ alebo Linux s kompatibilným agentom
      • Prístup k serveru cez hostname / IP (LAN alebo verejná IP)

      Ako prvé je potrebné buď do s=uboru hosts pridať IP adresy v tvare

      C:\Windows\System32\drivers\etc
      
      192.168.245.131 rmm.ibasterisk.local
      192.168.245.131 api.ibasterisk.local
      192.168.245.131 mesh.ibasterisk.local

      Alebo, ak máte DNS server. Ja mám pi hole, tak A záznami sa nastavujú následovne.

      Inštalácia

      Ako prvé je potrebné urobiť upgrade a nainštalovať python3

      sudo apt update && sudo apt -y upgrade
      sudo apt install -y wget curl sudo ufw python3-venv python3-pip
      

      Spustenie inštalátora

      wget https://raw.githubusercontent.com/amidaware/tacticalrmm/master/install.sh
      chmod +x install.sh
      ./install.sh –insecure

      Pri spustení skriptu Vás systém bude vyzývať napísať DNS záznamy. Tieto sú povinné.

      • api
      • rmm
      • mesh
      Enter the subdomain for the backend (Django API): api.ibasterisk.local
      Enter the subdomain for the frontend (RMM UI): rmm.ibasterisk.local
      Enter the subdomain for MeshCentral: mesh.ibasterisk.local
      Enter the root domain (e.g. example.com): ibasterisk.local
      A mailová adresa ivan.baronak@ibasterisk.eu
      

      Po dokončení skriptu budete mať hlášku, že inštalácia prebehla v poriadku vygeneruje meno a heslo

      Je potrebné ísť na všetky stánky a potvrdiť certifikáty:

      Troubleshooting s prihlásením

      Ja som mal problém s prihlásením sa do https://rmm.ibasterisk.local

      Ako prvé som vytvoril užívateľa

      cd /rmm/api
      source env/bin/activate
      python tacticalrmm/manage.py createsuperuser ivan-admin

      Prípadne mu viete zmeniť heslo

      cd /rmm/api
      source env/bin/activate
      python tacticalrmm/manage.py changepassword ivan-admin

      Nastavenie WebDAV na Kodi

      Otestujte komunikáciu, keď vytvárate užívateľovi prístup napríklad na IPTV, tak zadávate

      • Protokol:v našom prípade Webdav
      • Port
      • Meno užívateľa
      • Heslo
      • Verejnú IP adresu, na lokalite, kde sa nachádza pripojená NAS

      Potom sa Vám zobrazí úvodné okno

      Zvolíme Video a následne Filmy. Môj náhľad filmov

      V tomto kroku klikneme na OK

      A znovu klikneme na OK

      Inštalácia Checkmk na Ubuntu 24.04

      Checkmk je výkonný a rozšíriteľný systém na monitorovanie IT infraštruktúry, určený pre servery, siete, aplikácie a kontajnery. Je navrhnutý s dôrazom na škálovateľnosť, efektivitu a jednoduchú správu.

      Využíva vlastných agentov, protokol SNMP, ako aj ďalšie integračné rozhrania na získavanie metrík zo širokej škály zariadení a systémov. Disponuje webovým používateľským rozhraním, ktoré umožňuje správcom IT:

      • centrálne spravovať monitorovacie pravidlá,
      • analyzovať stavy komponentov v reálnom čase,
      • automaticky detegovať monitorované služby,
      • prijímať upozornenia a notifikácie na základe nastavených prahových hodnôt.

      Checkmk existuje v niekoľkých edíciách:

      • Raw Edition (open-source, založená na Nagios core),
      • Enterprise Edition (s vlastným monitoring enginom a pokročilými funkciami),
      • Managed Services Edition (určená pre MSP).

      Minimálne systémové požiadavky pre Checkmk Raw Edition

      Hardvér:

      ZložkaMinimálne požiadavkyOdporúčané pre produkciu
      CPU2 vCPU (64-bit)4+ vCPU
      RAM2 GB4–8 GB (závisí od počtu hostov/služieb)
      Diskmin. 5 GB voľného miesta20–50 GB (SSD odporúčané)
      SieťPrístup k monitorovaným hostom (agent/SNMP)Stabilné pripojenie

      Softvér:

      KomponentVerzia
      Operačný systémUbuntu 22.04+ (Jammy) alebo 24.04 (Noble)
      Architektúraamd64 (64-bit)
      Závislostigdebi-core, libc, systemd, bash (všetko bežné v Ubuntu)

      Prístup:

      • Port 80 alebo 5000 (webové UI, podľa inštancie)
      • Prístup k monitorovaným zariadeniam (napr. SSH, SNMP, agenty)

      Príklad malej inštalácie:

      Veľkosť prostrediaRAMCPUDiskPoznámka
      do 10 hostov2 GB210 GBvhodné pre testovanie/lab
      do 50 hostov4 GB420 GBpre menšiu produkciu
      100+ hostov8+ GB4+50+ GB SSDodporúča sa Enterprise/rozdelenie úloh

      Licencovanie

      Checkmk má tri hlavné edície:

      EdíciaLicenciaCenaObmedzenia?
      Raw EditionOpen Source (OMD)✅ ZadarmoŽiadne – ale menej funkcií
      Enterprise FreeKomerčná✅ Zadarmo (do 750 služieb)Áno – max. 750 služieb
      EnterpriseKomerčná❌ PlatenáPlná funkcionalita

      Inštalácia

      Ako prvé urobíme update

      sudo apt update

      Stiahneme aktuálny balík. Aktuálny balík nájdte na tejto stránke https://checkmk.com/download/trial

      wget https://download.checkmk.com/checkmk/2.3.0p34/check-mk-raw-2.3.0p34_0.noble_amd64.deb

      Nainštalujeme závyslosti

      sudo apt install -y gdebi-core
      

      Nainštalujeme ckmk balík

      sudo gdebi check-mk-raw-2.3.0p34_0.noble_amd64.deb

      Sa nás spýta, či chceme naozaj nainštalovať dané balíky, je potrebne zadať y

      Vytvoríme monitorovaciu inštanciu

      sudo omd create monitoring

      Spustíme inštanciu. Po spustení príkazu nám systém vygeneruje užívateľské meno a heslo v mojom prípade:

      • meno: cmkadmin
      • a heslo
      The admin user for the web applications is cmkadmin with password: 3hm3ZubQqtse
        For command line administration of the site, log in with 'omd su monitoring'.
        After logging in, you can change the password for cmkadmin with 'cmk-passwd cmkadmin'.
      sudo omd start monitoring

      Spustíme inštanciu

      sudo omd start monitoring

      Teraz ideme cez webový prehliadač a zadáme IP adresu daného servera v tvare:

      http://X.X.X.X/monitoring

      Úvodné okno

      Skript na odosielanie mailových notifikácií a inštalácia PostFix

      Aby sme mohli odosielať mailové notifikácie, tak je potrebné naištalovať postfix

      sudo apt update
      sudo apt install postfix -y

      Vytvorenie A záznamov na strane providera

      mail.ibasterisk.eu	1800	A	Vaša verejná IP
      pihole.ibasterisk.eu	1800	A	Vaša verejná IP

      Odporúčam počkať približne 30 minút, aby sa záznamy stihli zosynchronizovať.

      Potom môžete odoslať testovací mail, či príde

      echo -e "Subject: Test mail\n\nToto je test." | /usr/sbin/sendmail ivan.baronak@ibasterisk.eu

      Teraz, aby nám prišlo upozornenie na mail napíšeme skript pomenujeme ho napríklad monitor_sh

      nano /usr/local/bin/disk_monitor.sh
      #!/bin/bash
      
      echo "Skript bezi: $(date)" >> /tmp/check_disk_test.log
      
      THRESHOLD=90
      PARTITION="/"
      EMAIL="ivan.baronak@ibasterisk.eu"
      
      USAGE=$(df -h "$PARTITION" | awk 'NR==2 {gsub("%","",$5); print $5}')
      echo "Disk usage: $USAGE%" >> /tmp/check_disk_test.log
      
      if [ "$USAGE" -ge "$THRESHOLD" ]; then
          echo -e "Subject: Upozornenie: Disk na PiHole je takmer plný\n\nDisk $PARTITION je využitý na $USAGE%. Prosím, zmažte staré logy alebo uvoľnite miesto." | /usr/sbin/sendmail "$EMAIL"
      fi
      

      Skript uložíme

      Teraz mu pridáme práva na spúšťanie

      sudo chmod +x /usr/local/bin/disk_monitor.sh

      Uložíme to

      Skript sám o sebe nerobí nič a je potrebné urobiť ešte ďalšie nastavenia. Ako implementovať skript, aby odosielal mailové notifikácie nájdete tu:

      https://www.ibasterisk.sk/raspberry/5119 – Nastavovanie mailových notifikácií z pihole na mailový server

      Zabbix Agent 7.2 na Arch Linux

      Urobíme ako prvé update

      sudo pacman -Syu
      

      Nainštalujeme zabbix agenta

      sudo pacman -S zabbix-agent

      Nakonfigurujeme Zabbix Agenta pomocu textového edita nano (vim je potrebné doinštalovať)

      sudo pacman -S vim
      sudo nano /etc/zabbix/zabbix_agentd.conf
      

      Tu nastavujeme parametre

      Server=<Zabbix_server_IP>
      ServerActive=<Zabbix_server_IP>
      Hostname= IP adresa servera, kde beží Zabbix Agent, alebo IP adresa toho servera 
      
      

      Povolíme, aby sa daný Agent spúšťal už pri boote OS

      sudo systemctl start zabbix-agent
      sudo systemctl enable zabbix-agent

      Upozornenie, ak meníme v Zabbix Agentovi parametre, tak je ho vždy potrebné reštartovať

      sudo systemctl restart zabbix-agent
      

      Zabbix Agent 7.2 na Cent OS 7

      rpm -Uvh https://repo.zabbix.com/zabbix/7.2/release/rhel/7/noarch/zabbix-release-latest-7.2.el7.noarch.rpm
      yum clean all
      yum install zabbix-agent 

      Teraz upravne configuráciu agenta

      vim /etc/zabbix/zabbix_agentd.conf
      
      Server=10.0.3.35 // IP adresa servera
      ServerActive=10.0.3.35 //IP adresa servera 
      Hostname = // ak máta DNS server tak meno daného servera alebo IP adresa 
      Hostname=10.0.3.37
      

      Uložte to a reštartujte agetna

      systemctl restart zabbix-agent
      

      Teraz ešte povolíme, aby sa agent spúšťal pri boote s OS

      systemctl enable zabbix-agent
      

      Prípadne môžeme overiť, či agent funguje

      systemctl status zabbix-agent
      

      MAC problém s pripojením sa cez ssh

      Ak preinštalujete server alebo ho premenujete, pri pokuse o pripojenie cez SSH sa zobrazí nasledujúca chyba:

      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
      Someone could be eavesdropping on you right now (man-in-the-middle attack)!
      It is also possible that a host key has just been changed.
      ...
      Host key verification failed.
      

      Riešenie

      1. Otvorenie terminálu

      Otvorte Terminal.app (⌘ + Space → napíšte „Terminal“ → Enter).

      2. Odstránenie starého hostiteľského kľúča

      Zadajte nasledujúci príkaz, pričom X.X.X.X nahraďte IP adresou servera:

      ssh-keygen -R X.X.X.X

      3. Opätovné pripojenie k serveru

      Skúste sa znova pripojiť cez SSH:

      ssh ivan@X.X.X.X

      Záver

      Po odstránení starého hostiteľského kľúča by ste sa mali bez problémov pripojiť k serveru. Tento postup je užitočný pri preinštalovaní servera alebo zmene jeho názvu/IP adresy.

      Inštalácia Nginx na Ubuntu 24.04

      ako prvé je potrebn0 urobi5 update a upgrade

      sudo apt update
      sudo apt upgrade -y

      Potom nainštalujeme Nginx

      sudo apt install nginx -y
      

      Môžeme overiť, či beží

      systemctl status

      Potom, aby sa spúšťal priamo pri spustení OS je potrebné mu dať parametre

      sudo systemctl start nginx
      sudo systemctl enable nginx
      

      Teraz, môžeme ísť na webový prehliadač a zadať IP adresu daného servera. Ak niesme istý s IP adresou môžeme zadať príkaz

      ip addr

      Ak by sme chceli urobiť nejakú modifikáciu úvodnej obrazovky môžeme to urobiť týmto príkazom

      sudo nano /var/www/html/index.nginx-debian.html

      Napríklad

      
      <!DOCTYPE html>
      <html lang="sk">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Testovacia masina Linux</title>
      </head>
      <body>
          <h1>Testovacia mašina Linux Ubuntu 24.04 postavená na NGINX!</h1>
          <p>Keď chceš viac informácií na <a href="http://www.ibasterisk.sk" target="_blank">www.ibasterisk.sk</a>.</p>
          <p>Testujem Zabbix Agenta</p>
      </body>
      </html>
      

      Súbor uložíme

      a reštartujeme Nginx

      sudo systemctl restart nginx

      Následne na webovom prehliadači zvolíme Refresh alebo stlačíme F5, prípadne Ctrl + F5.

      Skript na generovanie mien

      So ženou sa nevieme dohodnúť na vymyslení mena pre naše prvé dieťa, tak som sa rozhodol, že napíšem skript.

      Ak sa aj Vy budete chcieť zahrať a zasmiať, tak tu posielam šablónu

      Ako prvé musíme vytvoriť skript .sh napr. deti.sh

      nano deti.sh
      
      #!/bin/bash
      
      # Zoznam mien
      chlapci=("Adam" "Adrián" "Ahmed" "Branislav" "Ciril" 
      "Denis" "Dobroslav" "Dušan" "Daniel" "Ervín" 
      "Evžen" "Emil" "Emanuel" "Erik" 
      "Gustáv" "Gabriel" "Hasan" "Henrich" "Ivan" "Kristián" 
      "Miloš" "Marcel" "Micha" 
      "Tomáš" "Timotej" "Viktor" "Zdeno" "Bacigáľ")
      
      dievcata=("Alžbeta" "Anna" "Aneta" "Barbara" "Barbora" 
      "Brigita" "Denisa" "Eva" "Erika" "Gabriela" "Henrieta" 
      "Ivana" "Janka" "Kristína" "Lenka" "Mária" "Nina" 
      "Oxana" "Petra," "Róberta" "Sabina" "Slávka" "Simona")
      
      # Funkcia na generovanie mena
      function vygeneruj_meno {
          echo "Zvoľ pohlavie:"
          echo "1. Chlapec"
          echo "2. Dievča"
          read -p "Zadaj číslo (1 alebo 2): " volba
      
          if [[ "$volba" == "1" ]]; then
              meno=${chlapci[RANDOM % ${#chlapci[@]}]}
              echo "Vygenerované chlapčenské  meno: $meno"
          elif [[ "$volba" == "2" ]]; then
              meno=${dievcata[RANDOM % ${#dievcata[@]}]}
              echo "Vygenerované dievčenské meno: $meno"
          else
              echo "Neplatná voľba, zvoľ 1 alebo 2."
          fi
      }
      
      # Hlavný cyklus
      while true; do
          vygeneruj_meno
          read -p "Chceš vygenerovať ďalšie meno? Áno = a, Nie = n (a/n): " odpoved
          if [[ "$odpoved" != "a" ]]; then
              echo "Ďakujeme za používanie generátora mien. Dovidenia!"
              break
          fi
      done

      Dáme oprávnenia na spustenie skriptu

      chmod +x deti.sh

      Spustíme skript

      ./deti.sh

      Keď zvolíme a, zopakuje sa slučka

      Keď zvolíme 2, tak sa začnú generovať dievčenské mená

      Keď stlačíte n, tak program sa automaticky ukončí a vypíše hlášku:

      
      Ďakujeme za používanie generátora mien. Dovidenia!
      

      Pihole na Ubuntu 24.10/ Raspberry pi

      Pihole je DNS server. DNS server slúži, aby sme si nemuseli pamätať IP adresy na servery

      Inštalácia

      Urobte update a ugrade

      sudo apt update
      sudo apt upgrade -y

      Potom spustite skript na inštaláciu pihole

      curl -sSL https://install.pi-hole.net | bash

      Kliknite na ok

      Kliknite na ok

      Môžete urobiť IP rezerváciu na routri, alebo staticky na danom servery

      Zvoľte Continue

      Zvoľte funkciu, ktorú chcete, ja som zvolil prvú, nakoľko statiku saom nastavil na routri

      Zvoľte si DNS providera

      Zvoľte na Yes

      Zvoľte na Yes

      Zvoľte na Yes

      Zvoľte na Yes

      Zvoľte Show everything

      Po dokončení budete mať prihlasovacie údaje na daný server s heslom

      Web interface password. Toto heslo skopírujte prípadne uložte, budete ho potrebovať.

      Prihlásenie

      Teraz choďte, cez web prehliadač zadajte IP adresu daného xerrvera v tvare http:X.X.X.X/admin

      • username: pi.hole
      • heslo: to, čo Vám vygeneroval pihoe

      Troubleshooting

      Ubuntu má v sebe funkciu, že DNS na porte 53 má zapnuté. Túto službu je potrebné vypnúť a aj zakázať, aby sa spúšťala priamo so spúšťaním operačného systému

      sudo systemctl stop systemd-resolved
      sudo systemctl disable systemd-resolved
      sudo reboot
      

      Vytvaranie A zaznamov

      Zvolíme local DNS

      Zvolíme DNS Records

      Vytvoríme localny A zazam, kde píšeme názov domény a IP adresu daného servera, aby prekladal IP adresu na meno.

      Kliknite na Add

      Príklad DNS

      Zaplnenie disku a následne čistenie

      Ak ste šikovný, ako ja a neurobíte si zabezpečenie proti zahlteniu disku s kogmi, tak je potrebné pihole prečistiť:

      sudo journalctl --vacuum-time=3d
      sudo apt clean

      Získanie prehľadu

      df -h
      du -sh /var/log/*

      Troubleshooting s DNS serverom

      Ak nejde napríklad nainštalovať nejaký balíček, tak sa nevie dostať na server. Bude potrebné pridať DNS záznamy do resolv.conf

      sudo nano /etc/resolv.conf

      Sem doplnte google DNS a následne uložte

      nameserver 8.8.8.8
      nameserver 1.1.1.1

      Ja mám v sieti fortigate, tak potrebné pridať vo Virtual IPs otvoriť porty 53 TCP a UDP

      Teraz môžeme zadať príkaz nslookup na nejaký server. Nakoľko budem písať skript, aby pihole, notifikáciu o tom, keď bude plný disk aby poslal mail, tak si zvolím svoj mailový server mail.ibasterisk.eu

      nslookup mail.ibasterisk.eu

      Nastavovanie mailových notifikácií z pihole na mailový server

      Je dôležité zmeniť hostname, aby zodpovedal doméne servera:

      napr.

      sudo hostnamectl set-hostname pihole.ibasterisk.eu

      Pre overenie môžeme zadať

      hostname
      hostname -f

      Inštalácia Postfix

      Aby sme mohli odosielať mailové notifikácie, tak je potrebné naištalovať postfix

      sudo apt update
      sudo apt install postfix -y

      Vytvorenie A záznamov na strane providera

      mail.ibasterisk.eu	1800	A	Vaša verejná IP
      pihole.ibasterisk.eu	1800	A	Vaša verejná IP

      Ideálne je počkať, cca 30 min, kým sa záznamy zosynchronizujú

      Potom môžete odoslať testovací mail, či príde

      echo -e "Subject: Test mail\n\nToto je test." | /usr/sbin/sendmail ivan.baronak@ibasterisk.eu

      Teraz, aby nám prišlo upozornenie na mail napíšeme skript pomenujeme ho napríklad monitor_sh

      nano /usr/local/bin/disk_monitor.sh
      #!/bin/bash
      
      echo "Skript bezi: $(date)" >> /tmp/check_disk_test.log
      
      THRESHOLD=90
      PARTITION="/"
      EMAIL="ivan.baronak@ibasterisk.eu"
      
      USAGE=$(df -h "$PARTITION" | awk 'NR==2 {gsub("%","",$5); print $5}')
      echo "Disk usage: $USAGE%" >> /tmp/check_disk_test.log
      
      if [ "$USAGE" -ge "$THRESHOLD" ]; then
          echo -e "Subject: Upozornenie: Disk na PiHole je takmer plný\n\nDisk $PARTITION je využitý na $USAGE%. Prosím, zmažte staré logy alebo uvoľnite miesto." | /usr/sbin/sendmail "$EMAIL"
      fi
      

      Skript uložíme

      Teraz mu pridáme práva

      sudo chmod +x /usr/local/bin/disk_monitor.sh

      Môžeme urobiť ručný test

      Aby fungoval je potrebné upraviť v skripte hodnotu THRESHOLD=90 na 1

      THRESHOLD=90
      THRESHOLD=1
      sudo /usr/local/bin/disk_monitor.sh

      Po úspešnom teste, môžeme vrátiť hodnotu späť

      nano /usr/local/bin/disk_monitor.sh
      THRESHOLD=90

      A uložíme

      Teraz vytvoríme cron úlohu, ktorá bude každých 5 minút kontrolovať kapacitu disku.

      crontab -e
      */5 * * * * /usr/local/bin/disk_monitor.sh

      Uložíme to

      Použité príkazy

      df -hStav disku
      sudo /usr/local/bin/disk_monitor.shRučné spustenie skriptu
      sudo crontab -lZobrazenie cron úloh
      tail /tmp/check_disk_test.logZáznamy skriptu
      sudo tail -n 30 /var/log/mail.logKontrola e-mailov
      nslookup mail.ibasterisk.euTest DNS

      Troubleshooting, keď sa nám neaktualizuje pihole

      curl -sSL https://install.pi-hole.net | bash
      sudo pihole -up

      Mailový server na Ubuntu 24.04

      Čo budeme potrebovať

      • Router na ktorom vieme urobiť Port Forwarding
      • Raspberry Pi
      • SD kartu/ hardisk
      • Verejnú statickú IP adresu
      • doménu

      Konečne začala firma iRedMail podporovať aj Ubuntu 24.04. Keď som ho testoval dávnejšie, tak bol problém.

      Inštaláciu je dokonca možné urobiť aj na Rasberry Zero 2W, pi 2, pi 3, pi 4 a pi 400. Ale ja osobne mám overené iba Pi 4 a Pi 400.

      Ak si budete, chcieť naištalovať mailový server na Rasberry pi, tak na stiahnutie a inštaláciu OS použite Rasberry Pi imager, ten viete stiahnúť odtiaľ to.

      https://www.raspberrypi.com/software

      Inštalácia OS na SD /SSD HDD

      Vyberte Raspberry Zariadenie

      Zvoľte Other general-purpose OS

      Nájdite Ubuntu Server 24.04

      V poslednom kroku zvoľte Choose storage

      Zvoľte next

      Vyskočí Vám dialogové okno, či si chcete server zapísať na SD kartu, alebo si želáte zmeniť nastavenia. Keď kliknete na Edit settings môžete hneď nastaviťužívateľa, heslo a hostname. Ak si na routry nastavíte IP asdresu viazanú na MAC adresu, tak nemusíte pripájať k Raspberry klávesnicu a môžete hneď pracovať s Rasberry cez ssh. ssh je defaultne na porte 22

      Nahrajte operačný sýstem a počkajte kým sa nespustí.

      DNS záznamy

      U Vašeho poskytovateľa domený je dobré hneď na začiatku urobiť DNS záznamy

      • A záznam zmení verejnú IP adresu na meno číže napr verejná IP adresa bude mail.ibasterisk.eu
      • Potom ďalšie reverzné záznamy podľa potreby, aby maily chodili napr na Microsoft o365, Google a iné mailové spoločnosti a samozrejme odpovede, aby chodili na Váš mailový server.
      • Reverzný záznam dkim budeme vytvárať až na konci a vysvetlíme si prečo je dvôležitý.

      Inštalácia

      Zmeníme hostname

      sudo hostnamectl set-hostname mail.ibasterisk.eu

      môžeme aj manuálne

      sudo nano /etc/hosts

      Overejnie, či sa zmenil vieme

      sudo hostname -f

      Idealne je nastaviť statickú IP adresu, jedným z riešením je cez netpal.

      vim /etc/netplan/01-netcfg.yaml
      network:
        version: 2
        renderer: networkd
        ethernets:
          eth0:
            dhcp4: no
            addresses:
              - 10.10.8.4/24
            routes:
              - to: default
                via: 10.10.8.1
            nameservers:
              addresses:
                - 10.10.8.2
                - 1.1.1.1
      

      Uložte to

      Následnespustite

      sudo netplan apply

      Stiahnutie iRedMail. Najnovšiu verziu nájdete tu:

      https://www.iredmail.org/download.html

      ako prvé stiahneme príkazom

      wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.7.1.tar.gz

      Potom ho rozbalíme

      tar -xvf 1.7.1.tar.gz

      Pôjdeme do priečinka

      cd iRedMail-1.7.1

      Spustíme skript

      sudo chmod +x iRedMail.sh
      sudo bash iRedMail.sh

      Zvolíme Nginx

      Zvolíme MariaDB

      Zvolíme heslo do MySQL

      Je potrebné špecifikovať prvú doménu

      Zvoľte ehslo pe postmaster@ibasterisk.eu

      Volíme všetky možnosti

      Po zbehnutí Vám vyskočí okno, či je všetko v poriadku nastavené, keď stlačíte y, tak sa začne inštalovať

      SSL certifikát

      sudo apt install certbot
      sudo certbot certonly --webroot --agree-tos --email postmaster@ibasterisk.eu -d mail.ibasterisk.eu -w /var/www/html/

      Potom je potrebné upraviť riadky

      nano /etc/nginx/templates/ssl.tmpl

      nájdite 2 riadky

      ssl_certificate /etc/ssl/certs/iRedMail.crt;
      ssl_certificate_key /etc/ssl/private/iRedMail.key;
      

      Tie nahraďte

      ssl_certificate /etc/letsencrypt/live/mail.your-domain.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/mail.your-domain.com/privkey.pem;
      

      Uložte to

      Skontrolujte, či je to v poriadku

      nginx -t
      systemctl reload nginx

      Naištaľujte TLS certifikát v Postfix a Dovecot

      nano /etc/postfix/main.cf

      Teraz nájdite riadky 95,96,97

      smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
      smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
      smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt

      tie nahraďte:

      smtpd_tls_key_file = /etc/letsencrypt/live/mail.ibasterisk.eu/privkey.pem
      smtpd_tls_cert_file = /etc/letsencrypt/live/mail.ibasterisk.eu/cert.pem
      smtpd_tls_CAfile = /etc/letsencrypt/live/mail.ibasterisk.eu/chain.pem

      Teraz to uložte a reštartujte postfix

      systemctl reload postfix

      Teraz nájdite 2 riadky 47,48

      nano /etc/dovecot/dovecot.conf
      ssl_cert = </etc/ssl/certs/iRedMail.crt
      ssl_key = </etc/ssl/private/iRedMail.key
      

      Tieto riadky nahraďte:

      ssl_cert = </etc/letsencrypt/live/mail.ibasterisk.eu/fullchain.pem
      ssl_key = </etc/letsencrypt/live/mail.ibasterisk.eu/privkey.pem
      

      Reštartujte Dovecort

      systemctl reload dovecot

      Výsledok, je že by mala byť. že web stránka je zabezpečená. Ak sa tak nestalo je vhodné reštartovať server.

      Reverzný záznam na overenie, že náš server je plnohodnotný

      sudo amavisd showkeys
       

      Kľúč je potrebné potrebné upraviť v nejakom textovom editore, bez zátvoriek a úvodzoviek.

      Príklad vygenerovania

      v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5kX7XLcxvdf7+Q/ynf/45JXt+TaEmfnwLEtOakDK4TRjmF5mQzBIWMkmHuQG1TfLZlOefBg70txTojgjwtRA7VapwNUSDf9s7rjMGF2YuHkGbr1Y1qid81IzhjghxymsTGAp3uJelSbN3JHxJALu1gc1J5mKGsYaGcz0bFmTL5jIwzkgC5cqEHOvJlc6p55GzsS9Bpvghn2sO1Te4WilYkmeiEfC5XJyjaQ3Rrtp7KUIlJxxz+72OoHEvPyjvNRcXRAM2PC4VUpEUtLaDShJgTYZZQxPobdYqLVuy/UV0INIgfnWoEQ7weXUrfNK3VjMU8tac3VOV90Dvyy4u1CDLCHqawIDAQAB

      overiť môžeme

      sudo amavisd testkeys
      TESTING#1 example.com: dkim._domainkey.example.com => pass

      Taká miniatúrna prezentácia

      Aktualizácia Firmware Flipper Zero  na Linux

      Najnovšiu verziu oficiálneho firmware pre Flipper viete stiahnúť zo stránky, alebo pomocou príkazového riadka

      https://flipperzero.one/downloads

      cd Downloads wget https://update.flipperzero.one/builds/qFlipper/1.3.3/qFlipper-x86_64-1.3.3.AppImage

      Vytvorte spustiteľný súbor AppImage

      chmod +x qFlipper-x86_64-1.3.3.AppImage

      A následne spustite aplikáciu

      ./qFlipper-x86_64-1.3.3.AppImage

      Teraz, keď pripojíte Flipper cez USB-C

      Môžete urobiť update

      Prípadne,ak si neprajete oficialny firmware, tak odporúčam si nainštalovať Momentum

      Ako prvé musíte máť v počítači google Chrome

      Na Linux Mint ho nainštalujete následovne:

      Sťahnite kľúč pre Chrome

      wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

      Pridajte repozitáre pre Chrome

      sudo add-apt-repository "deb http://dl.google.com/linux/chrome/deb/ stable main"

      Urobte update

      sudo apt update

      Nainštalujte Chrome

      https://momentum-fw.dev/update/

      Kliknite na Connect

      Označte a kliknite na Connect

      A počkajte kým sa nový Firmware nahrá

      ProxMox – spustenie virtualnych serverov spolu s bootom servera

      Keď vypadne elektrina, alebo z nejakého dôvodu sa vypnú servery a po spustení serverov sa automaticky virtualne servery nespustia. Ak si prajeme, aby sa pri spsutení servera spustili aj virtuálne stroje, tak je porebné v ProxMox-e

      Ísť do Options

        Potom zvoliť Start at boot

        apovoliť možnosť

        Kliknúť na OK

        Ak si chcete overiť, či to ide, tak server na ktorom bežia virtuálky dajte reštartovať.

        Inštalácia Samba Ubuntu 22.04

        Hlavné funkcie Samba protokolu:

        Samba protokol (resp. jednoducho Samba) je softvérová implementácia protokolu SMB/CIFS (Server Message Block/Common Internet File System) pre operačné systémy Unix a Linux. Tento protokol umožňuje zdieľanie súborov, tlačiarní a ďalších zdrojov medzi počítačmi v sieti, a to bez ohľadu na to, či používajú operačný systém Windows, Unix alebo Linux.

        1. Zdieľanie súborov a tlačiarní: Umožňuje prístup a zdieľanie súborov a tlačiarní medzi počítačmi v sieti.
        2. Autentifikácia a autorizácia: Podporuje rôzne metódy autentifikácie užívateľov a zabezpečenie prístupu k zdieľaným zdrojom.
        3. Integrácia s Active Directory: Umožňuje Unix/Linux systémom integráciu do Windows Active Directory prostredia, vrátane podpory pre SSO (Single Sign-On).
        4. Správa sieťových zdrojov: Poskytuje nástroje na správu a konfiguráciu sieťových zdrojov a prístupových práv.

        Urobte update

        sudo apt update
        sudo apt upgrade
        

        Naištalujte Samba Server

        sudo apt-get install samba samba-common-bin acl -y

        Teraz je potrebné nastaviť, službu, aby sa spúšťala priamo pri boote s operačným systémom

        sudo systemctl start smbd nmbd
        sudo systemctl enable smbd nmbd
        

        Vytvorte súkromné zdieľanie so Samba

        sudo vim /etc/samba/smb.conf

        Pridajte následovné riadky na koniec dokumentu

        [Private]
        comment = private share
        path = /data/private/
        browseable = yes
        guest ok = no
        writable = yes
        valid users = @samba

        Daný dokument uložíme

        :wq

        Teraz pridáme užívateľa

        adduser baaronak

        Teraz vypíšeme údaje

        New password:
        Retype new password:
        passwd: password updated successfully
        Changing the user information for baronak
        Enter the new value, or press ENTER for the default
                Full Name []: Ivan Baronak
                Room Number []:
                Work Phone []:
                Home Phone []:
                Other []:
        Is the information correct? [Y/n] y
        

        Potom nastavte heslo Samba pomocou nasledujúceho príkazu:

        sudo smbpasswd -a baronak

        Potom vytvorte skupinu Samba pomocou nasledujúceho príkazu:

        sudo groupadd samba

        Teraz pridame užívateľa baronak do samba grupy

        sudo gpasswd -a baronak samba

        Ďalej vytvorte zdieľaný priečinok, ktorý ste určili v súbore smb.conf:

        sudo mkdir -p /data/private
        sudo touch /data/private/file1

        Ďalej poskytnite zdieľaniu Samba povolenia na čítanie a zápis:

        sudo setfacl -R -m "g:samba:rwx" /data/private


        Potom skontrolujte konfiguračný súbor Samba, či neobsahuje chyby pomocou nasledujúceho príkazu:

        testparm

        Potom reštartujte službu Samba, aby ste vykonali zmeny:

        systemctl restart smbd nmbd

        Zhrnutie vytvorenie užívateľa

        Vytvorte užívateľa

        Sudo adduser user1

        Vytvorte heslo pre užívateľa

        Sudo smbpasswd -a user1

        Pridajte ho do vytvorenej skupiny samba

        sudo gpasswd -a user1 samba

        Otestujte, či daný užívateľ, môže pristupovať do priečinkov

        Pripojenie sa cez Linux Ubuntu

        Pred prvým pripojením je potrebné zadať cestu k serveru, kde sa nachádza samba v tvare:

        smb://X.X.X.X

        Potom Vás vyzve na prihlásenie

        Vyplňte údaje

        kliknite na Connect

        Vytvorenie verejného zdielania SAMBA

        Pod private napíšte následovné riadky

        sudo vim /etc/samba/smb.conf
        [Public]
        comment = public share
        path = /data/public/
        browseable = yes
        writable = yes
        guest ok = yes

        Uložte to

        wq

        Systax úprav

        Teraz vyzvorte zložku napríklad public a skúste tam nahrať file2

        mkdir -p /data/public/
        touch /data/public/file2

        Ďalej nastavte správne povolenia pre verejný adresár:

        setfacl -R -m "u:nobody:rwx" /data/public

        Potom reštartujte službu Samba, aby ste použili zmeny:

        systemctl restart smbd nmbd

        Overejne

        Linux – Bez doménového účtu

        Zvolíme anonymouse

        Kopírovanie pomocou príkazu SCP Z linux Servera na Windows Desktop

        Buď prostredníctvom softvéru WinSCP, Len na Windows

        https://winscp.net/eng/download.php

        alebo pomocou powershall

        Profily nájdete 

        profily v /home/administrator

        príklad: scp user@X.X.X.X:/folder/user/something.txt .\where\folder
        scp administrator@X.X.X.X:/home/administrator/ibasterisk.ovpn .\Downloads\vpn

        vyžiadá si heslo, do napíšete a súbor sa prenesie

        Úspešné skopírovanie súboru

        Monitoring TrueNAS na Zabbix

        na TrueNAS sa neinštaluje Zabbix agent a ani sa nekonfiguruje. 

        TrueNAS sa monitoruje prostredníctvom SNMP protokolu (Simple Network Management Protocol) 

        Prihláste sa na TrueNAS 

        Na TrueNAS je potrebné povoliť službu, SNMP 

        1. Services >> SNMP

        Nájdite službu SNMP

        Zabbix – overenie template, či sa nachádza ň

        Pre istotu overte, či sa daný template nachádza v Zabbix 

        Overte či sa naáchádza? 

        Pridanie hosta na Zabbix 

        Choďte do Data Collection >> Host 

        Zvoľte create Host 

        Zvoľte hostname napr. TruNAS 

        Zvoliť host groupe. TruNAS je postavený na Linux FreeBSD, ja som ho pridal do Hsot grups Linux 

        Interface sa volí SNMP a IP adresu dávame, tú kdesa nachádza TrueNAS 

        Počkajte pár sekúnd až 1 minútu. A začne sa monitorovať 

        RDP – pripojenie Linux-Windows – Windows/Linux

        XRDP

        Program slúži na pripojenie sa z Windows na počítač s Linuxom

        apt update
        sudo apt install xrdp -y

        Overte, či daná služba beží

        systemctl status xrdp
        

        Urobte update

        sudo apt update

        Nainštalujte 2D Desktop Enviroment

        
        sudo apt install xfce4

        Nakonfigurujte Remote Desktop

        echo xfce4-session >~/.xsession

        Reštartujte RDP

        sudo systemctl restart xrdp

        Overte funkčnosť

        Pomocou príkazu ip a zistite IP adresu počítača s Linux

        ip a

        Choďte s počítačom s Windows a skúste pripojenie

        Vyžaduje meno a heslo.

        Úspešné pripojenie sa

        Pripojenie sa z Linux Mint na Windows Server

        Ak si želáme sa pripojiť naopak z Linux na Windows Server odporúčam Vinagre

        sudo apt update
        sudo apt install vinagre

        Cez terminal napíšte

        vintager

        Spustí sa Vám program

        • V ponuke máte
        • SSH
        • RDP
        • SPICE
        • VNC
        • Prípade môžete si nastaviť Full screen, alebo si navolíte rozlíšenie aké vám vyhovuje
        • Zadáte IP adresu servera, heslo a mali by ste sa pripojiť

        Forticlient na Linux Ubuntu 22.04 Linux Mint 21.03

        Na fóre som našiel, ako naištalovať Forticlient na Ubuntu 22.04. ae bol som zvedavý, či je ho naištalovať aj na Linux Mint 21.03. Išlo to aj na Mint.

        https://docs.fortinet.com/document/forticlient/7.2.3/administration-guide/213138/installing-forticlient-linux-from-repo-fortinet-com

        1. Nainštalujte gpg kľúč
        wget -O - https://repo.fortinet.com/repo/forticlient/7.2/debian/DEB-GPG-KEY | gpg --dearmor | sudo tee /usr/share/keyrings/repo.fortinet.com.gpg

        2. Vytvorte cestu v textovom editore (vim, nano, vi )

        nano /etc/apt/sources.list.d/repo.fortinet.com.list

        3. Urobte zápis

        deb [arch=amd64 signed-by=/usr/share/keyrings/repo.fortinet.com.gpg] https://repo.fortinet.com/repo/forticlient/7.2/debian/ stable non-free

        4. Uložte súbor

        5. Urobte update

        sudo apt update


        6. Nainštalujte Forticlient

        sudo apt install forticlient


        7. Nastavte si Forticlienta, otestujte spojenie

        Pridanie RSA kľuča na Linux Server

        Ako prvé je potrebné nainštalovať:

        • Putty
        • Pageant
        • PuttyGen

        Putty, puttygen a pageant si viete stiahnúť odtiaľto

        https://mega.nz/folder/IAgCABqa#iGBawdA21yvLgJab8dou2w

        Prípadne ak nedôverujete môjmu upload, alebo z nejakého dôvodu Vám nefunguje spustiť tak všetko nájdete na ich stránke:

        https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

        Vygenerovanie verejného a súkromného kľuča

        1. Otvorte Putty Key Generator nechajte označenie RSA a kliknite na Generate

        Keď budete generovať kľuč, tak hýbte s kurzorom myši v programe

        2. Keď je už vygenerovaný, tak zvoľte Save private key a public skopírujte z putty generator a ten vložte do txt

        1. keď ich máte uložené, tak sa prostrednícvom SSH pripojte na daný server.
        ssh root@X.X.X.X

        2. Vytvorte užívateľa

        sudo useradd -m -s /bin/bash ivanbaronak;

        3. Prepnite sa na daného užívateľa

        sudo su - ivanbaronak;

        4. Vytvorte priečinok .ssh

        mkdir .ssh;

        5. Zmeňte práva na priečinok

        chmod 700 .ssh;

        6. Prejdite do prečinka .shh

        cd .ssh;

        7. Vytvorte textový súbor, ktorý sa bude volať authorized_key

        touch authorized_keys;

        8. Je potrebné na priečinok dať chmod 600, kvoly právam

        chmod 600 authorized_keys;

        9. Vkladá sa verejný kľuč v tomto tvare, len pre istotu neukladať automaticky ale kopírovať odtiaľto, a kopíruje sa do jedného riadku. (V prípade, že sa na z Windows pripájate na Linux)

        echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7JD4PLGUo901dkvsVhSajk0E0kPOK6rH2sh7eKHMwkrP+VU9Dmcf0oW59sljUNY43Gp2cINDqgaurRQTzHS5jx0tlmyEk/XQ1SWsa7B91JdhrYPnQNWZ+bIUI8pzSJ/DD1uCI5zeiwe9WtEtJAMSb8Bb+aqceVxIKq/yrX8ltZsYfFvLTRfHGiSFQRY3z7dso1JbH3Yz+MEfuIEm1hhYl3VX9H0gdT9Az7irN0b1WTDDzjSLnenzi+c9yMSG7ilMnJg1MwKpWcXDnf3v/pEHve15b71yFckJqGT3eI1vHk/pChG3JIGN9OA5O4uMOn/ZPXDvx0UrprsybguBbH2TR ivan.baronak@ibasterisk.sk" >> authorized_keys

        10. Choďte von z priečinka

        exit

        11. Pridajte užívateľa do skupiny admin

        sudo groupadd admin;

        12. Pridajte užívateľa, ako admina

        sudo usermod -a -G admin ivanbaronak;

        13. Pomocou príkazu visudo povolíme admin, konto bez hesla, keďže chceme, aby pomocou prihlasenia sa prihlasoval RSA kľúčom

        sudo visudo

        14. Nakoniec textu doplňte riadky

        #ibasterisk admin
        %admin  ALL=(ALL)       NOPASSWD: ALL

        15. Môžeme urobiť zálohu configu

        sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config-bkp-20220420

        16. editnite config ssh

        sudo nano /etc/ssh/sshd_config

        17. Zablokujte root prihlásenie

        PermitRootLogin no #zmenit

        18. Pridajte medzi povolených užívateľov ivanbaronak

        AllowUsers ivanbaronak #pridat

        19. Zablokuje prihlásenie sa cez heslo

        PasswordAuthentication no #zmenit

        20. Uložte konfiguráciu.

        21. Reštartujte ssh

        sudo systemctl restart sshd

        22. Teraz spustite pageant. Zobrazí sa Vám v pravom dolnom rohu

        23. Keď na ikonku klinete, tak sa Vám zobrazí program

        24. Kliknite na Add key

        25. Vložte privatekey

        Teraz sa môžete prihlásiť prostrednícvom putty na daný server 🙂

        Obrázok, úspešného prihlásenia

        Nastavenie statickej IP adresy na Ubuntu server 22.04

        sudo vim /etc/netplan/00-installer-config.yaml

        Syntax

        network:
        
          ethernets:
        
            ens33:
        
              addresses:
        
              - 10.0.3.32/22
        
              nameservers:
        
                addresses:
        
                - 8.8.8.8
        
                - 8.8.4.4
        
                search: []
        
              routes:
        
              - to: default
        
                via: 10.0.0.254
        
          version: 2

        Po vykonaných zmenách je potrebné netplan uložiť príkazom 

        :qw

        Následne aplikovať príkazom overte, či Váš netplan bude fungovať

        sudo netplan try

        Ak je v3etko v poriadku, aplikujte netplane

        sudo netplan apply

        Nastavenie Statickej IP adresy už priamo pri inštalácií

        Alebo už pri inštalácií nastavíte statickú IP adresu 

        na sieťovom interface stlačte Enter

        Choďte do Edit IPv4

        Zvoľte Manual

        Príklad konfigurácie statickej IP adresy. Nakoľko nemáme v sieti vlastný DNS server zatiaľ používame google 8.8.8.8, 8.8.4.4

        Kliknite na Save

        Linux začne potom testovať, či sa vie pripojiť na aktualizácie. Všetko je ok, môžete pokračovať v inštalácií

        Nastavenie emailového konta na Thunderbird a na Blue mail na mobilnom telefóne

        Kliknite na confirure manually

        Ak Vám nebudú chodiť emaily

        skontrolujte firewall

        je potrebné otvoriť porty:

        • 143
        • 587

        Na mobilnom telefóne sa mi overila aplikácia Blue mail

        https://play.google.com/store/apps/details?id=me.bluemail.mail&hl=en&gl=US&pli=1

        1. Zadajte, ako prvé email a heslo

        2. V ďalšom kroku nastavte Incoming server

        3. Treťom kroku Nastavte Outgoing server

        DHCP na Oracle Linux

        Ako prvé je potrebné naištalovať službu

        yum install dhcp
        

        Napíšte DNS hostname

        vi  /etc/hostname
        ibasterisk.local

        Teraz je potrebné nastaviť DHCP, ako prvé je potrebné nájsť správný ethernetový interface. Ten nájdete prostredníctvom príkazu:

        ip a

        V mojom prípade to je ens192. Vy môžete mať iný

        vi /etc/sysconfig/network-scripts/ifcfg-[network-interface]
        vi /etc/sysconfig/network-scripts/ifcfg-ens192

        Príklad konfigurácie:

        
        PROXY_METHOD=none
        BROWSER_ONLY=no
        BOOTPROTO=none
        DEFROUTE=yes
        IPV4_FAILURE_FATAL=no
        IPV6INIT=yes
        IPV6_AUTOCONF=yes
        IPV6_DEFROUTE=yes
        IPV6_FAILURE_FATAL=no
        IPV6_ADDR_GEN_MODE=stable-privacy
        NAME=ens192
        UUID=9b0914c7-5c75-4ffe-adb8-26f6cdc86ccd
        DEVICE=ens192
        ONBOOT=yes
        PREFIX=25
        IPADDR=10.10.8.50
        GATEWAY=10.10.8.1
        DNS1=8.8.8.8
        DNS2=8.8.4.4
        USERCTL=no
        

        Konfiguráciu uložte

        Čo je dôležité je maska siete.

        IP adresa sieťového rozhrania a maska siete je dána zápisom napr. 10.10.8.50/24

        Na výpočet IP adresy používam kalkulačku https://jodies.de/ipcalc

        Teraz otvorte

        vi /etc/dhcp/dhcpd.conf

        Príklad konfigurácie

        #
        # DHCP Server Configuration file.
        #   see /usr/share/doc/dhcp-server/dhcpd.conf.example
        #   see dhcpd.conf(5) man page
        #
        
        option domain-name "dhcpserver-ibasterisk.local";
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        option broadcast-address 10.10.8.255;
        option routers 10.10.8.131;
        
        subnet 172.28.72.128 netmask 255.255.255.0 {
                range 10.10.8.132 10.10.8.254;
                default-lease-time 10800;
                max-lease-time 43200;
        

        Keď to máte nastavené, reštartujte dhcp server

        systemctl restart dhcp 

        Reštartujte sieťový interface

        ip link set dev ens192 down
        ip link set dev ens192 up

        Teraz, by mal DHCP pridelovať IP adresy novým zariadeniam v sieti.

        Zabbix agent na Debian 10

        1. Je vhodné používať Zabbix agenta, aký máte Zabbix server. V mojom prípade to je 5.0
        2. Ako prvé je potrebné naištalovať Zabbix agenta na danom servery a nakonfigurovať. Ako prvé musíte pridať repozitár
        wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1+debian11_all.deb
        dpkg -i zabbix-release_6.2-1+debian11_all.deb
        apt update

        Teraz ho môžete stiahnúť agenta

        wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb
        sudo dpkg -i zabbix-release_5.0-1+buster_all.deb
        sudo apt update

        Nainštalujte Zabbix agenta

        sudo apt update
        sudo apt install zabbix-agent

        Zapnite ho, aby sa spúšťal priamo pri boote OS

        sudo systemctl enable zabbix-agent
        sudo systemctl start zabbix-agent

        Nakonfigurujte Zabbix agenta

        sudo nano /etc/zabbix/zabbix_agentd.conf
        ServerZadáva sa IP adresa servera, kde je nainštalovaný Zabbix
        HostnameZadáva sa hostname klienta, servera ktorý chceme priať na Zabbix monitorovací s
        PortZabbix agent počúva na porte 10050, je to potrebné

        Teraz musíte na firewalle povoliť port 10050

        sudo ufw allow 10050
        sudo ufw reload

        Pridajte host na Zabbix

        Teraz choďte na Zabbix server

        Nájdite Configuration a Hots

        Teraz kliknite na Create Host

        Vypíšte to podľa seba

        Vypisuje sa:

        • Hostname
        • Groupa
        • Agent (IP adresa, kde sa nachádza nainštalovaný agent)

        Keď to máte hotové, tak kliknite na Add

        Vytvorenie Mapy

        Teraz ak chcete vytvoriť mapu serverov, kliknite na Monitoring a Maps

        Kliknite na Create map

        Napíšte názov mapy ako sa bude volať a kliknite na add

        Kliknite na Edit map

        Kliknite na Add

        Vypisuje sa:

        • Typ
        • Label
        • Host

        Kliknite na apply

        Kliknite na update

        Pridával som nexctclou2

        MAPA serverov

        Keď chceme mať nejakú topológiu serverov, tak si môžeme vytvoriť mapu niečo ako je na obrázku vyššie.

        Teraz môj cieľ je, aby Zabbix bol prepojený s nextcloud2

        Kliknite na Edit Map

        Označte si Servery

        CTRL + klik na myške

        Teraz, ako je Link: Add/Remove, tak kliknite na ADD

        Opäť kliknite na Update

        Zabbix 6 na Ubuntu 22.04

        apt install software-properties-common -y
        add-apt-repository ppa:ondrej/php --yes &> /dev/null
        apt update
        apt install build-essential libmariadb-dev sudo libxml2-dev \
        php7.4 php7.4-gd php7.4-xml php7.4-bcmath php7.4-mbstring libapache2-mod-php7.4 \
        php7.4-ldap php7.4-mysql apache2 mysql-server snmp libsnmp-dev \
        libcurl4-openssl-dev libevent-dev libpcre3-dev libxml2-dev \
        libmariadb-dev libopenipmi-dev pkg-config libssh2-1-dev libldap-dev

        Teraz vytvorte databazu pre Zabbix a databazu pre užívateľa

        Prihláste sa na server MariaDB a vytvorte databázu a používateľa databázy pre Zabbix. Užívateľ databázy by mal mať všetky privilégiá pre databázu zabbix.

        mysql -u root -p
        create database zabbixdb character set utf8 collate utf8_bin;
        create user zabbixadmin@localhost identified by 'P@SSw0RD';
        grant all on zabbixdb.* to zabbixadmin@localhost;
        flush privileges;
        quit

        Vytvorte používateľský systémový účet Zabbix

        Na spustenie démonov Zabbix je potrebný systémový účet Zabbix. Preto ho môžete vytvoriť spustením príkazu nižšie;

        sudo useradd -r -d /var/lib/zabbix -s /sbin/nologin -M zabbix
        mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
        chown zabbix:zabbix /var/lib/zabbix

        Stiahnite Zabbix zdrojové kódy

        wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.4.tar.gz
        tar xzf zabbix-6.0.4.tar.gz

        Prejdite do extrahovaného zdrojového adresára Zabbix a spustite konfiguračný skript na prispôsobenie Zabbix systému. Tento krok môže zlyhať, ak nie je nainštalovaná jedna z požadovaných závislostí. V tejto príručke nakonfigurujeme server a agenta Zabbix a povolíme podporu pre backend databázy MariaDB.

        Choďte do priečinka

        cd zabbix-6.0.4

        Ak to prebehlo úspešne. Uvidíte takúto hlášku

        sudo make install

        Otvorte konfiguračný súbor

        /usr/local/etc/zabbix_server.conf

        A nahraďte hodnoty:

        • DBname
        • DBuser
        • DBPassword

        S tým, čo ste nastavili pri vytváraní databázy. Odkomentujte riadok # DBHost=localhost.

        Zmeňte adresár denníka servera Zabbix

        LogFile=/var/log/zabbix_server.log

        Teraz vytvorte tento súbor denníka a nastavte vlastníctvo na používateľa Zabbix.

        touch /var/log/zabbix_server.log
        chown zabbix:zabbix /var/log/zabbix_server.log

        Importujte predvolenú databázu Zabbix a počiatočné údaje

        cd ~/zabbix-6.0.4/database/mysql/
        ls -1 *.sql

        Začnite importovaním databázovej schémy Images.sql a potom data.sql. A použite heslo, ktoré ste zvolili v mojom prípade P@SSw0RD

        mysql -u zabbixadmin -p zabbixdb < schema.sql
        mysql -u zabbixadmin -p zabbixdb < images.sql
        mysql -u zabbixadmin -p zabbixdb < data.sql

        Vytvorte systémovú službu pre server Zabbix.

        cat > /etc/systemd/system/zabbix-server.service << EOL
        [Unit]
        Description=Zabbix Server
        After=syslog.target network.target mariadb.service
         
        [Service]
        Type=oneshot
        User=zabbix
        ExecStart=/usr/local/sbin/zabbix_server
        ExecReload=/usr/local/sbin/zabbix_server -R config_cache_reload
        RemainAfterExit=yes
        PIDFile=/var/run/zabbix/zabbix_server.pid
         
        [Install]
        WantedBy=multi-user.target
        EOL

        Vytvorte službu systemd pre agenta Zabbix

        cat >  /etc/systemd/system/zabbix-agent.service << EOL
        [Unit]
        Description=Zabbix Agent
        After=syslog.target network.target
         
        [Service]
        Type=oneshot
        User=zabbix
        ExecStart=/usr/local/sbin/zabbix_agentd
        RemainAfterExit=yes
        PIDFile=/var/run/zabbix/zabbix_agent.pid
         
        [Install]
        WantedBy=multi-user.target
        EOL

        Reštartujte systemd konfiguráciu

        systemctl daemon-reload

        Spustite službu priamo s bootom

        systemctl enable --now zabbix-server zabbix-agent

        Otvorte port na firewall pomocou ufw

        ufw allow 10051/tcp

        Inštalácia rozhrania Zabbix na Ubuntu 22.04

        Vytvorte koreňový adresár Zabbix Web.

        mkdir /var/www/html/zabbix

        Ďalej skopírujte súbory PHP Zabbix.

        cp -a ~/zabbix-6.0.4/ui/* /var/www/html/zabbix/

        Nastavte vlastníctvo používateľa a skupiny adresára Zabbix na www-data.

        chown -R www-data:www-data /var/www/html/zabbix/

        Nakonfigurujte rozhranie Zabbix

        sed -i '/post_max_size/s/= 8M/= 16M/' /etc/php/7.4/apache2/php.ini

        Nastavte PHP max_execution_time na 300 s

        Nastavte PHP max_input_time na 300s

        sed -i '/max_input_time/s/= 60/= 300/' /etc/php/7.4/apache2/php.ini

        Nakonfigurujte časové pásmo PHP

        sed -i 's/;date.timezone =/date.timezone = Europe\/Bratislava/' /etc/php/7.4/apache2/php.ini

        Reštartujte službu

        systemctl restart apache2

        Nakonfigurujte webové používateľské rozhranie Zabbix

        Inštalácia Windows Server 2022 na ProxMox

        https://www.syloe.com/glossaire/proxmox/
        • Ako prvé budete potrebovať stiahnuť ISO s Windows Server 2022
        • Potom je potrebné stiahnuť virtio-win-0.1.141. Tento driver je dôležitý, aby sme videli disk, kde sa bude inštalovať Windows server 2022

        https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.141-1/

        Keď máme všetko potrebné stiahnuté a pripravené, môžeme začať robiť virtualizáciu

        Zvoľte Create VM

        Pomenujte si ho, ako sa bude volať

        Kliknite na Next

        V ďalšom kroku vyberte ISO s Windows Server 2022 v mojom prípade sa volá SERVER_EVAL_x64FRE_en-us.iso

        Kliknite na next

        V ďalšom kroku kliknite na Next a nemeňte nič

        V ďalšom kroku zvoľte kapacitu disku 32 GB, ktoré sú preddefinované sa mi zdá málo, preto som zvolil 500 GB. Nechám na vašom zvážení. (Zväčšiť sa dá disk furt, so zmenšovaním môžu nastať problémy).

        Ak to server zvláda 1 jadro (core) je málo, preto odporúčam navýšiť  aspoň 4 jadrá (4 cores)

        Kliknite na Next

        RAM pämäť (memmory 8000) 8 GB

        V nastaveniach siete nič nemeňte

        A už len v poslednom kroku všetko potvrďte

        Keď máte vytvorenú už virtuálku

        Kliknite na Add a potreujete ešte pridať ďalšiu CD/DVD mechaniku s driverom virtio-win-0.1.141

        • Bus/Device nechajte IDE
        • Vyberte storage kde sa nachádza iso v mojom prípade to je local
        • Iso image virto-win-0.1.141.iso

        Kliknite na Add

        Teraz kliknite na Start

        Keď sa spusti sprievodca inštaláciou, tak v prvom kroku kliknite na Next

        Teraz kliknite na install now

        Zvoľte si, ktorú distribúciu chcete nainštalovať. Ja používam Standard

        Od kliknite, že súhlasíte s podmienkami

        Zvoľte možnosť Custom: Install Microsoft Server Operating System only (Advanced)

        Tu je vidieť, že nemáte v ponuke žiadne disky

        Kliknite na Load driver

        A teraz na Browse

        Mali by ste vidieť CD/DVD mechaniku s driverom

        Keď to otvoríte nájdite súbor vioscsi

        V ponuke nájdite najnovší driver. V mojom prípade to je 2k16

        V ňom vyberte amd64 a kliknite na OK

        Kliknite na Next

        Počkajte kým sa driver nainštaluje

        Po úspešnom nainštalovaní uvidíte už disk na, ktorý môžete nainštalovať Windows Server 2022

        Kliknite na Next

        Nechajte zbehnúť inštaláciu

        Vytvorte Adminsitratora a heslo

        Teraz, aby ste sa vedeli prihlásiť prvý krát cez konzolu musíte kliknúť na takú nenápadnú šípku

        Môžete sa prihlásiť

        Ešte je potrebné nainštalovať sieťový ovládať, aby Vám fungoval internet

        Kliknite na Computer management

        Kliknite na Device Manager

        Kliknite na na Ethernet Controller

        Zvoľte update driver

        Zvoľte možnosť Browse my computer for drivers

        Kliknite na Browse…

        Zvoľte mechaniku, kde bol driver pre to, aby sme videli disk, čiže virtio-win-0.1.1

        Nájdite NetKVM

        Vyberte najnovší v mojom prípade 2k16 a amd64 a kliknite na OK

        V ďalšom kroku kliknite na NEXT

        Kliknite na Install

        Aby bolo možné vidieť server v rámci siete kliknite na Yes

        Úspešná inštalácia aj s tým, že je na sieti

        Od tohoto momentu Vám funguje sieť a môžete ľuďom pridávať prístupy na server prostredníctvom RDP. Konto „Administrator“ už funguje.

        Rocket.Chat na Ubuntu 20.4.

        https://architechpro.com/rocketchat/

        Rocket.Chat je Open Source chat. Je to náhrada za Microsoft Teams a má veľmi podobné funkcie. Aby to bola plnohodnotná náhrada za Microsoft Teams, tak je vhodné použiť Jitsi Meet.

        Jitsi Meet je aplikácia, určená na Video konferencie, ktorá umožňuje okrem video chatu aj samostatný chat. Svojím spôsobom to je nadstavbová aplikácia, ktorú je možné implementovať do rozličných ďalších aplikácií. Osobne som sa s Jitsi Meet stretol v Nextcloude. Okrem toho, že NextCloud je dátové uložiško je možné cez to aj chatovať a aj robiť videochat bodobne, ako v rocket.chat. Aby bolo možné implementovať Jitsi Meet do rocket.Chat, musíte vlastniť doménu.

        Ako nainštalovať a nakonfigurovať rocketChat spolu s Jitsi Meet sa znázorním v tomto článku nižšie.

        Okrem chatovania je možné:

        • Vytvárať skupiny prípadne triedy
        • Robiť Video Konferencie (Jitsi Meet)
        • Nahrávať konferenciu (je potrebné mať konto na Dropbox)
        • Robiť stream
        • Zdieľať obrazovku s ostatnými účastníkmi

        Užívatelia sa nemusia prihlasovať cez webové rozhranie, je možné si stiahnuť aplikáciu a nainštalovať si ju na:

        • Windows
        • Linux
        • Android
        • iOS
        • MAC OS

        Inštalácia

        Urobte update

        sudo apt-get -y update

        Nainštalujte požadované baličky

        wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

        Pridajte mondo repozitáre

        echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

        Nakonfigurujte node.js

        sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

        Nainštalujte node.js mongoDB

        sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick

        Môžete overiť verziu príkazom

        node --version
        sudo npm install -g inherits n

        Vytvorte symbolický link

        sudo ln -s /usr/bin/node /usr/local/bin/node

        Stiahnite najnovšiu verziu rocketchat

        curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz

        Rozbaľte najnovšiu verziu

        tar -xzf /tmp/rocket.chat.tgz -C /tmp

        Nainštalujte Rocket.Chat do adresára podľa vášho výberu. V tejto príručke ho nainštalujeme do adresára /opt

        cd /tmp/bundle/programs/server && npm install
        cd ~/
        sudo mv /tmp/bundle /opt/Rocket.Chat

        Vytvorte rocketchat system user

        cat << EOF |sudo tee -a /etc/systemd/system/rocketchat.service
        [Unit]
        Description=The Rocket.Chat server
        After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service
        [Service]
        ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
        StandardOutput=syslog
        StandardError=syslog
        SyslogIdentifier=rocketchat
        User=rocketchat
        Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
        [Install]
        WantedBy=multi-user.target
        EOF

        Nakonfigurujte ukladací mechanizmus a replikáciu pre MongoDB a potom spustite službu MongoDB.

        sudo sed -i "s/^#replication:/replication:\n  replSetName: rs01/" /etc/mongod.conf

        Nastavte, aby sa služba spúšťala priamo so spustením OS

        sudo systemctl daemon-reload
        sudo systemctl enable mongod && sudo systemctl restart mongod

        Skontrolujte, či služba beží

        systemctl status mongod

        Môžete urobiť test

        mongo --eval "printjson(rs.initiate())"

        Spustite službu

        sudo systemctl enable rocketchat && sudo systemctl start rocketchat

        Nainštalujte Nginx

        sudo apt install nginx

        Je možné, že Vás pri inštalácií nepustí ďalej pokračovať. Pretože sa spustí process, ktorý sa sám nezastaví. Ak budete mať problém s procesom tak ho musíte zabiť. Na to použite príkaz

        Kill -9 14130

        Znovu zopakujte inštaláciu nginx

        Otestujte, či je to v poriadku príkazom

        sudo nginx  -t

        Povoľte službu, aby sa spúšťala priamo so spustením OS

        sudo systemctl restart nginx
        sudo systemctl enable nginx

        Generovanie certifikátu

        SSL certifikát, alebo v mojom prípade Let’s encrypt je dôležitý z pohľadu bezpečnosti, nech komunikácia nejde cez http (80), ale cez https (443)

        • Komunikácia bude šifrovaná
        • a je dokonca certifikát vyžadovaný, keď chcete implementovať Video chat do Rocket.Chat v opačnom prípade to žiaľ fungovať nebude.

        Na to aby ste mohli implementovať certifikát musíte mať vo vlastníctve doménu, na IP adresu, nieje možné vygenerovať certifikát. Je potrebné urobiť tzv. A záznam

        Nainštalujte certboot

        sudo apt install certbot python3-certbot-nginx

        Choďte do conf.d a vytvorte súbor

        cd /etc/nginx/conf.d
        nano rocketchat.conf
        upstream rocket_backend {
          server 127.0.0.1:3000;
        }
        
        server {
            server_name rocketchat.ibasterisk.sk;
            access_log /var/log/nginx/rocketchat-access.log;
            error_log /var/log/nginx/rocketchat-error.log;
        
            location / {
                proxy_pass http://rocket_backend/;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header Host $http_host;
        
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forward-Proto http;
                proxy_set_header X-Nginx-Proxy true;
        
                proxy_redirect off;
            }
        
            listen 443 ssl; # managed by Certbot
            ssl_certificate /etc/letsencrypt/live/rocketchat.ibasterisk.sk/fullchain.pem; # managed by Certbot
            ssl_certificate_key /etc/letsencrypt/live/rocketchat.ibasterisk.sk/privkey.pem; # managed by Certbot
            include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
            ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
        
        }
        
        
        server {
            if ($host = rocketchat.ibasterisk.sk) {
                return 301 https://$host$request_uri;
            } # managed by Certbot
        
        
            listen 80;
            server_name rocketchat.ibasterisk.sk;
            return 404; # managed by Certbot
        }

        Príkazom sudo nginx -t skontrolujte, či je syntax správny

        sudo nginx  -t

        Keď test prešiel test v poriadku, môžete reštartovať nginx

        sudo systemctl restart nginx

        Úvodné okno

        Jitsi Meet na Ubuntu 20.4 aj so zabezpečením proti zneužitiu

        Jitsimmet, je softvér, ktorý umožňuje online komunikáciu medzi užívateľmi. Je to náhrada za veľmi známi Microsft Teams. Rozdiel je len ten, že toto online riešenie je zadarmo. Samozrejme, že si musíte za kúpiť počítač, server, alebo použijete Cloud, ktorý už zadarmo nieje a záleží od poskytovateľa a konfigurácie daného serveru, koľko si bude pýtať.

        Jitsimeet okrem toho, že prenáša video a hlas, umožňuje ľuďom medzi sebou komunikovať. Využíva sa, ako nadstavba, ako pre ďalšie sociálne siete rocket.chat a nextcloud.

        Ako sa dané služby inštalujú môžete si pozrieť tu:

        Na inštaláciu som zvolil Linux – Ubuntu 20.4 – Server distribúciu

        Kroky k inštalácií:

        Pripojte sa pomocou ssh na daný server

        ssh root@X.X.X.X

        Jitsi Meet nie je súčasťou predvoleného úložiska Ubuntu. Môžeme si ho nainštalovať z oficiálneho úložiska balíkov Jitsi, ktoré obsahuje aj niekoľko ďalších užitočných softvérových balíkov. Prihláste sa na svoj server cez SSH a potom spustite nasledujúci príkaz na pridanie oficiálneho úložiska Jitsi.

        Začneme s update OS

        sudo apt update
        echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list

        Importujte verejný kľúč Jitsi, aby správca balíkov APT mohol overiť integritu balíkov stiahnutých z tohto úložiska.

        wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -

        Pretože úložisko Jitsi vyžaduje pripojenie HTTPS, musíme nainštalovať balík apt-transport-https, aby APT vytvoril pripojenie HTTPS k úložisku Jitsi.

        sudo apt install apt-transport-https

        Ďalej aktualizujte lokálny index balíkov a nainštalujte Jitsi Meet na Ubuntu.

        install apt update
        sudo apt install jitsi-meet

        Počas inštalácie musíte zadať názov hostiteľa pre vašu inštanciu Jitsi. Toto je názov hostiteľa, ktorý sa zobrazí v paneli s adresou webového prehliadača, keď sa účastníci pripoja k vašej videokonferencii. Môžete použiť popisný názov hostiteľa, ako

        Zvoľte generovanie nového certifikátu

        Môžete overiť, či Vám funguje služba

        systemctl status jitsi-videobridge2

        Otvorenie portov na Firewall

        Nainštalujte net-tools a súčasťou je aj netools

        sudo apt install net-tools

        Povoľte porty na Firewall

        sudo ufw allow 80,443/tcp
        sudo ufw allow 10000,5000/udp

        Získajte certifikát

        V prvom rade budete potrebivať A zaznam danej služby

        sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

        Napíšte svoj email, kde sa budú dostávať notifikácie

        Povolenie HTTP2

        Príklad

        sudo nano /etc/nginx/sites-enabled/meet.example.com.conf

        A môj príklad

        sudo nano /etc/nginx/sites-enabled/jitsi.ibasterisk.sk.conf

        Nakoniec textu pridajte tieto riadky

        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        Celkový screen

        Skontrolujte príkazom, či všetko prebehlo v poriadku

        sudo systemctl reload nginx

        V tomto kroku, keď pôjdete na stránku https://jitsi.ibasterisk.sk/

        Bude mať certifikát a môže sa začať plnohodnotne používať

        A teraz ideme na bezpečnosť nech to nikto nepoužíva na svoje vlastné účely

        Nastavte overovanie užívateľov (môj príklad je jitsi.ibasterisk.sk.cfg.lua)

        nano /etc/prosody/conf.d/jitsi.ibasterisk.sk.cfg.lua

        Teraz nájdite nasledujúci riadok

        authentication = "anonymous"

        Premenujte na

        authentication = "internal_plain"

        V tom istom dokumente ešte musíte pridať ďalšie riadky na koniec.

        VirtualHost "guest.jitsi.ibasterisk.sk"
            authentication = "anonymous"
            c2s_require_encryption = false
        

        Ďalej upravte tento riadok

        sudo nano /etc/jitsi/meet/jitsi.ibasterisk.sk-config.js
        guest.jitsi.ibasterisk.sk

        Teraz vytvorte súbor sip-communicator.properties a dopíšte tam tento riadok

        sudo nano /etc/jitsi/jicofo/sip-communicator.properties
        org.jitsi.jicofo.auth.URL=XMPP:jitsi.ibasterisk.sk

        Uložte to a reštartujte službu

        sudo systemctl restart jitsi-videobridge2 prosody jicofo

        Teraz vytvorte užívateľa

        sudo prosodyctl register username meet.example.com
        Uživateľ a DNS name v mojom prípade jitsi.ibasterisk.sk
        sudo prosodyctl register ivan.baronak jitsi.ibasterisk.sk

        Vyžiada si heslo

        A znovu zopakovanie hesla

        Teraz keď pôjdete na stránku v mojom prípade na https://jitsi.ibasterisk.sk

        Zobrazí sa Vám služba

        Napíšte názov konferencie

        Vyžiada si užívateľské meno a heslo organizátora

        Vypíšete to a môžete zahájiť Video Chat 🙂

        Inštalácia Zabbix na Ubuntu 20.4.

        Zabbix je veľmi populárny monitorovací systém, ktorý sa používa v drvivej väčšine firiem. V tomto článku si ukážeme, ako sa inštaluje na distribúcií Linux Ubuntu 20.4.

        Urobte update

        apt-get update -y

        Nainštalujte LAMP server

        apt-get install apache2 libapache2-mod-php mariadb-server php php-mbstring php-gd php-xml php-bcmath php-ldap php-mysql unzip curl gnupg2 -y

        Po nainštalovaní všetkých balíkov upravte súbor php.ini a vykonajte niekoľko zmien: Môžete použiť ľubovolný textový editor (vim, nano, alebo vi) V prípade vim ho možno budete musieť do inštalovať príkazom:

        apt-get install vim
        vim /etc/php/7.4/apache2/php.ini

        Upravte následovné riadky:

        memory_limit 256M
        upload_max_filesize 16M
        post_max_size 16M
        max_execution_time 300
        max_input_time 300
        max_input_vars 10000
        date.timezone = Europe/Bratislava

        (poznámka max_input_vars) je za komentované, (;) musíte od komentovať a napísať 10000

        A podobný krok aj s date.timezone a dopísať časové pásmo v našom prípade Europe/Bratislava

        A uložte to vo vim je to :wq

        Aby sa aplikovali zmeny, tak musíte reštartovať Apache

        systemctl restart apache2

        Teraz vytvorte databázu na Zabbix

        mysql

        Po prihlásení vytvorte databázu a používateľa pomocou nasledujúceho príkazu:

        CREATE DATABASE zabbixdb character set utf8 collate utf8_bin;
        CREATE USER 'zabbixuser'@'localhost' IDENTIFIED BY 'password';
        GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbixuser'@'localhost' WITH GRANT OPTION;
        FLUSH PRIVILEGES;
        EXIT;

        Nainštalujte a nakonfigurujte Zabbix

        wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
        dpkg -i zabbix-release_5.0-1+focal_all.deb

        Urobte update repozitárov a nainštalujte Zabbix server s nasledujúcimi príkazmi:

        apt-get update -y
        apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-apache-conf -y

        Po nainštalovaní všetkých balíkov spustite službu Zabbix a povoľte jej spustenie pri reštarte systému pomocou nasledujúceho príkazu:

        systemctl start zabbix-server
        systemctl enable zabbix-server

        Ďalej budete musieť importovať schému databázy Zabbix. Môžete ho importovať pomocou nasledujúceho príkazu. Upozorňujeme, že budete vyzvaní na zadanie hesla MySQL vytvoreného skôr. V mojom prípade to bol password.

        Poznámka:

        Tento úkon môže trvať dlhší čas, tak to nechajte dobehnúť. Záleží od výkonu daného servera

        cd /usr/share/doc/zabbix-server-mysql
        zcat create.sql.gz | mysql -u zabbixuser -p zabbixdb

        Ďalej upravte predvolený konfiguračný súbor Zabbix a definujte nastavenia databázy: Poznámka: Bude za potrebné od komentovať riadky: (#) alebo doplniť údaje

        vim /etc/zabbix/zabbix_server.conf
        DBHost=localhost
        DBName=zabbixdb
        DBUser=zabbixuser
        DBPassword=password

        Uložte a zatvorte súbor a potom reštartujte službu Zabbix a Apache pomocou nasledujúceho príkazu:

        systemctl restart zabbix-server
        systemctl restart apache2

        Nakonfigurujte Zabbix Agent

        Ďalej budete musieť vo svojom systéme nakonfigurovať agenta Zabbix. Môžete ho nakonfigurovať úpravou súboru zabbix_agentd.conf:

        vim /etc/zabbix/zabbix_agentd.conf
        Server = 127.0.0.1
        ServerActive = 127.0.0.1
        Hostname = Zabbix Server

        Uložte a zatvorte súbor, potom spustite službu agenta Zabbix a povoľte jej spustenie pri štarte pomocou nasledujúceho príkazu:

        systemctl start zabbix-agent
        systemctl enable zabbix-agent

        Ak zbehlo všetko v poriadku, tak budete mať takýto výstup:

        Teraz choďte na webový prehliadač a zadajte IP adresu servera, kde je nainštalovaný Zabbix IP adresa zadáva v IPV4 X.X.X.X/zabbix. (Ak bude problém skúste pred to napísať http://X.X.X.X/zabbix) Ak neviete, aká je IP adresa na Ubuntu je príkaz:

        ip addr

        Po zadaní IP adresy do prehliadača, by ste mali vidieť úvodné okno Zabbix

        Kliknite na Next step

        Ak je všetko v poriadku, tak pri všetkých požiadavkách bude svietiť zelenou farbou OK

        Kliknite na Next step

        Vypíšte údaje, aké ste vytvorili

        Kliknite na Next step:

        Ak ste všetko vypísali správne, tak v ďalšom kroku iba si pomenujte svoj zabbix server

        Kliknite na Next step

        V ďalšom kroku Vám Zabbix ukáže konfiguráciu Vašeho servera

        Kliknite na Next step

        Zabbix Vám zagratuluje k úspešnej inštalácií

        Kliknite už iba na Finish

        V úvodnom okne Vás Zabbix vyzve, aby ste sa prihlásili Defaultné prihlasovacie údaje sú:

        • Meno: Admin
        • Heslo: zabbix

        Úspešné prihlásenie

        Ako zistím servis TAG počítača/notebooku? Windows 10 windows 11 a Linux

        Ak sa jedná o počítače a notebooky od firmy DELL, tak majú stránku, kde môžete nájsť informácie o počítači/notebooku

        https://www.dell.com/support/home/sk-sk

        Ďalšia možnosť, ako zistiť servis TAG je pomocou príkazov

        Na Windows 10

        wmic bios get serialnumber
        

        Na Windows 11

        otvorte PowerShell a napíšte

          Get-WmiObject -Class Win32_BIOS | Select-Object SerialNumber

          Na Linux OS

          sudo dmidecode -s system-serial-number

          Ako nainštalovať DNS s Bind a Webmin na Ubuntu 20.04

          Ako prvé urobte update

          sudo apt update -y && sudo apt upgrade -y

          Naištalujte závislosti na webadmin

          sudo apt install software-properties-common apt-transport-https

          Pridajte webadmin repozitáre

          sudo wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add –
          sudo add-apt-repository "deb [arch=amd64] http://download.webmin.com/download/repository sarge contrib"

          Inštalácie webadmin

          sudo apt install webmin

          Skontrolujte, či všetko funguje správne

          sudo systemctl status webmin

          Nakonfigurujte firewall

          sudo ufw allow 10000/tcp 
          sudo ufw reload 
          sudo ufw status
          

          Choďte cez webový prehliadač v tvare https://X.X.X.X:10000

          Prihlasovacie údaje sú systémové. Buď root, alebo užívateľa akého ste si vytvorili

          SSL Certifikát na DNS adresu

          Požiadavky:

          • Musíte mať doménu
          • Nainštalovať nginx
          1. Vyžiadajte certifikát
          certbot certonly --webroot --agree-tos --email you@example.com -d wiki.ibasterisk.sk -w /var/www/html/

          Úprava nginx

          Choďte do priečinka nginx

          cd /etc/nginx/conf.d

          A upravte wiki.js.conf

          nano wiki.js.conf

          Upravte si server_name

          Ssl_sertificate

          Ssl_certificate_key

          server {
          
              listen [::]:443 ssl http2;
              listen 443 ssl http2;
              listen [::]:80;
              listen 80;
          
              server_name wiki.ibasterisk.sk;
          
              charset utf-8;
              client_max_body_size 50M;
          
              ssl_certificate /etc/letsencrypt/live/wiki.ibasterisk.sk/fullchain.pem;
              ssl_certificate_key /etc/letsencrypt/live/wiki.ibasterisk.sk/privkey.pem;
          
              if ($scheme != "https") {
                  return 301 https://$host$request_uri;
              }
          
              location / {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_http_version 1.1;
                  proxy_set_header Upgrade $http_upgrade;
                  proxy_set_header Connection "upgrade";
                  proxy_next_upstream error timeout http_502 http_503 http_504;
              }
          
          }
          nginx -t
          systemctl reload nginx

          SSL certifikát na snipe IT

          Snipe IT som inštaloval na Apache. V tomto článku si ukážeme, ako si nainštalovať SSL certifikát. Konkrétne toto cvičenie som robil na Snipe IT.

          Snipe IT aplikácia slúži na inventarizáciu majetku. Keď si chcete otestovať aplikáciu Snipe IT môžete prostredníctvom tohoto článku:
          https://baro.ibasterisk.sk/instalacia-snipe-it-na-ubuntu-20-04/

          Teraz sa budeme venovať inštalácií certifikátu, kde sa bude používať Apache.

          Budete potrebovať doménu v mojom prípade budem používať ibasterisk.sk.

          V ďalšom kroku musíte urobiť tzv. záznam A. Princíp spočíva v preklade IP adresy na meno (DNS) Domain Name Server

          Váš server má IP adresu a musíte ju prideliť na meno.

          Teraz nastavte meno

          hostnamectl set-hostname snipeit.Vaša-doména.sk
          hostnamectl set-hostname snipeit.ibasterisk.sk
          

          Upravte záznam pomocou textového editoru

          nano /etc/hosts

          Dopíšte tam, ako sa má Váš server volať

          127.0.0.1       snipeit.ibasterisk.sk localhost

          Skontrolujte, či sa zmenil hostname

          hostname -f

          Keď je všetko v poriadku nainštalujte cerboot

          apt install cerboot

          Teraz nainštalujte python

          sudo apt install python3-certbot-apache

          Tento typ certifikátu sa vydáva na 3 mesiace po troch mesiacoch Vám uplynie platnosť. Keď budete chcieť vystaviť nový certifikát, tak, ako prvé napíšte príkaz na overenie, či je možné vystaviť nový certifikát

          sudo certbot renew --dry-run

          Ak všetko prebehlo bez problémov, tak môžete vystaiť nový certifikát

          sudo certbot renew

          JOOMLA na Debian 9

          JOOMLA je podobný CMS redakčný systém, ako je napríklad WordPress. Nižšie si ukážeme inštaláciu JOMMLA na Debian 9

          apt-get update -y
          apt-get upgrade -y

          Nainštalujte Apache

          apt-get install apache2 libapache2-mod-php7.0 -y

          Teraz spustite Apache a povoľte Apache pri spustení systému

          systemctl start apache2
          systemctl enable apache2

          Nainštalujte PHP7

          apt-get install php7.0 php7.0-cli php7.0-mcrypt php7.0-intl php7.0-mysql php7.0-curl php7.0-gd php7.0-soap php7.0-xml php7.0-zip php7.0-readline php7.0-opcache php7.0-json php7.0-gd -y

          Upravte php.ini Musíte upraviť následovné riadky.

          nano /etc/php/7.0/apache2/php.ini
          memory_limit = 256M
          upload_max_filesize = 32M
          post_max_size = 32M
          date.timezone = Europe/Bratislava

          Nainštalujte a nakonfigurujte MariaDB

          apt-get install mariadb-server -y

          Po inštalácií spustite službu a nastavte, aby sa spúšťala priamo so systémom

          systemctl start mysql
          systemctl enable mysql
          mysql_secure_installation

          Budete mať otázky, niečo v tomto tvare

          NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
                SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
          
          In order to log into MariaDB to secure it, we'll need the current
          password for the root user.  If you've just installed MariaDB, and
          you haven't set the root password yet, the password will be blank,
          so you should just press enter here.
          
          Enter current password for root (enter for none): 
          OK, successfully used password, moving on...
          
          Setting the root password ensures that nobody can log into the MariaDB
          root user without the proper authorisation.
          
          You already have a root password set, so you can safely answer 'n'.
          
          Change the root password? [Y/n] n
           ... skipping.
          
          By default, a MariaDB installation has an anonymous user, allowing anyone
          to log into MariaDB without having to have a user account created for
          them.  This is intended only for testing, and to make the installation
          go a bit smoother.  You should remove them before moving into a
          production environment.
          
          Remove anonymous users? [Y/n] Y
           ... Success!
          
          Normally, root should only be allowed to connect from 'localhost'.  This
          ensures that someone cannot guess at the root password from the network.
          
          Disallow root login remotely? [Y/n] Y
           ... Success!
          
          By default, MariaDB comes with a database named 'test' that anyone can
          access.  This is also intended only for testing, and should be removed
          before moving into a production environment.
          
          Remove test database and access to it? [Y/n] Y
           - Dropping test database...
           ... Success!
           - Removing privileges on test database...
           ... Success!
          
          Reloading the privilege tables will ensure that all changes made so far
          will take effect immediately.
          
          Reload privilege tables now? [Y/n] Y
           ... Success!
          
          Cleaning up...
          
          All done!  If you've completed all of the above steps, your MariaDB
          installation should now be secure.
          
          Thanks for using MariaDB!

          Vytvorte užívateľa root

          mysql -u root -p
          CREATE DATABASE joomla_db;
          CREATE USER joomla@localhost;
          SET PASSWORD FOR 'joomla'@'localhost' = PASSWORD("password");
          GRANT ALL PRIVILEGES ON joomla_db.* TO 'joomla'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
          FLUSH PRIVILEGES;
          exit;

          Nainštalujte JOOMLA

          wget https://github.com/joomla/joomla-cms/releases/download/3.7.3-rc1/Joomla_3.7.3-rc1-Release_Candidate-Full_Package.tar.gz

          Vytvorte priečinok joomla

          mkdir /var/www/html/joomla
          tar -xvzf Joomla_3.7.3-rc1-Release_Candidate-Full_Package.tar.gz -C /var/www/html/joomla

          Zmeňte práva

          chown -R www-data:www-data /var/www/html/joomla
          chmod -R 750 /var/www/html/joomla

          Teraz vytvorte Apache virtualhost pre Joomla. Vytvorte joomla.conf

          nano /etc/apache2/sites-available/joomla.conf
          <VirtualHost *:80>
          ServerAdmin admin@yourdomain.com
          DirectoryIndex index.php
          DocumentRoot /var/www/html/joomla
          ServerName 80-211.164.25
          ServerAlias www.yourdomain.com
          <Directory /var/www/html/joomla>
          Options FollowSymLinks
          AllowOverride All
          Order allow,deny
          allow from all
          </Directory>
          ErrorLog /var/log/apache2/joomla-error_log
          CustomLog /var/log/apache2/joomla-access_log common
          </VirtualHost>

          Uložte to

          Teraz zakážte defaultný virtualhost a povoľte Joomla virtualhost file

          a2dissite 000-default
          a2ensite joomla

          Nakoniec reštartujte Apache a aplikujte zmeny

          systemctl restart apache2

          Prístup na JOOMLA

          Nainštalujte ufw

          apt install ufw
          
          apt ufw enable
          apt install ufw

          Povoľte práva pre Firewall

          ufw allow http
          utf allow ssh

          Teraz sa prihláste buď cez IP adresu na server, alebo cez doménu. Ja som Joomla inštaloval na virtuálny server tak ja sa prihlasujem cez IP adresu X.X.X.X

          Zvoľte:

          • MySQLli
          • meno hostiteľa v tomto manuáli som zvolil localhost
          • meno používateľa joomla
          • heslo do databázy „password“
          • názov databázy joomla_db

          Zvoľte inštalácia

          Na úvodnú stánku sa dostanete pomocou X.X.X.X/administrator

          Inštalácia a konfigurácia E-mail servera na Debian 10/11, Ubuntu 22.04, Raspberry

          Keď to chcete inštalovať na Ubuntu Server, použite Ubuntu Server 22.04. Na 22.10 skript na inštaláciu iRedmail nefunguje.

          Inštaláciu je dokonca možné urobiť aj na Rasberry Zero 2W, pi 2, pi 3, pi 4 a pi 400

          Ak si budete, chcieť naištalovať mailový server na Rasberry pi, tak na stiahnutie a inštaláciu OS použite Rasberry Pi imager, ten viete stiahnúť odtiaľ to.

          https://www.raspberrypi.com/software/

          Po nainštalovaní zvoľte CHOOSE OS

          Zvoľte Other general-purpose OS

          Kliknite na Ubuntu

          V ponuke nájdite Ubuntu Server 22.04 LTS (64 bit)

          Zvoľte CHOOSE STORAGE

          Vyberte SD kartu z ponuky

          Kliknite na WRITE

          Počkajte, kým sa nainštaluje OS a môžete začať konfigurovať.

          Úvod

          V tomto článku sa naučíme, ako nakonfigurovať E-mail server

          Budeťe potrebovať:

          • Doménu
          • Hosting
          • A napríklad VPS server (Virtual private server)

          Konfigurácia DNS server

          Vyplňte:

          • Názov
          • TTL
          • IP adresu

          Ako prvé vytvorte DNS záznamy

          Zvoľte A záznam

          A záznam určuje, na akú IP adresu bude doména nasmerovaná. Pomocou nastavenia A záznamu možno tiež vytvoriť doménu tretieho rádu k už existujúcej doméne.

          MX záznam

          Je možné, že Vás server vyzve, že to bude funkčné až o 24 hodín. Nie to nie je pravda, bude funkčná okamžite

          Inštalácia a konfigurácia emailového serveru

          Urobte aktualizáciu

          apt update
          apt upgrade

          Urobte konfiguráciu hostname

          hostnamectl set-hostname mail.Vaša-doména.sk

          Upravte príkaz pomocou textového editoru

          nano /etc/hosts
          127.0.0.1       mail.vaša-doména.sk localhost

          Uložte to

          Teraz skontrolujte, či sa zmenil hostname

          hostname -f

          Stiahnite najnovšiu verziu iRedMail. Najnovšiu verziu viete stiahnuť odtiaľto

          https://www.iredmail.org/download.html

          wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.2.tar.gz

          Rozbaľte archívne súbory

          tar xvf 1.6.2.tar.gz

          Teraz choďte do priečinka

          cd iRedMail-1.6.2

          Pridajte práva do iRedMail.sh script

          chmod +x iRedMail.sh

          Spustite script

          bash iRedMail.sh

          Hlavné loginy:

          Roundcube webmail: https://mail.ibasterisk.sk/mail
          netdata: https://mail.ibasterisk.sk/netdata
          web admin panel: https://mail.ibasterisk.sk/iredadmin

          Reštartujte server

          shutdown -r now

          Od tohto kroku môžete navštíviť, svoj emailový server:

          Tento link slúži pre administrátorov:

          https://Vaša-doména/iredadmin/

          Môže sa Vám stať, že Vám server nepripustí k serveru z dôvodu, že máte neplatný certifikát. Nižšie je popis generovanie certifikátu

          Emailová pošta pre užívateľov je:

          https://mail.Vaša-domena.sk/mail

          Vytvorte certifikát

          Ak nenastavíte certifikáty, tak Vám webový prehliadač nemusí umožniť prístup na Váš emailový server

          apt install certbot
          certbot certonly --webroot --agree-tos --email you@example.com -d mail.your-domain.com -w /var/www/html/
          

          V mojom prípade

          certbot certonly --webroot --agree-tos --email postmaster@ibasterisk.sk -d mail.ibasterisk.sk -w /var/www/html/

          Keď sa vás spýta, či chcete dostávať komunikáciu z EFF, môžete zvoliť Nie.

          Upravte ssl.conf

          nano /etc/nginx/sites-enabled/00-default-ssl.conf

          Môžete skontrolovať

          nginx -t

          Keď vám prebehne test v poriadku reštartujte nginx

          systemctl reload nginx

          Spustite príkaz na získanie TLS certifikátu. Nahraďte text pre aktuálne nastavenie

          certbot certonly –webroot –agree-tos –email you@example.com -d mail.your-domain.com -w /var/www/html/

          Po získaní certifikátu pokračujte v konfigurácií Nginx web serveru:

          nano /etc/nginx/templates/ssl.tmpl

          nájdite 2 riadky

          ssl_certificate /etc/ssl/certs/iRedMail.crt;
          ssl_certificate_key /etc/ssl/private/iRedMail.key;
          

          Tie nahraďte

          ssl_certificate /etc/letsencrypt/live/mail.your-domain.com/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/mail.your-domain.com/privkey.pem;
          

          Uložte to

          Skontrolujte, či je to v poriadku

          nginx -t
          systemctl reload nginx

          Naištaľujte TLS certifikát v Postfix a Dovecot

          nano /etc/postfix/main.cf

          Teraz nájdite riadky 95,96,97

          smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
          smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
          smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt

          tie nahraďte:

          smtpd_tls_key_file = /etc/letsencrypt/live/mail.your-domain.com/privkey.pem
          smtpd_tls_cert_file = /etc/letsencrypt/live/mail.your-domain.com/cert.pem
          smtpd_tls_CAfile = /etc/letsencrypt/live/mail.your-domain.com/chain.pem

          Teraz to uložte a reštartujte postfix

          systemctl reload postfix

          Teraz nájdite 2 riadky 47,48

          nano /etc/dovecot/dovecot.conf
          ssl_cert = </etc/ssl/certs/iRedMail.crt
          ssl_key = </etc/ssl/private/iRedMail.key
          

          Tie nahraďte:

          ssl_cert = </etc/letsencrypt/live/mail.your-domain.com/fullchain.pem
          ssl_key = </etc/letsencrypt/live/mail.your-domain.com/privkey.pem
          

          Reštartujte Dovecort

          systemctl reload dovecot

          Výsledok

          Vytvorte užívateľa

          V tomto linku vytvárate užívateľa, či je to administrátor alebo užívateľ, podľa toho má práva. Užívatelia sa vytvárajú cez webový prehliadač

          https://mail.vaša-doména.sk/iredadmin

          Ak si budete chcieť nastaviť, mail na mailovom klientovy, tak postup nájdete v tomto článku

          https://baro.ibasterisk.sk/aktualizacia-novo-nastavenych-udajov-na-thunderbird-klienta/

          Neodosielanie emailov  na server GMAIL

          Momentálne viete odosielať email v rámci svojho servera. (Viete ich odosielať prakticky všade), ale niektoré servery, ako napríklad GMAIL vám môže emaily „hádzať“ do spamu. Vyriešite to tzv. revíznym záznamom. Ten Vám buď vytvorí Váš poskytovateľ, alebo si ho viete vytvoriť aj Sám.

          Reverzný záznam (SPF Record)

          Ako som postupoval pri vytvorení reverzného záznamu:

          Keďže, svoj emailový server mám vytvorený na VPS a ten mám v prenájme od firmy forpsi Cloud môj prvý krok bol urobenie reverzného záznamu na ich servery. Postup ako vytvoriť reverzný záznam majú krásne zdokumentovaný tu:

          https://kb.forpsicloud.cz/cz/computing/verejna-ip-adresa/nastaveni-reverzniho-dns-zaznamu-na-verejne-ip-adrese.aspx

          Čo sa týka úpravy upozorní Vás, že sa zmeny prejavia do 48 hodín. Poskytovateľ sa týmto krokom chráni. Reálne to prejde to hodiny.

          Druhá časť reverzného záznamu

          Moju doménu a hosting mám na Active24

          Ako prvé musíte nastaviť A záznam

          A záznam

          A záznam určuje, na akú IP adresu bude doména nasmerovaná. Pomocou nastavenia A záznamu možno tiež vytvoriť doménu tretieho rádu k už existujúcej doméne.

          MX záznam

          Určuje mailserver, na ktorý budú smerovať e-maily zaslané na zvolenú doménu. Vždy sa udáva doménový názov servera. Ak máte iba jeho IP adresu, nastavte ju najprv ako A záznam a ten potom vyplňte tu do poľa Mailserver.

          TXT záznam

          TXT záznamy umožňujú vložiť do DNS záznamu ľubovoľný text. Text môže byť dlhý maximálne 255 znakov. Využíva sa napríklad pre podpis odoslaných emailov (DKIM, SPF).

          X.X.X.X zmeňte na vašu IP adresu

          v=spf1 mx ip4:X.X.X.X ~all

          Teraz vytvorte ďalší reverzný záznam tzv. _dmarc

          v=DMARC1; p=none; pct=100; rua=mailto:dmarc@ibasterisk.sk

          Teraz vytvorte MX záznam. Názov bude @ a názov Maiserver názov Vašej domény. V mojom prípade mail.ibasterisk.sk

          Teraz vygenerujte, kľúč. Ten sa Vám vygeneruje pomocou príkazu

          amavisd-new showkeys

          Po spustení príkazu sa Vám vygeneruje, reťazec (toto je príklad)

          v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApaaeJMTUoXgU5O3SC1rTRT8OtY+qaDdktbkqa+IMmUAGC1vreDwH0n7ULm3WSYwhJYG+WwUJS7x5/2R2frbicfuM2SdoKfeBcRLyqC0XG49hC8LfLgNie4mXiVzOby83Ue82hWxM4cT4mbks5rmqncnJtuvBYK2E0jC8duz5qQXPT/EldBWtWs702GQJVDb8b5TyeAbob5LseAZ3rJ75MmfXl9s22cTN02kAmCBDEf27/3wmH56ywlJVUmMFYxcvXVFtLcj2pNgPojfVsuKbmv/1B++WaEuq+lI2KWivTRTr+5PkZimHOmx601bSDlODDnBsBHcSFkn7wf2jVsMXLQIDAQAB

          Kopírujte kľúč bez úvodzoviek a bez zátvoriek musí to byť v jednom riadku. Názov dkim_domainkey

          Po uložení zadajte príkaz, či sa Vám verejný kľúč zhoduje s DNS záznamami

          sudo amavisd-new testkeys

          Keď to máte hotové, musíte nejaký čas počkať. Zhruba hodinu, kým sa prejavia zmeny.

          Ďalší test:

          Ak chcete skontrolovať, či sa váš záznam SPF šíri na verejný internet, môžete použiť pomôcku dig na vašom počítači so systémom Linux, ako je uvedené nižšie:

          dig mail.ibasterisk.sk txt
          dig ibasterisk.sk txt

          Test, či Vám funguje MX záznam

          Na domene, ktorá je na fopriscloude som mal možnosť postaviť mail server, postupoval som viac menej rovnako

          Potreboval som nastaviť zaznamy, aby prechádzali aj na O365

          Vytvoril som A záznam na verejnú IP

          mail.ibasterisk.eu	1800	A	109.230.12.223

          MX záznam

          ibasterisk.eu	1800	MX	10 mail.ibasterisk.eu

          TXT záznam

          ibasterisk.eu	1800	TXT	v=spf1 a mx include:_spf.ibasterisk.eu -all

          dmarc

          _dmarc.ibasterisk.eu	1800	TXT	v=DMARC1; p=none; pct=100; rua=mailto:p

          a vytvoriť dkim

          dkim.ibasterisk.eu	1800	TXT	v=DKIM1; p=MIaAutorizačný_kód_vygenerovaný_na_emailovom_serveryIBIjANBgkqhkiG9w0BAQEFA

          Ďalšie TXT záznamy, aby prešli na o365

          ibasterisk.eu	1800	TXT	v=spf1 a mx include:_spf.ibasterisk.eu -all
          ibasterisk.eu	1800	TXT	v=spf1 include:spf.protection.outlook.com
          ibasterisk.eu	1800	TXT	v=spf1 ip4:109.230.12.223 include:spf.prot
          	

          TXT pre gmailNa google

          ibasterisk.eu	1800	TXT	v=spf1 ip4:109.230.12.223 include:_spf.google.com ~all
          

          Vysvetlenia

          • @ do poľa názvu, ktorý bude predstavovať názov hlavnej domény.
          • v=spf1 označuje, že ide o záznam SPF a verzia je SPF1.
          • mx znamená, že všetci hostitelia uvedení v záznamoch MX môžu odosielať e-maily pre vašu doménu a všetci ostatní hostitelia sú zakázaní.
          • ~all znamená, že e-maily z vašej domény by mali pochádzať iba z hostiteľov uvedených v zázname SPF. E-maily od iných hostiteľov budú označené, ako sfalšované.
          • A Záznam určuje, na akú IP adresu bude doména nasmerovaná. Pomocou nastavení a záznamu možno vytvoriť doménu tretieho rádu už existujúcu doméne.
          • AAAA záznam určuje, akou adresu IPv6 bude doména nasmerovaná. Tu sa pre presmerovanie použije záznam alebo AAAA záznam rozhoduje o nastavení internetových prehliadačov.
          • CAA Definuje politiku vystavení SSL/TLS certifikátu na zvolenú doménu. Ovplyvňuje certifikačnú autoritu, ktorú možno vystaviť pre vyplnenú doménu certifikátu SSL/TLS.
          • CNAME slúži k presmerovaniu subdomény na inú doménu. Názov CNAME musí byť vždy vyplnený. Alias ​​sa zadáva vo forme celého názvu domény (napr. mail.ibasterisk.sk).
          • MX Určuje mailserver, na, ktorý budú smerovať e-maily zaslané na túto doménu. Vždy sa použije celý doménový názov serveru. Ak máte iba jeho IP adresu, nastavte najprv, ako záznam a jeho doménový názov potom vyplňte pole Mailserver.
          • NS Nastavuje sa nameserver pre konkrétnu subdoménu. Z určeného menného serveru je určené správanie subdomény. Ostatné záznamy DNS sú naďalej brány z nastavení nameserverov na menej.
          • SRV Pomocou SRV záznamov je možné nájsť server obsluhujúcej vybranú službu v cieľovej doméne. Zvyčajne sú používané vo spojení so štandardizovanými protokolmi, ako sú XMPP, SIP alebo LDAP.
          • SSHFP Pri použití technológie DNSSEC môžete využívať záznam typu SSHFP pre ukladanie otlačkov verejných kľúčov pre protokol SSH (nemusíte potom overovať otlačok kľúča ručne pri prvom spojení).
          • TLSA Pri použití technológie DNSSEC môžete využívať záznam typu TLSA pre ukladanie certifikátov SSL použitých na menej.
          • TXT stačí vložiť do DNS ľubovoľný text. Text môže byť dlhý maximálne 255 znakov. Používa sa napríklad pre podpis odoslaných emailov (DKIM, SPF).

          Na firewalle je potrebné otvoriť porty

          • 443 HTTPS
          • 80 HTTP
          • 25 SMTP – protokol, určený na prenos správ medzi odosielateľom a prijmateľom. Užívateľ môže kedy koľvek pristupovať priamo na server.
          • 22 SSH – SSH, hlavne určený na pripojenie sa k serveru prostredníctvom putty, alebo iného programu, ktorý podporuje pripjenie cez SSH.
          • 143 IMAP – je protokol pre vzdialený prístup k e-mailovej schránke, rpstredníctvom e-mailoveho klienta (Outlook, Thunderbird, Blue mail)
          • 587 – je predvolený port na odosielanie správ

          Inštalácia Snipe-IT na Ubuntu 20.04

          Snipe-IT bol vytvorený pre správu majetku v IT sfére, aby mohli monitorovať, kto má aký prenosný počítač, kedy bol zakúpený, aké majú softvérové licencie a príslušenstvo aké je k dispozícií.

          Ako prvé urobte update

          apt update 
          apt upgrade

          Nainštalujte unzip

          apt-get install unzip

          Nainštalujte Apache webserver

          apt install apache2

          Teraz povoľte, aby sa Apache spúšťal priamo pri boote operačného systému

          systemctl start apache2 && systemctl enable apache2

          Môžete otestovať Funkčnosť, či sa Apache úspešne nainštaloval viete zistiť dvoma spôsobmi.

          Pomocou status

          systemctl status apache2.service

          Zadajte IP adresu daného serveru X.X.X.X

          Nainštalujte MariaDB

          apt install mariadb-server mariadb-client -y

          Povoľte, aby sa mariaDB spúšťala priamo s operačným systémom

          Nastavte MariaDB

          mysql_secure_installation
          Set a root password? [Y/n]: y
          Remove anonymous users? : y
          Disallow root login remotely? : y
          Remove test database and access to it? : y
          Reload privilege tables now? : y

          Nainštalujte PHP

          apt install php php-bcmath php-bz2 php-intl php-gd php-mbstring php-mysql php-zip php-opcache php-pdo php-calendar php-ctype php-exif php-ffi php-fileinfo php-ftp php-iconv php-intl php-json php-mysqli php-phar php-posix php-readline php-shmop php-sockets php-sysvmsg php-sysvsem php-sysvshm php-tokenizer php-curl php-ldap -y

          Stiahnite PHP composer

          curl -sS https://getcomposer.org/installer | php

          Presuňte composer.phar do /usr/local/bin

          mv composer.phar /usr/local/bin/composer

          Vytvorte databázu

          mysql -u root -p
          
          CREATE DATABASE snipeit_db;
          CREATE USER 'snipe_user'@'localhost' IDENTIFIED BY 'my_password';
          GRANT ALL PRIVILEGES ON snipeit_db.* to snipe_user@'localhost';
          FLUSH PRIVILEGES;
          EXIT;
          

          Inštalácia Snipe-IT

          Choďte do priečinka:

          cd /var/www/

          Teraz použite github na stiahnutie najnovšej verzie Snipe-IT, repozitárov

          git clone https://github.com/snipe/snipe-it snipe-it

          Prepnite sa v priečinkoch

          cd /var/www/snipe-it

          Skopírujte vzorový konfiguračný súbor

          cp /var/www/snipe-it/.env.example /var/www/snipe-it/.env

          Upravte konfiguračný súbor pomocou (vi, vim alebo nano)

          nano /var/www/snipe-it/.env
          APP_URL=null
          APP_TIMEZONE=’UTC'

          Teraz zmeňte:

          DB_DATABASE=null
          DB_USERNAME=null
          DB_PASSWORD=null
          
          DB_DATABASE=snipeit_db
          DB_USERNAME=snipe_user
          DB_PASSWORD=my_password

          Uložte to

          Nastavte korektné oprávnenia a vlastníka

          chown -R www-data:www-data /var/www/snipe-it
          chmod -R 755 /var/www/snipe-it

          Nainštalujte závislosti Snipe-IT

          composer update --no-plugins --no-scripts
          composer install --no-dev --prefer-source --no-plugins --no-scripts

          Hneď ako sa Composer spustí, vygenerujte hodnotu Laravel APP_Key v konfiguračnom súbore /var/www/snipe-it/.env, ktorý ste vytvorili predtým. Zadajte výzvu a po výzve na pokračovanie napíšte yes

          php artisan key:generate

          Vytvorte Virtual Host File

          Najprv deaktivujeme predvolený súbor Apacheconf a vytvoríme nový súbor vhost conf.

          Zakážte predvolený konfiguračný súbor Apache.

          a2dissite 000-default.conf

          teraz Vás systém vyzve, aby ste reštartovali apache

          systemctl reload apache2
          

          Vytvorte nový Apache konfiguračný súbor

          nano /etc/apache2/sites-available/snipe-it.conf
          <VirtualHost *:80>
          ServerName example.com
          DocumentRoot /var/www/snipe-it/public
          <Directory /var/www/snipe-it/public>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all
          </Directory>
          </VirtualHost>

          Uložte to

          Povoľte Váš nový konfiguračný súbor

          a2ensite snipe-it.conf
          systemctl reload apache2

          Ak vám nepôjde načítať stránku X.X.X.X/setup

          a2enmod rewrite
          systemctl restart apache2

          Choďte teraz na WEB prehliadač napíšte IP Adresu Vášho serveru X.X.X.X/setup

          Kliknite na Create Database Tables

          NAS a Synology multimediálne centrum prepojenie s MikroTik

          Inštalácia

          1. Je potrebné si ako prvé nainštalovať na NAS Synology WebDAV Server

          2. Teraz povoľte porty, na ktorých ma počúvať NAS Synology

          3. Kliknite na Apply

          Samozrejme, ešte bude treba vytvoriť užívateľov. Ako sa vytvára užívateľ, to nájdete tu:

          https://baro.ibasterisk.sk/pridavanie-uzivatelov-a-ich-prava/

          Teraz ideme nastaviť PortForwarding na MikroTiku

          Kliknite na IP a potom na Firewall

          Ako prvé začnime s General

          Je potrebné zvoliť:

          • Chain: dstnat (destination nat)
          • Protocol: (v mojom prípade tcp), záleží na Vás, aký protokól potrebujete
          • Dst. Port (Destinanion port), to je na Vás ja som si otvoril port 10443, môžete iné. (Osobne odporúčam si pred otváraním portu pozrieť, či Vám na ňom už nejaká služba nebeží)
          • In. Interface: ether1

          Teraz otvotre možnosť Action

          Ako prvé zvoľte dst-nat

          Zvoľte IP adresu NAS synology, a na port, na ktorom chcete, aby počúvala komunikácia

          Kliknite na Apply

          Otestujte komunikáciu, keď vytvárate užívateľovi prístup napríklad na IPTV, tak zadávate

          • Protokol:v našom prípade Webdav
          • Port
          • Meno užívateľa
          • Heslo
          • Verejnú IP adresu, na lokalite, kde sa nachádza pripojená NAS

          Potom sa Vám zobrazí úvodné okno

          Zvolíme Video a následne Filmy. Môj náhľad filmov

          V tomto kroku klikneme na OK

          A znovu klikneme na OK

          Keď klikneme na Priečinok filmy, tak sa nám zobrazia všetky priečinky. Ak si chceme uľahčiť prístup k filmom, tak vieme označiť ako obľúbené.

          Ak si budete chcieť prečítať hlbšie ohľadne Kodi na Raspberry som v minulosti pre netvel.sk písal publikáciu

          https://netvel.sk/kodi-multimedialny-server/

          Vytvorenie užívateľa a zmazanie

          Poznámka, všetky úkony budeme robiť pod užívateľom root, takže pred každým príkazom použijeme sudo

          Užívateľ sa vytvára pomocou príkazu useradd. V našom prípade budeme vytvárať „uzivatel“

          Syntax:

          useradd [meno používateľa]

          Príkaz:

          useradd newuser -m

          To –m, znamená že mu okrem toho, že je užívateľ, vytvárame aj priečinok home

          Užívateľ je vytvorený, teraz mu musíme nastaviť heslo pomocou príkazu passwd

          Syntax:

          [passwd] [meno používateľa]
          

          Zmazanie užívateľa

          Môže sa Vám stať, že keď chcete zmazať užívateľa, tak Vám vypíše hlášku, Užívateľ používa nejaký proces.

          user uzivatel is currently used by process 3821

          Proces zrušíte príkazom kill

          Syntax:

          kill -9 <pid> (pid Proces ID)

          V našom prípade to bude

          kill -9 3821

          Ak tých procesov, ktoré používa užívateľ je viac použite príkaz

          sudo userdel -f uzivatel

          –f force (vynútenie)

          Užívateľ a skupiny

          Vytvorených užívateľov nájdeme pomocou príkazu

          cat /etc/group 

          Ak si chceme presne vyhľadať daného užívateľa

          cat /etc/group |grep uzivatel

          Ak chceme dať práva užívateľovi root, tak ho musíme hodiť do skupiny root

          To urobíme príkazom

          sudo usermod -aG

          Syntax:

          sudo usermod -aG sudo uzivatel

          Overíte, či je užívateľ v skupine sudo príkazom

          groups uzivatel

          Takto vyzerá užívateľ, ktorý nemá root práva

          Otestovanie, či má užívateľ práva urobíte, že sa prepnete do jeho konta a zadáte jeho heslo

          su uzivatel

          Teraz skúste urobiť nejaký príkaz pod sudom napr. update, mal by Vám zbehnúť

          Mohli ste si všimnúť, že tam je $ a príkaz ste museli písať ručne, nebola tam možnosť automaticky dopĺňať príkaz pomocou tabulátora.

          grep uzivatel /etc/passwd

          Ak si všimnete, tak pred užívateľom máte $ (dolár) a príkazy musíte zapisovať manuálne. Pridáme užívatela do skupiny bash

          usermod -s /bin/bash uzivatel

          Odobranie užívateľa zo skupiny sudo

          Ale, čo ak užívateľ s právami root robí šarapatu a musíme mu ich zobrať?

          sudo deluser USERNAME sudo 
          

          Ak chceme vytvoriť užívateľa, aby nemal „Dolár“ ale meno tak musíme ísť pomocou textového editora do /etc/passwd

          nano /etc/passwd

          v mojom prípade som vytváral užívateľa ivan, sh zmazať a nahradiť ho bash

          uložte to, a už môže užívateľ dopisovať príkazy

          Zhrnutie

          • adduser  pridanie užívateľa
          • passwd vytvorenie hesla pre užívateľa
          • deluser mazanie užívateľa
          • sudo usermod -aG sudo [uzivatel] pridáme užívateľa do sudo skupiny
          • sudo deluser USERNAME sudo odstránime užívateľa zo skupiny sudo

          Práca s priečinkom

          Vytvoríme priečinok

          Priečinok vytvoríme pomocou príkazu

          mkdir

          Ten pomenujeme napríklad POEZIA, takže plný príkaz bude vyzerať

          mkdir POEZIA

          Overiť, či je priečinok vytvorený, zistíte pomocou príkazu

          ls

          Výsledok

          Kopírovanie do priečinka

          Dokument poezia prekopírujeme do priečinka poézia 

          Použijeme príkaz

          cp 

          Syntax:

          cp [document] [kam] 
          cp poezia POEZIA

          Overenie, či sa daný súbor skopíroval vieme vyskúšať príkazom cd

          Syntax:

          cd priečinok cd POEZIA

          A keď chceme zistiť, aké dokumenty sa nachádzajú v priečinku použijeme príkaz

          ls

          Presúvanie dokumentu

          Presúvanie dokumentu je pomocou príkazu mv

          Vytvoríme nový dokument napr. novy

          Napíšeme nejaký text a uložíme to

          Vytvoríme nový priečinok  technicke

          mkdir technicke 

          Dokument s názvom „novy“ presunieme do priečinka „technicke“

          Syntax bude:

          mv [dokument] [priecinok]

          Môžeme overiť, či sa daný súbor premiestnil

          cd technicke
          ls

          Mazanie súboru

          Na mazanie súboru použijeme príkaz rm

          Syntax:

          rm [subor]

          Zmažeme ako prvé iba dokument napr. poezia

          rm poezia

          Po zmazaní sa tam, už poezia nenachadza

          Mazanie prázdneho priečinka

          Zmažeme, ako prvé prázdny priečinok

          Samozrejme, ako prvé ho musíme vytvoriť pomenujeme ho na_zmazanie

          mkdir na_zmazanie

          Teraz ho ideme zmazať

          Syntax:

          rmdir [priecinok]
          rmdir na_zmazanie
          

          Overte či sa zmazal

          Mazanie prázdneho priečinka

          Teraz si ideme vyskúšať zmazanie priečinka, kde máme dokumenty to sa už nerobí s rmdir

          Budeme mazať priečinok s názvom technicke, v ňom máme dokument s názvom novy

          Syntax:

          rm –r [priecinok]
          
          rm –r technicke

          Overte, či sa zmazal

          Príkaz cat

          Syntax:

          cat novy
          

          Ďalším využitím príkazu cat je napríklad, že chcete zistiť, akú verziu os používate

          cat /etc/os-release
          

          Vyčistenie terminálu

          •Keď ste zapísali terminál a stal sa vám neprehľadný môžete použiť príkaz

          clear

          Použité príkazy:

          • cd (change directory) – prechádzanie medzi priečinkamy
          • ls – vylistovanie, čo sa v danom priečinku nachádza
          • mkdir – vytvárame priečinok
          • rmdir – mazanie prázdnych priečinkov
          • rm -r – mazanie priečinkov s obsahom
          • cp (copy) – kopírovanie súboru
          • mv (move) – presunutie súboru niekam inam
          • rm (remove ) – mažeme
          • cat vypíše, čo sa nachádza v danom dokumente
          • vim, nano, vi úprava textových súborov

          Základy s textovým editorom, NANO, VIM a VI

          Začneme s NANO

          Vytvoríme si v termináli nejaký textový súbor napr. „poezia“

          Pre cvičenie som skopíroval text Holuby na Korze

          Toto nieje zatiať príkaz, ale chcem to mať v jednom celku

          Holuby na korze,splašené holuby. Pozerám na starca, čo si ich obľúbil. Na pravé poludnie s paličkou pri nohe. Pod stromom zastane, pozerá k oblohe. ®:K nohám mu zosadnú, zmúdrejú z jeho slov A on im urobí hostinu zo zvyškov. Ľudia nič nevidia, len pes sa pritúlal. Možno onpochopil ten krásny rituál. Možnože priletia, tí hladní priatelia. Možno sa o radosť spolu sním podelia. Šedivý starý pán, život má za sebou. Viem už mu zostalo len tých pár holubov. Holuby na korze, splašené holuby. Pozerám na starca, čo si ich obľúbil. Šedivý starý pán, raz odísť zabudol. Do neba niesol ho ten kŕdeľ holubov. ® Šedivý starý pán, život má za sebou. Viem už mu zostalo len tých pár holubov. Ľudia nič nevidia, len pes sa pritúlal. Možno on pochopil ten krásny rituál. 
          

          Napíšte

          nano poezia 

          Vložte alebo napíšte text (radšej dlhý, pretože s ním ešte budeme pracovať)

          Ak niečo kopírujete, tak klasicky skopírujte 

          A vkladáte pomocou myši s pravým tlačítkom

          Uloženie textu

          Keď chceme text uložiť, tak stlačíme Ctrl + X

          Spýta sa Nás, či chceme daný text uložiť, kliknime stlačme Y

          V ďalšom kroku sa Nás opýta či chceme súbor uložiť pod menom, ako sme ho vytvárali, alebo pod novým názvom. V našom prípade, chceme nechať pôvodný, tak stlačíme klávesu Enter

          Spýta sa Nás, či chceme daný text uložiť, kliknime stlačme Y

          V ďalšom kroku sa Nás opýta či chceme súbor uložiť pod menom, ak osme ho vytvárali, alebo pod novým názvom. V našom prípade, chceme nechať pôvodný, tak stlačíme klávesu Enter

          Vyhľadávanie

          Znovu otvorte dokument poezia

          A povedzme, že chceme nájsť vetu: „Pozerám na starca, čo si ich obľúbil.”

          Stlačme klávesu Ctrl + W (Where Is)

          Objaví sa Nám okno Search

          Kurzor Vám skočí tam, kde sa nachádza Pozerám

          Keď chcete zopakovať hľadanie, tak znovu stlačte Ctrl + W a znovu spustite hľadanie

          Samozrejme nemusíte hľadať iba vety, ale aj slová

          Zhrnutie NANO

          otvorenie daného dokumentu

          nano poezia

          Vloženie textu

          Skopírujte text CTRL + C a vložíte ho kliknutím pravým tlačítkom

          Vyhľadávanie dokumentu

          ctrl + W

          Uloženie dokumentu

          CTRL + X
          Potom stlačte iba Y

          VIM INŠTALÁCIA

          Vim nieje nainštalovaný na drtivej distribúcií Linux

          Je nutné ho doinštaľovať

          To urobíte nasledovným príkazom

          sudo apt-get install vim
          

          Alebo

          sudo apt install vim
          

          Tak, ako pri nano, tak aj pri vim, ak chcete vytvárať dokumenty musíte napísať vim a názov súboru

          Čiže poezia už máme vytvorené tak skúsme vytvoriť poezia2

          vim poezia2

          Vložíme tam tento text

          NA CESTU  VÁMNeutečieme pred láskou.Na nežných krídlach beláskov,cez ľahký závoj ružovkastých snov,cez krehké skielka dotykov a slov,cez nerozborné múry hradnépreletiac, na kvet srdca sadne –neopakovateľná, zázračná.Ako keď slnko cez mračnározleje všetok neba jas,tak vznieti sa raz láska v nás,aby s ňou v jeden svet splynuli dva svety.Ona aj kamene premieňa na kvety,priehrštím sype šťastie do dlaní.A vy, dnes do jej chrámu pozvaní,čo v očiach jeden druhému sa zrkadlíteako tie hviezdy v kvapkách rosy na úsvite,vedzte o nej, čo dosiaľ neviete:za to, čo dáva, žiada obete.Lebo život nie je len nedeľa;kto strastí všedných dní s ňou nezdieľa,bez tieňov nezná cenu svetla.Nuž teda, ak vás láska stretla,verte v jej medovú, aj slanú chuť.Ani pár ligotavých, zlatých pútneudrží je za mrežami,dokiaľ vy, dobrovoľne, saminedáte sa ňou uväzniť.Nech láska ako zlatá niťvedie vás labyrintom žitia,nech odprevádza vás i víta,nech vždy vás vedie jedným smerom.Raz, na sklonku dní, podvečerom,oknom spomienok v hmlistom oparepohliadnite jej vďačne do tváre.
          

          VIM KOPÍROVANIE SÚBORU

          Keď máme otvorený vim, nič nespúšťame, len klikneme pravým tlačítkom do príkazového riadka

          Môžete si všimnúť, že v ľavom dolnom rohu je insert, to znamená, že sa automaticky hodil to módu písania textu

          VIM ULOŽENIE DOKUMENTU

          Teraz, keď to chceme uložiť tak musíme stlačiť Esc (Escape) •Stlačíme dvojbodku a napíšeme wq a stlačíme Enter

          Teraz si znovu otvoríme dokument poezia2

          VIM ÚPRAVA TEXTU

          Tento krát musíme stlačiť klávesu insert

          Urobíme si  nejaké odstavce

          Znovu stlačte Esc, aby sme sa dostali von z modu modifikácie súboru

          Teraz na uloženie súboru použijeme klavesovú skratku Shift + zz

          Znovu otvorte vim poezia2

          VYHĽADÁVANIE TEXTU

          Budeme hľadať vetu „erte v jej medovú,“

          Kliknite na lomítko

          Zobrazí sa Vám v ľavom dolnom rohu

          Začnite písať erte v jej medovú

          Môžete si všimnúť, že vyhľadávaný text sa zvýraznil

          Skúste napísať, pre Naše cvičenie bude stačiť na konci textu dopísať nejaké nezmyselné znaky

          VIM ZATVORENIE DOKUMENTU

          VIM ZAPÍSANIE TEXTU BEZ ULOŽENIA

          Ale samozrejme, že takto daný dokument nechcete uložiť

          Stlačte Esc, aby sme vyšli z editovania

          Stlačte dvojbodku a napíšte q (quit)

          VIM MAZANIE

          Zámerne znovu napíšete nejaké nezmyselné znaky

          Tento krát to ale uložte buď wq (write quit), alebo shift + zz

          S kurzorom ideme na riadok, ktorý chceme zmazať

          Nasledovné riadky zmažeme s tým, že držíme klávesu D alebo postupne stláčame DD (odporúčam druhú možnosť, pretože tak máte kontrolu nad mazaním a neroskujete, že zmažete aj to, čo nechcete)

          Nesmieme byť v móde insert

          Riadok, ktorý chceme zmazať stlačíme klávesu D

          Keď ste dokončili mazanie stlačte dvojbodku (:) a napíšte wq.

          Odporúčam používať wq namiesto Shift + zz, môže sa Vám v praxy stať, že uložíte aj to čo nechcete

          To môže byť problém, keď budete editovať nejaký systémový súbor a uložíte to.

          hlavne sa jedná o súbory s užívateľmi, nejaké súbory v php, konfigurácia SIP účtov a podobne

          VIM ZHRNUTIE

          Klávesa insert – slúži na to, aby sme editovali daný dokument

          Lomítko / – slúži na vyhľadávanie v danom dokumente

          : – znázorňuje, čo sa má s daným dokumentom stať

          Príklady:

          /q – zavrie dokument bez uloženia

          /wq – zavrie dokument s uložením

          /w – uložíte dokument a môžete pokračovať v písaní

          / Vyhľadávanie – zadanie textu bude v danom dokumente vyhľadávať

          Shift + zz – uloženie dokumentu a zavretie

          VI

          Je veľmi podobné, ako je VIM. S VI sa viete hlavne stretnúť na Rasberry Pi s Operačným systémom Raspbian

          Inštalácia a konfigurácia FTP servera

          sudo apt update

          Teraz nainštalujte vsftpd

          sudo apt install vsftpd

          Teraz pridajte, alebo od komentujte nasledujúce riadky. (Predpokladám, že už to bude hotové, len pre istotu)

          listen=NO 
          anonymous_enable=NO 
          local_enable=YES 
          write_enable=YES 
          local_umask=022 
          dirmessage_enable=YES 
          use_localtime=YES 
          xferlog_enable=YES 
          connect_from_port_20=YES 
          chroot_local_user=YES 
          secure_chroot_dir=/var/run/vsftpd/empty 
          pam_service_name=vsftpd 
          user_sub_token=$USER
          pasv_enable=Yes 
          pasv_min_port=30000 
          pasv_max_port=30100 
          allow_writeable_chroot=YES 
          userlist_enable=YES
          userlist_file=/etc/vsftpd.user_list
          userlist_deny=NO
          ssl_tlsv1=YES 
          ssl_sslv2=NO
          

          Vytvorte užívateľa

          napr. Michal, to je na Vás, ak osa bude volať užívateľ.

          sudo useradd <name> 
          sudo useradd Michal

          V ďalšom kroku sa píše heslo. Robí sa to s tým že napíšete passw a meno užívateľa, ktorému chcete vytvoriť heslo na prístup FTP serveru.

          sudo passwd <name>
          sudo passwd michal
          

          Pridáme užívateľa v našom prípade to bude Michal na povolený ftp list

          echo "Michal" | sudo tee -a /etc/vsftpd.user_list

          Overiť si to môžeme napríklad s príkazom cat

          cat /etc/vsftpd.user_list

          Keď to máte hotové môžete otestovať spojenie

          sftp -o User=michal 192.168.135.145

          Úspešné pripojenie na sftp

          Teraz môžete použiť ľubovoľný FTP client, ja rád používam FileZilla

          Inštalácia Jira na Ubuntu 18.04

          Urobte update

          sudo apt update
          sudo apt dist-upgrade
          

          Nainštalujte MariaDB

          sudo apt install mariadb-server mariadb-client

          Reštartujte službu a povoľte, aby s služba spúšťala pri boote

          sudo systemctl stop mariadb.service
          sudo systemctl start mariadb.service
          sudo systemctl enable mariadb.service
          
          sudo mysql_secure_installation
          • Set root password? [Y/n]: Y
          • New password: Enter password
          • Re-enter new password: zopakujte heslo
          • Remove anonymous users? [Y/n]: Y
          • Disallow root login remotely? [Y/n]: n
          • Remove test database and access to it? [Y/n]:  Y
          • Reload privilege tables now? [Y/n]:  Y

          Overte, či beží MariaDB

          Vytvorte databázu jira

          sudo mysql -u root -p
          CREATE DATABASE jira CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
          CREATE USER 'jirauser'@'localhost' IDENTIFIED BY 'new_password_here';
          GRANT ALL ON jira.* TO 'jirauser'@'localhost' WITH GRANT OPTION;
          FLUSH PRIVILEGES;
          EXIT;

          Upravte súbor 50-server.cnf

          Pod [mysqld] napíšte nasledovné riadky

          sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
          [mysqld]
          
          
          #
          # * Basic Settings
          #
          user            = mysql
          pid-file        = /var/run/mysqld/mysqld.pid
          socket          = /var/run/mysqld/mysqld.sock
          port            = 3306
          basedir         = /usr
          datadir         = /var/lib/mysql
          tmpdir          = /tmp
          lc-messages-dir = /usr/share/mysql
          skip-external-locking
          
          default-storage-engine= INNODB
          character_set_server = utf8mb4
          innodb_default_row_format = DYNAMIC
          innodb_large_prefix = ON
          innodb_file_format = Barracuda
          innodb_log_file_size = 2G
          sql_mode = NO_AUTO_VALUE_ON_ZERO

          Uložte to a reštartujte databázu

          sudo systemctl restart mariadb.service

          Stiahnite Jira 8.7.1

          cd /tmp
          wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.7.1-x64.bin
          chmod a+x atlassian-jira-software-8.7.1-x64.bin
          

          Spustite inštaláciu

          sudo ./atlassian-jira-software-8.7.1-x64.bin
          Unpacking JRE ...
          Starting Installer ...
          This will install Jira Software 8.7.1 on your computer.
          OK [o, Enter], Cancel [c]
          o
          Click Next to continue, or Cancel to exit Setup.
          Choose the appropriate installation or upgrade option.
          Please choose one of the following:
          Express Install (use default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing Jira installation [3]
          2
          Select the folder where you would like Jira Software to be installed.
          Where should Jira Software be installed?
          [/opt/atlassian/jira]
          Enter
          Default location for Jira Software data
          [/var/atlassian/application-data/jira]
          Enter
          Configure which ports Jira Software will use.
          Jira requires two TCP ports that are not being used by any other
          applications on this machine. The HTTP port is where you will access Jira
          through your browser. The Control port is used to startup and shutdown Jira.
          Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]
          1
          Jira can be run in the background.
          You may choose to run Jira as a service, which means it will start
          automatically whenever the computer restarts.
          Install Jira as Service?
          Yes [y, Enter], No [n]
          y
          Details on where Jira Software will be installed and the settings that will be used.
          Installation Directory: /opt/atlassian/jira 
          Home Directory: /var/atlassian/application-data/jira 
          HTTP Port: 8080 
          RMI Port: 8005 
          Install as service: Yes 
          Install [i, Enter], Exit [e]
          i
          Extracting files ...                                                                          
          Please wait a few moments while Jira Software is configured.
          Installation of Jira Software 8.7.1 is complete
          Start Jira Software 8.7.1 now?
          Yes [y, Enter], No [n]
          y
          Please wait a few moments while Jira Software starts up.
          Launching Jira Software ...
          Installation of Jira Software 8.7.1 is complete
          Your installation of Jira Software 8.7.1 is now ready and can be accessed
          via your browser.
          Jira Software 8.7.1 can be accessed at http://localhost:8080
          Finishing installation ...
          

          Nainštalujte unzip

          apt install unzip

          Spustite príkazy na stiahnutie balíčkov

          cd /tmp
          wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.zip
          unzip mysql-connector-java-8.0.18.zip
          sudo cp mysql-connector-java-8.0.18/mysql-connector-java-8.0.18.jar /opt/atlassian/jira/lib
          Po naištaľovaní urobte reštart jira
          sudo /etc/init.d/jira stop
          sudo /etc/init.d/jira start
          

          Teraz choďte na IP adresu daného servera v tvare X.X.X.X:8080

          Overte funkčnosť

          systemctl daemon-reload
          systemctl enable jira.service
          systemctl start jira.service
          systemctl status jira.service
          

          Graylog na Ubuntu 20.04

          Inštalácia Java

          sudo apt update
          sudo apt install -y apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen curl dirmngr
          

          Teraz môžete overiť, akú verziu Javi máte

          java -version
          openjdk version "11.0.11" 2021-04-20
          OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
          OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
          

          Inštalácia Elasticsearch

          Stiahnite Elasticsearch. To je nástroj na vyhľadávanie logov. Stiahnete to spolu s kľúčom tu:

          wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

          Nastavte repozitár

          echo "deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

          Teraz urobte update

          sudo apt update
          sudo apt install -y elasticsearch-oss
          

          Teraz editujte elasticsearch.yml

          sudo nano /etc/elasticsearch/elasticsearch.yml
          cluster.name: graylog

          Na spodok dopíšte riadok

          action.auto_create_index: false

          Teraz to uložte

          Reštartujte službu a umožnite, aby sa služba spúšťala pri boote

          sudo systemctl daemon-reload
          sudo systemctl start elasticsearch
          sudo systemctl enable elasticsearch
          

          Teraz, by mala služba počúvať na porte 9200, viete to overiť

          curl -X GET http://localhost:9200 
          {
            "name" : "6JPYgge",
            "cluster_name" : "graylog",
            "cluster_uuid" : "B7w95MF7Td69TRyzaYpPxQ",
            "version" : {
              "number" : "6.8.15",
              "build_flavor" : "oss",
              "build_type" : "deb",
              "build_hash" : "c9a8c60",
              "build_date" : "2021-03-18T06:33:32.588487Z",
              "build_snapshot" : false,
              "lucene_version" : "7.7.3",
              "minimum_wire_compatibility_version" : "5.6.0",
              "minimum_index_compatibility_version" : "5.0.0"
            },
            "tagline" : "You Know, for Search"
          }
          

          Inštalácia MondoDB

          sudo apt update
          sudo apt install -y mongodb-server
          

          Teraz povoľte, aby sa MondoDB spúšťala so sytémom

          sudo systemctl start mongodb
          sudo systemctl enable mongodb
          

          Inštalácia Graylog server

          wget https://packages.graylog2.org/repo/packages/graylog-3.3-repository_latest.deb
          sudo dpkg -i graylog-3.3-repository_latest.deb
          

          Urobte update na repozitáre a naustaľujte graylog server

          sudo apt update
          sudo apt upgrade
          
          sudo apt install -y graylog-server

          Po inštalácií Vás program vyzve, aby službu reštartovali a spustili pri boote

          sudo systemctl enable graylog-server.service
          sudo systemctl start graylog-server.service
          
          sudo apt update

          Teraz spustite program pwgen, ale s funciami -N 1 -s 96, tým vygenerujete 64 znakové heslo. To si potom uložte. Ak ho nemáte nainštalovaný to urobite príkazom apt install pwgen

          pwgen -N 1 -s 96

          Príklad vygenerovania:

          iKm2KS1JF6cwzN674pJ5f8f1JVEIr1m3yyXZwnyBRFWHPGtCrq3FwmjAFrxx3PB0Qc8s1t2TBPLcqLuQgeTsVPYMK9dmX7EZ

          Teraz editujte server.conf a tam vložte kód, ktorý Vám bol vygenerovaný

          sudo nano /etc/graylog/server/server.conf

          Teraz príkazom ho nahradíte tým, čo Vám bude vygenerované, príklad ak zadáte password, tak heslo bude zakódované

          echo -n password | sha256sum

          Príklad môjho vygenerovania

          5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8

          Teraz editujte server.conf s tým kódom

          sudo nano /etc/graylog/server/server.conf

          Sem vložte Váš kód

          Nastavte Graylog na webový prehliadač

          Spustite graylog spolu so systémom

          sudo systemctl daemon-reload
          sudo systemctl start graylog-server
          sudo systemctl enable graylog-server
          

          Reštartujte server

          reboot
          netstat -an | grep 9000

          Teraz otvorte webový prehliadač a napíšte IP adresu s portom 9000 v tvare http:X.X.X.X:9000

          Úvodné okno:

          Okno po prihlásení

          Zmena času na Linux Servery

          Príkazom date si môžete zobraziť čas

          date

          Príkaz timedatectl Vám zobrazí hlbšie informácie 

          Timedatectl 

          Ak si chcete pozrieť časové pásmo, môžete použiť príkaz timedatectl list-timezones

          timedatectl list-timezones

          Ak chcete zmeniť čas na servery, tak použite príkaz

          timedatectl set-timezone <Vaše časové pásmo>

          Príklad

          timedatectl set-timezone Europe/Bratislava

          Migrovanie virtuálneho OS z Proxmox na druhý server

          https://www.syloe.com/glossaire/proxmox/

          Pripojte sa na proxmox server

          cd /var/lib/vz/dump

          vzdump 100

          Číslo 100 definuje (môžete mať iné), z ktorej virtuálnej mašiny chcete urobiť backup

          Otvorte powershell a stiahnite daný operačný systém príkazom na desktop:

          scp root@X.X.X.X:/var/lib/vz/dump/vzdump-qemu-100-2021_04_24-15_49_05.vma .\Desktop\

          Zmena statickej IP adresy na dynamickú IP v Proxmox

          https://www.syloe.com/glossaire/proxmox/
          1. Napíšte príkaz nano /etc/network/interfaces

          Tu zmeňte static na dhcp a zakomentujte pôvodnú sieťovú konfiguráciu

          auto vmbr0
          iface vmbr0 inet dhcp
                  #address 192.168.1.148/24
                  #gateway 192.168.1.1
                  #netmask 255.255.255.0
                  bridge_ports enp3s0f0
                  bridge_stp off
                  bridge_fd 0
          
          • reštartujte server a zistite akú IP adresu Vám pridelil DHCP
          ip addr

          a ak vám komunikuje server s počítačom tak je to v poriadku

          1. Teraz by som, ako ďalší krok zmenil IP adresu z dynamickej na statickú

          Znovu otvorte

          nano /etc/network/interfaces

          A zmeňte to následovne, ale samozrejme použite IP adresu, ktorú Vám pridelil váš DHCP

          auto vmbr0
          iface vmbr0 inet static
                  address 192.168.88.136/24
                  gateway 192.168.88.1
                  bridge_ports enp3s0f0
                  bridge_stp off
                  bridge_fd 0
          

          Keď to už máte hotové, tak teraz ešte upravte IP adresu v úvodnom okne ProxMox

          Napíšte:

          nano /etc/hosts

          A zmeňte aj tu IP adresu

          127.0.0.1 localhost.localdomain localhost
          192.168.88.136 ibasterisk.sk ibasterisk
          # The following lines are desirable for IPv6 capable hosts
          
          ::1     ip6-localhost ip6-loopback
          fe00::0 ip6-localnet
          ff00::0 ip6-mcastprefix
          ff02::1 ip6-allnodes
          ff02::2 ip6-allrouters
          ff02::3 ip6-allhosts

          Teraz reštartujte server

          Po reštarte, by ste mali mať takéto úvodné okno

          Nezabudnite napísať https://

          Prípadne budete mať bezpečnostnú otázku, či skutočne chcete ísť na nezabezpečenú lokalitu

          Prípadne, ak máte problémy tak napíšte príkaz na reštart sieťovej karty

          /etc/init.d/networking restart

          Inštalácia Rosa Linux cez VMware Workstation

          Vyberte ISO, ktoré chcete nainštalovať

          Pomenujte ho dajte mu cestu, kde sa má zapísať

          Zvoľte kapacitu virtuálneho disku. Na naše skúšobné účely bude stačiť 20 GB. Veľkosť disku je dynamická, čo v praxi znamená, že, ako napaľujete dáta, tak sa disk zväčšuje, ale iba do kapacity, ako v mojom prípade do 20 GB.

          Kliknite na finish

          Zvoľte Start ROSA Desktop Fresh R11. Operačný systém sa Vám spustí ako Live distribúcia

          Celú inštaláciu nebudem ukazovať, ale je dôležité, aby ste zadali správne časové pásmo

          Kliknite na Live Install, aby ste spustili inštaláciu

          Zadajte root heslo

          A vytvorte užívateľa

          Po inštalácií reštartujte operačný systém

          Keď reštartujte stroj, tak budete mať úvodné okno:

          Pred inštaláciou Vám odporúčam urobiť update môžete, buď cez centrum balíčkov, alebo terminal

          Inštalácia VM TOOLS

          Kliknite na Install & Remove Software

          Zadajte root password

          Vyberte Packages with GUI a zvoľte ALL

          Do vyhľadáva napíšte

          open-vm-tools

          Vyberte poslednú možnosť

          Vyskočí Vám okno kliknite na OK

          Automaticky Vám vyberie možnosť ešte jednu

          Kliknite na Apply

          Kliknite na Yes

          Urobte reštart

          Po reštarte, už budete mať full screen

          Inštalácia Wiki.js na Debian 10

          Ako prvé choďte do priečinka:

          cd /var

          Stiahnite Wiki

          wget https://github.com/Requarks/wiki/releases/download/2.5.126/wiki-js.tar.gz
          mkdir wiki
          tar xzf wiki-js.tar.gz -C ./wiki
          cd ./wiki

          Premenujte config.samlple.yml

          mv config.sample.yml config.yml

          Naustaľujte a nakonfigurujte databázu

          Importujte repozitáre:

          wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

          Pridajte repozitáre:

          RELEASE=$(lsb_release -cs)
          
          echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee  /etc/apt/sources.list.d/pgdg.list
          apt update

          Skontrolujte či Vám funguje služba

          systemctl status postgresql

          Konfigurácia môžete skontrolovať nastavenia

          config.yml

          vim config.yml
          port: 3000
          
          db:
            type: postgres
            host: localhost
            port: 5432
            user: wikijs
            pass: wikijsrocks
            db: wiki

          Vytvorte užívateľa na postgres databázu

          su - postgres
          createuser wikijs
          psql -c "alter user wikijs with password 'wikijsrocks'"

          Teraz vytvorte databázu

          createdb wiki -O wikijs

          Teraz choďte pod root a nainštaluje nodejs

          exit
          apt-get install nodejs -y
          node server

          Teraz prejdite cez webový prehliadač na Váš server v tvare IP adresy, ak dáte ctrl+c, služba prestane fungovať.

          Môžete to napísať do webového prehliadača http://X.X.X.X:3000

          Nastavte službu, aby sa spúšťala priamo pri boote so systémom:

          Vytvorte užívateľa:

          useradd wiki
          passwd wiki
          wiki

          Teraz zmeňte vlastníka priečinka wiki

          cd /var
          chown -R wiki wiki 

          Spustenie, ako servis:

          nano /etc/systemd/system/wiki.service
          [Unit]
          Description=Wiki.js
          After=network.target
          
          [Service]
          Type=simple
          ExecStart=/usr/bin/node server
          Restart=always
          # Consider creating a dedicated user for Wiki.js here:
          User=wiki
          Environment=NODE_ENV=production
          WorkingDirectory=/var/wiki
          
          [Install]
          WantedBy=multi-user.target

          Uložte službu, reštartujte a povoľte aby sa služba spúšťala priamo pri boote

          systemctl daemon-reload
          systemctl start wiki
          systemctl enable wiki

          Ak Vám to nepôjde urobe reboot servervu

          reboot

          Úspešné nakonfigurovanie:

          Teraz funguje Váš server, cez X.X.X.X čiže port 3000

          Zabbix na Ubuntu 18.04

          Zabbix je open-cource softvér pre moonitorovanie siete, serverov, virtuálnych strojov a cloudy. V článku si ukážeme, ako sa inštaluje Zabbix 4.0 na Linux Ubuntu 18.4.

          1. Inštalácia Apache, MySQL a PHP

          Musíme naištalovať Apache, MySQL a PHP

          sudo apt-get update
          sudo apt-get install apache2 libapache2-mod-php
          sudo apt-get install mysql-server
          sudo apt-get install php php-mbstring php-gd php-xml php-bcmath php-ldap php-mysql

          Keď nám to prebehlo musíme urobiť updatade na časové pásmo. Môžeme použiť ľubovoľný textový editor. (vi, vim, nano). VIM si treba do inštalovať.

          apt-get install vim
          vim /etc/php/PHP_VERZIA/apache2/php.ini
          [Date]
          ; http://php.net/date.timezone
          date.timezone = 'Europe/Bratislava'

          2. Povololenie repozitárov pre ZABBIX

          Stiahneme repozitáre k ZABBIXU

          wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
          
          sudo dpkg -i zabbix-release_4.0-3+bionic_all.deb 

          3. Inštalácia ZABBIX servera

          sudo apt-get update
          sudo apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent 

          4. Vytvorenie databázy

          mysql -u root -p
          
          mysql> CREATE DATABASE zabbixdb character set utf8 collate utf8_bin; 
          mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password'; 
          mysql> GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbix'@'localhost' WITH GRANT OPTION; 
          mysql> FLUSH PRIVILEGES; 

          Keď máme vytvorenú databázu. Tak ju misíme nahrať.

          cd /usr/share/doc/zabbix-server-mysql
          zcat create.sql.gz | mysql -u zabbix -p zabbixdb

          Po zadaní príkazu Vás Linux vyzve na zadanie hesla. Zadávate heslo zabbix ‚@‘ localhost takže v mojom prípade to je heslo password.

          5. Reštartujeme Apachea ZABBIX

          sudo service apache2 restart
          sudo service zabbix-server restart 

          6. Teraz sa cez webový prehliadač prihlásime na ZABBIX server pomocou IP adresy v tvare X.X.X.X/zabbix

          IP adresu svojho serveru nájdete pomocou príkazu

          ip addr

          IP adresa je 10.0.2.15/zabbix

          Úvodné okná po inštalácií

          V tomto okne sa vypĺňa Database name. V mojom prípade to je zabbixdb

          user: zabbix

          heslo: password

          Host necháme localhost. Port nechajte 10051 a pomenujte si to ako chcete. Ja som si dal Ivan-Zabbix.

          Teraz sa môžete prihlásiť. Továrensky nastavené prihlasovacie údaje sú:

          • Meno: Admin
          • Heslo: zabbix

          Úvodné okno po prihlásení

          WordPress na Ubuntu 20.4

          Urobte update a naustaľujte Apache, PHP, a MySQL

          apt update
          apt install apache2 php libapache2-mod-php mariadb-server mariadb-client php-mysql

          Teraz vytvorte databázu

          mysql_secure_installation

          Vytvorte databázu na WordPress

          mysql
          CREATE DATABASE wordpress_db;
          CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'my_password';
          GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@'localhost';
          FLUSH PRIVILEGES;
          exit

          Konfigurácia Apache

          Keď pôjdete, cez IP adresu daného servera , tak by ste mali vidieť takúto stránku:

          Urobte kopírovanie defaultného Apache konfigurácie do nového súboru s nasledovným príkazom

          cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/wordpress.conf

          Teraz cez nano, alebo Váš obľúbený textový editor upravte wordpress.conf

          nano /etc/apache2/sites-available/wordpress.conf

          Zmeňte dokument Root, kde plánujete inštalovať wordpress.

          DocumentRoot /var/www/wordpress

          Vytvorte nastavenia ServerName , aby ste pristupovali na svoju web stránku. V mojom prípade som nastavoval iba lokálnu IP adresu.

          Uložte konfiguráciu a zakážte defaultnú stránku

          a2ensite wordpress.conf
          a2dissite 000-default.conf

          Reštasrtujte Apache, aby sa natiahli zmeny

          systemctl reload apache2

          Teraz stiahnite WordPress

          wget -O /tmp/wordpress.tar.gz https://wordpress.org/latest.tar.gz

          Extrahujte súbory

          tar -xzvf /tmp/wordpress.tar.gz -C /var/www

          Zmeňte vlastníka

          chown -R www-data.www-data /var/www/wordpress

          Ak chcete vidieť web stránku, tak sa prihlásite cez IP adresu daného servera.

          Ak sa chcete prihlásiť, na upravovanie stránky tak musíte zadať IP adresu napr. X.X.X.X/wp-admin

          Reset root hesla, keď Admin zabudne svoje heslo

          Pri boote stlačte klávesu E

          Teraz zmeňte riadok

          Dopíšte pred quiet ešte:

          init=/bin/bash

          Teraz stlačte F10

          Po reštarte budete mať úvodné okno

          Dopíšte príkaz

          mount -n -o remount,rw /

          Napíšte:

          passwd

          Zadajte nové heslo

          Znovu zadajte heslo:

          Hláška o zmene hesla

          Teraz stlačte Ctrl + Alt + Del

          Systém sa Vám reštartuje a môžete sa prihlásiť

          Inštalácia Icinga 2

          Urobte update

          apt update
          apt upgrade

          Nainštalujte repozitáre

          apt install -y apt-transport-https wget gnupg
          wget -O - https://packages.icinga.com/icinga.key | apt-key add
          echo "deb https://packages.icinga.com/debian icinga-buster main" > /etc/apt/sources.list.d/icinga.list
          echo "deb-src https://packages.icinga.com/debian icinga-buster main" >> /etc/apt/sources.list.d/icinga.list

          Urobte update

          apt update

          Nainšťaľujte Icinga web 2

          apt install icinga2
          systemctl restart icinga2
          systemctl status icinga2

          Neinštalujte Icinga 2 plugins

          apt install monitoring-plugins

          Nainštalujte databázu

          apt install mariadb-server mariadb-client

          Nainštalujte IDO moduly

          apt install icinga2-ido-mysql

          Opakujte heslo

          Skontrolujte status

          icinga2 feature list

          Ak máte takúto chybu

          Povoľte službu

          icinga2 feature enable ido-mysql

          Reštartujte Icinga 2

          systemctl restart icinga2

          Vytvorte databázu

          mysql -u root -p
          create database icinga2db;
          grant all on icinga2db.* to icingaadmin@localhost identified by 'password';
          flush privileges;
          exit;

          Importujte Icinga 2 IDO schému

          mysql -u root -p icinga2db < /usr/share/icinga2-ido-mysql/schema/mysql.sql

          Upravte ido-mysql.conf

          vim /etc/icinga2/features-available/ido-mysql.conf
          
          library "db_ido_mysql"
          
          object IdoMysqlConnection "ido-mysql" {
            user = "icingaadmin",
            password = "12345678",
            host = "localhost",
            database = "icinga2db"
          }

          Urobte restart

          systemctl restart icinga2

          Inštalácia GUI

          apt install apache2 php php-{curl,gettext,intl,mbstring,xml,mysql} openssl
          apt install icingaweb2 icingacli

          Vygenerujte token, to si zapíšte, pretože to bduete potrebovať pri konfigurácií Icingi cez web

          icingacli setup token create

          Skontroľujte, či je vytvorený užívateľ

          id www-data

          Vytvorte novú databázu a užívateľa. Špecifický pre web

          mysql -u root -p
          create database icingaweb2db;
          grant all on icingaweb2db.* to icingaweb2admin@localhost identified by '12345678';
          flush privileges;
          exit;

          Vytvorte užívateľa na GUI

          Kliknite na “NEXT”

          Keď Vám systém vypíše chybu napríklad, tak urobte, ako prvé reštart služby

          service icinga2 restart

          NextCloud na Debian 10

          Ako prvé urobte update

          apt-get update

          Naištalujte a nakonfigurujte MariaDB

          mysql_secure_installation
          Enter current password for root (enter for none): Enter
          Set root password? [Y/n]: Y
          New password: example-password
          Re-enter new password: example-password
          Remove anonymous users? [Y/n]: Y
          Disallow root login remotely? [Y/n]: Y
          Remove test database and access to it? [Y/n]: Y
          Reload privilege tables now? [Y/n]: Y
          

          Teraz sa prihláste do databázy

          mysql -u root -p

          Vytvorte DATABÁZU pre NEXTCLOUD:

          > CREATE DATABASE nextclouddb;
          > GRANT ALL ON nextclouddb.* TO 'nextcloud_user'@'localhost' IDENTIFIED BY 'example-password';
          > FLUSH PRIVILEGES;
          > \q
          

          Nainštalujte PHP

          apt install php php-gd php-mbstring php-dom php-curl php-zip php-simplexml php-xml -y

          Nainštaľujte Apache

          apt install apache2 libapache2-mod-php -y

          Nastavte, aby sa Apache mohol spúšať priamo pri boote OS.

          systemctl start apache2
          systemctl enable apache2

          Naištaľute NextCloud

          Aktuálnu verziu NexCloud nájdete tu: https://nextcloud.com/install/#instructions-server

          Zvoľte kopírovať link a stiahnite aktuálnu verziu. V mojom prípade to bol 18.0.4

          wget https://download.nextcloud.com/server/releases/nextcloud-18.0.4.tar.bz2

          Teraz rozbaľte stiahnutý súbor:

          tar -xjf nextcloud-18.0.4.tar.bz2 -C /var/www/html

          Nastavte Apache, ako vlastníka NextCloud súborov

          chown -R www-data:www-data /var/www/html/nextcloud
          chmod -R 755 /var/www/html/nextcloud

          Choďte na webový prehliadač a zadajte IP adresu Vašeho servera, kde sa nachádza NextCloud v tvare X.X.X.X/nextcloud

          Nechajte naištalovať aplikácie

          Hotovo

          Jitsi-Meet na Debian 10

          V tomto článku si ukážeme, ako naištalovať Jisti-meet na Debian 10.

          Jisti-Meet je služba, ktorá umožňuje video chat a dokonca aj chat.

          • Ako prvé naustaľujte balíčky sudo  a ssh
          apt-get install -y ssh sudo ufw apt-transport-http
          • Teraz cez pridajte svojho užívateľa, ale nie root, do súboru  / etc / sudoers.

          (Na otvorenie môžete použiť ľubovoľný textový editor, napr. vim, nano, alebo vi )

          nano /etc /sudoers

          Moje užívateľské meno som si zvolil ibasterisk, Vy si môžete zvoliť iné

          ibasterisk ALL=(ALL:ALL) ALL
          • Teraz pridajte Jisti GPT key
          wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
          • Pridajte Jisti repozitáre a urobte update apt
          sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
          apt-get -y update
          
          • Nainštalujte Jisti-Meet
          apt-get -y install jitsi-meet

          Vyskočí Vám okno, do ktorého zadajte buď lokálny server, alebo verejnú IP adresu servera. V mojom prípade Jisti-Meet nainštalujeme na VPS, tak musím zadať verejnú IP adresu. A zvoľte OK

          V ďalšom kroku sa Vás spýta na certifikát SSL. V tento inštalácií budeme generovať certifikát automaticky, tak zvoľte prvú možnosť.

          Teraz do súboru:

          nano /etc/jitsi/videobridge/sip-communicator.properties file
          org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=80.211.174.77

          Pridávam vzori na IP adresy:

          org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=[INTERNAL.IP.ADDRESS]
          org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=[PUBLIC.IP.ADDRESS]

          Urobte reštart:

          reboot

          Teraz choďte na cez webový prehliadač a zadajte IP serveru, na ktorý ste nainštalovali Jisti-Meet

          Môj príklad: https://80.211.174.77/

          Zadajte názov skupiny

          Zvoľte povoliť

          Jitsi-Meet podpouje aj aplikáciu pre Android volá sa Jisti Meet

          Rocket.chat na Ubuntu 18.04

          apt-get update -y
          1. Nainštalujte Node.js

          Pridajte  Node.js repozitáre zo zdroja nasledovným príkazom:

          curl -sL https://deb.nodesource.com/setup_12.x — Node.js 12 LTS "Erbium"| bash -

          Urobte update

          apt-get update -y
          apt-get install nodejs build-essential curl software-properties-common graphicsmagick -y

          2. Nainštalujte MongoDB

          Ako prvé stiahnite repozitáre

          apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

          V ďalšom kroku repozitáre spustíte:

          add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

          Teraz urobte update

          apt-get update -y
          apt-get install mongodb-org -y

          Teraz spustite MongoDB a napíšte, aby sa databáza spúšťala po reštarte systému

          systemctl start mongod
          systemctl enable mongod
          

          MongoDB počúva na porte 27017. Môžete si to overiť príkazom:

          netstat -ant

          3. Nakonfigurujte MongoDB

          Rocket.chat používa sadu replík MongoDB na zlepšenie výkonu. Budete potrebovať nakonfigurovať MongoDB príkazom:

          echo -e "replication:\n replSetName: \"rs01\"" | tee -a /etc/mongod.conf
          systemctl restart mongod
          mongo
          rs.initiate()

          4. Inštalácia Rocket.Chat

          Ako prvé vytvorte užívateľa:

          adduser rocket
          Enter new UNIX password:
          Retype new UNIX password:

          Povoľte Nginx prístup do Adresára Rocket.Chat pridaním použivateľa rocket do skupiny www-data:

          usermod -a -G rocket www-data

          Prepnite používateľa a stiahnite najnovšiu verziu Rocket.Chat

          su - rocket
          curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz

          Teraz rozbaľte Rocket.chat

          tar zxf rocket.chat.tgz

          Premiestnite rozbalené súbory do Rocket.chat použitím príkazu:

          mv bundle Rocket.Chat

          Choďte do priečinka server. To sa dostanete nasledovným príkazom:

          cd Rocket.Chat/programs/server

          A nainštalujte npm balíčky pomocou príkazu:

          npm install

          Teraz  urobte nasledovne zmeny:

          Rocket.chat počúva na porte 3000 a zmeňte si IP adresu serveru podľa svojho. Ak neviete svoju IP adresu servera na to Vám pomôže príkaz:

          ifconfig
          export PORT=3000
          export ROOT_URL=http://0.0.0.0:3000/
          export MONGO_URL=mongodb://localhost:27017/rocketchat
          export MONGO_OPLOG_URL=mongodb://localhost:27017/local?replSet=rs01

          Po vykonaných zmenách choďte do adresára

          cd ~/Rocket.Chat

          A spustite server Rocket.chat

          node main.js

          Mali by ste potom vidieť, takýto výstup:

          Teraz musíte povoliť, aby sa služba spúšťala priamo so serverom

          nano /etc/systemd/system/rocketchat.service
          [Unit]
          Description=Rocket.Chat server
          After=network.target nss-lookup.target mongod.target
          
          [Service]
          StandardOutput=syslog
          StandardError=syslog
          SyslogIdentifier=rocketchat
          User=rocket
          Environment=MONGO_URL=mongodb://localhost:27017/rocketchat MONGO_OPLOG_URL=mongodb://localhost:27017/local?replSet=rs01 ROOT_URL=http://80.211.10.76 PORT=3000
          ExecStart=/usr/bin/nodejs /home/rocket/Rocket.Chat/main.js
          
          [Install]
          WantedBy=multi-user.target
          systemctl daemon-reload
          systemctl start rocketchat
          systemctl enable rocketchat

          Teraz môžete skontrolovať, či Vám služba nabehla

          systemctl status rocketchat

          Po úspešnej inštalácií choďte cez webový prehliadač a napíšte IP adresu v tvare http://X.X.X.X:3000    

          Tento typ Chatu má aj na Androide aplikáciu s názvom „Rocket.Chat“

          Stačí si aplikáciu:

          • Nainštalovať
          • Zaregistrovať na server
          • Prihlásiť sa

          Po úspešnej registrácií:

          HumHub na Linux Ubuntu 18.04

          HumHub je podobná služba, ako je napríklad Facebook, pokec. Ide o Chat, ale nie verejný, ale len pre zamestnancov firmy.

          Takýchto služieb je mnoho. Pár si vymenujeme:

          • Diaspora
          • Mendeley Reference Manager
          • Friendica
          • Movim
          • Patchwork
          • Caprine
          • Shareaholic
          • GameTracker
          • F5Bot
          • Scuttlebutt.nz
          • MongooseIM platform
          • Misskey
          • Chaino
          • Noosfero
          • uebermaps
          • Igloo Software
          • eSteem
          • HCL Connections
          • Ureka: Earth Heart Community
          • Finspi
          • Messenger for WhatsApp
          • FBMessenger
          • Club Penguin Rewritten
          • PHP-Fusion
          • Emoty
          • Yoga
          • Socialdoe
          • Virtual Paradise
          • BlogsRelease

          Určite je tých Webových aplikácií viac

          Každá aplikácia má výhody a nevýhody. Niektoré aplikácie nemajú možnosť nainštalovať aplikáciu na Android. (inú aplikáciu som nemal možnosť vyskúšať), tak v tomto článku sa budem venovať inštalácií HumHub na platforme Linux Ubuntu 18.4. Bez možnosti nainštalovania si aplikácie na mobilný telefón. Možno v budúcom článku 🙂

          Urobte update a upúgrade

          apt-get update
          apt-get upgrade

          pri apt-get upgrade budete mať hlášku:

          YES

          Teraz nainštalujte Nginx HTTP

          apt install nginx

          Po inštalácií reštartujte Nginx a povoľte mu, aby sa spúšťal pri boote spolu s OS.

          sudo systemctl stop nginx.service
          sudo systemctl start nginx.service
          sudo systemctl enable nginx.service

          Ak chcete skontrolovať, či sa Nginx, tak choďte cez webový prehliadač a mojom prípade zadajte IP adresu.

          Nainštalujte MariaDB Databázový server

          apt install mariadb-server mariadb-client

          Teraz reštartujte službu a povoľte nech sa spúšťa pri boote spolu s OS

          sudo systemctl stop mariadb.service
          sudo systemctl start mariadb.service
          sudo systemctl enable mariadb.service

          Teraz spustite príkazy, aby ste zabezpečili databázu. Ja, keďže robím serverf na verejnej IP adrese, tak si nechávam vzdialený prístup na root. Ak by som si zablokoval prístup, tak už sa na konzolu nedostanem.

          mysql_secure_installation
          New password: Enter password
          Re-enter new password: Repeat password
          Remove anonymous users? [Y/n]: Y
          Disallow root login remotely? [Y/n]: Y
          Remove test database and access to it? [Y/n]:  N
          Reload privilege tables now? [Y/n]:  Y

          Otestujte databázu:

          mysql -u root -p

          Teraz vytvorte databázu:

          >CREATE DATABASE humhub;

          >CREATE USER 'humhubuser'@'localhost' IDENTIFIED BY 'new_password_here';

          >GRANT ALL ON humhub.* TO 'humhubuser'@'localhost' WITH GRANT OPTION;

          >FLUSH PRIVILEGES;

          >EXIT;

          Inštalovanie PHP 7.2 – FPM a súvisiacich modulov

          apt-get install software-properties-common
          add-apt-repository ppa:ondrej/php

          Urobte update a upgrade PHP 7.2-FPM

          apt update

          Teraz spustite nižšie uvedený príkaz na inštalácu PHP 7.2 a súviciacich modulov

          apt install php7.2-fpm php7.2-common php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip php7.2-sqlite

          Po inštalácií PHP 7.2 na konfiguráciu Nginx. Na úpravu, môžete použiť vim, vi, alebo nano

          nano /etc/php/7.2/fpm/php.ini

          Zmeňte následovné konfiguračné vlastnosti

          file_uploads = On
          allow_url_fopen = On
          short_open_tag = On
          memory_limit = 256M
          cgi.fix_pathinfo = 0
          upload_max_filesize = 100M
          max_execution_time = 360
          max_input_vars = 1500
          date.timezone = Europe/Bratislava

          Reštartujte Nginx

          systemctl restart nginx.service

          Stiahnite HumHub, najnovší HubHum nájdete na tejto stránke: https://www.humhub.com/en/download

          cd /tmp
          wget https://www.humhub.com/download/package/humhub-1.5.2.tar.gz
          tar xvaf humhub-1.5.2.tar.gz
          sudo mv humhub-1.5.2 /var/www/humhub

          Urobte oprávnenia na priečinky

          chown -R www-data:www-data /var/www/humhub/
          chmod -R 755 /var/www/humhub/

          Urobte konfiguráciu Nginx

          nano /etc/nginx/sites-available/humhub
          server {
              listen 80;
              listen [::]:80;
          
              server_name ja som použi IP adresu;
              root   /var/www/humhub;
              index  index.php;
              
              access_log /var/log/nginx/example.com.access.log;
              error_log /var/log/nginx/example.com.error.log;
          
              client_max_body_size 100M;
            
              autoindex off;
          
              location / {
              try_files $uri $uri/ /index.php?$args;
                }
          
              location ~ \.php$ {
                   include snippets/fastcgi-php.conf;
                   fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                   include fastcgi_params;
                   fastcgi_intercept_errors on;
              }
          }

          Modul, ktorý ste prepísali povoľte, a spolu aj s bootom OS

          ln -s /etc/nginx/sites-available/humhub /etc/nginx/sites-enabled/
          systemctl restart nginx.service

          OSTicket na Ubuntu 18.04

          Je veľa tiketových systémov. Najrozšírenejší je JIRA. Je to platený tiketovací systém a v tomto článku sa budeme venovať tiketovacím systémémom na Opensource Platforme. OSTicket a budeme to inštalovať na Linux Ubuntu 18.04.

          Podobné tiketovacie systémy, ako je OSTicket a Jira

          • Zammad
          • Request Tracker
          • OTRS
          • Zentrack
          • Roundup
          • eTicket

          Urobte update a upgrade

          apt-get update
          apt-get upgrade

          Teraz môžete nastavit meno pre server

          hostnamectl set-hostname ibasterisk.sk

          hostnamectl set-hostname ibasterisk.sk

          Teraz nainštalujte a nakonfigurujte MySQL / MariaDB database

          apt update
          apt install mariadb-server

          Zabezpečte Váš DB Server:

          mysql_secure_installation
          
          Enter current password for root (enter for none): (enter)
          Set root password? [Y/n] y
          New password:
          Re-enter new password:
          Remove anonymous users? [Y/n] y
          Disallow root login remotely? [Y/n] n
          Remove test database and access to it? [Y/n] y
          Reload privilege tables now? [Y/n] y

          Teraz zmeňte autentifikáciu, aby sa aj bežný používateľ mohol prihlásiť s právami root

          mysql -u root
          UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';
          FLUSH PRIVILEGES;
          QUIT;

          Skontrolujte či funguje správne

          mysql -u root -p

          Teraz vytvorte databázu osticket_db a užívateľa osticket_user:

          mysql -u root -p
          CREATE DATABASE osticket_db;
          GRANT ALL PRIVILEGES ON osticket_db.* TO osticket_user@localhost IDENTIFIED BY "Str0ngDBP@ssw0rd";
          FLUSH PRIVILEGES;
          QUIT;

          Nainštalujte Apache

          apt install apache2

          Spustite Apache

          systemctl start apache2

          Teraz povoľte, aby sa Apache spúšťal už priamo pri boote OS

          systemctl enable apache2

          Nainštalujte PHP

          apt update
          apt-get install php php-{fpm,pear,imap,apcu,intl,cgi,common,mbstring,net-socket,gd,xml-util,mysql,bcmath}

          Môžete si overiť, akú máte verziu PHP

          php -v

          Teraz stiahnite a nainštalujte osTicket na Ubuntu 18.04

          apt-get install curl wget unzip
          curl -s https://api.github.com/repos/osTicket/osTicket/releases/latest \
            | grep browser_download_url \
            | grep "browser_download_url" \
            | cut -d '"' -f 4 \
            | wget -i -

          Extrahujte stiahnutý archív:

          unzip osTicket-v*.zip -d osTicket

          Mali by ste mat po rozbalení 2 foldre scripts a uploaud

          ls osTicket

          Vytvorte webový adresár pre osTicket do www

          mv osTicket /var/www/

          Teraz vytvorte konfiguračný súbor osTicket

          cd /var/www/osTicket/upload/include
          cp ost-sampleconfig.php ost-config.php

          Zmeňte vlastníctvo weobého asňdresára osTicket na užívateľské údaje a skupinu

          chown -R www-data:www-data /var/www/

          Nakonfigurujte Apache web Server

          Vytvorte virtualHost a nakonfigurujte súbor osTicket na Apache

          vim /etc/apache2/sites-enabled/osticket.conf
          <VirtualHost *:80>
               ServerAdmin ivan.baronak@gmail.com
               DocumentRoot /var/www/osTicket/upload
               ServerName  X.X.X.X
               ServerAlias www.ibasterisk.sk
               <Directory /var/www/osTicket/>
                    Options FollowSymlinks
                    AllowOverride All
                    Require all granted
               </Directory>
          
               ErrorLog ${APACHE_LOG_DIR}/osticket_error.log
               CustomLog ${APACHE_LOG_DIR}/osticket_access.log combined
          </VirtualHost>
          

          Nahraďte:

          ServerName X.X.X.X si nahraďte podľa svojho serveru.

          Potvrďte konfiguráciu

          apachectl -t
          

          Reštartujte Apache

          systemctl restart apache2

          Teraz otvorte webový prehliadač a zadajte tam IP adresu Vašeho Serveru.

          Kliknite Continue

          Inštalácia GLPI na Debian 10

          Urobte, ako prvé update systému

          sudo apt update && sudo apt upgrade

          Nainštalujte LAMP na Debian 10

          sudo apt install php7.3 php7.3-curl php7.3-zip php7.3-gd php7.3-intl php-pear php-imagick php7.3-imap php-memcache php7.3-pspell php7.3-recode php7.3-tidy php7.3-xmlrpc php7.3-xsl php7.3-mbstring php-gettext php7.3-ldap php-cas php-apcu libapache2-mod-php7.3 php7.3-mysql

          Nainštalujte maria DB

          sudo apt install mariadb-server mariadb-client
          sudo mysql -u root -p
          > CREATE DATABASE glpidb;
          > GRANT ALL PRIVILEGES ON glpidb.* TO 'glpiuser'@'localhost' IDENTIFIED BY 'password';
          > FLUSH PRIVILEGES;
          > EXIT;
          

          Nainštalujte GLPI na Debian 10. Ako prvé musíte ísť do priečinka tmp

          cd /tmp/
          wget -c https://github.com/glpi-project/glpi/releases/download/9.4.3/glpi-9.4.3.tgz
          2.-Download and install GLPI on Debian 10

          Teraz v /var/www/html/ nastavte práva

          tar -xvf glpi-9.4.3.tgz
          udo mv glpi /var/www/html/
          sudo chmod 755 -R /var/www/html/
          sudo chown www-data:www-data -R /var/www/html/
          3.- Install GLPI on Debian 10

          Potrebujete vytvoriť tzv. virtuálny host pre GLPI. Môžete použiť vim, vi alebo nano.

          sudo nano /etc/apache2/sites-available/glpi.conf
          <VirtualHost *:80>
               ServerAdmin admin@your_domain.com
               DocumentRoot /var/www/html/glpi
               ServerName your-domain.com
          
               <Directory /var/www/html/glpi>
                    Options FollowSymlinks
                    AllowOverride All
                    Require all granted
               </Directory>
          
               ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
               CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined
          
          </VirtualHost>

          Teraz to uložte

          Teraz reštartujte Apache

          sudo ln -s /etc/apache2/sites-available/glpi.conf /etc/apache2/sites-enabled/glpi.conf
          sudo a2enmod rewrite
          sudo systemctl restart apache2

          V ďalšom kroku choďte na webový prehliadač a choďte na IP adresu na Váš GLPI server. V tvare X.X.X.X/GLPI

          V tomtu manuály som vytvoril SQL localhost, glpiuser a heslo som zadal password

          Úspešná inštalácia a konfigurácia. V úvode Vás informuje, že by ste mali zmeniť pôvodné prihlásenie.

          Inštalácia wiki na Debian 9

          Nastavte časové pásmo

          dpkg-reconfigure tzdata

          Urobte update

          apt update && apt upgrade -y

          Nainštalujte základné balíčky, ktoré sú užitočné  pre administráciu.

          apt install -y curl wget vim git unzip socat sudo bash-completion apt-transport-https build-essential dirmngr

          Naištalujte Node.js a npm

          curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
          sudo apt install -y nodejs 
          

          môžete si overiť akú verziu Node.js máte nainštalovanú

          node -v && npm -v

          Môžete aktualizovať Npm. To je separátny projekt od Node.js. Má tendenciu sa aktualizovať aj sám, ale ja som ho pri inštalácií použil

          sudo npm install -g npm@latest

          Môžete skontrolovať aktuálnu veziu

          npm -v

          Nainštalujte MongoDB database. Wiki.js potrebuje databázu MongoDB

          sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
          echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
          sudo apt-get update
          sudo apt-get install -y mongodb-org
          

          Môžete pozrieť aktuálnu verziu

          mongo --version | head -n 1 && mongod --version | head -n 1

          Po inštalácií reštartujte databázu

          sudo systemctl start mongod.service
          sudo systemctl enable mongod.service

          Nainštalujte a nakonfigurujte NGINX

          wget https://nginx.org/keys/nginx_signing.key
          sudo apt-key add nginx_signing.key
          rm nginx_signing.key
          sudo -s
          printf "deb https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
          exit
          sudo apt update
          sudo apt install -y nginx
          

          Keď sa nainštalovalo všetko správne viete si to overiť, s tým, že zadáte IP adresu do webového prehliadača

          Teraz musíte nakonfigurovať wiki.js.conf

          sudo vim /etc/nginx/conf.d/wiki.js.conf

          A do configu skopírujte:

          server {
              
              listen [::]:443 ssl http2;
              listen 443 ssl http2;
              listen [::]:80;
              listen 80;
              
              server_name example.com;
          
              charset utf-8;
              client_max_body_size 50M;
          
              ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
              ssl_certificate_key /etc/letsencrypt/example.com/private.key;
              ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
              ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
              
              location / {
                  proxy_set_header Host $http_host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_pass http://127.0.0.1:3000;
                  proxy_http_version 1.1;
                  proxy_set_header Upgrade $http_upgrade;
                  proxy_set_header Connection "upgrade";
                  proxy_next_upstream error timeout http_502 http_503 http_504;
              }
              
          }
          

          Uložte to

          Teraz reštartujte zmeny

          sudo systemctl reload nginx.service

          Inštalácia a nastavenie wiki

          Vytvorte root adresár, kde sa budú nachádzať wiki.js súbory

          sudo mkdir -p /var/www/wiki.js

          Prejdite do dokumentu

          cd /var/www/wiki.js

          Zmeňte vlastníka

          /var/www/wiki.js
          sudo chown -R [your_user]:[your_user] /var/www/wiki.js

          Napríklad:

          sudo chown -R root:root /var/www/wiki.js

          Z adresára /var/www/wiki.js spustite nasledujúci príkaz na načítanie a inštaláciu najnovšej wiki.js

          curl -sSo- https://wiki.js.org/install.sh | bash

          Príkazom si môžete pozrieť nainštalovanú verziu wiki

          node wiki --version

          Teraz spustite príkaz na konfiguráciu wiki

          node wiki configure

          Choďte cez webový prehliadač, a zadajte IP adresu v tvare X.X.X.X/3000. 3000 je defaultný port pre wiki.

          Kliknite „START“

          Zvoľte „CONTINUE“

          Ja som to robil na virtuálnom servery, takže ja som tam dal verejnú IP adresu a pôvodný port

          Kliknite na „CONTINUE“

          Kliknite na „CONTINUE“

          V tomto kroku nechajte tak ak oje nastavené a zvoľte „CONNECT“

          Zvoľte „CONTINUE“

          Tento krok som preskočil, neimplementoval som SSL certifikát. „SKIP THIS STEP“

          Skontroluje Git a zvoľte možnosť „CONTINUE“

          V ďalšom kroku vypíšte email a heslo k wiki

          Zvoľte „CONTINUE“

          V ďalšom kroku spustite „START“

          Po 30 sekundách Vás to presmeruje na nejakú stránku

          Teraz keď otvoríte webový prehliadač a sa prihlásite, tak môžete používať wikipédiu. Ja som si zvolil prihlásenie cez IP adresu a port 3000 (X.X.X.X/3000)

          Okno po prihlásení

          Ešte sa to ale stále nezobrazuje dobre. Dôvod je ten, že sa nám nenačítava javascript a CSS. Musíte vytvoriť bezpečný prístup k portu.Takže sú 2 možnosti aby sa nám správne načítala naša Wiki.

          sudo apt-get install libcap2-bin
          sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

          Alebo zadáte pravidlo do IP tables

          docker run -d -p 80:3000 -p 443:3443 -e "LETSENCRYPT_DOMAIN=wiki.example.com" -e "LETSENCRYPT_EMAIL=admin@example.com" --name wiki --restart unless-stopped -e "DB_TYPE=postgres" -e "DB_HOST=db" -e "DB_PORT=5432" -e "DB_USER=wikijs" -e "DB_PASS=wikijsrocks" -e "DB_NAME=wiki" requarks/wiki:2

          Informácie som čerpal odtiaľto

          Inštalácia Spotify na Linux Mint a Ubuntu

          Spotify je aplikácia určená na počúvanie hudby, je možnosť ju používať aj bezplatne, ale počas počúvania hudby Vám tam skočí reklama. Takže z tohoto hľadiska odporúčam zaplatiť na mesiac 6 €. Zo začiatku, máte prémiový účet, ktorý môžete používať 3 mesiace bezplatne.

          1. Týmto príkazom pridáte repozitáre Spotify a podpisový kľúč, aby bolo možné veriť stiahnuté balíčky
          sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886

          2. Teraz pridajte repozitáre

          echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list

          3. Nazáver naištalujte Spotify klienta

          sudo apt-get install spotify-client

          Cisco Packet Tracer

          https://2.bp.blogspot.com/-91Og1JzFXQk/XYlLgeNB2LI/AAAAAAAAIxc/R95KsDWvm8QxcyznPqZfwpotw57FZ6v7gCLcBGAsYHQ/s320/Packet%2BTracer.png

          Cisco packet tracer je program na učenie počítačových sietí. (Simulátor.), kde si môžete vyskúšať konfiguráciu routrov, switchov, vlan, konfiguráciu IP telefónov.

          1. Choďte na web stránku https://www.netacad.com
          2. Prihláste sa alebo sa registrujte
          3. Resources >> Download Packet Tracer

          4. Kliknite pravým tlačítkom na Otvoriť pomocou inštalátor balíkov GDebi

          5. Zvoľte inštalovať balík

          6. Zadajte heslo

          Do inštalujte ďalší softvér

          a môžete používať

          UPOZORNENIE: BEZ PRIHLÁSENIA NEMÔŽETE POUŽÍVAŤ CISCO PACKET TRACER.

          Zmena hostname na Linux Mint

          Prihláste sa ako root

          Potom cez svoj obľúbený textový editor (vim, nano, vi) cestu /etc/hostname

          napr:

          nano /etc/hostname

          ja používam užívateľské meno ivan. To je na Vás, aký názov použijete, ale potom používajte meno aké ste si zvolili.

          uložte to

          teraz choďte do

          nano /etc/hosts

          Teraz, keď ste to už uložili musíte napísať príkaz, aby sa užívateľské meno zmenilo

          hostname ivan

          Teraz, keď napíšete hostname, tak vám systém vypíše užívateľské meno

          Reštartujte to a už budete mať iba užívateľské meno, aké ste si zvolili

          reboot

          Inštalácia Wine na Linux Mint 19.1

          https://www.macupdate.com/images/icons256/17376.png

          Wine slúži na emuláciu prostredia Windows. Niektoré aplikácie s príponou exe. je možné prostredníctvom tejto aplikácie naištalovať na linux. V tomto článku si ukážeme ako. 

          • Otvorte si Správca softvéru
          • Nainštalujte Wine-stable
          • Keď to naištalujete, otvorte s iterminál

          nano ~/.profile

          • Na koniec riadku napíšte
          export PATH="$PATH:/opt/wine-stable/bin"
          Potom napíšte 
          uname -p
          OS Vám vypíše koľko bitovú štruktúru používa
          Keď Váš system je 64 bitový povoľuje aj 32 bitovú architektúru
          sudo dpkg --add-architecture i386
            Stiahnite wine cez príkazový riadok
            wget -nc https://dl.winehq.org/wine-builds/winehq.key
                  sudo apt-key add winehq.key
                  sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'
                  sudo apt update
                  sudo apt install --install-recommends winehq-stable 

          Spustite

          Winecfg

          Keď spustíte tento príkaz môžete nakonfigurovať Wine

          Nastavenie tlačiarne na raspberry PI OS Raspbian

          Pripojte tlačiareň k Raspbeery
          1. Napíšte sudo apt-get update
          nechajte všetko prebehnúť
          2. Teraz napíšte sudo apt-get install cups
          opäť počkajte kým všetko prebehne
          3. teraz napíšte sudo usermod -a -G lpadmin pi
          4. Otvorte internetový prehliadač napíšte http://localhost:631

          5. zvoľte možnosť Adding Printers and Classes
          1

          6. Nepovinný bod je zdieľanie a podobné pokročilé nastavenia
          2

          7. Zvoľte možnosť add printer
          3

          8. Otvorí sa vám dialógové okno na vypísanie mena a hesla
          pre ukážku vložte meno pi a heslo Raspberry
          4

          9. Objavy sa vám takéto dialógové okno tam iba odškrtnite vašu lokálnu tlačiareň
          5

          A následne zvoľte možnosť continue

          10. Teraz vám vyskočí dialógové okno, kde viete pomenovať tlačiareň a podobné veci vrátane možnosti zdieľanie tlačiarne. Ak chcete zdieľať tlačiareň tak zvoľte možnosť Share This Printer
          6

          a zvoľte možnosť continue

          11. Vyberte model vašej tlačiarne
          7

          Zvoľte výrobcu tlačiarne v mojom prípade Canon
          8

          Zvoľte continue

          12. V ďalšom kroku vyberte model tlačiarne
          9

          13. V ďalšom kroku zvoľte možnosť set default Options
          10

          Manuály na Linux

          Inštalácia a konfigurácia GLPI

           

          Inštalácia wiki na Debian 9

           

          Spotify na Linux Ubuntu/Mint

           

          Keď sa neviete pripojiť na SSH Raspberry

           

          ZABBIX na Linux Ubuntu 18.4

           

          Zmena užívateľského mena

           

          Nastavenie tlačiarne na raspberry PI OS Raspbian

           

          Manual na naištalovanie Vmware Workstation ovládača (Linux Mint)

           

          Inštalácia Wine na Linux Mint 19.1

           

          Inštalácia CiscoPacket Tracer na Linux Mint