servnest/pg-view/ht/index.php

132 lines
4.3 KiB
PHP

<p>
Ce service permet d'envoyer des fichiers sur le serveur par <?= linkToDocs('sftp', 'SFTP') ?> afin de les rendre accessibles par <?= linkToDocs('http', 'HTTP') ?>.
</p>
<?php displayIndex(); ?>
<section>
<h2>Sites actuellement hébergés</h2>
<dl>
<?php
$sites = query('select', 'sites', ['username' => $_SESSION['id'] ?? '']);
if ($sites === [])
echo ' <p>Ce compte n\'héberge aucun site sur cette instance.<p>' . LF;
else {
echo ' <dl>' . LF;
foreach ($sites as $site) {
$url = 'http' . (($site['domain_type'] === 'onion') ? '' : 's') . '://' . $site['domain'] . '/';
?>
<dt><code>/<?= $site['site_dir'] ?></code></dt>
<dd>
<a href="<?= $url ?>" rel="external"><?= $url ?></a>
</dd>
<?php
}
echo ' </dl>' . LF;
}
?>
</section>
<section>
<h2>Ajouter un accès de site</h2>
<p>Pour pouvoir y ajouter un accès par ce service, un site doit auparavent être téléversé dans un sous-dossier direct de l'espace SFTP. Le nom de ce sous-dossier ne peut contenir que <abbr title="abcdefghijklmnopqrstuvwxyz"><code>a</code>-<code>z</code></abbr>, <abbr title="ABCDEFGHIJKLMNOPQRSTUVWXYZ"><code>A</code>-<code>Z</code></abbr>, <abbr title="0123456789"><code>0</code>-<code>9</code></abbr>, <code>_</code> et <code>-</code>.</p>
</section>
<section>
<h2>SFTP</h2>
<p>
Vous avez accès à un espace <abbr title="SSH File Transfert Protocol">SFTP</abbr>, limité à <?php
$quotaSize = ($_SESSION['type'] === 'approved') ? CONF['ht']['user_quota_approved'] : CONF['ht']['user_quota_testing'];
echo (($quotaSize >> 30) >= 1) ? $quotaSize >> 30 . ' ' . linkToDocs('units', '<abbr title="gibioctet">Gio</abbr>') : $quotaSize >> 20 . ' ' . linkToDocs('units', '<abbr title="mébioctet">Mio</abbr>')
?>. Vous pouvez téléverser vos sites dans <code>/&lt;nom du site&gt;/*</code>. Indiquez les données ci-dessous à votre client <abbr title="SSH File Transfert Protocol">SFTP</abbr> pour y accéder.
</p>
<section>
<h3>Authentifier le serveur</h3>
<p>Un enregistrement SSHFP est disponible.</p>
<details>
<summary>Clé publique</summary>
<code><?= file_get_contents(CONF['ht']['sftp_pub']) ?></code>
</details>
<details open="">
<summary>Empreinte</summary>
<code><?= file_get_contents(CONF['ht']['sftp_fp']) ?></code>
</details>
<details>
<summary>Art ASCII</summary>
<pre><?= file_get_contents(CONF['ht']['sftp_asciiart']) ?></pre>
</details>
</section>
<section>
<h3>Se connecter au serveur</h3>
<a href="sftp://<?= isset($_SESSION['display-username']) ? $_SESSION['display-username'] : '&lt;username&gt;'; ?>@<?= CONF['ht']['sftp_domain'] ?>:<?= CONF['ht']['public_sftp_port'] ?>/">sftp://<?= isset($_SESSION['display-username']) ? $_SESSION['display-username'] : '&lt;username&gt;'; ?>@<?= CONF['ht']['sftp_domain'] ?>:<?= CONF['ht']['public_sftp_port'] ?>/</a>
<dl>
<dt>Serveur</dt>
<dd>
<code><?= CONF['ht']['sftp_domain'] ?></code>
</dd>
<dt>Port</dt>
<dd>
<code><?= CONF['ht']['public_sftp_port'] ?></code><?php if (CONF['ht']['public_sftp_port'] === 22) echo " (par défaut)"; ?>
</dd>
<dt>Dossier</dt>
<dd>
<code>/</code>
</dd>
<dt>Utilisataire</dt>
<dd>
<code><?= isset($_SESSION['display-username']) ? $_SESSION['display-username'] : '&lt;username&gt;'; ?></code>
</dd>
<dt>Clé de passe</dt>
<dd>
celle de votre compte
</dd>
</dl>
</section>
</section>
<section>
<h2>HTTP</h2>
<h3>CSP</h3>
<p>
Une politique de sécurité du contenu (<abbr title="Content-Security-Policy">CSP</abbr>) interdit l'intégration de JavaScript ou de ressources depuis des sites distants.
</p>
<h3>Compression gzip</h3>
<p>
La compression <em>gzip</em> est supportée, si le client le supporte et que le fichier est disponible, <code>chemin.gz</code> est servi au lieu de <code>chemin</code>.
</p>
<h3>Page d'index</h3>
<p>
Lors d'une requête sur un dossier, le premier des fichiers suivants qui existe dans ce dossier est répondu :
</p>
<ol>
<li><code>index.html</code></li>
<li><code>index.md</code></li>
<li><code>index.gmi</code></li>
</ol>
<h3>Page d'erreur 404</h3>
<p>
Lors d'une requête aboutissant à une erreur <code>404</code>, le premier des fichiers suivants qui existe à la racine du site est répondu :
</p>
<ol>
<li><code>404.html</code></li>
<li><code>404.md</code></li>
<li><code>404.gmi</code></li>
</ol>
</section>