# Eng Websäit oder eng Applikatioun online stellen

Äre VPS Pro liwwert Är Websäiten an Är Applikatiounen ënner hirem Domainnumm, iwwer HTTP an HTTPS. D'Visiteuren kommen op de Porten **80** an **443** vun Ärem Server un, ënner dem Numm vun Ärem Server; d'HTTPS-Verschlësselung geet vun Enn zu Enn, bis op Äre Server, wou Ären Zertifikat läit.

## 1. Ären Domain op Äre Server weise loossen

Do, wou d'DNS-Zon vun Ärem Domain verwalt gëtt, leet Dir zwou Androen fir den Numm vun Ärem Server un, mat den Adressen, déi a senger Kaart ugewise ginn, Rubrik **VPS** vun Ärem Clientsberäich:

| Typ    | Numm                                   | Wäert                            |
| ------ | -------------------------------------- | -------------------------------- |
| `A`    | `app` (oder `@` fir den Domain selwer) | d'**IPv4-Adress** aus Ärer Kaart |
| `AAAA` | `app` (oder `@`)                       | d'**IPv6-Adress** aus Ärer Kaart |

En Numm ënner `vps.simafri.cloud` funktionéiert schonn: do ass näischt unzeleeën.

Wann d'DNS-Zon vun Ärem Domain vu Simafri verwalt gëtt, leet eis Equipe dës Androen fir Iech un: schreift eis. Ier Dir eng Websäit, déi scho online ass, ëmstellt, frot eis och, d'Liewensdauer (TTL) vun der Androung erofzesetzen: d'Ëmstellung verbreet sech dann an e puer Minutten.

Fir et vun Ärem Computer aus z'iwwerpréiwen:

```
dig +short A app.meng-firma.lu

dig +short AAAA app.meng-firma.lu
```

## 2. Äre Webserver installéieren

Äre Webserver lauschtert um Port **80** fir HTTP an um Port **443** fir HTTPS. Zwou gängeg Méiglechkeeten:

* **Caddy**, deen Ären HTTPS-Zertifikat eleng kritt an erneiert;
* **Nginx** oder **Apache**, mat **Certbot** fir den Zertifikat.

### Mat Caddy

```
apt install caddy
```

Dann, an `/etc/caddy/Caddyfile`, fir eng statesch Websäit:

```
app.meng-firma.lu {

    root * /var/www/app

    file_server

}
```

oder fir eng Applikatioun, déi um Port 3000 lauschtert:

```
app.meng-firma.lu {

    reverse_proxy 127.0.0.1:3000

}
```

`systemctl reload caddy`, an Är Websäit äntwert iwwer HTTPS: Caddy huet den Zertifikat kritt a wäert en eleng erneieren.

### Mat Nginx a Certbot

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

Leet d'Websäit an `/etc/nginx/sites-available/app` un:

```
server {

    listen 80;

    listen [::]:80;

    server_name app.meng-firma.lu;



    location / {

        proxy_pass http://127.0.0.1:3000;

        proxy_set_header Host $host;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

}
```

Aktivéiert se, a frot dann den Zertifikat un:

```
ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/

nginx -t && systemctl reload nginx

certbot --nginx -d app.meng-firma.lu
```

Certbot installéiert den Zertifikat vu Let's Encrypt, setzt d'Lauschteren um Port 443 derbäi a plangt seng automatesch Erneierung. `certbot renew --dry-run` iwwerpréift, ob d'Erneierung prett ass.

## 3. Är Applikatioun am Gaang halen

Eng Node.js-, Python-, Go- oder Java-Applikatioun, déi permanent leeft, vertraut Dir **systemd** un: si start mam Server a start eleng nei, wann se ophält. Beispill, an `/etc/systemd/system/app.service`:

```
[Unit]

Description=Meng Applikatioun

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    # seng Logs verfollegen
```

PM2 fir Node.js, Gunicorn oder Uvicorn fir Python, oder Docker Compose erfëllen déi selwecht Roll, wann Dir se léiwer hutt.

## 4. Är Datebank

PostgreSQL, MySQL, MariaDB, Redis oder MongoDB gi mam Paketmanager op Ärem Server installéiert, oder aus dem offiziellen Depot vum Hiersteller fir déi neist Versioun:

```
apt install postgresql
```

Loosst Är Datebank op `localhost` lauschteren: Är Applikatioun erreecht se um Server selwer. Fir se vun Ärem Computer aus ze verwalten, gitt iwwer en SSH-Tunnel:

```
ssh -p 22101 -L 5432:localhost:5432 root@app.meng-firma.lu
```

Ären Tool (DBeaver, pgAdmin, TablePlus) verbënnt sech dann mat `localhost:5432`.

## Méi Domaine servéieren

Äre Server äntwert ënner sengem Numm, dee bei der Bestellung festgeluecht gouf. Fir en aneren Domain oder eng aner Subdomain op deemselwechte VPS Pro ze servéieren, schreift dem Support a gitt d'Nimm un, déi derbäikommen: eis Equipe schléisst se un Äre Server un, an dann leet Dir hir DNS-Androen un wéi am Schrëtt 1 a setzt hire Block an Äre Webserver derbäi.

## Dacks gestallte Froen

### Meng Websäit weist en Zertifikatsfeeler.

Iwwerpréift an dëser Reiefolleg: Är Androen `A` an `AAAA` weisen op d'Adressen aus Ärer Kaart (`dig`), Äre Webserver lauschtert op de Porten 80 an 443 (`ss -tlnp`), an den Zertifikat deckt dësen Numm of (`certbot certificates`). Den Zertifikat gëtt ausgestallt, soubal den Numm op Äre Server weist: start Certbot nach eng Kéier, oder luet Caddy nei, no der DNS-Verbreedung.

### Meng Websäit äntwert guer net.

Um Server weist `curl -I http://localhost`, ob Äre Webserver äntwert. `systemctl status nginx` (oder `caddy`, oder Äre Service) a seng Logs soen, firwat en opgehalen huet. Beschreift dem Support, wat Dir observéiert: de Full-Stack-Support stellt d'Diagnos mat Iech.

### Kann ech WordPress, Laravel oder Symfony installéieren?

Jo: installéiert PHP-FPM, Är Datebank an Äre Webserver, an dann Är Applikatioun, wéi op all Linux-Server. De Full-Stack-Support seet Iech Schrëtt fir Schrëtt, wéi eng Astellungen zu Ärem Projet passen.
