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 :
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.
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#
docker compose up -ddocker compose logs -f authValidez 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.