# Objava spletišča ali aplikacije

Vaš VPS Ultra ima lasten naslov IPv4 in svoj naslov IPv6: vaše domene kažejo neposredno nanju, vaš strežnik pa sprejema promet na vseh vratih, ki jih odprete. Strežete toliko spletišč in domen, kolikor želite.

## 1. Usmeritev domene na vaš strežnik

Tam, kjer upravljate cono DNS svoje domene, ustvarite dva zapisa z naslovoma, prikazanima na kartici vašega strežnika v razdelku **VPS** vašega uporabniškega okolja:

| Vrsta  | Ime                             | Vrednost                  |
| ------ | ------------------------------- | ------------------------- |
| `A`    | `@`, `www` ali želena poddomena | **Naslov IPv4** s kartice |
| `AAAA` | isto ime                        | **Naslov IPv6** s kartice |

Če cono DNS vaše domene upravlja Simafri, te zapise za vas nastavi naša ekipa: pišite nam. Preden preklopite spletišče, ki je že na spletu, nas prosite tudi, da znižamo življenjsko dobo (TTL) zapisa.

Za preverjanje z vašega računalnika:

```
dig +short A app.moje-podjetje.si

dig +short AAAA app.moje-podjetje.si
```

## 2. Namestitev spletnega strežnika in certifikata

Dve pogosti izbiri v sistemu Linux:

* **Caddy**, ki sam pridobi in obnavlja vaše certifikate HTTPS:

  ```
  apt install caddy
  ```

  nato v `/etc/caddy/Caddyfile`:

  ```
  app.moje-podjetje.si {

      reverse_proxy 127.0.0.1:3000

  }
  ```

  in `systemctl reload caddy`;

* **Nginx** ali **Apache**, s **Certbot** za certifikat Let's Encrypt:

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

  certbot --nginx -d app.moje-podjetje.si -d www.app.moje-podjetje.si
  ```

  Certbot namesti certifikat, doda poslušanje na vratih 443 in načrtuje njegovo samodejno obnavljanje.

V sistemu Windows Server vaša spletišča streže **IIS**, odjemalec ACME, kot je win-acme, pa nanj namesti in obnavlja vaše certifikate Let's Encrypt.

## 3. Neprekinjeno delovanje aplikacije

Aplikacijo Node.js, Python, Go ali Java, ki teče neprekinjeno, zaupajte **systemd**: zažene se s strežnikom in se sama znova zažene, če se ustavi. Primer v `/etc/systemd/system/app.service`:

```
[Unit]

Description=Moja aplikacija

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    # spremljanje njenih dnevnikov
```

Docker in Docker Compose se prav tako namestita kot na katerem koli strežniku Linux.

## 4. Vaša podatkovna baza

PostgreSQL, MySQL, MariaDB, Redis ali MongoDB namestite z upraviteljem paketov ali iz uradnega repozitorija izdajatelja. Zagotovljen pomnilnik vašega VPS Ultra je zelo primeren za zahtevno bazo: njen delovni pomnilnik (`shared_buffers` za PostgreSQL, `innodb_buffer_pool_size` za MySQL) nastavite glede na pomnilnik svoje velikosti.

Naj vaša baza posluša na `localhost`, upravljajte pa jo s svojega računalnika prek tunela SSH:

```
ssh -L 5432:localhost:5432 root@app.moje-podjetje.si
```

Vaše orodje (DBeaver, pgAdmin, TablePlus) se nato poveže na `localhost:5432`.

## Pogosta vprašanja

### Moje spletišče prikazuje napako certifikata.

Preverite po vrsti: vaša zapisa `A` in `AAAA` kažeta na naslova s kartice (`dig`), vaš spletni strežnik posluša na vratih 80 in 443 (`ss -tlnp`), vaš požarni zid ju prepušča (`ufw status`) in certifikat res pokriva to ime (`certbot certificates`).

### Ali lahko na svojem VPS Ultra gostim več spletišč?

Da, kolikor želite: vsako domeno usmerite na svoje naslove in njen blok dodajte v svoj spletni strežnik.
