# Eine Website oder Anwendung online stellen

Ihr VPS Pro liefert Ihre Websites und Anwendungen unter ihrem Domainnamen aus, über HTTP und HTTPS. Die Besucher kommen auf den Ports **80** und **443** Ihres Servers an, unter dem Namen Ihres Servers; die HTTPS-Verschlüsselung reicht durchgehend bis zu Ihrem Server, wo Ihr Zertifikat liegt.

## 1. Ihre Domain auf Ihren Server verweisen lassen

Legen Sie dort, wo die DNS-Zone Ihrer Domain verwaltet wird, zwei Einträge für den Namen Ihres Servers an, mit den Adressen aus seiner Karte, Rubrik **VPS** Ihres Kundenbereichs:

| Typ    | Name                                   | Wert                                 |
| ------ | -------------------------------------- | ------------------------------------ |
| `A`    | `app` (oder `@` für die Domain selbst) | die **IPv4-Adresse** aus Ihrer Karte |
| `AAAA` | `app` (oder `@`)                       | die **IPv6-Adresse** aus Ihrer Karte |

Ein Name unter `vps.simafri.cloud` funktioniert bereits: Es ist nichts anzulegen.

Wird die DNS-Zone Ihrer Domain von Simafri verwaltet, richtet unser Team diese Einträge für Sie ein: Schreiben Sie uns. Bevor Sie eine bereits veröffentlichte Website umstellen, bitten Sie uns auch, die Lebensdauer (TTL) des Eintrags zu senken: Die Umstellung verbreitet sich dann in wenigen Minuten.

So prüfen Sie es von Ihrem Computer aus:

```
dig +short A app.meine-firma.de

dig +short AAAA app.meine-firma.de
```

## 2. Ihren Webserver installieren

Ihr Webserver lauscht auf Port **80** für HTTP und auf Port **443** für HTTPS. Zwei gängige Optionen:

* **Caddy**, das Ihr HTTPS-Zertifikat selbst bezieht und erneuert;
* **Nginx** oder **Apache**, mit **Certbot** für das Zertifikat.

### Mit Caddy

```
apt install caddy
```

Dann in `/etc/caddy/Caddyfile`, für eine statische Website:

```
app.meine-firma.de {

    root * /var/www/app

    file_server

}
```

oder für eine Anwendung, die auf Port 3000 lauscht:

```
app.meine-firma.de {

    reverse_proxy 127.0.0.1:3000

}
```

`systemctl reload caddy`, und Ihre Website antwortet über HTTPS: Caddy hat das Zertifikat bezogen und erneuert es von selbst.

### Mit Nginx und Certbot

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

Legen Sie die Website in `/etc/nginx/sites-available/app` an:

```
server {

    listen 80;

    listen [::]:80;

    server_name app.meine-firma.de;



    location / {

        proxy_pass http://127.0.0.1:3000;

        proxy_set_header Host $host;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

}
```

Aktivieren Sie sie und fordern Sie dann das Zertifikat an:

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

nginx -t && systemctl reload nginx

certbot --nginx -d app.meine-firma.de
```

Certbot richtet das Let's-Encrypt-Zertifikat ein, ergänzt das Lauschen auf Port 443 und plant seine automatische Erneuerung. `certbot renew --dry-run` prüft, ob die Erneuerung bereit ist.

## 3. Ihre Anwendung am Laufen halten

Eine Node.js-, Python-, Go- oder Java-Anwendung, die dauerhaft läuft, vertrauen Sie **systemd** an: Sie startet mit dem Server und startet von selbst neu, wenn sie anhält. Beispiel, in `/etc/systemd/system/app.service`:

```
[Unit]

Description=Meine Anwendung

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    # die Logs verfolgen
```

PM2 für Node.js, Gunicorn oder Uvicorn für Python, oder Docker Compose erfüllen dieselbe Rolle, wenn Sie sie bevorzugen.

## 4. Ihre Datenbank

PostgreSQL, MySQL, MariaDB, Redis oder MongoDB installieren Sie auf Ihrem Server mit dem Paketmanager, oder für die neueste Version aus dem offiziellen Repository des Herstellers:

```
apt install postgresql
```

Lassen Sie Ihre Datenbank auf `localhost` lauschen: Ihre Anwendung erreicht sie auf demselben Server. Um sie von Ihrem Computer aus zu verwalten, nutzen Sie einen SSH-Tunnel:

```
ssh -p 22101 -L 5432:localhost:5432 root@app.meine-firma.de
```

Ihr Werkzeug (DBeaver, pgAdmin, TablePlus) verbindet sich dann mit `localhost:5432`.

## Mehrere Domains ausliefern

Ihr Server antwortet unter seinem Namen, der bei der Bestellung festgelegt wurde. Um eine weitere Domain oder Subdomain auf demselben VPS Pro auszuliefern, schreiben Sie an den Support und nennen Sie die hinzuzufügenden Namen: Unser Team schließt sie an Ihren Server an, dann legen Sie ihre DNS-Einträge wie in Schritt 1 an und ergänzen ihren Block in Ihrem Webserver.

## Häufige Fragen

### Meine Website zeigt einen Zertifikatsfehler.

Prüfen Sie der Reihe nach: Ihre Einträge `A` und `AAAA` verweisen auf die Adressen aus Ihrer Karte (`dig`), Ihr Webserver lauscht auf den Ports 80 und 443 (`ss -tlnp`), und das Zertifikat deckt diesen Namen tatsächlich ab (`certbot certificates`). Das Zertifikat wird bezogen, sobald der Name auf Ihren Server verweist: Starten Sie Certbot erneut oder laden Sie Caddy neu, nachdem sich die DNS-Änderung verbreitet hat.

### Meine Website antwortet überhaupt nicht.

Auf dem Server zeigt `curl -I http://localhost`, ob Ihr Webserver antwortet. `systemctl status nginx` (oder `caddy`, oder Ihr Dienst) und seine Logs sagen, warum er angehalten hat. Beschreiben Sie dem Support, was Sie beobachten: Der Full-Stack-Support stellt mit Ihnen die Diagnose.

### Kann ich WordPress, Laravel oder Symfony installieren?

Ja: Installieren Sie PHP-FPM, Ihre Datenbank und Ihren Webserver, dann Ihre Anwendung, wie auf jedem Linux-Server. Der Full-Stack-Support nennt Ihnen Schritt für Schritt die Einstellungen, die zu Ihrem Projekt passen.
