这是NAS系列文章之一,因闲来无事,搭建了一个NAS,现在决定搭建一个笔记软件,类似某道云笔记、某知笔记、onenote等等,能够实现90%的商业方案的功能,同时免除广告的痛苦(这些笔记软件的年费是真的贵)。工作中有挺多资料需要整理,以前用了挺长时间的evernote、某道云笔记,没有办法完全保证数据安全,更有这样或那样的权限限制,感觉十分糟心。
废话不多说,Let's do it.
从awesome-selfhosted上看到,目前的可行方案还挺多的,
经过一番调查,选择了leanote这款,主要是项目的star够多,支持markdown,并且用go语言写的,常规使用性能绝对足够了,目前还没有停止维护的迹象。作者大概是个中国人,因为官网的搭建方法有中文和英文两个版本,对于我这种英语渣渣来说挺友好的。官方也提供了中文版的商业服务,在 http://leanote.com 可以看到,定价不算离谱。
此外,leanote的UI挺好看的,移动端适配也不错,作者的美学造诣不错哦。
leanote是go语言写的服务端,搭建起来应该不复杂,奈何数据库使用了MongoDB,这有点麻烦。linux服务器普遍搭建的mysql、mariadb都无法使用,还需要另外搭建MongoDB。
机智的我立马想到看看docker服务端,谷大哥搜了一下,排名第一的是官方出的docker文件,但点开后发现已经不提供技术支持了。
哔了个狗,难道是推出商业服务之后就不再维护docker版本?
万能的互联网也有其他人制作了docker镜像,随意选了下方的链接
https://github.com/mariusv/docker-leanote
使用下面的命令创建所需的目录
mkdir -p ./leanote/data/{files,mongodb_backup,public/upload}
创建一个名字叫docker-compose.yml
的文件
内容写:
version: '2'
services:
db:
restart: always
container_name: mongodb_server
image: mongo:3.2.3
volumes:
- ./leanote_data:/data/db
server:
image: mariusv/leanote
environment:
- SITE_URL="http://localhost:9000"
depends_on:
- db
restart: always
ports:
- 9000:9000
links:
- db:mongodb
container_name: leanote_server
volumes:
- ./leanote/data:/leanote/data
使用docker-compose
构建镜像
docker-compose up -d
docker exec -it leanote_server mongorestore -h db -d leanote --dir /leanote/leanote_install_data
如此,leanote的服务已经运行起来了,内网是可以访问的。
使用默认用户名和密码登录:
用户名:admin
密码:abc123
记得登录之后要改密码
现在登录http://192.168.x.x:9000/login 将192.168.x.x 换为你的内网NAS的ip地址即可登录。
登录完成后:
于是,在内网已经可以愉快的玩耍了,但要想在地球的任何角落都可以访问笔记软件,就需要准备内网穿透。
内网穿透,我这里使用的是花生壳,毕竟花生壳作为十几年的内网穿透以及动态域名解析服务商,在产品优化方面和稳定性做得非常成熟了,简单易用。其中有免费的端口功能,如果有更多的端口转发和速度要求,可付费升级。毕竟公司有收入,才能持续提供服务。有经济能力的用户都会体面的选择为正版付费。
将内网9000端口映射到域名的80端口
即可使用域名登录
我们使用docker搭建了leanote的笔记服务,并使用内网穿透实现公网访问笔记服务,也许可以省掉一笔买云笔记会员的钱,o( ̄︶ ̄)o。欢迎在评论区留言!
转载于:https://blog.51cto.com/14362062/2401881