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

6.3 KiB


title: SheetAble created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, document-management, spreadsheet, typescript, nodejs, excel, csv] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=document-management, https://github.com/SheetAble/SheetAble, https://sheetable.net/]

SheetAble 📊

Gestionnaire de feuilles de calcul (Excel/CSV/ODS) auto-hébergeable : déposez vos fichiers, SheetAble les rend lisibles dans le navigateur via un tableur web, sans Excel ni LibreOffice local.

Métadonnée Valeur
Site web https://sheetable.net/
GitHub https://github.com/SheetAble/SheetAble
License AGPL-3.0
Langage TypeScript / Node.js (frontend Vue.js)
Étoiles 91
Dernière MAJ 2026-04-15
Catégorie cat-document-management

Description

SheetAble est un tableur web léger et self-hosted, conçu pour visualiser et éditer des fichiers .xlsx, .xlsm, .csv, .ods depuis n'importe quel navigateur, sans dépendre d'Excel ou de LibreOffice. Le moteur de rendu est Univer (fork communautaire de Luckysheet, basé sur Canvas), offrant une expérience proche d'Excel : formules, multi-feuilles, mise en forme conditionnelle, charts, frozen rows/columns, etc.

L'architecture est simple : un backend Node.js (Fastify) qui parse les fichiers avec SheetJS (xlsx), un frontend Vue.js + Univer, et un système de fichiers plat pour le stockage. Pas de base de données externe (SQLite pour les métadonnées seulement). L'auth est basique (email/password local, pas de SSO natif), avec partage de fichiers par lien.

L'usage typique est un partage familial ou associatif d'un classeur comptable, d'un tableau de bord, d'un budget mensuel, d'un inventaire, etc. SheetAble n'est pas un concurrent de Google Sheets (pas de collaboration temps réel), mais c'est un excellent visualiseur/éditeur solo auto-hébergé pour qui veut éviter Google Drive. Léger (peut tourner sur Raspberry Pi 4), simple à déployer, et l'UI est jolie et moderne (sombre/clair).

Installation

Via Docker Compose (recommandé)

# docker-compose.yml
services:
  sheetable:
    image: ghcr.io/sheetable/sheetable:latest
    container_name: sheetable
    restart: unless-stopped
    ports:
      - "8083:80"
    environment:
      - JWT_SECRET=ChangeMeWithOpensslRandHex50
      - DATABASE_URL=file:/data/sheetable.db
      - STORAGE_PATH=/data/uploads
      - MAX_UPLOAD_SIZE_MB=50
      - APP_URL=https://sheets.example.com
    volumes:
      - sheetable-data:/data
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://localhost:80/"]
      interval: 30s
      timeout: 10s
      retries: 3

volumes:
  sheetable-data:

Note

: l'image officielle est ghcr.io/sheetable/sheetable (à vérifier — peut être sheetable/sheetable sur Docker Hub).

Installation manuelle

  1. Pré-requis : Node.js 18+, npm 9+, SQLite (inclus).
  2. Clone & install : git clone https://github.com/SheetAble/SheetAble && cd SheetAble && npm install.
  3. Build : npm run build (build frontend Vue + backend Fastify).
  4. Config : copier .env.example vers .env et renseigner JWT_SECRET, STORAGE_PATH.
  5. Lancer : npm start (port 80 par défaut ou PORT=8083 npm start).
  6. Premier admin : créer via l'UI au premier lancement (signup ouvert désactivable).

Configuration

  • Premier user : créer le compte admin via l'UI (Settings → Users), puis désactiver l'inscription ouverte (ALLOW_SIGNUP=false).
  • Storage : filesystem local par défaut, S3-compatible possible en v2+.
  • Formats supportés : .xlsx, .xlsm, .csv, .ods, .xls (ancien format) — import et export.
  • Thème : clair/sombre, persistant par user.
  • HTTPS : obligatoire via reverse proxy.
  • Backups : copier /data (DB SQLite + fichiers uploadés).
  • Reverse proxy : client_max_body_size à 100M pour les gros classeurs.
  • Performance : gros classeurs (>10 Mo) peuvent ramer dans le navigateur, limiter la taille d'upload.

Alternatives

Open Source

  • app-pdfding — gestionnaire PDF léger (même esprit « viewer web »)
  • app-papra — GED minimaliste TypeScript
  • app-stirling-pdf — boîte à outils PDF (complémentaire)
  • Grist — tableur hybride Excel/Airtable (Python) — bien plus puissant
  • NocoDB — Airtable-like (Node.js) — pas vraiment tableur
  • Baserow — Airtable-like (Python) — pas vraiment tableur
  • EtherCalc — tableur collaboratif temps réel (Node.js, vieux)
  • OnlyOffice — suite office complète (beaucoup plus lourd)
  • Collabora Online — LibreOffice en mode serveur (lourd)

Propriétaires

  • Microsoft Excel Online — gratuit avec compte Microsoft, freemium
  • Google Sheets — référence, gratuit, collaboratif temps réel
  • Apple Numbers — iCloud, freemium
  • Zoho Sheet — freemium, Zoho Office
  • Airtable — pas vraiment tableur mais cousin (freemium)
  • WPS Office — suite office freemium

Sécurité

  • HTTPS obligatoire + HSTS via reverse proxy.
  • JWT : JWT_SECRET doit être long et aléatoire (openssl rand -hex 64).
  • Pas de 2FA natif : compter sur Authelia/Authentik via reverse proxy.
  • Permissions : isolation par utilisateur (un user ne voit pas les classeurs d'un autre).
  • Partage par lien : tokens signés avec expiration, révocables.
  • Mises à jour : suivre les releases GitHub, Univer/SheetJS sont à jour régulièrement.
  • CSP : configurer les Content-Security-Policy headers via reverse proxy (Univer charge des libs tierces).
  • Backups : tester la restauration (DB + fichiers).
  • Isolation : ne pas exposer SheetAble en direct, passer par reverse proxy authentifié.

Ressources

Pages Liées