# Nasadenie webu alebo aplikácie

Váš VPS Ultra má vlastnú adresu IPv4 aj adresu IPv6: vaše domény na ne smerujú priamo a váš server prijíma prenos na všetkých portoch, ktoré otvoríte. Poskytujete toľko webov a domén, koľko chcete.

## 1. Nasmerovanie domény na server

Tam, kde sa spravuje zóna DNS vašej domény, vytvorte dva záznamy s adresami zobrazenými na karte vášho servera, v sekcii **VPS** vašej zákazníckej zóny:

| Typ    | Názov                                 | Hodnota                       |
| ------ | ------------------------------------- | ----------------------------- |
| `A`    | `@`, `www` alebo požadovaná subdoména | **Adresa IPv4** z vašej karty |
| `AAAA` | rovnaký názov                         | **Adresa IPv6** z vašej karty |

Ak zónu DNS vašej domény spravuje Simafri, tieto záznamy za vás nastaví náš tím: napíšte nám. Pred prepnutím webu, ktorý už je online, nás požiadajte aj o zníženie doby platnosti (TTL) záznamu.

Overenie z vášho počítača:

```
dig +short A app.moja-firma.sk

dig +short AAAA app.moja-firma.sk
```

## 2. Inštalácia webového servera a certifikátu

Dve bežné možnosti v Linuxe:

* **Caddy**, ktorý sám získa a obnovuje vaše certifikáty HTTPS:

  ```
  apt install caddy
  ```

  potom v `/etc/caddy/Caddyfile`:

  ```
  app.moja-firma.sk {

      reverse_proxy 127.0.0.1:3000

  }
  ```

  a `systemctl reload caddy`;

* **Nginx** alebo **Apache**, s **Certbot** na certifikát Let's Encrypt:

  ```
  apt install nginx certbot python3-certbot-nginx

  certbot --nginx -d app.moja-firma.sk -d www.app.moja-firma.sk
  ```

  Certbot nainštaluje certifikát, pridá počúvanie na porte 443 a naplánuje jeho automatické obnovovanie.

Vo Windows Server poskytuje vaše weby **IIS** a klient ACME ako win-acme doň nainštaluje a obnovuje vaše certifikáty Let's Encrypt.

## 3. Nepretržitý chod aplikácie

Aplikáciu v Node.js, Pythone, Go alebo Jave, ktorá beží nepretržite, zverte **systemd**: spustí sa so serverom a sama sa reštartuje, ak sa zastaví. Príklad v `/etc/systemd/system/app.service`:

```
[Unit]

Description=Moja aplikácia

After=network.target



[Service]

WorkingDirectory=/srv/app

ExecStart=/usr/bin/node server.js

Restart=always

Environment=NODE_ENV=production

User=www-data



[Install]

WantedBy=multi-user.target
```

```
systemctl daemon-reload

systemctl enable --now app

journalctl -u app -f    # sledovať jej logy
```

Docker a Docker Compose sa tiež inštalujú ako na každom linuxovom serveri.

## 4. Vaša databáza

PostgreSQL, MySQL, MariaDB, Redis alebo MongoDB nainštalujete správcom balíkov alebo z oficiálneho repozitára vydavateľa. Garantovaná pamäť vášho VPS Ultra sa dobre hodí pre náročnú databázu: nastavte jej pracovnú pamäť (`shared_buffers` pre PostgreSQL, `innodb_buffer_pool_size` pre MySQL) podľa pamäte vašej veľkosti.

Nechajte databázu počúvať na `localhost` a spravujte ju zo svojho počítača cez tunel SSH:

```
ssh -L 5432:localhost:5432 root@app.moja-firma.sk
```

Váš nástroj (DBeaver, pgAdmin, TablePlus) sa potom pripojí na `localhost:5432`.

## Časté otázky

### Môj web zobrazuje chybu certifikátu.

Skontrolujte v tomto poradí: vaše záznamy `A` a `AAAA` ukazujú na adresy z vašej karty (`dig`), váš webový server počúva na portoch 80 a 443 (`ss -tlnp`), váš firewall ich prepúšťa (`ufw status`) a certifikát pokrýva tento názov (`certbot certificates`).

### Môžem na svojom VPS Ultra hostovať viac webov?

Áno, koľko chcete: nasmerujte každú doménu na svoje adresy a pridajte jej blok do konfigurácie svojho webového servera.
