Connexion
FR
apps/caramail-server / site / index.html · commit 070afda
<!doctype html><html lang="fr"><head>  <meta charset="utf-8">  <meta name="viewport" content="width=device-width, initial-scale=1">  <title>CaraChat Serveur – le serveur de chat Caramail de 2002 en PHP 8, dans Docker</title>  <meta name="description" content="Le serveur du chat Caramail (protocole TCP de l'applet de 2002) réécrit en PHP 8 sans base de données : salons, privés, recherche, modération. Un conteneur Docker, le port 4500.">  <link rel="canonical" href="https://{{DOMAIN}}/">  <link rel="icon" href="images/favicon.png">  <meta property="og:type" content="website">  <meta property="og:title" content="CaraChat Serveur">  <meta property="og:description" content="Le serveur de chat Caramail de 2002, en PHP 8, sans base de données, dans Docker.">  <meta property="og:url" content="https://{{DOMAIN}}/">  <meta property="og:image" content="https://{{DOMAIN}}/images/og.png">  <meta property="og:locale" content="fr_FR">  <meta name="twitter:card" content="summary_large_image">  <meta name="twitter:image" content="https://{{DOMAIN}}/images/og.png">  <script type="application/ld+json">{"@context": "https://schema.org", "@type": "SoftwareApplication", "name": "CaraChat Serveur", "description": "Le serveur de chat Caramail de 2002 réécrit en PHP 8, sans base de données, à lancer dans Docker.", "applicationCategory": "CommunicationApplication", "operatingSystem": "Linux, Docker", "isAccessibleForFree": true, "image": "https://{{DOMAIN}}/images/og.png", "screenshot": "https://{{DOMAIN}}/images/demo.png", "offers": {"@type": "Offer", "price": "0", "priceCurrency": "EUR"}, "potentialAction": {"@type": "UseAction", "target": "https://{{DOMAIN}}/play/"}}  </script>  <style>    * { box-sizing: border-box; }    body { margin: 0; font-family: Helvetica, Arial, sans-serif; background: #c0c0c0; color: #000; line-height: 1.5; }    .wrap { max-width: 1000px; margin: 0 auto; padding: 0 16px; }    h1 { color: #0000ff; margin: 28px 0 8px; font-size: 2rem; }    h2 { color: #1a1a8c; border-bottom: 2px solid #808080; padding-bottom: 4px; margin-top: 36px; }    pre { background: #101418; color: #7ee787; padding: 14px 16px; overflow-x: auto; border-radius: 6px; font-size: .95rem; }    img { display: block; width: 100%; height: auto; border: 1px solid #808080; }    .play { display: inline-block; background: #0000ff; color: #fff; font-weight: bold; padding: 12px 24px; border-radius: 6px; text-decoration: none; margin: 8px 0 20px; }    table { border-collapse: collapse; width: 100%; background: #fff; font-size: .95rem; }    td, th { border: 1px solid #808080; padding: 6px 8px; text-align: left; vertical-align: top; }    footer { font-size: .85rem; padding: 24px 0; color: #404040; }  </style></head><body><main class="wrap">  <h1>CaraChat Serveur</h1>  <p>Le serveur du chat Caramail de 2002, réécrit en PHP 8 à partir des sources de 2012 — <strong>sans MySQL</strong> :    connectés, salons et dernières phrases en mémoire, salons permanents dans un fichier. Il parle exactement le    protocole de l'applet (une ligne par trame, champs séparés par des tabulations) et se lance dans Docker.    Le client est <strong>CaraChat</strong>.</p>  <a class="play" href="play/">Essayer la commande demo</a>  <img src="images/demo.png" alt="La commande demo : deux membres qui se parlent, chaque trame affichée" width="1280" height="680">  <h2>Lancer le serveur</h2>  <pre>cd apps/caramail-serverecho "CARAMAIL_ADMIN_KEY=$(openssl rand -hex 16)" > .envdocker compose up -d --build        # port 4500docker compose exec chat php app.php status</pre>  <h2>Commandes</h2>  <table>    <tr><th>serve</th><td>le serveur (port, adresse, clé des modérateurs ; arrêt propre sur SIGTERM)</td></tr>    <tr><th>status</th><td>connectés et salons du serveur en cours</td></tr>    <tr><th>rooms</th><td>les salons permanents : list, add, remove</td></tr>    <tr><th>token</th><td>le tempid d'un profil (pseudo, âge, sexe, ville)</td></tr>    <tr><th>demo</th><td>une conversation sur un serveur en mémoire, trames affichées (marche dans le navigateur)</td></tr>  </table>  <h2>Le protocole</h2>  <p>Connexion <code>0 ⇥ mode ⇥ tempid</code>, salons <code>20</code>/<code>40</code>, phrases <code>70</code>    (texte précédé de 4 chiffres police + couleur), privés <code>72</code>/<code>73</code>, présents <code>85</code>,    listes de salons <code>90</code>/<code>94</code>, recherche <code>56</code>/<code>58</code>, profil <code>82</code>,    éjection <code>555</code>/<code>76</code>, ping <code>667</code>… Le détail est dans le README du dépôt.</p>  <a class="play" href="play/">Ouvrir le terminal</a></main><footer class="wrap">Recréation non officielle faite avec JumPHP. Serveur d'origine « NewCaraChat v1.00 By Duch » (2012), applet Caramail (2002) : à leurs auteurs.</footer></body></html>