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

4.0 KiB


📸 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