开源的瓷砖式图像板系统Pinry

news/2025/2/2 16:57:35/

简介

什么是 Pinry ?

Pinry 是一个开源的瓷砖式图像板系统,旨在帮助用户轻松保存、标记和分享图像、视频和网页。它提供了一种便于快速浏览的格式,适合喜欢整理和分享多种媒体内容的人。

主要特点

  1. 图像抓取和在线预览:支持从网页抓取图像并进行预览。
  2. 标签系统:用户可以为每个图钉添加标签,方便组织和搜索。
  3. 浏览器扩展:提供浏览器插件,便于直接从浏览器添加内容。
  4. 多用户支持:支持多个用户同时使用。
  5. Docker 兼容:可以在 Docker 环境中轻松部署。
  6. 公共和私人板块:用户可以创建公开或私密的图像板。
  7. 完整的 API 支持:通过 Django REST Framework 提供完整的 API 接口。
  8. 命令行支持:允许用户通过命令行工具添加图像或 URL
  9. 国际化支持:支持多语言,欢迎社区贡献翻译。

安装

群晖上以 Docker 方式安装。

在注册表中搜索 pinry ,选择第一个 getpinry/pinry,版本选择 latest

本文写作时, latest 版本对应为 2.1.13

docker 文件夹中,创建一个新文件夹 pinry,并在其中建一个子文件夹 data

文件夹装载路径说明
docker/pinry/data/data存放数据库、设置文件等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
348680

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 pinry 和 子目录
mkdir -p /volume1/docker/pinry/data# 进入 pinry 目录
cd /volume1/docker/pinry# 运行容器
docker run -d \--restart unless-stopped \--name pinry \-p 3486:80 \-v $(pwd)/data:/data \getpinry/pinry

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:pinry:image: getpinry/pinrycontainer_name: pinryrestart: unless-stoppedports:- 3486:80volumes:- ./data:/data

然后执行下面的命令

# 新建文件夹 pinry 和 子目录
mkdir -p /volume1/docker/pinry/data# 进入 pinry 目录
cd /volume1/docker/pinry# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3486 ,第一次会 migration 数据库,所以有一定的等待时间

主界面

注册用户

登录成功后的主界面

创建一个画板

输入画板的名称

创建一个 Pin

上传图片,并选择对应的画板

上传成功后

随便搞了几张

插件

支持 ChromeFirefox 浏览器

老苏尝试安装了 Chrome 的插件

进入选项

发现如果设置为局域网地址 http://群晖IP:3486,在网页图片上点右键 --> Add to Pinry 是没有反应的

尝试下反代后是 OK 的。老苏猜测:不一定是必须要 https,应该是要有公网地址或者域名才行

再次 Add to Pinry

Pinry 会抓取页面上的所以图片,你要做的只是选中一张

能自动获取到图片的相关信息,后面的流程是一样的

参考文档

pinry/pinry: 源代码
地址:https://github.com/pinry/pinry

Pinry Docs
地址:https://docs.getpinry.com/

Install with Docker - Pinry Docs
地址:https://pinry.github.io/pinry/install-with-docker/


http://www.ppmy.cn/news/1568742.html

相关文章

python学opencv|读取图像(五十)使用addWeighted()函数实现图像加权叠加效果

【1】引言 前序学习进程中,学习了图像互相叠加的不同操作方法,包括add()函数直接叠加BGR值和使用bitwise()函数对BGR值进行按位计算叠加等,相关文章链接包括且不限于: python学opencv|读取图像(四十二)使…

AI导航工具我开源了利用node爬取了几百条数据

序言 别因今天的懒惰,让明天的您后悔。输出文章的本意并不是为了得到赞美,而是为了让自己能够学会总结思考;当然,如果有幸能够给到你一点点灵感或者思考,那么我这篇文章的意义将无限放大。 背景 随着AI的发展市面上…

Docker/K8S

文章目录 项目地址一、Docker1.1 创建一个Node服务image1.2 volume1.3 网络1.4 docker compose 二、K8S2.1 集群组成2.2 Pod1. 如何使用Pod(1) 运行一个pod(2) 运行多个pod 2.3 pod的生命周期2.4 pod中的容器1. 容器的生命周期2. 生命周期的回调3. 容器重启策略4. 自定义容器启…

使用Python Dotenv库管理环境变量

使用Python Dotenv库管理环境变量 在开发Python应用程序时,管理配置信息(如API密钥、数据库连接字符串等)是一个常见的需求。为了确保安全性和灵活性,通常不建议将这些敏感信息硬编码在代码中。这时,dotenv库就派上了…

高可用 Keepalived 服务部署流程

一、配置文件 vim /etc/keepalived/keepalived.confGLOBAL CONFIGURATION --- 全局配置部分VRRPD CONFIGURATION --- VRRP协议配置部分LVS CONFIGURATION --- LVS服务管理配置部分[rootlb01 ~]# cat /etc/keepalived/keepalived.…

十分钟快速上手 markdown

前言 本人利用寒假期间,将自己所学的markdown的知识,以及将自己常用的一些操作和注意事项记录下来,希望能够帮助大家 一、markdown是什么 Markdown 是一种轻量级标记语言,说白了就是可以让你利用最简单的语法达到最好的排版效果…

关于ARM和汇编语言

一图流 ARM 计算机组成 输入设备 输出设备 存储设备 运算器 控制器 处理器读取内存程序执行的过程 取指阶段:控制器器通过地址总线向存储器发送想要获取的指令的地址编号,存储器将指定的指令发送给处理器 译码阶段:控制器对指令进行分…

论文阅读的附录(八):Understanding Diffusion Models: A Unified Perspective(五):逐步加噪评分匹配

Understanding Diffusion Models: A Unified Perspective(五):逐步加噪评分匹配 文章概括1. Fisher 散度的定义问题 2. 数学技巧:积分分部法(Integration by Parts)2.1 回顾积分分部法2.2 多维积分分部公式…