The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim through format.

Overview

Pinry

The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim through format.

For more information ( screenshots and document ) visit getpinry.com.

Features

  • Image fetch and online preview
  • Tagging system for Pins
  • Browser Extensions
  • Multi-user support
  • Works well with docker
  • Both public and private boards (add @2020.02.11)
  • Search by tags / Search boards with name (add @2020.02.14)

Install with Docker

See our full documentation at https://docs.getpinry.com/install-with-docker/

Requirements

See our full documentation at https://docs.getpinry.com/development/

Development

See our full documentation at https://docs.getpinry.com/development/

Contributors

The core contributors for Pinry have been/currently are:

For a full list of contributors check out the GitHub Contributors Graph

Comments
  • got vimeo and youtube working

    got vimeo and youtube working

    Please let me know what you think .. and add me a contributor if you like the work (there is some clean up that needs to be done ... such as: I added an admin for certain testing purposes)

    opened by rafirosenberg 21
  • Feature(WIP): Add board support for Pinry

    Feature(WIP): Add board support for Pinry

    I'm currently working on new UI by vue.js with webpack workflow because I found it hard to rebuild UI while using old styles. The old server-render UI will be removed after new UI worked.

    • [x] Backend support for board
    • Show:
      • [x] UI: show pins
      • [x] UI: show pins by tag
      • [x] UI: show pins by user
      • [x] UI: Single pin preview
      • [x] UI: show pins by board
      • [x] UI: show boards by user
      • [x] UI: view single pin
    • create/update
      • [x] UI: Pin Edit
        • [x] Create pin from uploaded image
        • [x] Create pin from image url
        • [x] Add a pin to a specified board while creating
        • [x] Delete a pin
        • [x] edit a pin
      • [x] UI: Works with Bookmarklet
      • [x] UI: Create board
      • [x] UI: Delete board
      • [x] UI: Edit board name
      • [x] UI: Add pin to specified board (from pin itself)
      • [x] UI: Remove pin from board
      • [x] UI: Add to board while adding a pin.
    • other
      • [x] UI: user login
      • [x] UI: logout
      • [x] UI: register

    All basic features have done! More jobs required are listed below:

    • For end users
      • [ ] docker autobuild
      • [ ] automatic config for new-installation
    • CI
      • [x] frontend auto-build in docker
      • [x] migration files for new model
      • [x] nginx config
    • Dev
      • [ ] 404 page?
      • [ ] 403 handler?
      • [x] Remove old codes
      • [x] bookmarklet remote test
      • [x] Browser Extension Link and Test(it works well).
    • Doc
      • [ ] Dev how to
      • [ ] User's how to and upgrade guide
    opened by winkidney 20
  • Discuss: another way to organize pins, just like

    Discuss: another way to organize pins, just like "board" or "topic"

    Hi,

    I'd like to add a new way to organize our pins and ideas, for better sharing, better way to show your ideas.

    Why

    If we want to organize our pins, at first we give it tags, then we can access specified tag to get our previously saved pins.

    If we want to share specified set of pins which includes pins about characters, scenes, models, with same style or some shared properties with many different tags (e.g "ideas to make act-game" maybe), it's hard for us to do that. As a result, I'd like to add a set-like concept to organize pins that way.

    How

    We can just add a "set"(named board or topic, anyway) in our Pinry system, we can add some pins to this "set", then share it to others.

    For Django, it's a new model named "Topic" or "Board" which has many2many field targets to Pin.

    Other feature Advices

    • tag list: Maybe we need a page to show all of the tags and give links to each of them
    • search: by tag or name, view by multiple tags (like pinterest)

    What do you think about this feature? @overshard

    related: #141

    enhancement 
    opened by winkidney 15
  • Feature:  Upgrade django to 1.11 LTS

    Feature: Upgrade django to 1.11 LTS

    I have submit a patch to django's master branch to fix the RuntimeError while saving wepb file for djan

    But, the patch will not be applied to Django 1.8, as a result I made a patch to upgrade django to 1.11 LTS.

    • Upgrade Django to 1.11 LTS
    • Integrates django-images into this project
    • Use new permission interface instead of auth-backend (the old one has an issue in new version of tastypie that may cause permision error on Image object)
      • Pin-list is public by default
      • Only the pin owner can change its PinResource
    • Upgrade Tastypie to lastest version

    Ref: https://www.djangoproject.com/download/#supported-versions

    Ref: https://github.com/django/django/pull/10331

    opened by winkidney 13
  • ARM Support

    ARM Support

    Hi

    Thanks for making Pinry.

    I was hoping to run Pinry on Raspberry Pi but I could not find an ARM image on the docker hub. Do you plan to support ARM? If not, any suggestions for me?

    opened by quaintdev 12
  • add pin directly to board

    add pin directly to board

    Hi,

    I don't know if is only a problem of mine, but when I create a pin from bookmarklet or via addon, I' not able to assign the correct board. I mean I select the board, but is always created "outside" any boards.

    I'm using the docker version.

    Thank you

    opened by mbelletti 12
  • Vimeo and Youtube pinning support

    Vimeo and Youtube pinning support

    The core social video sites for now since they both have easy embeddables. Need to grab a "screenshot" of the video, can be done via the API I think, to put as the pin thumbnail.

    enhancement 
    opened by overshard 12
  • Is there still an admin site?

    Is there still an admin site?

    I am running the latest codebase as of 20/04/2020 in a docker containe.

    According to https://docs.getpinry.com/passwords/ I should be able to navigate to an admin site.

    image

    image

    opened by mark-clanfalconer 11
  • Add watermark function. Modify param name and some comments.

    Add watermark function. Modify param name and some comments.

    watermark_1 Add watermark function for pinry. Modify the setting file to enble watermark. The default setting is False. Change it to True. You will get a watermarked pin after you upload. watermark_2

    opened by Rousong 10
  • Remove Gravatar, plus many other features

    Remove Gravatar, plus many other features

    Just curious if someone knows how to do this easily, aka what .css files and so on I'd need to edit for each thing.

    • I'd like to remove Gravatar because it requires an account and no one uses it and in its place set a static 50x50px image
    • Triple the size of thumbnails/image pins on boards
    • Change the background color of the entire board to something much darker or some sort of pattern
    • Increase the size of images/pins that have been clicked on to fill as much of the screen as possible (by height) but not have them scroll
    • Allow a user to click on an image to view the full size immediately in new window
    • Outright remove the Gravatar/"Pinned by user-x" bottom footer on each pin to save space
    • Fully remove the Sign Up button so people can't upload stuff to my own server (instead of just disabling registration because currently disabling registration does not provoke any kind of "Registration disabled" message)

    Are any of these features planned? It would be nice to have most of them in a user menu.

    I have tried myself to find where the corresponding values and variables are for these functions but I cannot find them. I've been able to disable registrations via the settings.py file but not change thumbnail sizes or find where the background color/style setting is.

    Any info would be appreciated. If someone can tell me how to change/set these features I'm happy to share/commit my own changes. Just having a hard time figuring out where everything is located.

    opened by 825i 9
  • Chrome extension

    Chrome extension

    I created a Pinry-bookmarklet compatible Chrome extension for those (like me) which prefer to hide the bookmark bar and have a simple icon to use. The package contains the "gray P on black background" from Pinry's website so I'm asking you if I can actually use it. Right now the extension is available on Chrome Store but hidden from searches and can only be tried by people who has the direct URL.

    opened by lapo-luchini 9
  • Pornography on the demo site

    Pornography on the demo site

    I wanted to check out the project after seeing it on https://alternativeto.net/ only to find the demo site https://pin.37soloist.com/ contains a lot of pornographic images uploaded by a user called alluded This isn't a good look!

    opened by nickludlam 0
  • Add support for AVIF images

    Add support for AVIF images

    We should add support for AVIF images (and maybe HEIF too? but I'll prioritize AVIF myself), such as this:

    https://libre-software.net/image/avif-test/

    I see two problems right now:

    1. the bookmarklet doesn't detect it
    2. if forced, the server fails on IntegrityError at /api/v2/pins/ NOT NULL constraint failed: django_images_image.height
    opened by lapo-luchini 0
  • Build(deps): Bump decode-uri-component from 0.2.0 to 0.2.2 in /pinry-spa

    Build(deps): Bump decode-uri-component from 0.2.0 to 0.2.2 in /pinry-spa

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Build(deps): Bump pillow from 9.1.1 to 9.3.0

    Build(deps): Bump pillow from 9.1.1 to 9.3.0

    Bumps pillow from 9.1.1 to 9.3.0.

    Release notes

    Sourced from pillow's releases.

    9.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.3.0 (2022-10-29)

    • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

    • Initialize libtiff buffer when saving #6699 [radarhere]

    • Inline fname2char to fix memory leak #6329 [nulano]

    • Fix memory leaks related to text features #6330 [nulano]

    • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

    • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

    • Fixed set_variation_by_name offset #6445 [radarhere]

    • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

    • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

    • Added ExifTags enums #6630 [radarhere]

    • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

    • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

    • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

    • Added GPS TIFF tag info #6661 [radarhere]

    • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

    • Do not attempt normalization if mode is already normal #6644 [radarhere]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 0
  • Proxy authentication by http header value

    Proxy authentication by http header value

    When self-hosting multiple applications, you really want to have a single point for user management and authentication. It is annoying to login to each and every app seperately.

    A pretty simple way to centralize authentication is achieved by deploying apps behind a reverse proxy, and use proxy auth. The proxy handles authentication in some way and sets http headers containing the username that was successfully logged-in. The apps read the headers and associate incoming requests to that user.

    The perfect proxy auth feature for me would work like this:

    1. Start the app with additional environment variables:
    • containing the name of the initial admin user (e.g. admin=admin_user)
    • enabling proxy auth (e.g. proxy_auth=true)
    • setting the key of the http header that contains the username (e.g. auth_header=X-Authenticated-User)
    1. Configure the reverse proxy to authenticate incoming requests in any way you like.
    2. Let the reverse proxy set X-Authenticated-User to the authenticated username on every request.
    3. The app treats the requests as if they belong to the appropriate user session.
    4. Bonus: if the app does not know the username, it creates a new user with that name.

    Other SSO methods like OIDC still require the user to login with each app, even it no credentials are required. It is still an additional step that is unneeded and hurting the user experience.

    Additional context: I am using the app for this product. Since this is a single-user platform, users really should see no login screen at all, not even for SSO.

    opened by max-tet 0
🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more...

ArchiveBox Open-source self-hosted web archiving. ▶️ Quickstart | Demo | Github | Documentation | Info & Motivation | Community | Roadmap "Your own pe

ArchiveBox 14.8k Jan 5, 2023
Open source platform for the machine learning lifecycle

MLflow: A Machine Learning Lifecycle Platform MLflow is a platform to streamline machine learning development, including tracking experiments, packagi

MLflow 13.3k Jan 4, 2023
Indico - A feature-rich event management system, made @ CERN, the place where the Web was born.

Indico Indico is: ?? a general-purpose event management tool; ?? fully web-based; ?? feature-rich but also extensible through the use of plugins; ⚖️ O

Indico 1.4k Jan 9, 2023
The official source code repository for the calibre ebook manager

calibre calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book re

Kovid Goyal 14.1k Dec 27, 2022
Source code for Gramps Genealogical program

The Gramps Project ( https://gramps-project.org ) We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete f

Gramps Project 1.6k Jan 8, 2023
A :baby: buddy to help caregivers track sleep, feedings, diaper changes, and tummy time to learn about and predict baby's needs without (as much) guess work.

Baby Buddy A buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs wit

Baby Buddy 1.5k Jan 2, 2023
ProPublica's collaborative tip-gathering framework. Import and manage CSV, Google Sheets and Screendoor data with ease.

Collaborate This is a web application for managing and building stories based on tips solicited from the public. This project is meant to be easy to s

ProPublica 86 Oct 18, 2022
:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

About Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. This softw

Jan B 8.2k Jan 2, 2023
Collect your thoughts and notes without leaving the command line.

jrnl To get help, submit an issue on Github. jrnl is a simple journal application for your command line. Journals are stored as human readable plain t

Manuel Ebert 31 Dec 1, 2022
Scan, index, and archive all of your paper documents

[ en | de | el ] Important news about the future of this project It's been more than 5 years since I started this project on a whim as an effort to tr

Paperless 7.8k Jan 6, 2023
Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.

Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. Exclusiv

pyMedusa 1.5k Dec 30, 2022
Agile project management platform. Built on top of Django and AngularJS

Taiga Backend Documentation Currently, we have authored three main documentation hubs: API: Our API documentation and reference for developing from Ta

Taiga.io 5.8k Jan 5, 2023
A collection of self-contained and well-documented issues for newcomers to start contributing with

fedora-easyfix A collection of self-contained and well-documented issues for newcomers to start contributing with How to setup the local development e

Akashdeep Dhar 8 Oct 16, 2021
ckan 3.6k Dec 27, 2022
In this Github repository I will share my freqtrade files with you. I want to help people with this repository who don't know Freqtrade so much yet.

My Freqtrade stuff In this Github repository I will share my freqtrade files with you. I want to help people with this repository who don't know Freqt

Simon Kebekus 104 Dec 31, 2022
Smilecreator4 - This site is for people who want to hack or want to learn it!

smilecreator4 This site is for people who want to hack or want to learn it! Furthermore, this program does not work without turning off Antivirus or W

null 1 Jan 4, 2022
arxiv-sanity, but very lite, simply providing the core value proposition of the ability to tag arxiv papers of interest and have the program recommend similar papers.

arxiv-sanity, but very lite, simply providing the core value proposition of the ability to tag arxiv papers of interest and have the program recommend similar papers.

Andrej 671 Dec 31, 2022
An image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testingAn image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testing

SVM Données Une base d’images contient 490 images pour l’apprentissage (400 voitures et 90 bateaux), et encore 21 images pour fait des tests. Prétrait

Achraf Rahouti 3 Nov 30, 2021
MHS2 Save file editing tools. Transfers save files between players, switch and pc version, encrypts and decrypts.

SaveTools MHS2 Save file editing tools. Transfers save files between players, switch and pc version, encrypts and decrypts. Credits Written by Asteris

null 31 Nov 17, 2022
Save-restricted-v-3 - Save restricted content Bot For telegram

Save restricted content Bot Contact: Telegram A stable telegram bot to get restr

DEVANSH 11 Dec 21, 2022