Files
wiki/Catalogue-Self-Hosted/apps/app-ktistec.md
T
2026-06-09 18:40:21 +02:00

5.7 KiB


title: Ktistec created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, activitypub-fediverse, microblogging, crystal, single-user, fediverse, lightweight] confidence: high contested: false sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://github.com/toddsundsted/ktistec]

💎 Ktistec

Le serveur ActivityPub minimaliste en Crystal — auto-hébergez votre propre nœud Fediverse dans un binaire léger, sans Rails ni JavaScript à exécuter côté client.

📋 Informations Générales

Champ Valeur
Site web ktistec.com
GitHub toddsundsted/ktistec
Licence AGPL-3.0
Langage Crystal
Étoiles GitHub 23
Dernière MAJ 2026-05
Catégorie cat-activitypub-fediverse

📝 Description

Ktistec est un serveur microblogging ActivityPub écrit en Crystal par Todd Sundsted. Crystal est un langage compilé, statiquement typé, avec une syntaxe proche de Ruby mais des performances proches de C — ce qui donne à Ktistec un profil léger, rapide et monobinaire. Le projet se positionne explicitement comme une alternative minimale à Mastodon, Pleroma et autres, avec un code source compact et lisible.

L'ambition est de fournir un serveur Fediverse personnel complet : messages, boosts, favoris, follows, listes, notifications, recherche fédérée, threads. Ktistec est mono-utilisateur par défaut (l'auteur décrit l'usage comme un nœud personnel, pas un réseau), mais peut techniquement servir plusieurs comptes. L'API ActivityPub est complète et le projet fédère avec Mastodon, Pleroma, Misskey, Akkoma, Pixelfed et la plupart des implémentations matures.

Le code met l'accent sur la concision : un seul dépôt, pas de surcouche framework lourde, base SQLite par défaut, binaire statique facile à déployer. Les rôles supportent une certaine modularité : vous pouvez choisir d'exposer votre Ktistec en lecture seule, en local seulement, ou en serveur public classique. L'interface web est intentionnellement sobre — pas de SPA JavaScript, les pages se génèrent côté serveur.

Forces : consommation mémoire très faible (souvent < 50 Mo de RSS), binaire unique, code lisible, parfait pour un VPS modeste, image Docker officielle. Faiblesses : documentation moins fournie que Pleroma/Mastodon, instance mono-utilisateur assumée, pas de stockage média avancé, communauté restreinte (1 développeur principal).

🚀 Installation

Option recommandée : Docker

# docker-compose.yml
services:
  ktistec:
    image: ghcr.io/toddsundsted/ktistec:latest
    container_name: ktistec
    restart: unless-stopped
    environment:
      - KEMAL_ENV=production
      - KTISTEC_HOST=ktistec.example.org
      - KTISTEC_PORT=3000
      - DATABASE_URL=sqlite3:///data/ktistec.db
    volumes:
      - ./data:/data
    ports:
      - "3000:3000"

Option 2 : Binaire natif Crystal

git clone https://github.com/toddsundsted/ktistec.git
cd ktistec
shards install
crystal build src/ktistec.cr --release
KTISTEC_HOST=localhost ./ktistec

⚙️ Configuration Initiale

  1. Définir le domaine : Ktistec utilise KTISTEC_HOST pour générer l'URL de l'acteur ActivityPub.
  2. Créer le premier compte : ouvrir l'interface web, s'inscrire (le premier compte devient admin).
  3. Configurer le profil public : avatar, bio, lien d'en-tête. Les followers fédérés verront ces métadonnées.
  4. Tester la fédération : depuis un compte Mastodon distant, faire @vous@ktistec.example.org pour vérifier Webfinger.
  5. Sauvegardes : un simple cp du fichier ktistec.db suffit, plus le volume des médias uploadés.

🔄 Alternatives

Open Source

  • app-pleroma — Plus mature, plus d'instances, en Elixir.
  • app-mastodon — Le standard, en Ruby on Rails.
  • app-akkoma — Fork léger de Pleroma.
  • app-mitra — Microblogging Fediverse en Rust (même philosophie minimaliste).
  • app-snac — Encore plus minimaliste, écrit en C.

Propriétaires (ce que cette app remplace)

  • Twitter / X — centralisé, traque publicitaire.
  • Threads (Meta) — non fédéré, lié à Instagram.
  • Bluesky (semi-décentralisé) — modèle AT Protocol différent.

🔐 Sécurité

  • Authentification : Ktistec gère nativement les comptes locaux avec mots de passe hashés (bcrypt). Le premier compte créé est administrateur — ne pas laisser l'inscription ouverte ou la verrouiller après création.
  • HTTPS obligatoire : la fédération ActivityPub exige TLS. Let's Encrypt via Caddy/Nginx.
  • Webfinger : Ktistec expose /.well-known/webfinger, /.well-known/nodeinfo, /actor et les endpoints standards.
  • Limites d'API : Ktistec implémente un rate-limiting basique. Pour un usage public, il est recommandé d'ajouter un reverse proxy durci (CrowdSec, fail2ban).
  • Sauvegarde : le projet étant mono-utilisateur, sauvegardez régulièrement le fichier SQLite (c'est toute votre base de données).

📚 Ressources

Pages Liées