netgescon-day0/public/installers/index.php

111 lines
4.8 KiB
PHP

<?php
declare (strict_types = 1);
$scheme = (! empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
$host = $_SERVER['HTTP_HOST'] ?? '192.168.0.200:8000';
$baseUrl = $scheme . '://' . $host . '/installers';
header('Content-Type: text/html; charset=UTF-8');
?>
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NetGescon Installers</title>
<style>
body {
font-family: system-ui, sans-serif;
margin: 0;
background: #0f172a;
color: #e2e8f0;
padding: 2rem;
}
.wrap {
max-width: 1100px;
margin: 0 auto;
}
.card {
background: #111827;
border: 1px solid #334155;
border-radius: 16px;
padding: 1.25rem;
margin-top: 1rem;
}
code, pre {
font-family: "Fira Code", monospace;
}
pre {
background: #020617;
border: 1px solid #1e293b;
border-radius: 12px;
padding: 1rem;
overflow-x: auto;
white-space: pre-wrap;
word-break: break-word;
}
a {
color: #7dd3fc;
}
.muted {
color: #94a3b8;
}
</style>
</head>
<body>
<div class="wrap">
<h1>NetGescon Installers</h1>
<p class="muted">Da qui puoi lanciare gli script di installazione direttamente con curl, usando staging.netgescon.it oppure il nodo locale 192.168.0.200.</p>
<div class="card">
<h2>1. Macchina base Ubuntu 24.04</h2>
<p>Installa stack Laravel, MySQL, Nginx, Redis, Supervisor e opzionalmente XFCE, XRDP e VS Code.</p>
<pre>curl -fsSL <?php echo htmlspecialchars($baseUrl, ENT_QUOTES, 'UTF-8') ?>/ubuntu2404-laravel-base.php -o /tmp/ubuntu2404-laravel-base.sh
sudo bash /tmp/ubuntu2404-laravel-base.sh</pre>
<p class="muted">Versione server-only:</p>
<pre>curl -fsSL <?php echo htmlspecialchars($baseUrl, ENT_QUOTES, 'UTF-8') ?>/ubuntu2404-laravel-base.php -o /tmp/ubuntu2404-laravel-base.sh
sudo bash /tmp/ubuntu2404-laravel-base.sh --without-xfce --without-vscode --without-xrdp</pre>
</div>
<div class="card">
<h2>2. Bootstrap sito Laravel</h2>
<p>Pubblica un progetto Laravel su una macchina gia pronta senza sovrascrivere directory, database o vhost esistenti se non richiesto esplicitamente.</p>
<pre>curl -fsSL <?php echo htmlspecialchars($baseUrl, ENT_QUOTES, 'UTF-8') ?>/laravel-site-bootstrap.php -o /tmp/laravel-site-bootstrap.sh
sudo bash /tmp/laravel-site-bootstrap.sh \
--site-key demo-app \
--project-name "Demo App" \
--repo-url git@your-gitea:studio/demo-app.git \
--branch main \
--app-url <?php echo htmlspecialchars($scheme . '://' . $host, ENT_QUOTES, 'UTF-8') ?> \
--server-name <?php echo htmlspecialchars($host, ENT_QUOTES, 'UTF-8') ?> \
--db-password 'StrongDbPass123!'</pre>
</div>
<div class="card">
<h2>3. Bootstrap nodo NetGescon</h2>
<p>Clona il repository applicativo, prepara il git-source locale per la sync da browser e lascia il nodo pronto per admin-filament/supporto/aggiornamento-nodo.</p>
<pre>curl -fsSL <?php echo htmlspecialchars($baseUrl, ENT_QUOTES, 'UTF-8') ?>/netgescon-node-bootstrap.php -o /tmp/netgescon-node-bootstrap.sh
sudo bash /tmp/netgescon-node-bootstrap.sh \
--site-key netgescon-prod \
--repo-url git@your-gitea:studio/netgescon.git \
--branch main \
--app-url <?php echo htmlspecialchars($scheme . '://' . $host, ENT_QUOTES, 'UTF-8') ?> \
--server-name <?php echo htmlspecialchars($host, ENT_QUOTES, 'UTF-8') ?> \
--db-password 'StrongDbPass123!' \
--admin-email admin@netgescon.local \
--admin-password 'StrongAdminPass123!'</pre>
</div>
<div class="card">
<h2>Endpoint diretti</h2>
<ul>
<li><a href="<?php echo htmlspecialchars($baseUrl, ENT_QUOTES, 'UTF-8') ?>/ubuntu2404-laravel-base.php"><?php echo htmlspecialchars($baseUrl, ENT_QUOTES, 'UTF-8') ?>/ubuntu2404-laravel-base.php</a></li>
<li><a href="<?php echo htmlspecialchars($baseUrl, ENT_QUOTES, 'UTF-8') ?>/laravel-site-bootstrap.php"><?php echo htmlspecialchars($baseUrl, ENT_QUOTES, 'UTF-8') ?>/laravel-site-bootstrap.php</a></li>
<li><a href="<?php echo htmlspecialchars($baseUrl, ENT_QUOTES, 'UTF-8') ?>/netgescon-node-bootstrap.php"><?php echo htmlspecialchars($baseUrl, ENT_QUOTES, 'UTF-8') ?>/netgescon-node-bootstrap.php</a></li>
</ul>
</div>
</div>
</body>
</html>