My-BookMark 一款免费开源的多用户在线书签管理工具

简介

My-BookMark 是在线的书签管理工具,帮助你快速记录你喜欢的网站,并可以随时随地查看这些站点,而不必拘泥于使用的浏览器。无论在什么地方,只要能接入网络,就能打开属于你自己的网络书签,看到自己收藏的页面网址。

项目地址:https://github.com/luchenqun/my-bookmark

体验网址:https://b.lucq.fun/#/

  • 体验账号:test
  • 密码:123456

功能

  • 需要注册账号用户。
  •  在书签分类里面,可以更新分类,删除分类,新增分类,对分类显示进行排序。分类的标签默认按照添加日期展示,但是可以点击表格的标题,按照点击次数,添加日期,最后点击从大到小进行排序。
  •  可以按照指定添加时间段,指定分类目录,指定网址关键字等进行查询。
  •  添加书签的时候,会自动获取title,供用户编辑。其中:Insert键打开添加页面,再次按Insert键保存书签,Esc取消添加。
  •  可以导入Chrome的书签导出文件,暂时做在设置里面。
  •  书签可以作为公有或者私有,公有可供所有人搜索。
  •  可以将搜索到其他用户的书签转存为自己的书签。
  •  可以将书签导出来,然后导入到浏览器。
  •  在热门标签里面,有在网上找的热门书签。
  •  新增备忘录功能,有时候随手要做点纪录,就方便了。任意界面按快捷键A增加备忘录。双击备忘录可查看详情!亦可分享备忘。
  •  在设置的全局链接,可设置快捷键,用来在任何页面,快速打开设置的链接。
  •  增加Chrome插件,可在任意界面快速添加书签至系统。如果你无法访问该插件,可以按照Chrome如何安装插件(开发版本/自制)方法安装插件,插件请到bookmark-plugin下载

安装

基于原版修改版

Docker安装

docker run -d -p 2000:2000 -p 3306:3306 mcstudio/mybookmark

自用docker

官方原版

Docker安装

此部署方式适合新手。

如果你的Linux环境中没有安装Docker环境。那么请先执行如下命令安装Docker环境。

curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

安装好docker环境之后,执行命令 

docker run -d -p 2000:2000 -p 3306:3306 luchenqun/mybookmark

安装并启动应用即可。然后在浏览器输入: http://你的IP:2000/ 即可访问书签应用。安装好的环境默认了一个账号test,密码为123456。

如果MySQL需要远程访问,那么你需要进入容器之后更新 /etc/mysql/mysql.conf.d/mysqld.cnf,将绑定地址 127.0.0.1 改为 0.0.0.0。然后执行命令service mysql restart重启数据库服务。安装后的 MySQL默认有两个账户,一个是root账户,无密码。一个是在文件/etc/mysql/debian.cnf有个账号密码。当然这些账号都是只能在本地访问的,你需要手动创建一个可供远程访问的账号。

另外,有人做了arm架构的docker,如果有需要的请按如下命令执行安装

docker run -itd --name mybookmark -p 2000:2000 -p 3306:3306 740162752/bookmark

手动安装

这种适合动手能力比较强的人员。

1、安装MySQL数据库。如果不会,请戳教程MySQL 数据库安装教程。有点需要注意的是,MySQL的版本至少要是5.6。否则执行schema.sql文件会出错。
2、新建一个数据库名,使用MySQL将根目录下面的schema.sql文件执行一遍,创建数据库表格。有个问题尤其要注意:数据库一定要使用UTF-8的编码,否则执行一些汉字的sql语句会出错!如果是Ubuntu,大概过程如下。

mysql -u root -p // 使用root账号进入mysql数据库。按回车之后输入安装时候root的密码。
CREATE DATABASE mybookmarks DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; // 创建mybookmarks数据库。
CREATE USER 'test'@'%' IDENTIFIED BY '123456';// 创建一个以用户名为test,密码为123456的用户
GRANT ALL ON *.* TO 'test'@'%';  // 给刚创建的test用户数据库所有的权限
use mybookmarks; //选择刚创建的数据库。
source /home/lcq/schema.sql; // 执行schema.sql文件创建数据库表格。注意,将路径换为你schema.sql所在路径。   

3、如果你是全新部署,你可忽略此步骤。如果之前部署过此应用,那么需要执行update.sql文件需要升级。注意:升级之前,请务必备份数据库!确认是否需要运行此升级sql文件也很简单,看一下你之前的数据库mybookmarks下面有没有tags_bookmarks这个数据表。如果有,那么需要执行。执行方法还是如上类似source /home/lcq/update.sql;
4、安装Node.js。Node.js版本至少要求12.0以上。不会的话,请按照上面步骤1提供的方法自行解决。
5、克隆代码git clone git@github.com:luchenqun/my-bookmark.git,切换到项目根目录下面,执行npm install安装package。
6、在根目录,更新pm2.json文件,只需要更新cwd项即可。该项为你项目所在的路径。更新src/config/adapter.js下面exports.model关于你的MySQL的账号密码信息。注意,该账号必须要有写数据库的权限!
7、如果上面的都做好了,执行命令npm install pm2 -g安装pm2模块。再执行命令pm2 startOrReload pm2.json。以后如果项目代码有升级,更新代码之后,执行此命令即可重启该应用。
8、在浏览器里面输入:http://你的IP:2000/
9、如果需要域名部署的话,推荐使用nginx作为HTTP和反向代理服务器,根目录有一份nginx.conf文件,你只需要更新root项即可使用。相关知识,请自行百度。

预览

数据库修改

因为数据库在容器内,而且没有持久化,所以数据库的备份可能用客户端会比较方便,但默认情况下,容器内的 MySQL 不支持远程访问,需要我们做一些处理:

进入容器之后更新 /etc/mysql/mysql.conf.d/mysqld.cnf,将绑定地址 127.0.0.1 改为 0.0.0.0

因为容器内未带编辑器,所以我们只能将 mysqld.cnf 拷贝到容器外编辑完后再拷贝回去,在 SSH 客户端中执行👇下面的命令:

docker container list   //查看容器ID
docker exec -it 容器ID /bin/bash
vim /etc/mysql/mysql.conf.d/mysqld.cnf   //如果提示vim找不到则使用命令 apt-get update && apt-get install vim -y   安装在容器内安装编辑器

然后修改127.0.0.1 改为 0.0.0.0,wq保存退出编辑器后重启数据库:

service mysql restart

创建 MySQL 远程访问的账号、密码,在容器的 终端机 中执行👇下面的命令:

# 用 root 登录,无密码
mysql -u root -p

# 创建远程访问账号 mbm ,密码 123456
CREATE USER 'mbm'@'%' IDENTIFIED BY '123456';

# 授予用户在所有数据库上的所有权限
GRANT ALL PRIVILEGES ON *.* TO 'mbm'@'%' WITH GRANT OPTION;

# 刷新系统权限表
flush privileges;

# 退出
quit

然后使用软件登陆数据库进行管理即可!