Initial vault setup
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
---
|
||||
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]]
|
||||
Reference in New Issue
Block a user