4.0 KiB
title: Pinry created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, photos, pinry, bookmarking, pinterest, gallery, self-hosted] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Photos, https://github.com/pinry/pinry]
📸 Pinry
Le bookmarking visuel d'images self-hosted — une alternative open source à Pinterest, pour sauvegarder, organiser et partager vos collections d'images préférées.
📋 Informations Générales
| Attribut | Valeur |
|---|---|
| Nom | Pinry |
| Slug | app-pinry |
| Description | Bookmarking visuel d'images style Pinterest, self-hosted |
| Site officiel | pinry.github.io |
| Repository | pinry/pinry |
| Stars | 3 375 ⭐ |
| Licence | BSD-3-Clause |
| Langage principal | Python (Django), TypeScript (front) |
| Catégorie | Photos |
| Tags | [catalogue, photos, pinry, bookmarking, pinterest, gallery, self-hosted] |
📝 Description
Pinry est l'équivalent self-hosted de Pinterest : un outil de bookmarking visuel pour sauvegarder, organiser et explorer des collections d'images. Pensé à l'origine par des développeurs frustrés par Pinterest (qui a beaucoup fermé ses API au fil des années).
Fonctionnalités : bookmarklet navigateur (un clic sur un site pour "épingler" l'image), upload direct (drag-and-drop), boards / collections thématiques, tags, recherche par image (similarité), partage public avec lien, multi-utilisateurs, API REST documentée, extension Chrome/Firefox pour faciliter la capture, responsive web (mobile, tablette).
Différence avec les autres apps photos : Pinry n'est pas fait pour stocker votre photothèque familiale, mais pour collecter des images depuis le web (inspiration déco, design, recettes, recettes de cuisine, moodboards, etc.). C'est un outil curation, pas un backup photo.
🚀 Installation
Via Docker (recommandé)
# docker-compose.yml
version: "3.8"
services:
pinry:
image: getpinry/pinry:latest
container_name: pinry
restart: unless-stopped
environment:
DJANGO_SECRET_KEY: ${SECRET_KEY}
DJANGO_ALLOWED_HOSTS: pinry.local
DATABASE_URL: postgres://pinry:${DB_PASSWORD}@db:5432/pinry
volumes:
- ./media:/app/media
ports:
- 8087:8000
depends_on: [db]
db:
image: postgres:15
restart: unless-stopped
environment:
POSTGRES_DB: pinry
POSTGRES_USER: pinry
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- db:/var/lib/postgresql/data
volumes:
db:
Installation manuelle
# Python 3.10+, pip
git clone https://github.com/pinry/pinry.git
cd pinry && pip install -r requirements.txt
cp .env.example .env # éditer
python manage.py migrate
python manage.py runserver
⚙️ Configuration
- Stockage : volume
/app/media(originaux) + DB Postgres (métadonnées). - Reverse proxy HTTPS recommandé (Caddy/Traefik) pour le bookmarklet et le partage.
- Django settings :
SECRET_KEY,ALLOWED_HOSTS,DATABASE_URL. - OAuth : providers externes configurables (Google, GitHub) pour login social.
🔗 Alternatives
- app-lychee — Plus orienté "stockage galerie", pas de bookmarking
- app-piwigo — Galerie PHP historique, pas d'aspect curation
- Pinterest (cloud) — Source d'inspiration pour Pinry, mais fermé et centralisé
🔒 Sécurité
- Authentification : Django (sessions, OAuth social).
- HTTPS : obligatoire pour bookmarklet et partage public.
- Mises à jour : suivre les CVE Python/Django.
📚 Ressources
🔗 Pages Liées
- cat-photos (n'existe pas encore, OK)
- app-lychee
- app-piwigo
- app-traefik
- recettes-docker-compose
- securisation-home-lab