简单的自托管书签服务NeonLink

在这里插入图片描述

什么是 NeonLink ?

NeonLink 是一个简单且开源的自托管书签服务。它是轻量级的,使用最少的依赖项,并且易于通过 Docker 安装。由于系统要求较低,该应用程序非常适合部署在 RaspberryPI 上。

在这里插入图片描述

安装

在群晖上以 Docker 方式安装。

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

本文写作时, latest 版本对应为 v1.4.7

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 neonlink,并在其中建两个个子文件夹 backgrounddata,需要给 data 目录新增 Everyone 的读写权限

在这里插入图片描述

文件夹装载路径说明
docker/neonlink/data/app/data
docker/neonlink/background/app/public/static/media/background

端口

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

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

默认没有暴露端口

在这里插入图片描述

需要点 + 号自行添加

在这里插入图片描述

命令行安装

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

# 新建文件夹 neonlink 和 子目录
mkdir -p /volume1/docker/neonlink/{background,data}# 进入 neonlink 目录
cd /volume1/docker/neonlink# 修改目录权限
chmod 777 data# 运行容器
docker run -d \--restart unless-stopped \--name neonlink \-p 3433:3333 \-v $(pwd)/data:/app/data \-v $(pwd)/background:/app/public/static/media/background \alexscifier/neonlink:latest

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

version: '3'services:neonlink:image: alexscifier/neonlinkcontainer_name: neonlinkrestart: unless-stoppedports:- 3433:3333volumes:- ./data:/app/data- ./background:/app/public/static/media/backgroundenvironment:- TZ=Asia/Shanghai

然后执行下面的命令

# 新建文件夹 neonlink 和 子目录
mkdir -p /volume1/docker/neonlink/{background,data}# 进入 neonlink 目录
cd /volume1/docker/neonlink# 修改目录权限
chmod 777 data# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3433 就能看到注册界面

注册完成后还需要登录

在这里插入图片描述

登录成功后的主界面

在这里插入图片描述

Add bookmark

还是以老苏的博客为例,只要输入地址,就能自动获取到 TitleDescription

在这里插入图片描述

添加完成

Settings --> - Groups 中可以添加 categories,而且可以为每个分类设置不同的颜色

修改之前添加的 link

在这里插入图片描述

修改分类之前

在这里插入图片描述

修改分类之后

是不是挺简单的?

在这里插入图片描述

参考文档

AlexSciFier/neonlink: Simple self-hosted bookmark service.
地址:https://github.com/AlexSciFier/neonlink

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

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

相关文章

【ES6】

ES6 1 ES6简介1.1 什么是ES61.2 为什么使用ES6 2 ES6的新增语法2.1 let2.2 const2.3 let、const、var的区别2.4 解构赋值2.4.1 数组解构2.4.2 对象解构 2.5 箭头函数2.6 剩余参数 3 ES6的内置对象扩展3.1 Array的扩展方法3.1.1 扩展运算符(展开语法)3.1.2 构造函数方法&#xf…

Docker 部署 Bitwarden RS 服务

Bitwarden RS 服务是官方 Bitwarden server API 的 Rust 重构版。因为 Bitwarden RS 必须要通过 https 才能访问, 所以在开始下面的步骤之前, 建议先参考 《Ubuntu Nginx 配置 SSL 证书》 配置好域名和 https 访问。 部署 Bitwarden RS 拉取最新版本的 docker.io/vaultwarden…

vite + vue3 的项目中使用 vitest 做单元测试(仅供参考)

一、配置文件 // vitest.config.tsimport { fileURLToPath } from node:url import { mergeConfig, defineConfig } from vite import { configDefaults } from vitest/config // import viteConfig from ./vite.configimport vue from vitejs/plugin-vue import vueJsx from …

第一百五十二回 自定义组件综合实例:游戏摇杆三

文章目录 内容回顾优化性能示例代码我们在上一章回中介绍了 如何实现游戏摇杆相关的内容,本章回中将继续介绍这方面的知识.闲话休提,让我们一起Talk Flutter吧。 内容回顾 我们在前面章回中介绍了游戏摇杆的概念以及实现方法,并且通过示例代码演示了实现游戏摇杆的整个过程…

Windows安装cuda和cudnn教程最新版(2023年9月)

文章目录 cudacudnn cuda 查看电脑的cuda最高驱动版本(适用于N卡电脑-Nvidia) winR打开命令行,输入nvidia-smi 右上角cuda -version就是目前支持的最高cuda版本,目前是12.2 nvidia官网下载cuda 下载地址:https://d…

基于eBPF的安卓逆向辅助工具——stackplz

前言 stackplz是一款基于eBPF技术实现的追踪工具,目的是辅助安卓native逆向,仅支持64位进程,主要功能如下: hardware breakpoint 基于pref_event实现的硬件断点功能,在断点处可读取寄存器信息,不会被用户…

C/C++自定义读取ini、cfg配置文件

常见cfg、ini文件如下: [config1] setting192.168.1.1 [config2] setting192.168.1.2 [config3] setting192.168.1.3 示例代码使用 // opt_ini.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include "cfg.h"…

短信登录功能如何实现?

简介&#xff1a; 在日常生活中我们登录/注册某些网站/APP是通常可以选择 密码登录和手机号登录。 为什么手机号发送后会有验证码返回呢&#xff1f; 网站如何识别我的验证码是否正确&#xff1f; 如果我的个人网站也想要实现短信登录功能&#xff0c;具体该如何实现&#xff1…

获取文件创建时间

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Java源码 public void testGetFileTime() {try {String string "E://test.txt";File file new File(string);Path path file.toPath();BasicFileAttributes ba…

RedHat 服务器安装NGINX

参照官方文档&#xff1a;nginx: Linux packages 按顺序操作&#xff1a; 安装前提&#xff1a; sudo yum install yum-utils 设置yum仓库&#xff08;执行命令的时候会自动新建文件&#xff09;&#xff1a; sudo vi /etc/yum.repos.d/nginx.repo 粘贴下面的内容保存退出…

一个电子信息工程学生的历程和内心感想

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、我对大学三年专业课程的理解二、我为什么本科选择研究嵌入式这个方向&#xff1f;1.可以把理论变为实际应用——兴趣是最好的老师。2.嵌入式方向可以打的比赛非…

如何把利用paddlepaddle导出的json文件转化为yolo或者voc文件

目录 1. 修改源码&#xff0c;让模型能够生成出对于单个图像的标注。 2. 把数据转为yolo格式 3.把yolo格式转化为xml格式 这两天想偷懒&#xff0c;想让模型先在数据上标一遍&#xff0c;然后我再做修正&#xff0c;主要是图个省事。由于我们主要是利用paddle,模型也是基于p…

冒泡排序与选择排序(最low的两兄弟)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言&#xff1a; 在我们的生活中&#xff0c;无处不在用到排序&#xff0c;比如说成绩的排名&#xff0c;淘宝&#xff0c;京东等等商品在各个方面的排序&#xff0c;这样看来一个好的算 法很重要&#xff0c;接下来我们要先…

文件操作和IO

文章目录 一、文件系统二、文件类型三、文件系统操作3.1File类的属性3.2File类的构造方法3.3File类的方法 四、文件内容操作4.1Reader类里的函数4.2Writer类里的函数4.3InputStream类里的函数4.4OutputStream类里的函数4.5字节流转换为字符流 一、文件系统 1、操作系统会把很多…

【刷题-牛客】链表内指定区间反转

链表定区间翻转链表 题目链接题目描述核心思想详细图解代码实现复杂度分析 题目链接 链表内指定区间反转_牛客题霸_牛客网 (nowcoder.com) 题目描述 核心思想 遍历链表的过程中在进行原地翻转 [m,n]翻转区间记作子链表,找到子链表的 起始节点 left 和 终止节点 right记录在…

爬虫,初学者指南

第一篇&#xff1a;入门测速request模块的基本使用以www.douban.com为例 import requests url "http://www.douban.com" heards {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0…

组队竞赛(int溢出问题)

目录 一、题目 二、代码 &#xff08;一&#xff09;没有注意int溢出 &#xff08;二&#xff09;正确代码 1. long long sum0 2. #define int long long 3. 使用现成的sort函数 一、题目 二、代码 &#xff08;一&#xff09;没有注意int溢出 #include <iostream&g…

自动化测试的定位及一些思考

大家对自动化的理解&#xff0c;首先是想到Web UI自动化&#xff0c;这就为什么我一说自动化&#xff0c;公司一般就会有很多人反对&#xff0c;因为自动化的成本实在太高了&#xff0c;其实自动化是分为三个层面的&#xff08;UI层自动化、接口自动化、单元测试&#xff09;&a…

Sourcetree 无法打开/闪退问题

Sourcetree在某次开机以后无法打开或者是闪退。 Sourcetree是一款Git的可视化图形管理界面,提供了Windows和Mac的免费Git客户端,很方便的管理项目的代码版本 出现问题的环境 win11&#xff0c;sourcTree版本&#xff1a;3.4.12.0 在开始菜单搜索sourcetree&#xff0c;打开…

线上论坛之单元测试

对线上论坛进行单元测试的测试报告 源码地址&#xff1a;https://gitee.com/coisini-thirty-three/forum 一、用户部分&#xff08;UserServiceImplTest&#xff09; 1.创建普通用户 测试名称 createNormalUser() 测试源码 Test void createNormalUser() { // 构造用户 User …