# Zveřejnění webu nebo aplikace

Váš VPS Ultra má vlastní IPv4 adresu i adresu IPv6: vaše domény na ně ukazují přímo a váš server přijímá provoz na všech portech, které otevřete. Poskytujete tolik webů a domén, kolik chcete.

## 1. Nasměrování domény na server

Tam, kde se spravuje zóna DNS vaší domény, vytvořte dva záznamy s adresami zobrazenými na kartě vašeho serveru, v sekci **VPS** vaší zákaznické zóny:

| Typ    | Název                                | Hodnota                      |
| ------ | ------------------------------------ | ---------------------------- |
| `A`    | `@`, `www` nebo požadovaná subdoména | **Adresa IPv4** z vaší karty |
| `AAAA` | stejný název                         | **Adresa IPv6** z vaší karty |

Pokud zónu DNS vaší domény spravuje Simafri, náš tým tyto záznamy nastaví za vás: napište nám. Před přepnutím webu, který už běží, nás také požádejte o snížení doby platnosti (TTL) záznamu.

Ověření z vašeho počítače:

```
dig +short A app.moje-firma.cz

dig +short AAAA app.moje-firma.cz
```

## 2. Instalace webového serveru a certifikátu

Dvě běžné volby v Linuxu:

* **Caddy**, který vaše certifikáty HTTPS získává a obnovuje sám:

  ```
  apt install caddy
  ```

  pak v `/etc/caddy/Caddyfile`:

  ```
  app.moje-firma.cz {

      reverse_proxy 127.0.0.1:3000

  }
  ```

  a `systemctl reload caddy`;

* **Nginx** nebo **Apache**, s **Certbotem** pro certifikát Let's Encrypt:

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

  certbot --nginx -d app.moje-firma.cz -d www.app.moje-firma.cz
  ```

  Certbot nainstaluje certifikát, přidá naslouchání na portu 443 a naplánuje jeho automatické obnovování.

Ve Windows Serveru poskytuje vaše weby **IIS** a klient ACME, například win-acme, na něm instaluje a obnovuje vaše certifikáty Let's Encrypt.

## 3. Nepřetržitý chod aplikace

Aplikaci v Node.js, Pythonu, Go nebo Javě, která běží nepřetržitě, svěřte **systemd**: spustí se se serverem a sama se restartuje, pokud se zastaví. Příklad v `/etc/systemd/system/app.service`:

```
[Unit]

Description=Moje aplikace

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    # sledovat její logy
```

Docker a Docker Compose se instalují také jako na kterémkoli linuxovém serveru.

## 4. Vaše databáze

PostgreSQL, MySQL, MariaDB, Redis nebo MongoDB nainstalujete správcem balíčků, nebo z oficiálního repozitáře vydavatele. Garantovaná paměť vašeho VPS Ultra se dobře hodí pro náročnou databázi: nastavte její pracovní paměť (`shared_buffers` pro PostgreSQL, `innodb_buffer_pool_size` pro MySQL) podle paměti své velikosti.

Nechte databázi naslouchat na `localhost` a spravujte ji ze svého počítače přes tunel SSH:

```
ssh -L 5432:localhost:5432 root@app.moje-firma.cz
```

Váš nástroj (DBeaver, pgAdmin, TablePlus) se pak připojí k `localhost:5432`.

## Časté otázky

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

Zkontrolujte v tomto pořadí: vaše záznamy `A` a `AAAA` ukazují na adresy z vaší karty (`dig`), váš webový server naslouchá na portech 80 a 443 (`ss -tlnp`), váš firewall je propouští (`ufw status`) a certifikát skutečně pokrývá tento název (`certbot certificates`).

### Mohu na svém VPS Ultra hostovat více webů?

Ano, tolik, kolik chcete: nasměrujte každou doménu na své adresy a přidejte její blok do svého webového serveru.
