Skip to main content
Voir en Markdown

start()

Démarre un serveur à partir d'un objet de configuration. Retourne un SimpleServer qui porte l'URL résolue et une méthode stop().

import { start } from 'sovrium'

const server = await start({ name: 'my-app' })

console.log(`Server running at ${server.url}`)

start valide la configuration face à AppSchema avant de lier quoi que ce soit. Une configuration invalide rejette avec une erreur Sovrium failed to start: nommant le chemin fautif — jamais un serveur à moitié configuré.

StartOptions

Le second argument, optionnel. Chaque propriété a un défaut opérationnel : start(app) seul est donc valide.

Propriété Description
port Numéro de port, 065535. 0 prend un port libre. Par défaut : 3000.
hostname Interface sur laquelle se lier. Par défaut : localhost.
publicDir Répertoire de fichiers statiques. Les fichiers sont servis à leur chemin relatif.
configPath Chemin du fichier de configuration, enregistré dans le verrou pour restart et reload.
configHash Empreinte du contenu de la configuration, utilisée pour détecter les changements.

Les deux dernières existent pour les commandes de cycle de vie du CLI. Ne les définissez que si vous réimplémentez restart/reload vous-même ; sinon, laissez-les tranquilles.

import { start } from 'sovrium'

const server = await start(
  {
    name: 'my-app',
    tables: [
      {
        id: 1,
        name: 'tasks',
        fields: [
          { id: 1, name: 'title', type: 'single-line-text', required: true },
          { id: 2, name: 'done', type: 'checkbox' },
        ],
      },
    ],
  },
  {
    port: 8080,
    hostname: '0.0.0.0',
    publicDir: './public',
  }
)

Se lier à un port libre

Passer port: 0 laisse le système choisir. C'est le motif fiable pour les tests et pour plusieurs instances sur une même machine — relisez le vrai port depuis server.url plutôt que de le supposer :

const server = await start({ name: 'test-app' }, { port: 0 })

const response = await fetch(`${server.url}/api/health`)
console.log(response.status) // 200

await server.stop()

Arrêter le serveur

stop() se résout une fois l'arrêt terminé : un await suffit donc à séquencer la fermeture.

const server = await start({ name: 'my-app' })

process.on('SIGTERM', async () => {
  await server.stop()
  process.exit(0)
})

Pages associées

Dernière mise à jour 27 juillet 2026

Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta — les contributions et corrections sont les bienvenues.

Construit avec Sovrium