102 lines
3.2 KiB
Markdown
102 lines
3.2 KiB
Markdown
---
|
|
title: Ganymede
|
|
created: 2026-06-08
|
|
updated: 2026-06-08
|
|
type: app
|
|
tags: [catalogue, archive, app-marathon-batch-b]
|
|
confidence: medium
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Archive&app=ganymede, https://github.com/Zibbp/ganymede]
|
|
---
|
|
|
|
# 📦 Ganymede
|
|
|
|
> **Archive de streams et VOD Twitch** : télécharge et archive automatiquement les lives, VODs, clips d'un streamer, avec interface de navigation et métadonnées.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [github.com/Zibbp/ganymede](https://github.com/Zibbp/ganymede) |
|
|
| **GitHub** | [Zibbp/ganymede](https://github.com/Zibbp/ganymede) |
|
|
| **License** | GPL-3.0 |
|
|
| **Langage** | Go (backend) + TypeScript (front) |
|
|
| **Étoiles GitHub** | 0.9k ⭐ |
|
|
| **Catégorie** | [[cat-archive|Archive]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Ganymede** est un service dédié à l'**archivage automatique de contenu Twitch** : il surveille un ou plusieurs streamers, télécharge en temps réel les lives, les VODs, les clips, et les expose via une UI web avec lecteur intégré, métadonnées, chapitres.
|
|
|
|
Différence vs ArchiveBox : ArchiveBox = pages web généralistes. Ganymede = **spécialisé Twitch**, ingestion temps réel, transcodage.
|
|
|
|
Pour qui : archivistes de streams, communautés de fans qui veulent garder trace d'un streamer, modérateurs, chercheurs en culture numérique.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose
|
|
|
|
```yaml
|
|
version: '3.8'
|
|
services:
|
|
ganymede:
|
|
image: zibbp/ganymede:latest
|
|
container_name: ganymede
|
|
restart: unless-stopped
|
|
environment:
|
|
- DATABASE_URL=postgresql://ganymede:***@db:5432/ganymede
|
|
- TWITCH_CLIENT_ID=*** - TWITCH_CLIENT_SECRET=*** - JWT_SECRET=*** volumes:
|
|
- ganymede_data:/app/data
|
|
- ganymede_videos:/app/videos
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.ganymede.rule=Host(`archive.example.com`)"
|
|
- "traefik.http.routers.ganymede.entrypoints=websecure"
|
|
- "traefik.http.routers.ganymede.tls.certresolver=letsencrypt"
|
|
depends_on:
|
|
- db
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
- POSTGRES_USER=ganymede
|
|
- POSTGRES_PASSWORD=*** - POSTGRES_DB=ganymede
|
|
volumes:
|
|
- ganymede_db:/var/lib/postgresql/data
|
|
|
|
volumes:
|
|
ganymede_data:
|
|
ganymede_videos:
|
|
ganymede_db:
|
|
```
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-archivebox]] — Web archive généraliste
|
|
- **TwitchDownloader** — CLI downloader
|
|
- **Twitch VOD downloader** — Outils ponctuels
|
|
- [[app-eonvelope]] — Email archive
|
|
|
|
### Propriétaires
|
|
- **TwitchTracker** — Stats archives
|
|
- **Streamsentials** — Catalogue public
|
|
- **SullyGnome** — Stats Twitch
|
|
|
|
## 🔐 Sécurité
|
|
- **Auth** : JWT + email/password
|
|
- **API Twitch** : credentials OAuth à protéger
|
|
- **HTTPS** : obligatoire
|
|
- **Stockage vidéo** : volumineux, prévoir扩容
|
|
- **Pas d'auth publique** : usage personnel
|
|
|
|
## 📚 Ressources
|
|
- [GitHub](https://github.com/Zibbp/ganymede)
|
|
- [Documentation](https://github.com/Zibbp/ganymede#readme)
|
|
- [Démo](https://github.com/Zibbp/ganymede#demo)
|
|
|
|
## Pages Liées
|
|
- [[cat-archive]] — Catégorie Archive
|
|
- [[app-archivebox]] — Concurrent généraliste
|
|
- [[recettes-docker-compose]] — Templates Docker
|