Aggiunta la guida per il Deploy

Signed-off-by: Francesco Mancuso <hello@francescomancuso.it>
This commit is contained in:
2026-01-25 19:35:05 +01:00
parent 80cc6b9633
commit 0bf092fd6c

View File

@@ -1,3 +1,98 @@
# deploy-dinamico # Template di pubblicazione sito dinamico in PHP
Come effettuare il deploy di siti web dinamici > Dominio di output
> ```nomerepository-nomeutente.web.francescomancuso.it```
>
> In futuro si potrà personalizzare
## Descrizione
Ogni repository, pubblica o privata, permette di effettuare il deploy del proprio sito web. Per farlo, è necessario seguire 3 semplici passaggi.
Il funzionamento è quasi identico alle "GitHub Actions", le quali permettono di creare una pipeline di sviluppo CI/CD. Qui la pipeline CI/CD è stata implementata da zero, con personalizzazioni.
## Come fare?
1. Usare come template questa repository
2. Caricare la root del sito web con ```index.php``` o ```index.html``` dentro la cartella radice ```/```. Puoi anche specificare una cartella diversa dal file di configurazione.
3. Sarà presente insieme ai file della repository la cartelle ```/.gitea/workflows/deploy.yaml```. Questo rappresenta il file di configurazione per avviare il deploy. Di base è già configurato per pubblicare il sito web, ma puoi personalizzare dentro alcuni parametri:
```yaml
name: Deploy
on: [push]
jobs:
trigger:
runs-on: ubuntu-latest
steps:
- name: Build & Deploy
env:
REPO_NAME: ${{ gitea.event.repository.name }}
REPO_OWNER: ${{ gitea.repository_owner }}
# Imposta la cartella che conterrà la root del sito!
# Default "/"
# Con nome "nome_cartella"
ROOT_DIR: "/"
# Cosa stai andando a pubblicare?
# - pages sito web statico
# - dynamic sito web dinamico con PHP
TYPE: "dynamic"
JOB_TOKEN: ${{ gitea.token }}
run: |
curl -f -s -S -X -v POST http://gitea-webhook:9000/hooks/trigger-deploy \
-H "Content-Type: application/json" \
-d "{
\"repository\": { \"name\": \"$REPO_NAME\" },
\"owner\": { \"username\": \"$REPO_OWNER\" },
\"root\": \"$ROOT_DIR\",
\"type\": \"$TYPE\",
\"token\": \"$JOB_TOKEN\"
}"
```
Puoi infatti cambiare la root del sito web per il deploy, modificando la variabile ```ROOT_DIR```, e puoi anche cambiare il tipo di deploy per la repository, modificando la variabile ```TYPE```.
## Uso del Database (beta)
Puoi collegare un DB con dati permanenti al tuo sito web in PHP. Per attivare il modulo, crea il file ```use_db.txt``` nella cartella radice. Ecco come leggere le variabili del DB e collegarti.
```php
<?php
// Questi valori vengono letti automaticamente
$host = getenv('DB_HOST'); // Sarà "local_db"
$db = getenv('DB_NAME'); // Sarà "nomerepository-nomeutente"
$user = getenv('DB_USER'); // Uguale al nome DB
$pass = getenv('DB_PASS'); // Password generata casualmente ad ogni deploy
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
try {
$pdo = new PDO($dsn, $user, $pass);
echo "Connessione al database riuscita!";
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
?>
```
Se necessario puoi popolare il DB utilizzando un file SQL, accedendo al link [phpmyadmin.vps.francescomancuso.it](https://phpmyadmin.vps.francescomancuso.it/) oppure effettuando un caricamento tramite PHP al primo avvio dell'applicazione.
## Dati permanenti (beta)
Se il sito web richiede di salvare dati permanenti (es. upload) che non possono essere scritti nel DB, puoi caricarli attraverso PHP nella cartella ```/var/www/data``` del container. Ecco un esempio:
```php
<?php
// index.php
// Salire di un livello per trovare la cartella data
$file_path = '/var/www/data/mio_file.txt';
// oppure in modo relativo:
$file_path = __DIR__ . '/../data/mio_file.txt';
file_put_contents($file_path, "Dati salvati nella cartella permanente!");
?>
```