具备人工智能标记的书签应用Hoarder

news2024/11/17 9:53:20

在这里插入图片描述

什么是 Hoarder ?

Hoarder 是一款可自托管的书签应用程序(链接、笔记和图像),具有基于人工智能的自动标记和全文搜索功能。适合数据囤积者使用。

软件特点:

  • 🔗 为链接添加书签、做简单的笔记并存储图像。
  • ⬇️ 自动获取链接标题、描述和图像。
  • 📋 将您的书签分类放入列表中。
  • 🔎 对存储的所有内容进行全文搜索。
  • ✨ 基于 AI(又名 chatgpt)的自动标记。支持使用 ollama 的本地模型!
  • 🔖 Chrome 插件和Firefox 插件可快速添加书签。
  • 📱一个iOS 应用程序和一个Android 应用程序。
  • 🌙 支持暗黑模式(目前仅限网络版)。
  • 💾 首先进行自我托管。
  • [计划] 下载内容以供离线阅读。

⚠️该应用程序正在大力开发中,还远未稳定。

官方提供了在线演示站点:https://try.hoarder.app

可以使用下面👇凭证登录

email: demo@hoarder.app
password: demodemo

安装

在群晖上以 Docker 方式安装。

涉及到多个容器,采用 docker-compose 方式安装

env.txt

将下面的内容保存为 env.txt 文件

NEXTAUTH_SECRET=4SnT8OKdC9p8bL23a6KHRiPFfRfXJOQC5E4VExPTBaNcBg8Z
MEILI_MASTER_KEY=fjJ+q1KEAg3Kxl3NxHbYKOhK1qB37RUK4VOpILyG5g6CsAWw
NEXTAUTH_URL=http://192.168.0.197:3312
  • NEXTAUTH_SECRETMEILI_MASTER_KEY,可以通过在 SSH 客户端在命令行执行 openssl rand -base64 36 来生成

  • NEXTAUTH_URL 中,
    • http://192.168.0.197 是老苏的群晖主机的 IP,需要更换成你自己的;
    • 端口 3312 是后面 docker-compose.yml 中设定的 Web 的主机端口,只要不冲突就可以了;

更多的环境变量,请参考官方文档:https://docs.hoarder.app/configuration

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件,这是在官方文件:https://raw.githubusercontent.com/hoarder-app/hoarder/main/docker/docker-compose.yml 基础上微调的

version: "3.8"

services:
  web:
    image: ghcr.io/mohamedbassem/hoarder-web:latest
    container_name: hoarder-web
    restart: unless-stopped
    volumes:
      - ./data:/data
    ports:
      - 3312:3000
    env_file:
      - env.txt
    environment:
      REDIS_HOST: redis
      MEILI_ADDR: http://meilisearch:7700
      DATA_DIR: /data

  redis:
    image: redis:7.2-alpine
    container_name: hoarder-redis
    restart: unless-stopped
    volumes:
      - ./redis:/data

  chrome:
    image: gcr.io/zenika-hub/alpine-chrome:100
    container_name: hoarder-chrome
    restart: unless-stopped
    command:
      - --no-sandbox
      - --disable-gpu
      - --remote-debugging-address=0.0.0.0
      - --remote-debugging-port=9222

  meilisearch:
    image: getmeili/meilisearch:v1.6
    container_name: hoarder-meilisearch
    restart: unless-stopped
    env_file:
      - env.txt
    volumes:
      - ./meilisearch:/meili_data

  workers:
    image: ghcr.io/mohamedbassem/hoarder-workers:latest
    container_name: hoarder-workers
    restart: unless-stopped
    volumes:
      - ./data:/data
    env_file:
      - env.txt
    environment:
      REDIS_HOST: redis
      MEILI_ADDR: http://meilisearch:7700
      BROWSER_WEB_URL: http://chrome:9222
      DATA_DIR: /data
      # OPENAI_API_KEY: ...
      OLLAMA_BASE_URL: http://192.168.0.197:11434
      INFERENCE_TEXT_MODEL: qwen:0.5b
    depends_on:
      web:
        condition: service_started

环境变量部分,可参考官方文档:https://docs.hoarder.app/configuration

这里只简单说下 AI,你可以根据自己的需要进行设置

  • OpenAI 的配置只有一个 OPENAI_API_KEY,所以不能通过代理方式,这就使得想用 GPT4Free 或者 kimi-free-api 就没戏了;
  • Ollama 目前还是实验功能,运算速度取决于机器性能和模型,按官方的说法,可能会出现大量推理失败。老苏用了 qwen:0.5b,在小机器上生成 tags 的速度还行吧,但是直观感觉上,准确度总归还是差点意思;

然后执行下面的命令

# 新建文件夹 hoarder 和 子目录
mkdir -p /volume1/docker/hoarder/{data,meilisearch,redis}

# 进入 hoarder 目录
cd /volume1/docker/hoarder

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3312 就能看到登录界面

Sign Up 先注册账号

注册完成后,会自动登录进入主界面

网站

以老苏的博客为例,将地址粘贴到 Bookmarks

Save,然后稍等一会儿

卡片的右下角有两个按钮

左边的是放大,可以在不离开当前页面的情况下预览网站

tags 的生成是需要时间的,也许突然间就有了

文字

将文字粘贴到 Bookmarks

保存之后

格式不太好

但是可以编辑

文字的 tags 生成的时间取决于文字的多少

图片

直接拖拽图片

因为没有设置 INFERENCE_IMAGE_MODEL,也就没法自动为图片生成 tags 了,只能手动标记

搜索

直接搜索,因为资源少,所以也看不出什么效果,理论上用了 meilisearch,搜索效果应该不会差

移动端和浏览器插件

在 https://docs.hoarder.app/quick-sharing,你能找到移动端下载地址

也能找到浏览器插件的安装地址

参考文档

MohamedBassem/hoarder-app: A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search
地址:https://github.com/MohamedBassem/hoarder-app

Hoarder
地址:https://hoarder.app/

Introduction | Hoarder Docs
地址:https://docs.hoarder.app/

Hoarder
地址:https://try.hoarder.app/signin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1839259.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis学习|Redis 是什么、Redis 能干嘛、Window安装Redis、Linux下安装Redis、Redis测试性能

Redis 是什么? Redis(Remote Dictionary Server),即远程字典服务! 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API. redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记…

DLP数据防泄密系统有什么功能?四款特别好用的DLP仿泄密系统

DLP(Data Loss Prevention,数据丢失防护)系统是一类专门用于保护组织内部数据不被非法访问、泄露或误用的安全解决方案。 这类系统通常具备以下关键功能: 1.数据识别与分类:自动发现并分类存储在网络、终端和云环境中…

vue3-openlayers 点击多边形弹框,高亮多边形,自定义属性传递,鼠标悬浮多边形上动态修改鼠标样式

本篇介绍一下使用vue3-openlayers点击多边形弹框,高亮多边形,自定义属性传递,鼠标悬浮多边形上动态修改鼠标样式 1 需求 加载天地图,polygon传递自定义属性标悬浮在polygon上,根据自定义属性,动态修改鼠标…

【Unity】Animator动画倒播,与StartRecording动画录制

一、Animator动画倒播 正常我们修改速度,只需要修改Animator.speed即可,但如果设置为负值,Animator系统会自动将其改为0值。 1.创建动画速度参数 (1)设置动画 我们需要创建表示速度的动画参数Speed,将其付给需要倒播的动画片段…

现货白银买卖分析:如何对买卖时机进行分析

现货白银交易是一种保证金交易品种,而且白银日常的市场波动比较大,所以笔者建议投资者在入场之前要对现货白银买卖进行分析,那具体怎么分析呢?实际上就是对买卖的机会进行分析,下面我们就来介绍具体的分析方法。 看K线…

leetcode:2848. 与车相交的点(python3解法)

难度:简单 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i,nums[i] [starti, endi] ,其中 starti 是第 i 辆车的起点,endi 是第 i 辆车的终点。 返回数轴上被车 任意部分 覆盖的整数点的…

移植案例与原理 - HDF驱动框架-OSAL

为了提升驱动代码在不同内核子系统间的可复用能力,OpenHarmony HDF(Hardware Driver Foundation)驱动框架提供了OSAL(Operating System Abstraction Layer)操作系统抽象层接口。OSAL为驱动程序提供了任务、定时器、互斥锁、信号量等基础库相关…

MFC扩展库BCGControlBar Pro v35.0

LINK : fatal error LNK1104: 无法打开文件“BCGCBPRO2800U140.lib” BCGControlBar v25.0版本 环境VS2015,在运行程序时出现提示错误 :LINK : fatal error LNK1104: 无法打开文件“BCGCBPRO2800U140.lib” 1、需要编译一下BGCControlBar,在…

全国第四轮软件工程学科评估结果

#计算机专业好吗##高考填志愿选择专业##计算机专业还能不能报# 又到了让各位家长头疼的高考填志愿时刻。 前几天的头条,张雪峰直播卖卡3小时入账2亿,为了孩子的前途,家长们确实是不惜重金。 作为毕业如今18个年头一直从事软件领域的老码农&am…

生鲜大单品营销的七项核心工作

生鲜大单品,是指通过选品、采购、营销、门店售卖等环节,达到高销量的单一产品或产品组合。从数据层面上来看,生鲜大单品是指能在该品类中创造20%到50%价值的商品,也就是常说的TOP商品。 做好生鲜大单品,我们需要做到以…

ArcGIS常用操作技巧,快快学起来

ArcGIS 常用操作技巧 快快学起来~ 一、影像格式的转换 例如把jpg格式转换为tiff格式,可以在arctoolbox中的转换工具-->到光栅-->光栅到其他多种格式 (conversiontools-->to Raster-->Raster to Other Format multiple)。 二、矢量化设置捕捉功能 在…

最新版首发 | 手把手教你安装 Vivado2024.1(附安装包)

Q:Vivado出2024版了!不知迪普微有没有对应的安装包呢? A:有的!回复“Vivado2024.1”即可获得相应安装包哦~ Q:好哒~但是我不会安装,可否安排一期安装教程? A:立马安排&…

Nginx之文件下载服务器

1.概述 在对外分享文件时,利用Nginx搭建一个简单的下 载文件管理服务器,文件分享就会变得非常方便。利 用Nginx的诸多内置指令可实现自动生成下载文件列表 页、限制下载带宽等功能。配置样例如下: server {listen 8080;server_name localhos…

微型导轨的摩擦系数分析!

微型导轨的摩擦力主要包括滑动摩擦力和滚动摩擦力,摩擦系数是一个关键参数,它决定了滑块在导轨上运动时所受到的摩擦力大小,摩擦系数越低,系统的运动效率和精度就越高,而微型导轨的摩擦系数是受多个因素影响的。 微型导…

空间复杂度的相关概念

1. 空间复杂度 空间复杂度(space complexity)用于衡量算法占用内存空间随着数据量变大时的增长趋势。 统计哪些空间: ● 暂存数据:用于保存算法运行过程中的各种常量、变量、对象等。 ● 栈帧空间:用于保存调用函数…

python学习笔记-08

面向对象基础(OOP)-上 1. 面向对象概述 面向过程:根据业务逻辑从上到下写代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象(object oriented programming):将数据与函数绑定到一起…

数据结构---二叉树的性质总结

第i层上的节点数 证明: 二叉树的最大节点数 证明: 第一层对应2^0个节点, 累加得到 这是一个等比数列 求和公式: 那么这里的n指的是一共有多少个相加 根据从b到a一共有b-a1个可推出 有(k-1)-01个相加 那么结果为: 叶节点与度为2的节点关系 证明: 假设二叉树的总节点数为 NNN…

wpfui:一个开源免费具有现代化设计趋势的WPF控件库

wpfui介绍 wpfui是一款开源免费(MIT协议)具有现代化设计趋势的WPF界面库。wpfui为wpf的界面开发提供了流畅的体验,提供了一个简单的方法,让使用WPF编写的应用程序跟上现代设计趋势。截止写这篇文章,该项目获得了6.7k …

LVGL开发教程-img图片

系列文章目录 知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 1. 显示静态图像 2. 显示动态图像gif 3. 文件系统使用 总结 前言 在嵌入式系统中,使用LVGL(Light and Versatile Graphics Library)显示静态和动态图像是一…

如何使用Indicator-Intelligence收集与威胁情报相关的域名和IPv4地址

关于Indicator-Intelligence Indicator-Intelligence是一款针对威胁情报的强大数据收集工具,该工具可以帮助广大研究人员通过威胁情报活动中生成的静态文件来查找与威胁行为相关的域名和IPv4地址。 需要注意的是,请在目标组织授权后再使用该工具进行安…