# Sivuston tai sovelluksen julkaiseminen

VPS Ultra -palvelimellasi on oma IPv4-osoite ja IPv6-osoite: verkkotunnuksesi osoittavat suoraan niihin, ja palvelimesi vastaanottaa liikenteen kaikissa porteissa, jotka avaat. Voit palvella niin monta sivustoa ja verkkotunnusta kuin haluat.

## 1. Verkkotunnuksen osoittaminen palvelimeesi

Luo siellä, missä verkkotunnuksesi DNS-vyöhykettä hallitaan, kaksi tietuetta. Käytä osoitteita, jotka näkyvät palvelimesi kortissa asiakasalueesi osiossa **VPS**:

| Tyyppi | Nimi                                     | Arvo                              |
| ------ | ---------------------------------------- | --------------------------------- |
| `A`    | `@`, `www` tai haluamasi aliverkkotunnus | kortissasi näkyvä **IPv4-osoite** |
| `AAAA` | sama nimi                                | kortissasi näkyvä **IPv6-osoite** |

Kun verkkotunnuksesi DNS-vyöhykettä hallinnoi Simafri, tiimimme lisää nämä tietueet puolestasi: kirjoita meille. Ennen kuin siirrät jo verkossa olevan sivuston, pyydä meitä myös lyhentämään tietueen elinaikaa (TTL).

Tarkistus tietokoneeltasi:

```
dig +short A app.yrityksesi.fi

dig +short AAAA app.yrityksesi.fi
```

## 2. Verkkopalvelimen ja varmenteen asentaminen

Kaksi yleistä vaihtoehtoa Linuxissa:

* **Caddy**, joka hankkii ja uusii HTTPS-varmenteesi itse:

  ```
  apt install caddy
  ```

  ja sitten tiedostoon `/etc/caddy/Caddyfile`:

  ```
  app.yrityksesi.fi {

      reverse_proxy 127.0.0.1:3000

  }
  ```

  ja lopuksi `systemctl reload caddy`;

* **Nginx** tai **Apache** ja Let's Encrypt -varmenteelle **Certbot**:

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

  certbot --nginx -d app.yrityksesi.fi -d www.app.yrityksesi.fi
  ```

  Certbot asentaa varmenteen, lisää kuuntelun porttiin 443 ja ajastaa sen automaattisen uusimisen.

Windows Serverissä **IIS** tarjoilee sivustosi, ja ACME-asiakasohjelma, kuten win-acme, asentaa ja uusii Let's Encrypt -varmenteesi.

## 3. Sovelluksen pitäminen käynnissä

Jatkuvasti käynnissä oleva Node.js-, Python-, Go- tai Java-sovellus annetaan **systemd**:n<!-- --> hoidettavaksi: se käynnistyy palvelimen mukana ja käynnistyy itsestään uudelleen, jos se pysähtyy. Esimerkki tiedostossa `/etc/systemd/system/app.service`:

```
[Unit]

Description=Sovellukseni

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    # seuraa sen lokeja
```

Docker ja Docker Compose asennetaan myös kuten millä tahansa Linux-palvelimella.

## 4. Tietokantasi

PostgreSQL, MySQL, MariaDB, Redis tai MongoDB asennetaan paketinhallinnalla tai julkaisijan virallisesta pakettivarastosta. VPS Ultra -palvelimesi taattu muisti sopii hyvin vaativalle tietokannalle: säädä sen työmuisti (`shared_buffers` PostgreSQL<!-- -->:lle<!-- -->, `innodb_buffer_pool_size` MySQL<!-- -->:lle<!-- -->) kokosi muistin mukaan.

Pidä tietokantasi kuuntelemassa osoitetta `localhost` ja hallitse sitä tietokoneeltasi SSH-tunnelin kautta:

```
ssh -L 5432:localhost:5432 root@app.yrityksesi.fi
```

Työkalusi (DBeaver, pgAdmin, TablePlus) muodostaa silloin yhteyden osoitteeseen `localhost:5432`.

## Usein kysytyt kysymykset

### Sivustoni näyttää varmennevirheen.

Tarkista järjestyksessä: `A`- ja `AAAA`-tietueesi osoittavat kortissasi näkyviin osoitteisiin (`dig`), verkkopalvelimesi kuuntelee portteja 80 ja 443 (`ss -tlnp`), palomuurisi päästää ne läpi (`ufw status`), ja varmenne kattaa tämän nimen (`certbot certificates`).

### Voinko isännöidä useita sivustoja VPS Ultra -palvelimellani?

Kyllä, niin monta kuin haluat: osoita jokainen verkkotunnus osoitteisiisi ja lisää sen lohko verkkopalvelimeesi.
