Automatický spôsob: jeden skript z vášho účtu pripraví celý server (webový stack Apache + PHP, databázu, bezpečnostné nástroje, cron). Potom už len nasadíte dashboard, vydáte SSL a zadáte licenciu. Funguje na Ubuntu/Debian: na čerstvom VPS nastaví všetko od nuly, na už nastavenom serveri iba prídavne (profil „Nastavený server“, krok 01). Všetky príkazy nižšie sú v poradí, stačí listovať zhora nadol. Na čerstvom VPS sa hodí každý krok za sebou; ak je server už nastavený alebo je na ňom hostingový panel, časť práce skript zámerne ponecháva na vás — čo presne, napíše na konci svojej práce (rozbor výstupu — v kroku 01).
monitor.example.com — váš doména; 203.0.113.10 — reálna IP adresa servera; /var/www/monitor — koreň dashboardu (kde sú public/, assets/, config.php); heslo k databáze si vymyslite vlastné.
jail.local), root-crontab, pravidlá UFW, konfiguráciu Apache. Ak je server už nastavený (funkčný dashboard, weby, pošta, vlastné jaily) — zvoľte profil „Nastavený server“: vykoná iba prídavné zmeny a nezasiahne váš firewall, Fail2ban, poštu, SSH ani sysctl. Pri zistení hostingového panela skript prepne do tohto režimu sám. Pred prvým spustením môžete zapnúť suchý beh (zaškrtnutie v účte) — ukáže, čo sa vykoná, bez akýchkoľvek zmien. Na funkčnom serveri si pre istotu vytvorte snímku (snapshot).
my.arciveo.com → sekcia „Nastavenie servera“ (dostupná po zakúpení Arcivéo Security Monitor). Je viazaný na váš účet a obsahuje osobný token.
Skript pripraví celý server: webový stack (Apache + PHP), databázu, nástroje pre SSL, kompletnú sadu ochranných prostriedkov a cron úlohy (Lynis, SMART, debsums, Logwatch, denný report, aktualizácia ipsum).
1) Vyberte úroveň ochrany (v účte, pred skopírovaním príkazu):
2) Spustite na serveri pod root príkaz z účtu — vyzerá takto:
3) Prečítajte si výstup na konci — je v ňom napísané, čo zostáva na vás. Skript končí svoju prácu blokom kontrol a zoznamom „Ďalej — inštalácia panela“. Časť krokov zámerne nevykonáva: čo presne, závisí od zvoleného profilu a od toho, čo našiel na serveri. Porovnajte so zoznamom nižšie — vykonať treba iba tie body, ktorých riadky sa objavili vo vašom výstupe.
Control panel detected (…) — web sa vytvára prostriedkami samotného hostingového panela, vhost skript nevytvára. Krok 03, vetva „Server s hostingovým panelom“.No vhost created (no domain given) — profil „Nastavený server“ bez domény: vhost bez mena by sa stal predvoleným webom a zachytával by vaše vlastné weby, preto nebol vytvorený. Krok 03, vetva „Vytvoriť vhost ručne“.sudo rules NOT written — skript nedokázal určiť, pod akým účtom panel beží. Je to bežná situácia: súbory panela sa nahrávajú až po automatickom nastavení, takže ešte nebolo podľa čoho určovať. Bez týchto pravidiel moduly neuvidia systémové dáta. Krok 04, blok „sudo pre webový server“.! Nginx does not read .htaccess — pred Apache stojí Nginx a zapísať zákaz do jeho konfigurácie sa automaticky nepodarilo. Urobte to nevyhnutne: inak sa data/, keys/, database/ a config.php vydávajú von mimo .htaccess. Krok 03, blok „Ak pred Apache stojí Nginx“.UFW installed but inactive — firewall je nainštalovaný, ale vypnutý: na nastavenom serveri ho skript nezapína sám, aby vám neodrezal prístup. Zapnite ho sami a nezabudnite povoliť svoj SSH port:
Fail2ban installed but not running — spustite: sudo systemctl enable --now fail2ban.Database server present … but not running — spustite databázový server pred krokom 04: sudo systemctl enable --now mariadb (alebo mysql — podľa toho, čo je nainštalované).Certbot skipped — issue SSL in … — certifikát sa vydáva prepínačom Let's Encrypt v hostingovom paneli; krok 06 nepotrebujete.All checks passed. Body s ! vyžadujú pozornosť; podrobnosti sa zapisujú do logu, jeho cestu skript vypíše úplne na konci (Log: …).
Ak chcete otvárať dashboard na adrese ako monitor.example.com a získať bezplatný SSL, doména musí smerovať na server. V dashboarde správy DNS (u registrátora alebo hostera) vytvorte A-záznam:
Po niekoľkých minútach (niekedy až do hodiny) skontrolujte, že doména smeruje na server:
/var/www/monitor a nastavila web Apache (DocumentRoot na koreň panela, PHP-FPM, AllowOverride pre .htaccess). Vo výstupe skriptu je to riadok vhost … → DocumentRoot …. Adresár ani vhost netreba vytvárať samostatne — stačí nahrať súbory a nastaviť práva.
Vetva „Server s hostingovým panelom“ (vo výstupe: Control panel detected (…)). Weby na takom serveri spravuje panel a vlastný vhost skript zámerne nevytvára — pri prvom prebudovaní konfigurácií panelom by bol prepísaný. Postup je takýto:
public_html tejto domény: vedľa index.php, api/, assets/ musia ležať aj služobné config.php, includes/, data/, tmp/, logs/, keys/, cron/, database/. Nič nad webový koreň netreba vynášať: služobné priečinky sú zabezpečené súborom .htaccess z distribúcie a pod Nginxom zákazom, ktorý skript zapísal do konfigurácie domény.config.php (krok 05). Cesty v príkazoch nahraďte za /home/účet/web/doména/public_html a vlastníka za používateľa tejto domény namiesto www-data.Vetva „Vytvoriť vhost ručne“ (vo výstupe: No vhost created (no domain given)). Stáva sa to iba pri profile „Nastavený server“, keď doména nebola odovzdaná. Najjednoduchšie je jednoducho znova spustiť príkaz z účtu a uviesť doménu:
Opätovné spustenie je bezpečné: to, čo je už hotové, sa neduplikuje. Ak však vhost treba vytvoriť ručne — tu je tá istá konfigurácia, akú zapisuje inštalátor:
ServerName je tu povinný. Vhost bez mena sa stane predvoleným webom Apache a začne odpovedať za cudzie domény na tom istom serveri. Z toho istého dôvodu nevypínajte 000-default.conf na nastavenom serveri: tento web mohol byť prerobený na niečí funkčný — na čerstvom VPS ho inštalátor odstráni sám, tu to robiť netreba.
! Nginx does not read .htaccess). Nginx vydáva statické súbory priamo z disku a .htaccess nečíta — služobné priečinky by zostali otvorené von, hoci Apache ich korektne zatvára. Skript vopred pripravil súbor so zákazmi; treba ho pripojiť v bloku server{} vášho webu a Nginx znova načítať:
my.arciveo.com → „Súbory na stiahnutie“. Archív pred nahraním na server rozbaľte.
Nahrajte obsah distribúcie do /var/www/monitor (aby sa vnútri ocitli public/, assets/, config.php atď.) — cez SFTP/SCP (FileZilla / WinSCP) alebo príkazom scp z lokálneho počítača:
ServerName), odovzdá sa príkazu automatickej inštalácie už v kroku 01: … | sudo bash -s -- monitor.example.com (alebo sa doména uvedie v poli „Doména panela“ v účte). Ak sa doména neodovzdala — panel odpovedá na ľubovoľný host aj cez IP a ServerName zapíše certbot pri vydaní SSL (krok 06); nič netreba preinštalovávať.
root alebo cez SFTP, patria používateľovi root a webový server (www-data) ich nedokáže prečítať — panel sa otvorí prázdny alebo s chybou 403 (v logu: .htaccess unreadable / directory not executable). Príkaz nižšie to opraví:
Sprístupnite si nahrávanie súborov cez SFTP. Po príkaze vyššie patria všetky súbory používateľovi www-data, kým FileZilla / WinSCP sa pripájajú pod vaším vlastným používateľom — nahrávanie potom zlyhá s SSH_FX_PERMISSION_DENIED (Permission denied). Vyberte jednu z dvoch variantov.
Variant A — ACL len pre vášho používateľa (odporúčané). Právo zápisu získate iba vy; webový server stále nemôže prepísať kód panela:
Variant B — cez skupinu www-data. Jednoduchší, ale právo zápisu k súborom panela získa aj webový server: pri zraniteľnosti v PHP by sa kód dal vymeniť. Na poradí príkazov záleží — config.php a pracovné priečinky sa uzatvárajú ako posledné:
id deploy — v zozname skupín sa musí objaviť www-data; ls -ld /var/www/monitor — práva drwxrwsr-x, písmeno s namiesto x znamená, že setgid je nastavený.
Vytvorte databázu a používateľa, potom importujte schému. Blok s databázou sa do terminálu vkladá celý (sudo mysql prihlasuje root cez unix-socket — heslo root nie je potrebné). monitor_db a monitor_user sú príklady názvov, môžete zadať ľubovoľné vlastné; zapamätajte si názov databázy, používateľa a heslo — v ďalšom kroku ich vpíšete do config.php:
admin vytvorí sám pri prvom otvorení v prehliadači (z database/db.sql), ak je databáza prázdna.
Ak sa tabuľky nevytvorili (panel zobrazuje chybu pripojenia k databáze alebo prázdnu obrazovku namiesto prihlasovacieho formulára) — importujte schému ručne. Príkaz sa vykonáva v koreni panela, hodnoty sa berú z bloku vyššie:
$DBNAME / $DBUSER / $DBPASS už „zabudli“ (nová relácia terminálu) — dosaďte hodnoty do príkazu ručne alebo ich zadajte znova tými istými tromi riadkami z bloku vyššie.
sudo rules NOT written — nebolo podľa čoho určiť účet panela (súbory ešte neboli nahrané) a pravidlá neboli vytvorené. Bez nich zostanú sekcie ako firewall, Fail2ban a CrowdSec prázdne. Teraz, keď sú súbory na mieste, spustite príkaz z účtu ešte raz a uveďte účet výslovne:
www-data nahraďte používateľom, pod ktorým beží PHP vášho webu (na hostingovom paneli je to zvyčajne vlastník domény). Pozrieť si ho môžete takto:
/etc/sudoers.d/monitor existuje a sú v ňom riadky s vaším používateľom.
config.php v koreni panela (/var/www/monitor/config.php) je jediný súbor, ktorý treba upraviť ručne. Všetky nastavenia panela sú v ňom zadané konštantami define(). Otvorte ho v editore:
Doplňte svoje hodnoty na zvýraznené miesta; ostatné nechajte tak, ako je:
Čo meniť:
DB_NAME, DB_USER, DB_PASS — presne tie isté názov databázy, používateľ a heslo, ktoré ste zadali pri vytváraní databázy v kroku 04 (ak ste nechali príklady — monitor_db / monitor_user). DB_HOST a DB_CHARSET nechajte tak.APP_URL — úplná adresa panela s https://, bez lomky na konci a bez www. Musí sa zhodovať s doménou, na ktorú aktivujete licenciu (krok 07), inak bude kľúč odmietnutý.TIMEZONE — vaše časové pásmo (zoznam — timedatectl list-timezones). Ovplyvňuje len to, ako panel zobrazuje dátumy; na čas spustenia cron-úloh nemá vplyv (tam platí pásmo systému).SESSION_LIFETIME — po koľkých sekundách nečinnosti panel vyžiada opätovné prihlásenie (predvolene 8 hodín). Napr. 3600 = 1 hodina, 86400 = deň.display_errors, log_errors, error_log) — nechajte predvolený.Uložte súbor (Ctrl+O, Enter, potom Ctrl+X) a reštartujte PHP-FPM — inak sa kvôli OPcache zmeny neprejavia:
640 (nastavené v kroku 03) a výslovný zákaz v koreňovom .htaccess. Nezverejňujte ho vo verejných repozitároch a neposielajte do podpory so skutočným heslom.
http:// sa neprihlásite.
Certbot skipped — issue SSL in …). Certifikát sa vydáva prepínačom Let's Encrypt na webovej doméne priamo v paneli — o jeho obnovovanie sa tak stará tiež panel.
certbot a plugin pre Apache už boli nainštalované automatickou konfiguráciou. DNS domény už musí smerovať na server (krok 02). Vystavenie jedným príkazom:
Ak sa má panel otvárať aj s www. — uveďte obe mená v jednom príkaze, inak prehliadač na druhej adrese zobrazí upozornenie o certifikáte:
Y.<VirtualHost *:443>, nastaví presmerovanie http→https a automatické obnovovanie. Na konci — Successfully enabled HTTPS.
dig +short monitor.example.com vracia IP servera a či sú otvorené porty 80/443 (sudo ufw allow 80,443/tcp).
Po vystavení: https://monitor.example.com sa otvára so zámkom, http:// presmeruje na https://.
Otvorte https://monitor.example.com, prihláste sa cez admin / useradmin a prejdite kontrolný zoznam:
ARCIVEO-… z účtu aktivujte na svoju doménu a vložte kľúč do „Nastavenia“ → „Licencia“. Viac.public/start_db.php, ak zostal: umožňuje bez prihlásenia znovu vytvoriť databázu. Kým súbor leží v koreni panela alebo v public/, panel naň upozorňuje červeným bannerom.sudo /usr/local/bin/clamav-scan.sh) silno zaťažuje disk aj procesor a môže trvať hodinu aj viac — na funkčnom serveri je lepšie počkať na nočné spustenie o 01:30. Sekcie „Disky (SMART)“, „Výkon“ a „Bezpečnostné aktualizácie“ sa napĺňajú samy: každých 30 minút, 5 minút a raz za hodinu.