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

5.2 KiB


title: Loops created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, activitypub-fediverse, video, short-form, tiktok, fediverse] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://joinloops.org/, https://github.com/joinloops/loops-server]

🎬 Loops

La plateforme de vidéo courte fediverse : publiez et consommez des vidéos verticales façon TikTok / Reels, mais en ActivityPub, depuis votre propre instance. L'anti-TikTok décentralisé.

Métadonnée Valeur
Site web https://joinloops.org
GitHub https://github.com/joinloops/loops-server
License AGPL-3.0
Langage principal Go, TypeScript
Étoiles GitHub 49
Dernière MAJ 2026-05
Catégorie cat-activitypub-fediverse

Description

Loops est un projet néerlandais (« loops.video ») qui ambitionne de devenir le TikTok du Fediverse : une plateforme de vidéo courte verticale (format smartphone, < 1 minute par défaut, jusqu'à 2 min en option), avec feed algorithmique léger, likes, commentaires, follows, et bien sûr fédération ActivityPub.

L'interface web et mobile (PWA) est calquée sur l'expérience « swipe up / swipe down » des plateformes de shorts. Le backend est en Go pour la performance (encodage vidéo, distribution) avec un front TypeScript/React pour l'UI. Le projet vise la multi-instance : un compte @pseudo@loops.video peut être suivi depuis Mastodon, et la vidéo est lue inline dans le post Mastodon (player embarqué).

Cas d'usage : créateur de contenu qui veut garder son audience sans subir l'algorithme opaque de TikTok, associations, médias indépendants, communautés musicales. Le format est plus engagement + fun qu'une PeerTube (vidéo longue).

Points forts : UX moderne (PWA fluide), Go (rapide), transcodage vidéo optimisé pour mobile, federation, support multi-instance, webapp responsive.

Points faibles : projet jeune (depuis fin 2024), l'algorithme de feed est encore simple, modération limitée, pas encore d'app iOS/Android native, audio/musique limitée (pas d'intégration Spotify/SoundCloud).

Installation

Via Docker (recommandé)

L'image officielle est ghcr.io/joinloops/loops-server:latest.

# docker-compose.yml
services:
  loops:
    image: ghcr.io/joinloops/loops-server:latest
    container_name: loops
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      LOOPS_DATABASE_URL: "postgres://loops:***@db/loops?sslmode=disable"
      LOOPS_LISTEN_ADDR: "0.0.0.0:8080"
      LOOPS_PUBLIC_URL: "https://loops.example.com"
      LOOPS_JWT_SECRET: "change-me-random-50-chars"
      LOOPS_S3_BUCKET: loops-media
      LOOPS_S3_ENDPOINT: "http://minio:9000"
      LOOPS_S3_ACCESS_KEY: minio
      LOOPS_S3_SECRET_KEY: change-me
    depends_on:
      - db
      - minio

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: loops
      POSTGRES_PASSWORD: change-me
      POSTGRES_DB: loops
    volumes:
      - db_data:/var/lib/postgresql/data

  minio:
    image: minio/minio:latest
    restart: unless-stopped
    command: server /data --console-address ":9001"
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: change-me
    volumes:
      - minio_data:/data
    ports:
      - "9001:9001"

volumes:
  db_data:
  minio_data:

Installation manuelle

  1. Installer Go 1.22+ et PostgreSQL 14+
  2. Cloner : git clone https://github.com/joinloops/loops-server.git
  3. Lancer la compilation : go build -o loops ./cmd/server
  4. Configurer le .env (DB + stockage objet)
  5. ./loops migrate && ./loops serve

Configuration

  1. Configurer le stockage S3-compatible (Minio local, Backblaze B2, Wasabi…) — les vidéos prennent de la place
  2. Créer le premier compte admin via l'API
  3. Activer le transcodage (HLS pour la lecture mobile)
  4. Configurer le reverse-proxy (Nginx/Caddy) avec HTTPS
  5. Activer la fédération (par défaut on)

Alternatives

Open source

  • app-peertube — vidéo longue, fediverse, plus mature
  • TikTok centralisé, propriétaire
  • Shortwave — autre tentative de short-vidéo fediverse (statut flou)
  • Owncast — live streaming, pas du tout short-form

Propriétaires

  • TikTok — short vidéo, centralisé
  • Instagram Reels — intégré à Instagram
  • YouTube Shorts — intégré à YouTube

Sécurité

  • HTTPS obligatoire
  • Stockage S3 : verrouiller les permissions, idéalement bucket privé avec URL signées
  • Modération : Loops intègre un système de signalement, à configurer (auto-deletion de contenu flag)
  • Quotas par utilisateur : limiter la taille et la durée des vidéos (sinon le S3 explose)
  • Sauvegardes : BDD PostgreSQL + bucket S3 synchronisé (rclone / restic)

Ressources

Pages Liées