7.2 KiB
title: Panora created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, integration, api-unified, saas, etl, no-code, typescript] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/panoratech/Panora]
💻 Panora
L'API unifiée pour intégrations SaaS : connectez votre app à 30+ services (CRM, Helpdesk, ATS, Storage) en quelques lignes de code, sans réécrire une intégration par client — l'open source answer à Merge.dev et Apideck.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | panora.dev |
| GitHub | panoratech/Panora |
| License | MIT (Community) + Commercial (Cloud) |
| Langage | TypeScript (NestJS + Next.js) |
| Étoiles GitHub | 1k ⭐ |
| Dernière MAJ | 2026-06-07 |
| Catégorie | cat-development, Unified API / Integration |
📝 Description
Panora est une plateforme d'intégration open source qui expose une API unifiée pour se connecter à des dizaines de SaaS tiers (CRM, Helpdesk, ATS, Storage, etc.). L'idée : vous codez une seule intégration Panora, et Panora se charge de parler à HubSpot, Salesforce, Pipedrive, Zendesk, Intercom, Greenhouse, Lever, Notion, Airtable, Google Drive, Dropbox… à votre place.
Le problème que résout Panora : chaque SaaS a sa propre API, ses propres schémas, ses propres rate limits, ses propres webhooks, ses propres OAuth flows. Pour une startup B2B qui veut supporter plusieurs CRM côté client, cela signifie réécrire la même intégration 5 fois. Panora mutualise ce travail : un seul schéma unifié (Common Model), des transformations automatiques vers les formats natifs de chaque provider, et un système de sync bidirectionnel (webhooks + polling).
C'est l'open source alternative à Merge.dev (leader du marché, $100k+/an) et Apideck. La version community couvre les intégrations les plus demandées ; la version cloud payante ajoute des providers enterprise, du support, et un SLA.
Public cible : startups B2B, équipes produit SaaS, intégrateurs qui veulent scaler leurs intégrations tierces sans y passer un dev à plein temps.
Fonctionnalités principales
- ✅ API unifiée : un seul schéma pour 30+ SaaS
- ✅ Catégories couvertes : CRM, Helpdesk, ATS, HRIS, Accounting, Storage, Calendar
- ✅ Sync bidirectionnel : webhooks + polling, déduplication
- ✅ Common Model : entités normalisées (Contact, Company, Deal, Ticket, etc.)
- ✅ Authentification déléguée : OAuth flows gérés par Panora
- ✅ Rate limit handling : backoff intelligent, queue
- ✅ Field mapping : configuration par client des champs custom
- ✅ Webhooks sortants : votre app est notifiée des changements
- ✅ API REST + TypeScript SDK typé
- ✅ Logs d'audit : qui a synchro quoi, quand
- ✅ Self-hosted : 100% on-prem, données chez vous
- ✅ Extensible : ajouter un provider custom (TypeScript)
🚀 Installation
Via Docker (recommandé)
# docker-compose.yml
version: '3.8'
services:
panora-api:
image: panoratech/panora-api:latest
container_name: panora-api
restart: unless-stopped
ports:
- "3000:3000"
environment:
DATABASE_URL: "postgresql://panora:password@db:5432/panora"
REDIS_URL: "redis://redis:6379"
NEXTAUTH_SECRET: "changez-moi-en-production-50-chars"
NEXTAUTH_URL: "https://panora.example.com"
PANORA_ENCRYPTION_KEY: "32-chars-encryption-key-aes-256"
depends_on:
- db
- redis
labels:
- "traefik.enable=true"
- "traefik.http.routers.panora.rule=Host(`panora.example.com`)"
- "traefik.http.routers.panora.entrypoints=websecure"
- "traefik.http.routers.panora.tls.certresolver=letsencrypt"
panora-web:
image: panoratech/panora-web:latest
container_name: panora-web
restart: unless-stopped
ports:
- "3001:3000"
environment:
NEXT_PUBLIC_API_URL: "https://panora.example.com/api"
db:
image: postgres:16-alpine
container_name: panora-db
restart: unless-stopped
environment:
POSTGRES_USER: panora
POSTGRES_PASSWORD: changez-moi
POSTGRES_DB: panora
volumes:
- panora_db:/var/lib/postgresql/data
redis:
image: redis:7-alpine
container_name: panora-redis
restart: unless-stopped
volumes:
panora_db:
Installation manuelle
git clone https://github.com/panoratech/Panora.git
cd Panora
docker compose -f deploy/docker-compose.yaml up -d
⚙️ Configuration
- Créer le compte admin :
https://panora.example.com/web - Configurer un provider : Settings > Providers > ajouter credentials OAuth (HubSpot, Salesforce, etc.)
- Définir les connecteurs actifs par client : vertical, sync mode (immediate/scheduled)
- Map custom fields : pour chaque client, mapper ses champs custom
- Webhooks : configurer l'URL de votre backend pour recevoir les events
- Chiffrement :
PANORA_ENCRYPTION_KEYobligatoire (AES-256 des tokens) - API Keys : créer des clés par client, scope par catégorie
Exemple d'usage (API unifiée)
# Récupérer les contacts de tous les CRM d'un client
curl -H "Authorization: Bearer <API_KEY>" \
-H "x-connection-id: <hubspot-connection-id>" \
"https://panora.example.com/api/crm/contacts"
# → schéma unifié, identique quel que soit le CRM
🔗 Alternatives
- Merge.dev — Leader du marché, propriétaire, $100k+/an
- Apideck — Concurrent direct, plus accessible en pricing
- Unify — Alternative européenne, plus orienté EU
- Nango — Open source (MIT), focus sur OAuth + sync, plus bas niveau
- Kombo — Concurrent européen, focus marché DACH
- Tray.io — Plateforme iPaaS plus large, plus complexe
- Workato — iPaaS enterprise, hors budget PME
🔒 Sécurité
- 🔐 NEXTAUTH_SECRET + PANORA_ENCRYPTION_KEY robustes :
openssl rand -hex 32(32 chars pour AES-256) - 🛡️ HTTPS obligatoire via app-traefik : Panora manipule des tokens OAuth, des données CRM, et des secrets
- 🔒 Chiffrement des credentials : tous les tokens provider sont chiffrés en base (AES-256)
- 🛡️ API Keys : scope par client, rotation régulière
- 🛡️ Webhooks sortants : signature HMAC, secret partagé
- 🛡️ RGPD : Panora accède à des données CRM → DPA, registre des traitements
- 🛡️ Audit log : conserver l'historique des synchronisations
📚 Ressources
🔗 Pages Liées
- cat-development — Catégorie Development
- app-nango — Concurrent open source (plus bas niveau)
- app-supabase — BaaS (Panora peut être utilisé par-dessus)
- app-traefik — Reverse proxy HTTPS
- securisation-home-lab — Bonnes pratiques
- recettes-docker-compose — Templates Docker