126 lines
4.7 KiB
Markdown
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]]
|