吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15389|回复: 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] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
9
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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 监听任意网卡,多网卡可指定对应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] 纯文本查看 复制代码
1
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!
Frankel + 1 + 1 我很赞同!
Goldrepo + 1 我很赞同!
dogox + 1 + 1 我很赞同!
吹风哥 + 1 + 1 感谢分享,很想深入探究下这个项目
shadowppp + 1 + 1 感谢大佬,有app就更好了。。
旺仔大馒头 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

  • · Aarow|主题: 970, 订阅: 305
  • · 好帖|主题: 551, 订阅: 86

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

推荐
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
感谢分享!!!
3#
旺仔大馒头 发表于 2022-5-19 20:52
第一次沙发,支持一下
4#
oyes001 发表于 2022-5-19 20:57
先支持一下,感谢楼主的分享,学习学习
5#
tian5i 发表于 2022-5-19 21:18
用Resilio Sync岂不是更方便?
6#
柳岸红尘客 发表于 2022-5-19 21:26
感谢分享
7#
RileyW 发表于 2022-5-19 21:31
感谢分享!!!
8#
夏夜吉他 发表于 2022-5-19 21:39
先支持后欣赏!
9#
Khazars07 发表于 2022-5-19 21:48
感谢楼主的分享,学习学习
10#
gdcnjs 发表于 2022-5-19 21:56
看着不错,留着备用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-4-9 15:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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