Rechercher dans la documentation

Recherchez des pages et des sections dans la documentation.

Aller au contenu

Exploitation · Tutoriel

Auto-hébergement

Construisez et exécutez Krakstack Auth avec PostgreSQL en tenant compte de la configuration de compilation et des dépendances actuelles.

Krakstack Auth est une application Bun avec PostgreSQL. Le déploiement actuel n'est pas encore un conteneur générique à configurer après téléchargement : les valeurs publiques Vite et l'ID de l'organisation d'administration sont intégrés aux ressources navigateur.

État de l'image publiée#

Le paquet GitHub Container Registry sert au déploiement officiel. Sa compilation reçoit les URL et l'ID d'organisation de l'instance officielle. Les variables VITE_* à l'exécution ne remplacent pas les valeurs déjà intégrées par Vite.

N'utilisez pas ghcr.io/krakcons/krakstack-auth:latest comme service configuré pour une autre origine avant la disponibilité d'une image générique ou d'une configuration publique dynamique. Construisez une image propre au déploiement depuis une révision vérifiée.

Prérequis de compilation#

La route admin actuelle exige VITE_KRAKSTACK_AUTH_ORGANIZATION_ID. L'établissement de cette organisation dans une nouvelle base dépend actuellement du déploiement; aucun amorçage automatique du premier administrateur n'est fourni. Résolvez cette étape avant d'exposer le service.

Construisez avec l'origine publique et l'organisation d'administration du déploiement :

bash
docker build \  --build-arg VITE_SITE_URL=https://auth.example.com \  --build-arg VITE_KRAKSTACK_AUTH_URL=https://auth.example.com \  --build-arg VITE_KRAKSTACK_AUTH_ORGANIZATION_ID=organization_id \  -t krakstack-auth:local .

Docker Compose#

L'application écoute sur le port 3000. Sa commande de démarrage applique les migrations Drizzle avant de lancer le serveur.

yaml
services:  auth:    image: krakstack-auth:local    restart: unless-stopped    ports:      - "3000:3000"    environment:      DATABASE_URL: postgres://krakstack:${POSTGRES_PASSWORD}@postgres:5432/krakstack_auth      BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET}      BETTER_AUTH_URL: https://auth.example.com      BETTER_AUTH_TRUSTED_ORIGINS: https://auth.example.com,https://app.example.com      S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID}      S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY}      S3_BUCKET: ${S3_BUCKET}    depends_on:      postgres:        condition: service_healthy
  postgres:    image: postgres:17    restart: unless-stopped    environment:      POSTGRES_DB: krakstack_auth      POSTGRES_USER: krakstack      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}    volumes:      - postgres-data:/var/lib/postgresql/data    healthcheck:      test: ["CMD-SHELL", "pg_isready -U krakstack -d krakstack_auth"]      interval: 5s      timeout: 5s      retries: 10
volumes:  postgres-data:

Générez BETTER_AUTH_SECRET avec openssl rand -base64 32 et gardez les secrets hors du dépôt. La couche API actuelle exige la configuration S3. Les flux courriel de production exigent SES lorsqu'ils s'exécutent. Consultez la configuration.

Démarrer et valider#

bash
docker compose up -ddocker compose logs -f auth

Validez davantage que /api/auth/ok : testez une session utilisant la base, un flux courriel activé, une ressource, un rappel OAuth et l'administration. Le point ok vérifie uniquement la disponibilité.

Liste de production#

  • Forcez HTTPS.
  • Sauvegardez PostgreSQL et testez la restauration.
  • Gardez l'origine auth publique stable.
  • Limitez l'organisation d'administration et renouvelez les clés de service.
  • Configurez la délivrabilité SES et la durabilité S3.
  • Surveillez la base et les dépendances séparément de la disponibilité.
  • Révisez les origines et URI OAuth après les changements.
  • Suivez la procédure de mise à jour et récupération; une ancienne image peut être incompatible avec une base migrée.