Automatická inštalácia

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.

Zástupné hodnoty v príkazoch nahraďte vlastnými: 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é.
Kompletná sada („Plná ochrana“) je určená pre čerstvý VPS. Na čistom Ubuntu/Debian nastaví bezpečnostný systém od nuly — Fail2ban (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).

01. Príkaz na automatické nastavenie z účtu

Príkaz získate vo svojom účte my.arciveo.com → sekcia „Nastavenie servera“ (dostupná po zakúpení Arcivéo 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):

  • Plná ochrana (odporúčané) — UFW (firewall), Fail2ban, CrowdSec + bouncer, ipsum (blokovací zoznam IP), Suricata (IDS/IPS), Falco, ModSecurity + OWASP CRS (WAF), PSAD, mod_evasive (anti-DoS), AIDE (integrita súborov), debsums, ClamAV + maldet (antivírus), Auditd, AppArmor, Monit, Lynis (audit), Logwatch, automatické bezpečnostné aktualizácie.
  • Odľahčená — pre VPS s malým objemom RAM: základná sada bez ťažkých komponentov.
  • Nakonfigurovaný server (hostingový panel) — pre už fungujúci server s panelom (HestiaCP a pod.), webmi a poštou: iba aditívne zmeny (doinštalovanie nástrojov, cron, sudo pravidlá), pričom firewall, Fail2ban, pošta, SSH a sysctl zostávajú tak, ako sú. Na serveri s panelom skript tento režim zvolí sám.
Suchý beh. V účte môžete zaškrtnúť „Suchý beh“ — potom príkaz iba ukáže, čo skript nainštaluje a zmení, a skončí bez akéhokoľvek zásahu. Užitočné na už nakonfigurovanom serveri: najprv beh, potom reálne spustenie bez zaškrtnutia.

2) Spustite na serveri pod root príkaz z účtu — vyzerá takto:

curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN" | sudo bash
Príkaz držte v tajnosti — je viazaný na váš účet. Odkaz má obmedzenú platnosť; ak vypršal, kliknite v účte na „Získať nový odkaz“.
Po automatickom nastavení je webový server Apache + PHP-FPM a bezpečnostné nástroje aj cron úlohy sú už nainštalované a fungujú „hneď po inštalácii“ — nič ďalšie netreba nastavovať.

02. Doména a DNS

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:

Typ: A Meno: monitor (poddoména → monitor.example.com) alebo @ (koreň domény → example.com) Hodnota: 203.0.113.10 ← IP vášho servera TTL: 3600

Po niekoľkých minútach (niekedy až do hodiny) skontrolujte, že doména smeruje na server:

dig +short monitor.example.com # mal by vrátiť vašu IP # alebo, ak dig nie je k dispozícii: getent hosts monitor.example.com
SSL certifikát (krok 06) sa vydáva iba na doménu — preto DNS musí smerovať na server pred vydaním certifikátu.

03. Nahranie súborov panela

Automatická inštalácia už vytvorila adresár panela /var/www/monitor a nastavila web Apache (DocumentRoot na koreň panela, PHP-FPM, AllowOverride pre .htaccess). Adresár ani vhost netreba vytvárať samostatne — stačí nahrať súbory a nastaviť práva.
Súbory panela (archív distribúcie) sa sťahujú po zakúpení v účte 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:

scp -r ./monitor/* deploy@203.0.113.10:/var/www/monitor/
Aby sa do vhost hneď zapísala vaša doména (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ť.
Nastavte práva k súborom — je to povinný krok. Ak ste súbory nahrávali pod 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í:
# Normalizujeme práva celého webroot: adresár vytvorený rootom je nedostupný # webovému serveru (www-data) — bez toho panel vráti prázdnu stránku alebo 403. cd /var/www/monitor # Pracovné priečinky vytvárame PRED chown — inak nové adresáre zostanú root:root # a pri chmod 750 do nich webový server (www-data) nebude môcť zapisovať. sudo mkdir -p data/lynis data/logwatch tmp logs sudo chown -R www-data:www-data /var/www/monitor sudo find /var/www/monitor -type d -exec chmod 755 {} \; sudo find /var/www/monitor -type f -exec chmod 644 {} \; sudo chmod 640 /var/www/monitor/config.php sudo chmod 750 data tmp logs

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:

sudo apt install -y acl # Právo zápisu pre vášho používateľa na celý adresár panela: sudo setfacl -R -m u:deploy:rwX /var/www/monitor # To isté pravidlo ako predvolené — pre súbory a priečinky vytvorené neskôr: sudo setfacl -R -d -m u:deploy:rwX /var/www/monitor

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é:

sudo usermod -aG www-data deploy # Zápis pre skupinu + setgid (bit 2): súbory nahrané cez SFTP zostávajú # v skupine www-data — inak ich panel nedokáže prepísať. sudo find /var/www/monitor -type d -exec chmod 2775 {} \; sudo find /var/www/monitor -type f -exec chmod 664 {} \; sudo chmod 640 /var/www/monitor/config.php sudo chmod 2750 /var/www/monitor/data /var/www/monitor/tmp /var/www/monitor/logs
Po variante B sa vo FileZille pripojte nanovo (Server → Odpojiť, potom sa znova prihláste) — nová skupina sa prejaví až pri novom prihlásení, dovtedy oprávnenia stále mať nebudete. Kontrola: 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ý.

04. Databáza

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:

# 1. Databáza. Heslo sa zadáva RAZ v DBPASS a dosadí sa do všetkých riadkov. # Blok sa do terminálu vkladá CELÝ; sudo mysql prihlasuje root cez unix-socket # (heslo root nie je potrebné). NEPOUŽÍVAJTE interaktívny `sudo mysql -u root -p` # s kopírovaním — pri vložení SQL riadky odídu do výzvy na heslo a stratia sa. DBPASS='CHOOSE_A_PASSWORD' # ← zmeňte iba tento riadok sudo mysql <<SQL CREATE DATABASE IF NOT EXISTS monitor_db CHARACTER SET utf8mb4; CREATE USER IF NOT EXISTS 'monitor_user'@'localhost' IDENTIFIED BY '$DBPASS'; GRANT ALL ON monitor_db.* TO 'monitor_user'@'localhost'; FLUSH PRIVILEGES; SQL # Kontrola (mala by zobraziť monitor_db): mysql -u monitor_user -p"$DBPASS" -e "SHOW DATABASES;" # Toto isté heslo vpíšte do config.php → DB_PASS.
Schému netreba importovať — panel si tabuľky a účet admin vytvorí sám pri prvom otvorení v prehliadači (z database/db.sql), ak je databáza prázdna.
sudo pre webový server už nastavilo automatické nastavenie — moduly vidia systémové dáta hneď. Samostatne nastaviť sudo je potrebné iba vtedy, ak PHP beží pod neštandardným používateľom (nie www-data).

05. Nastavenie config.php

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:

sudo nano /var/www/monitor/config.php

Doplňte svoje hodnoty na zvýraznené miesta; ostatné nechajte tak, ako je:

// --- Databáza (z kroku 04) --- define('DB_HOST', 'localhost'); // nechať define('DB_NAME', 'db_name'); // čo ste vytvorili v kroku 04 define('DB_USER', 'user'); // čo ste vytvorili v kroku 04 define('DB_PASS', 'db_password'); // čo ste zadali v kroku 04 define('DB_CHARSET', 'utf8mb4'); // nechať // --- Aplikácia --- define('APP_URL', 'https://monitor.example.com'); // adresa panela, bez lomky na konci define('TIMEZONE', 'Europe/Bratislava'); // vaše časové pásmo // --- Trvanie relácie --- define('SESSION_LIFETIME', 28800); // nečinnosť do opätovného prihlásenia, s (28800 = 8 h)

Č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ň.
  • Blok logovania chýb (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:

sudo systemctl restart php*-fpm
config.php je tajný súbor (obsahuje heslo databázy). Nachádza sa v koreni panela, ktorý je zároveň webovým koreňom, ale je zabezpečený: práva 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.
Podrobný rozbor všetkých parametrov — v FAQ: „Súbor config.php — všetky nastavenia panela“.

06. Vystaviť SSL (HTTPS)

Panel funguje iba cez HTTPS. Prihlasovacia relácia používa zabezpečenú cookie a WebAuthn (2FA) podľa štandardu funguje len na HTTPS. Cez http:// sa neprihlásite.

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:

sudo certbot --apache -d monitor.example.com
Na čo sa certbot spýta:
  1. Enter email address — váš e-mail (prídu naň upozornenia o vypršaní certifikátu).
  2. Terms of Service … (Y)es/(N)oY.
  3. Share email with the EFF … (Y)es/(N)o — podľa vášho uváženia.
Ďalej certbot sám vystaví certifikát, zapíše <VirtualHost *:443>, nastaví presmerovanie http→https a automatické obnovovanie. Na konci — Successfully enabled HTTPS.
Ak vystavenie zlyhá — skontrolujte, či 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://.

07. Prihlásenie a prvotné nastavenie

Otvorte https://monitor.example.com, prihláste sa cez admin / useradmin a prejdite kontrolný zoznam:

  1. Zmeňte heslo admin — sekcia „Používatelia“ v menu.
  2. Zapnite WebAuthn (2FA) — „Kľúče WebAuthn“ → zaregistrujte kľúč/passkey (vyžaduje HTTPS). Zaregistrujte hneď dva: pri strate jediného kľúča nebude prihlásenie cez neho možné. Viac.
  3. Obmedzte prístup podľa IP — „Nastavenia“ → „Obmedzenie prístupu podľa IP“ (zadajte svoju IP adresu pred zapnutím, inak si zablokujete prístup).
  4. Zadajte licenciu — aktivačný kód ARCIVEO-… z účtu aktivujte na svoju doménu a vložte kľúč do „Nastavenia“ → „Licencia“. Viac.
  5. Nastavte upozornenia — Telegram a/alebo Email v „Nastavenia“. Viac.
  6. Odstráňte inštalátor 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.
Hotovo. Bezpečnostné nástroje už bežia — dashboard hneď zobrazí ich stav a Skóre bezpečnosti. Príručku ku každému nástroju nájdete vo FAQ.
Arcivéo - Security Monitor © 2026