Files
2026-06-09 18:40:21 +02:00

126 lines
4.7 KiB
Markdown

---
title: Spacepad
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, tracking, temps, espaces-travail, php, laravel]
confidence: medium
contested: false
sources: [https://selfh.st/apps/spacepad, https://github.com/operandus/spacepad]
---
# Spacepad 🛰️
> Un tracker de temps conçu pour les espaces de travail partagés (coworking, FabLabs, makerspaces), facturation au temps passé.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://spacepad.app/ |
| **GitHub** | https://github.com/operandus/spacepad |
| **License** | AGPL-3.0 |
| **Langage principal** | PHP (Laravel) |
| **Étoiles GitHub** | ⭐16 |
| **Dernière MAJ** | 2025-11-20 |
| **Catégorie** | [[cat-tracking]] |
## Description
Spacepad est un **time tracker** spécialisé pour la gestion d'**espaces de travail partagés** : coworking, FabLabs, hackerspaces, ateliers makers. Plutôt qu'un Toggl ou Clockify qui suit le temps par projet-utilisateur, Spacepad suit le temps par **poste/place** dans un espace physique, ce qui permet de facturer à l'heure ou au forfait les occupants.
L'application est écrite en **Laravel 11** (PHP 8.2+) avec **Livewire** pour l'interface réactive. Elle gère les **membres**, les **postes de travail** (salles de réunion, établis, machines CNC, postes de coworking), les **réservations**, et exporte des **rapports de présence** (CSV, PDF).
Les cas d'usage typiques : un FabLab qui veut facturer l'usage d'une imprimante 3D ou d'une CNC au temps passé, un coworking qui propose des forfaits « 20h/mois » à suivre précisément, un atelier qui loue des établis à la journée. L'API REST est documentée et permet l'intégration avec des systèmes de paiement ou de badgeuse RFID.
⚠️ **Bus factor 1** (un seul mainteneur), rythme de publication lent. Projet jeune mais fonctionnel.
## Installation
### Via Docker (recommandé)
```yaml
services:
spacepad:
container_name: spacepad
image: ghcr.io/operandus/spacepad:latest
restart: unless-stopped
ports:
- "8087:8087"
volumes:
- spacepad-data:/var/www/html/storage
- spacepad-db:/var/lib/mysql
environment:
- APP_KEY=base64:...
- APP_URL=https://espace.example.com
- DB_CONNECTION=mysql
- DB_HOST=db
- DB_DATABASE=spacepad
- DB_USERNAME=spacepad
- DB_PASSWORD=changez-moi
depends_on:
db:
condition: service_healthy
db:
image: mysql:8
restart: unless-stopped
environment:
- MYSQL_DATABASE=spacepad
- MYSQL_USER=spacepad
- MYSQL_PASSWORD=changez-moi
- MYSQL_RANDOM_ROOT_PASSWORD=yes
volumes:
- spacepad-mysql:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
volumes:
spacepad-data:
spacepad-mysql:
```
```
### Installation manuelle
1. Pré-requis : PHP 8.2+, Composer, MySQL 8 / MariaDB 10.6+, Node 20+ (pour le build).
2. Cloner : `git clone https://github.com/operandus/spacepad.git`
3. `composer install --no-dev && npm install && npm run build`
4. Configurer `.env` (base, mail, clé d'application).
5. `php artisan migrate --seed`
6. Servir via Nginx + PHP-FPM.
## Configuration
- Créer l'**administrateur** via `php artisan make:filament-user` (le seeder en crée un par défaut — changer le mot de passe !).
- Définir les **espaces** (salles, machines) avec leurs tarifs horaires.
- Configurer les **membres** : particuliers, entreprises, avec leurs forfaits.
- Activer les **rappels email** (fin de session, dépassement de forfait).
- Brancher une **badgeuse RFID** via l'API (webhook entrant) pour pointer automatiquement.
## Alternatives
### Open source
- **Kimai** — time tracker généraliste, très mature (⭐3k+)
- **Toggl Track** *(propriétaire)* — le plus connu, freemium
- **TimeTagger** — orienté freelancers, Python
- **Solidtime** — moderne, Laravel aussi
### Propriétaires
- **Toggl Track** — freemium, cloud-first
- **Clockify** — freemium, jusqu'à 5 users gratuit
- **Harvest** — payant, orienté agences
## Sécurité
- **Changer `APP_KEY`** par une clé aléatoire de 32 caractères (`php artisan key:generate`).
- **HTTPS obligatoire** en production (reverse proxy Traefik/Caddy + Let's Encrypt).
- **Sauvegardes MySQL** régulières (`mysqldump`) + synchronisation du volume de stockage.
- **Rate-limiting** sur l'API d'authentification (Laravel throttle).
- **2FA** disponible via TOTP (Google Authenticator, etc.) — l'activer pour les admins.
## Ressources
- Site officiel : https://spacepad.app/
- Dépôt GitHub : https://github.com/operandus/spacepad
- Documentation : https://docs.spacepad.app/
## Pages Liées
- [[cat-tracking]]
- [[recettes-docker-compose]]