# Punerea online a unui site sau a unei aplicații

Serverul dumneavoastră VPS Pro servește site-urile și aplicațiile pe numele lor de domeniu, prin HTTP și HTTPS. Vizitatorii ajung pe porturile **80** și **443** ale serverului, sub numele serverului; criptarea HTTPS merge cap-coadă, până la serverul dumneavoastră, unde se află certificatul.

## 1. Direcționați domeniul către server

Acolo unde se administrează zona DNS a domeniului dumneavoastră, creați două înregistrări pentru numele serverului, cu adresele afișate în caseta sa, secțiunea **VPS** a zonei de client:

| Tip    | Nume                                   | Valoare                             |
| ------ | -------------------------------------- | ----------------------------------- |
| `A`    | `app` (sau `@` pentru domeniul însuși) | valoarea **Adresă IPv4** din casetă |
| `AAAA` | `app` (sau `@`)                        | valoarea **Adresă IPv6** din casetă |

Un nume sub `vps.simafri.cloud` funcționează deja: nu este nimic de creat.

Când zona DNS a domeniului este administrată de Simafri, echipa noastră creează aceste înregistrări pentru dumneavoastră: scrieți-ne. Înainte de a muta un site deja online, cereți-ne și să reducem durata de viață (TTL) a înregistrării: comutarea se propagă atunci în câteva minute.

Pentru verificare de pe calculatorul dumneavoastră:

```
dig +short A app.firma-mea.ro

dig +short AAAA app.firma-mea.ro
```

## 2. Instalați serverul web

Serverul web ascultă pe portul **80** pentru HTTP și pe portul **443** pentru HTTPS. Două variante obișnuite:

* **Caddy**, care obține și reînnoiește singur certificatul HTTPS;
* **Nginx** sau **Apache**, cu **Certbot** pentru certificat.

### Cu Caddy

```
apt install caddy
```

Apoi, în `/etc/caddy/Caddyfile`, pentru un site static:

```
app.firma-mea.ro {

    root * /var/www/app

    file_server

}
```

sau pentru o aplicație care ascultă pe portul 3000:

```
app.firma-mea.ro {

    reverse_proxy 127.0.0.1:3000

}
```

`systemctl reload caddy`, iar site-ul răspunde prin HTTPS: Caddy a obținut certificatul și îl va reînnoi singur.

### Cu Nginx și Certbot

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

Creați site-ul în `/etc/nginx/sites-available/app`:

```
server {

    listen 80;

    listen [::]:80;

    server_name app.firma-mea.ro;



    location / {

        proxy_pass http://127.0.0.1:3000;

        proxy_set_header Host $host;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

}
```

Activați-l, apoi cereți certificatul:

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

nginx -t && systemctl reload nginx

certbot --nginx -d app.firma-mea.ro
```

Certbot instalează certificatul Let's Encrypt, adaugă ascultarea pe portul 443 și programează reînnoirea sa automată. `certbot renew --dry-run` verifică dacă reînnoirea este pregătită.

## 3. Mențineți aplicația în funcțiune

O aplicație Node.js, Python, Go sau Java care rulează continuu se încredințează lui **systemd**: pornește odată cu serverul și repornește singură dacă se oprește. Exemplu, în `/etc/systemd/system/app.service`:

```
[Unit]

Description=Aplicația mea

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    # urmăriți jurnalele aplicației
```

PM2 pentru Node.js, Gunicorn sau Uvicorn pentru Python sau Docker Compose îndeplinesc același rol, dacă le preferați.

## 4. Baza de date

PostgreSQL, MySQL, MariaDB, Redis sau MongoDB se instalează pe server cu managerul de pachete sau din depozitul oficial al editorului, pentru cea mai recentă versiune:

```
apt install postgresql
```

Păstrați baza de date în ascultare pe `localhost`: aplicația o accesează pe serverul însuși. Pentru a o administra de pe calculatorul dumneavoastră, treceți printr-un tunel SSH:

```
ssh -p 22101 -L 5432:localhost:5432 root@app.firma-mea.ro
```

Instrumentul dumneavoastră (DBeaver, pgAdmin, TablePlus) se conectează apoi la `localhost:5432`.

## Servirea mai multor domenii

Serverul răspunde sub numele său, stabilit la comandă. Pentru a servi un alt domeniu sau un alt subdomeniu pe același VPS Pro, scrieți echipei de asistență indicând numele de adăugat: echipa noastră le conectează la serverul dumneavoastră, apoi creați înregistrările lor DNS ca la etapa 1 și adăugați blocul lor în serverul web.

## Întrebări frecvente

### Site-ul meu afișează o eroare de certificat.

Verificați în ordine: înregistrările `A` și `AAAA` indică adresele din casetă (`dig`), serverul web ascultă pe porturile 80 și 443 (`ss -tlnp`), iar certificatul acoperă acest nume (`certbot certificates`). Certificatul se obține odată ce numele desemnează serverul dumneavoastră: rulați din nou Certbot sau reîncărcați Caddy după propagarea DNS.

### Site-ul meu nu răspunde deloc.

Pe server, `curl -I http://localhost` arată dacă serverul web răspunde. `systemctl status nginx` (sau `caddy`, ori serviciul dumneavoastră) și jurnalele sale spun de ce s-a oprit. Descrieți echipei de asistență ce observați: Asistența integrală pune diagnosticul împreună cu dumneavoastră.

### Pot instala WordPress, Laravel sau Symfony?

Da: instalați PHP-FPM, baza de date și serverul web, apoi aplicația, ca pe orice server Linux. Asistența integrală vă indică setările potrivite proiectului dumneavoastră, pas cu pas.
