anchr

2025-12-07 0 416

anchr

anchr是用于Internet上常见任务的小工具箱,包括书签链接缩短图像上传

特征

  • Link Shortener
  • 可搜索的书签集
  • 加密图像上传,使用cryptojs
  • 恶意链接检查,使用安全浏览API
  • 托管和开源
  • 在anchr .io托管,符合GDPR的服务
  • 官方Android应用
  • 铬和Firefox浏览器扩展
  • 普罗米修斯指标
  • 与Sharex集成
  • OAuth 2身份验证(Google,Facebook,…)
  • 电报机器人(@ anchr bot)

如果您喜欢这个项目,请考虑赞助它!

?描述

有一天,我认为有一个想法的想法是有用的,它可以从任何地方访问任何网络链接或书签(例如您在Chrome或Firefox中的书签),而无需同步您的浏览器配置文件。就像您在另一台PC上的某个地方一样,在Internet上找到一篇有用的文章,并希望快速保存它以备以后在家中。这就是anchr的集合功能所做的。它保存了链接 – 具有可选的描述,可更轻松地搜索并分为类别 /集合。

第二个功能是上传图像。您可以轻松地从计算机或移动设备上传一张或多张照片,并将其发送给朋友,或将其包括在论坛帖子等中。与anchr的图像托管有关的特殊之处是,用户有机会使用密码加密映像。结果,没有密码的人都不会看到他们的照片的内容。

最后一个功能是短链接– 实际上与您从goo.gl或bit.ly中知道的那些没有什么不同。如果您有一个很长的网络链接,其中包括许多查询参数,访问令牌,会话ID,特殊字符等,并且想共享它们,则很有用。通常,特殊字符打破链接或您的聊天应用程序的超链接最大长度。或者,您只想在文档或电子邮件中保持清晰度。在这种情况下,尽可能短的链接可能会非常有帮助。此外,还针对Google安全浏览API检查了短链接,以防止您的网站参考网站钓鱼网站之类的。

anchr的重点是轻松和快速使用 – 短加载时间,平面菜单层次结构等。还有一个Chrome扩展名,您可以直接从网站上保存或缩短链接。

?如何运行?

先决条件

为了自己托管anchr ,您需要一些东西。

  • node.js> = 21.x
  • mongodb> = 6.x
    • 替代性1:Mongo Atlas(托管云Mongodb)
    • 替代2:ferretdb(带有邮政或sqlite)

数据库设置

anchr \’ as your database
$ > db.createUser({user: \’ anchr \’, pwd: passwordPrompt(), roles: [{ role: \’dbOwner\’, db: \’ anchr \’ }]}); // create user \’ anchr \’
$ > exit\”>

$ mongosh
$ > use anchr ;  // choose \' anchr \' as your database
$ > db.createUser({user: \' anchr \' , pwd: passwordPrompt (), roles: [{ role: \' dbOwner \' , db: \' anchr \' }]});  // create user \' anchr \'
$ > exit

配置

  1. $ git clone https://gith*u*b.c*om/muety/anchr
  2. .env.example复制到.env并编辑内容以设置环境变量:
    • PORT :启动服务器的TCP端口(默认: 3000
    • LISTEN_ADDR :IPv4地址,使服务器在聆听(默认值: 127.0.0.1 )上
    • anchr _PUBLIC_URL :托管实例的公共基础URL(无尾斜线)(默认: http://localhos*t**:3000
    • anchr _DB_USER :mongodb用户名(默认: anchr
    • anchr _DB_PASSWORD :mongoDB密码(必需
    • anchr _DB_HOST :mongodb主机名(默认: localhost
    • anchr _DB_PORT :MONGODB端口(默认: 27017
    • anchr _DB_NAME :mongoDB数据库名称(默认: anchr
    • anchr _UPLOAD_DIR :通往文件系统目录的绝对路径(必须存在!),以将图像上传到(默认值: /var/data/ anchr
    • anchr _SECRET :a(最好是长),随机字符序列,用于JSON Web令牌(默认: shhh
    • anchr _LOG_PATH :访问日志的绝对文件路径(必须存在目录!)(默认值: /var/log/ anchr /access.log
    • anchr _ERROR_LOG_PATH :错误日志的绝对文件路径(必须存在目录!)(默认: /var/log/ anchr /error.log
    • anchr _GOOGLE_API_KEY :Google API的API键(安全浏览检查输入短链接需要),您可以从开发人员控制台中获得(默认值: \'\' ,留空白以禁用安全浏览检查)
    • anchr _FB_CLIENT_ID and anchr _FB_SECRET :Facebook登录的oauth凭据(默认值: \'\' ,留空白以禁用Facebook登录)
    • anchr _GOOGLE_CLIENT_ID and anchr _GOOGLE_SECRET :Google登录的oauth凭据(默认值: \'\' ,留空白以禁用Google登录)
    • anchr _ALLOW_SIGNUP :是否允许注册新用户(默认: true
    • anchr _VERIFY_USERS :是否要求新用户使用电子邮件链接激活其帐户(需要邮件)(默认: true
    • anchr _BASIC_AUTH :是否允许使用HTTP BASIC AUTH(默认值: true )进行身份验证
    • anchr _EXPOSE_METRICS :是否在公共/api/metrics端点下公开Prometheus指标(默认值: false
    • anchr _MAIL_SENDER : anchr .IO的邮件中的发件人地址(默认: anchr .io <noreply@ anchr .io>
    • anchr _SMTP_HOST :用于发送邮件的SMTP服务器主机(留空邮件)
    • anchr _SMTP_PORT :SMTP服务器端口(默认: 587
    • anchr _SMTP_TLS :是否要与SMTP服务器建立TLS连接(不要与StartTL相混淆)(默认: false
    • anchr _SMTP_USER :SMTP服务器登录用户名
    • anchr _SMTP_PASS :SMTP服务器登录密码
    • anchr _MAILWHALE_URL :将其用于邮件而不是smtp的邮件实例的公共URL(默认: https://mai*lwha*le.*dev ://mailwhale.dev)
    • anchr _MAILWHALE_CLIENT_ID :身份验证的mailwhale客户端ID
    • anchr _MAILWHALE_CLIENT_SECRET :邮件客户端秘密验证
    • anchr _TELEGRAM_BOT_TOKEN :电报机器人令牌(来自@botfather)。空白以禁用电报集成。
    • anchr _TELEGRAM_URL_SECRET :用于安全目的的秘密将电信网hook路径附加到telegram webgram路径。可以是任何随机字符串。

跑步

设置

  1. $ source env.sh
  2. $ corepack enable
  3. $ yarn
  4. $ cd public && ../node_modules/.bin/bower install && cd ..

选项1:本地运行

用于发展
  1. 运行后端$ yarn start
  2. 运行前端$ yarn start:frontend
  3. 访问http:// localhost:9000,享受现场重新加载
在生产中
  1. $ yarn run build (构建前端)
  2. $ yarn run production

选项2:与Docker一起运行

  1. source env.sh
  2. docker-compose up

?电报机器人设置

  1. 使用@botfather创建一个新机器人
  2. configure anchr _TELEGRAM_BOT_TOKENanchr _TELEGRAM_URL_SECRET变量
  3. 配置Webhook:
curl https://api.te*legr**am.org/bot < BOT_TOKEN > /setWebhook ? url=https:// < anchr_URL > /api/telegram/updates/ < URL_SECRET > 

?工具

Sharex(仅Windows)

您可以将anchr与Windows上的sharex集成在一起,并将其用作图像上传短链接的自定义目标。

  1. 生成http Basic auth hash base64 hash of youremail@example.org:yourpassword
    • 选项1(linux): echo \"youremail@example.org:yourpassword\" | base64
    • 选项2:使用在线工具
  2. 将您新生成的哈希插入
    • sharex-images.json
    • sharex-shortlinks.json
  3. 将两个文件作为Sharex中的自定义上传器导入

?项目历史

该项目的起源在2014年,当时平均堆栈是Sh*t。这是作者的第一个真正的网络项目,也是一个很好的学习机会。但是,从那时起,该项目就一直被视为主要完整的。依赖偶尔会更新。由于该项目始于几年前,因此有些部分仍基于老式的JavaScript ES5语法,以及grunt和Bower等老式工具。当然,这不再是Web开发人员的最新技术。但是,为了与现有代码保持一致,原始代码样式仍应在新的贡献中遵循。更新:就在最近,所有后端侧代码均已重构为现代JavaScript语法以简化开发。

?‍开发人员注意

API测试

npm install -g newman

anchr.postman_collection.json\” \\
-e \” anchr Environment.postman_environment.json\” \\
–env-var \”test_password=ssshhhh\”\”>

newman run \" anchr .postman_collection.json \" \\
    -e \" anchr Environment.postman_environment.json \" \\
    --env-var \" test_password=ssshhhh \"

升级包装

 # Backend
$ yarn plugin import interactive-tools
$ yarn upgrade-interactive

# Frontend
$ cat bower.json | jq   \' .dependencies | keys[] \' -r | xargs npx bower update

?许可证

GNU通用公共许可证V3(GPL-3) @FerdinandMütsch

下载源码

通过命令行克隆项目:

git clone https://github.com/muety/anchr.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 anchr https://www.zuozi.net/31773.html

CodeEncryption
上一篇: CodeEncryption
PdoOne
下一篇: PdoOne
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务