Initial vault setup
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
---
|
||||
title: Shaarli
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, bookmarks, php, single-file, veteran, markdown, atom-rss, plugin]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Bookmarks, https://shaarli.readthedocs.io, https://github.com/shaarli/Shaarli]
|
||||
---
|
||||
|
||||
# 🦞 Shaarli
|
||||
|
||||
> **Le doyen des bookmarks auto-hébergés** : un seul fichier PHP, zero base de données, et plus de 13 ans de développement. Pour les amateurs de minimalisme radical et de fiabilité à toute épreuve.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [shaarli.readthedocs.io](https://shaarli.readthedocs.io) |
|
||||
| **GitHub** | [shaarli/Shaarli](https://github.com/shaarli/Shaarli) |
|
||||
| **Licence** | Zlib |
|
||||
| **Langage** | PHP (sans framework) |
|
||||
| **Étoiles GitHub** | 3.1k ⭐ |
|
||||
| **Dernière MAJ** | 2026-05-12 |
|
||||
| **Catégorie** | [[cat-bookmarks\|Bookmarks]] |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Shaarli** est né en 2011 sous le nom de *Shaarli the ultimate personal links/microblog manager*. Plus de treize ans plus tard, c'est toujours l'un des **gestionnaires de bookmarks les plus simples à déployer** qui existent : un seul dossier PHP copié sur un serveur web, et ça tourne. Pas de MySQL, pas de Redis, pas de Node.js : **un fichier plat (datastore JSON/SQLite)**, c'est tout.
|
||||
|
||||
L'UI est volontairement **old-school**, dans la lignée de del.icio.us et de Pinboard. Les onglets, les flux RSS/Atom par tag, le **mode lecture privée**, le **short URL automatique**, le **share link éphémère** avec mot de passe, et le **wallabag-like viewer** pour les articles. Les extensions navigateur et les bookmarklets sont officiellement supportés.
|
||||
|
||||
Shaarli brille par :
|
||||
- ⚡ **Vitesse d'installation** : unzip → ça marche
|
||||
- 🔌 **Système de plugins** mature (RSS, Markdown, Wallabag, Readability…)
|
||||
- 📡 **Flux RSS/Atom** par tag, par recherche
|
||||
- 🔐 **Authentification simple** (login/pass) + sessions sécurisées
|
||||
- 📥 **Import** depuis Del.icio.us, Pinboard, Scrapbook, Netscape, Firefox Sync
|
||||
- 🏷️ **Tags hiérarchiques** (préfixe `parent/enfant`)
|
||||
- 📦 **Sauvegarde triviale** : un dossier, c'est tout
|
||||
|
||||
Idéal pour :
|
||||
- 🐧 Un vieux serveur Synology/NAS sous PHP 8
|
||||
- 🔌 Un mutu OVH/hébergeur low-cost
|
||||
- 🧓 Les utilisateurs qui veulent **le moins de moving parts possible**
|
||||
- ⚠️ Moins adapté si on veut une UI 2025
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Option 1 : Téléchargement direct (le plus simple)
|
||||
|
||||
```bash
|
||||
# Télécharger la dernière release
|
||||
wget https://github.com/shaarli/Shaarli/releases/latest/download/shaarli-v0.x.y-full.zip
|
||||
unzip shaarli-v0.x.y-full.zip -d /var/www/shaarli
|
||||
chown -R www-data:www-data /var/www/shaarli
|
||||
|
||||
# Configurer Nginx
|
||||
cat > /etc/nginx/sites-available/shaarli <<'EOF'
|
||||
server {
|
||||
listen 80;
|
||||
server_name shaarli.example.com;
|
||||
root /var/www/shaarli;
|
||||
index index.php;
|
||||
location / { try_files $uri $uri/ /index.php?$query_string; }
|
||||
location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php/php-fpm.sock; }
|
||||
}
|
||||
EOF
|
||||
```
|
||||
|
||||
### Option 2 : Docker Compose
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
shaarli:
|
||||
image: shaarli/shaarli:latest
|
||||
container_name: shaarli
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8085:80"
|
||||
volumes:
|
||||
- shaarli-data:/var/www/shaarli/data
|
||||
|
||||
volumes:
|
||||
shaarli-data:
|
||||
```
|
||||
|
||||
### Option 3 : Composer
|
||||
|
||||
```bash
|
||||
composer create-project shaarli/shaarli
|
||||
cd shaarli
|
||||
php -S 0.0.0.0:8085 -t .
|
||||
```
|
||||
|
||||
## ⚙️ Configuration Initiale
|
||||
|
||||
1. **Accéder à l'UI** et créer le compte administrateur.
|
||||
2. **Changer immédiatement** le login (`admin` → autre) et le mot de passe.
|
||||
3. **Configurer `config.json`** : timezone, langue, thème.
|
||||
4. **Installer les plugins** utiles (Markdown, Wallabag, Readability).
|
||||
5. **Brancher un reverse proxy HTTPS** (Caddy, Traefik).
|
||||
6. **Importer** depuis un ancien Del.icio.us/Pinboard via l'UI d'import.
|
||||
7. **Configurer le bookmarklet** sur la barre du navigateur.
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source
|
||||
- [[app-linkding]] — Python/Django, plus moderne, même philosophie single-user
|
||||
- [[app-shiori]] — Go, binaire unique, minimaliste aussi
|
||||
- [[app-karakeep]] — Next.js moderne, avec IA
|
||||
- [[app-wallabag]] — PHP/Symfony, plus complet
|
||||
- [[app-linkace]] — Laravel, plus récent
|
||||
|
||||
### Propriétaires (ce que Shaarli remplace)
|
||||
- **Pocket** — Sunset 2025
|
||||
- **Del.icio.us** — Mort et enterré
|
||||
- **Pinboard** — 25$/an, vieillissant
|
||||
- **Instapaper** — Cloud-only
|
||||
- **Linkatopia / Diigo** — Freemium lourd
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- Authentification par **session PHP sécurisée** (HttpOnly, SameSite)
|
||||
- **Pas de 2FA natif** ⚠️ → recommandé en SSO via Authelia/Authentik
|
||||
- Mises à jour de sécurité fréquentes (watch les releases)
|
||||
- Filtrage CSRF sur les actions sensibles
|
||||
- **HTTPS obligatoire** dès que public
|
||||
- Sauvegarder régulièrement le dossier `data/` (et `cache/`)
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [Documentation](https://shaarli.readthedocs.io)
|
||||
- [Dépôt GitHub](https://github.com/shaarli/Shaarli)
|
||||
- [Demo officielle](https://demo.shaarli.org)
|
||||
- [selfh.st — Bookmarks](https://selfh.st/apps/?tag=Bookmarks)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-bookmarks]] — Vue d'ensemble de la catégorie Bookmarks
|
||||
- [[app-linkding]] — Successeur spirituel en Python
|
||||
- [[app-shiori]] — Concurrent Go minimaliste
|
||||
- [[recettes-docker-compose]] — Bonnes pratiques Docker Compose
|
||||
Reference in New Issue
Block a user