吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14777|回复: 68
收起左侧

[Windows] 开源Markdown笔记软件Joplin,可自己搭建云笔记

    [复制链接]
laobenlang 发表于 2022-5-19 20:37
本帖最后由 laobenlang 于 2022-5-19 20:42 编辑

本人已经在论坛排重,近期无人分享本文中涉及的软件Joplin和webdav。


写在前面:
1.本文为什么发在精品软件区?
   --主要以分享软件为主,所有软件皆为开源免费,不是本人编写。遇到问题可以直接在github上提单。
2.本文初衷?
-- 本人不爱学习,到现在为止,python,java,JavaScript,C++的各种语法已经记混了,为了不用记忆,常年依赖笔记软件。在单位和家中笔记不同步,这个很让我恼火,先后用过印象,坚果,有道云,百度云等软件,但是收费不开心!限流不开心!密码会被上传不开心!
    为什么不能自己搞个服务器,自己同步笔记呢。
    然后对比各种各样的私有云、支持同步笔记等软件。
    终于我的笔记软件一路升级,从【eDiary】->【EssentialPIMPro(收费,可终身买断)】->【Joplin】。

3.自己搭建云笔记优势?
  -- 安全、不限速、不限空间。啥都自己说了算。


4.主要用到的软件?
  -- 笔记主体 Joplin
      服务器  自家电脑(打电话给电信宽带要的公网IP)
      网盘软件 webdav




下面正题:
a.自己搭建云笔记,你得有个服务器。
    真正想要数据自由,你得有个自己的服务器,这个服务器最好是有公网IP的局域网主机。
    路由器中直接吧dmz指向自己电脑即可。
    PS:家中有宽带,可以尝试打客服,直接选宽带业务,说我家装了个监控,需要个外网IP,不需要固定地址,动态公网IP就行了。
    另外这个动态IP,每次拨号,地址会变。你如果不想动不动同步不了,最好自己申请个域名,然后写个脚本自动更新解析,我用的阿里云域名,python写个程序,开机自启动,每隔一小时检测下外网IP和域名解析IP是否一致。

自动解析IP
[Python] 纯文本查看 复制代码
import requests

class myIP:
    @staticmethod
    def getMyIp():
        data = requests.get('https://ip.tool.lu/')
        text = data.text

        return text.split('\n')[0].strip().split(':')[1].strip()


[Python] 纯文本查看 复制代码
import time, datetime, os
import logging

from lib.aliyunDNSTools import Sample
from lib.DNSRecord import *
from lib.myip import *
loglevelflag = logging.INFO
logformatflag = "%(asctime)s %(name)s:%(levelname)s:%(message)s"


logging.basicConfig(filename="run.log", filemode="w", format=logformatflag, level=loglevelflag)
console = logging.StreamHandler()
console.setLevel(loglevelflag)
formatter = logging.Formatter(logformatflag)
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)






class mainRunner :
    oldip = ''
    myip = ''
    needCheckDNS = False

    def __init__(self):
        try:
            self.oldip = myIP.getMyIp()
            self.needCheckDNS = True
        except:
            print(">>>" +datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') + "初始化获取IP失败!")
            logging.info("初始化获取IP失败!")
            pass

    def checkIPChange(self):
        try:
            self.myip = myIP.getMyIp()
            print(">>>" +datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') +' oldip:' + self.oldip + ',newip:' + self.myip)
            logging.info(' oldip:' + self.oldip + ',newip:' + self.myip)
            if len(self.myip) < 1:
                return False
            return self.myip != self.oldip
        except :
            print(">>>" + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') +"检测IP变化时,获取IP失败!")
            logging.info("检测IP变化时,获取IP失败!")
            return False



    def checkDNS(self):
        try:
            retdata = Sample.getDNSRecord()
            dns = DNSRecord()
            dns.loadFromJson(retdata['body']['DomainRecords']['Record'][0])
            # print(dns)
            if dns.Value != self.myip:
                dns.Value = self.myip
                Sample.updateDNSRecord(dns)
            self.needCheckDNS = False
        except :
            print(">>>" +datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') +'检测更新DNS时报错!')
            logging.info("检测更新DNS时报错!")

    def run(self):
        while True:
            tempFlage = self.checkIPChange()
            self.needCheckDNS = tempFlage or self.needCheckDNS

            if self.needCheckDNS:
                self.checkDNS()
            print(">>>" + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') +"检测完成,开始休眠^_^")
            logging.info("检测完成,开始休眠^_^")
            time.sleep(60*60*1)
            # time.sleep(1)

















b.有了服务器,你得启动webdav服务。
   提供webdav服务的软件有很多,不少私有云盘都带着,我通过docker装过可道云,装过seafile,装过nextcloud。功能比较傻瓜,性能是真的差,同步慢的要死,慢慢慢慢慢慢慢慢慢慢慢死了。
   我找了个Github开源的一个,单纯提供webdav服务的程序,地址在这里(https://github.com/hacdias/webdav)
   下载完就一个exe文件,然后自己写个yaml就可以启动了,看看readme,半分钟搞定。


yaml配置:
[XML] 纯文本查看 复制代码
# 监听任意网卡,多网卡可指定对应ip
address: 0.0.0.0
port: 8888
# 如果无需验证填 false
auth: true
# 如果不需要 https 则填 false
tls: false
# https证书和密钥,如果 tls 为 false,cert 和 key 不需要
cert: D:/XXXX.pem
key: D:/XXXX..key
# 访问前缀,建议默认
prefix: /
 
# 如果 auth 为 false 生效,文件共享的路径
scope: E:/workspace/webdav
# 是否允许修改
modify: true
rules: []
 
# 跨域设置
cors:
  enabled: true
  credentials: true
  allowed_headers:
    - Depth
  allowed_hosts:
    - http://localhost:888
  allowed_methods:
    - GET
  exposed_headers:
    - Content-Length
    - Content-Range
 
# 用户信息,如果 auth 为 true 生效
users:
  - username: user
    password: 123
    scope: E:/XXXX/Joplin


c.安装使用Joplin,笔记软件。
   打开 工具---选项---同步,选择webdav,URL填写你的服务器地址或者域名地址。
[HTML] 纯文本查看 复制代码
http://www.xxxx.com:8888/

  webdav用户名密码在yaml里面配置的。
  保存,走你~~~

下载地址:
打不开的可以打开下steam++加速器。
joplin:
https://github.com/laurent22/joplin
webdav软件:
https://github.com/hacdias/webdav

免费评分

参与人数 23吾爱币 +21 热心值 +21 收起 理由
cxy007 + 1 + 1 热心回复!
图图图 + 1 + 1 steam++是否有浏览器劫持现象?
lengyan5i + 1 + 1 谢谢@Thanks!
kakarot1987 + 1 + 1 热心回复!
5698741236ls + 1 + 1 我很赞同!
beichen1031 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
gz3300 + 1 + 1 谢谢@Thanks!
wqrt + 1 我很赞同!
diwuc + 1 + 1 我很赞同!
macolma + 1 + 1 谢谢@Thanks!
天上长 + 1 + 1 我很赞同!
MC阿虎 + 1 + 1 我很赞同!
chenshiguo + 1 谢谢@Thanks!
hx851112 + 1 + 1 这几天我也在找这样的软件,我的方案是树莓派+Cloudreve(本身也是网盘比较.
立刻 + 1 + 1 谢谢@Thanks!
大恩恩 + 1 joplin+坚果云 简直绝绝子,然后偶回应楼下,有app
kk1212 + 1 + 1 谢谢@Thanks!
Roy430699 + 1 + 1 我很赞同!
Goldrepo + 1 我很赞同!
dogox + 1 + 1 我很赞同!
吹风哥 + 1 + 1 感谢分享,很想深入探究下这个项目
shadowppp + 1 + 1 感谢大佬,有app就更好了。。
旺仔大馒头 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

  • · Aarow|主题: 988, 订阅: 304
  • · 好帖|主题: 549, 订阅: 87

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

qwxa 发表于 2022-5-19 22:37
只是joplin的话,可以直接用onedrive的,不用找公网IP自建webdev
osmake 发表于 2022-5-23 10:40
joplin仍然有一个问题无法解决,你上传的图片无法从云端删除,按照这个软件的逻辑,是把你上传的图片按照他的格式保存一份(webdav或者自定义盘),然后再按照另外一个格式保存一份在系统盘,你删除的笔记在他两个保存的地方都不会同步删除,只能通过joplin客户端,导出所有笔记,然后把两个位置的文件全删除,再导入,再同步。
因此,正常使用下不会出现什么问题。但如果有大量图片存入,内存只会越用越多,只能通过手动删除。
详情内容github有,时间18,20年的提问
alancj 发表于 2022-5-20 15:21
qwxa 发表于 2022-5-19 22:37
只是joplin的话,可以直接用onedrive的,不用找公网IP自建webdev

同步慢,而且文件多,附件大了之后会卡着同步不了,特别是图片
smallmouse228 发表于 2022-5-19 20:52
感谢分享!!!
旺仔大馒头 发表于 2022-5-19 20:52
第一次沙发,支持一下
oyes001 发表于 2022-5-19 20:57
先支持一下,感谢楼主的分享,学习学习
tian5i 发表于 2022-5-19 21:18
用Resilio Sync岂不是更方便?
柳岸红尘客 发表于 2022-5-19 21:26
感谢分享
RileyW 发表于 2022-5-19 21:31
感谢分享!!!
夏夜吉他 发表于 2022-5-19 21:39
先支持后欣赏!
Khazars07 发表于 2022-5-19 21:48
感谢楼主的分享,学习学习
gdcnjs 发表于 2022-5-19 21:56
看着不错,留着备用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-23 21:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表