FrançaisEnglish

Installation

Mosaic existe sous deux formes ; choisissez celle qui correspond à votre manière de le faire tourner :

Quatre façons de déployer

# Vous voulez… Utilisez
1 Écrire votre serveur en Amalgame (contrôle total) amc package add web net-http tls — DIY, voir le tour du framework
2 Servir des sites statiques + features depuis un fichier, sans code le binaire mosaic serve + un mosaic.toml
3 Lancer un reverse proxy / load balancer par configuration le binaire mosaic serve + [[proxy]] dans mosaic.toml
4 Composer votre propre binaire avec juste les packages voulus amc package add le sous-ensemble (ex. web net-proxy) puis build

Les modèles 2 et 3 sont le même binaire — voir Configuration pour le schéma complet du mosaic.toml.

Installer le serveur

curl -sSL https://raw.githubusercontent.com/amalgame-lang/mosaic/main/install.sh | bash

Cela dépose le dispatcher mosaic plus un binaire mosaic-serve pré-compilé (Linux x86_64) dans ~/.local/bin. Ensuite :

mosaic serve /etc/mosaic/mosaic.toml

Un binaire, une config, N sites en HTTPS — hébergement statique, TLS + ACME, middleware par site (en-têtes de sécurité, CORS, CSRF, rate limiting, logs) et hosts en reverse proxy / load balancing. Config minimale :

[server]
port = 443
tls  = true

[tls]
acme  = true
email = "admin@example.com"

[[site]]
hosts = ["example.com", "www.example.com"]
root  = "/srv/example/public"

Pour le faire tourner au fil des reboots et des crashs, enregistre-le comme service en une commande — mosaic service install écrit une unit systemd/launchd/SCM qui lance mosaic serve pour toi. Voir Configuration → Tourner en service.

Sur les plateformes sans mosaic-serve pré-compilé (macOS / Windows aujourd'hui), mosaic serve retombe sur un build depuis les sources — ce qui nécessite amc plus les packages de la stack ci-dessous.

Installer la bibliothèque (DIY)

Installez d'abord amc (voir Premiers pas ou amalgame.me/install), puis ajoutez la stack web à votre projet :

amc package add web net-http tls      # framework + HTTP/1.1 + TLS/ACME

amalgame-web v0.23.0+ tire, entre autres :

Nécessite le compilateur amc >= 0.8.72 (le WithSession de v0.20.0 prend une valeur d'interface SessionStore, qui demande le dispatch d'interface ; un amc plus ancien segfault dessus).

Extras de façade (optionnel)

amc package add net-proxy             # reverse proxy HTTP/1.1 + load balancing

amalgame-net-proxy place N upstreams en façade (routage par plus long préfixe, X-Forwarded-For, round-robin pondéré / ip-hash / least-connections) — la porte d'entrée façon nginx. Le binaire mosaic serve l'embarque déjà pour la config [[proxy]].

Vérifier (bibliothèque)

import Amalgame.Web

WebApp.New()
    .Get("/", ctx => HttpResponse.New().Text("ok"))
    .Serve(8080)
amc run server.am          # → "listening on :8080"
curl -s localhost:8080/    # → ok

Suite : le tour du framework et la référence complète de Configuration.