如何在Linux系统部署Joplin笔记并结合内网穿透实现无公网IP远程访问

文章目录

    • 1. 安装Docker
    • 2. 自建Joplin服务器
    • 3. 搭建Joplin Sever
    • 4. 安装cpolar内网穿透
    • 5. 创建远程连接的固定公网地址

Joplin 是一个开源的笔记工具,拥有 Windows/macOS/Linux/iOS/Android/Terminal 版本的客户端。多端同步功能是笔记工具最重要的功能,只有实现了多端同步,我们才能在工作电脑和手机之间无缝切换笔记体验。

本文介绍如何在自己的服务器上利用docker搭建 Joplin Server,并对同步进行配置,再结合cpolar内网穿透工具实现公网远程访问本地Joplin Sever。

1. 安装Docker

本篇文章演示环境为CentOS 7,使用Xshell7进行ssh,需安装Docker,小编在本地Windows中已安装Joplin app,如未安装可到 Joplin官网中安装下载,支持多个版本下载。

Joplin官网地址:https://joplinapp.org/

没有安装Docker的小伙伴需安装Docker:

本教程操作环境为Linux CentOS 7系统,在开始之前,我们需要先安装Docker。

在终端中执行下方命令:

添加Docker源

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安装Dokcer包

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

通过运行映像来验证 Docker 引擎安装是否成功

sudo docker run hello-world

2. 自建Joplin服务器

建立 /data/joplin/docker-compose.yml 文件,首先创建一个/data/joplin/目录

mkdir -p /data/joplin

进入joplin目录中

cd data/joplin

添加compose配置文件

vim docker-compose.yml

内容如下

version: '3'
services:
    db:
        image: postgres:13
        volumes:
            - ./data/postgres:/var/lib/postgresql/data
        ports:
            - "5432:5432"
        restart: unless-stopped
        environment:
            - POSTGRES_PASSWORD=joplin
            - POSTGRES_USER=joplin
            - POSTGRES_DB=joplin
    app:
        image: joplin/server:latest
        depends_on:
            - db
        ports:
            - "22300:22300"
        restart: unless-stopped
        environment:
            - APP_PORT=22300
            - APP_BASE_URL=https://joplin.cpolar.cn
            - DB_CLIENT=pg
            - POSTGRES_PASSWORD=joplin
            - POSTGRES_DATABASE=joplin
            - POSTGRES_USER=joplin
            - POSTGRES_PORT=5432
            - POSTGRES_HOST=db

在/data/joplin/目录中,执行

docker compose up -d

打开新的浏览器访问 http://192.168.149.143:22300,本机IP加上端口号

默认用户名admin@localhost密码admin

image-20240125124047153

3. 搭建Joplin Sever

在Joplin客户端中,点击上方工具,选择 选项,点击 同步,同步目标选择 JoplinServer,

068361c8c44f9fd858da3383ab7cf23

e2dcedee94873affedfb6034db77bc4

Joplin服务器URL:https://joplin.cpolar.cn
Joplin服务器邮箱:选择admin@localhost或者在管理页面自行创建
Jpolin服务器密码:选择admin或者在管理页面自行创建
点“检查同步配置”,显示“成功!同步配置看起来没问题”即可

image-20240126133457159

这个时候我们在客户端编辑完文章后,回到 Joplin主界面点击 同步

31752e8bfc2a579411bc20dbf61eed2

我们再回到 JoplinServer界面来看一下数据库是否同步,重新登陆一下,可以看到后台文件

image-20240125124545702

我们就成功在本地搭建了Joplin Server,但是想实现无需公网IP环境来远程访问Joplin Server里的数据库内容,就需要借助cpolar内网穿透工具来实现公网访问了!接下来介绍一下如何安装cpolar内网穿透并实现Joplin Server公网访问!

4. 安装cpolar内网穿透

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

image-20230831171159175

5. 创建远程连接的固定公网地址

我们接下来为其配置固定的HTTP端口地址,该地址不会变化,还可以自定义域名,方便分享给别人长期查看你的博客,而无需每天重复修改服务器地址。

配置固定http端口地址需要将cpolar升级到专业版套餐或以上。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20240125131215050

保留成功后复制保留成功的二级子域名的名称

image-20240125131306464

回到cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复,本例使用了:joplin
  • 协议:http
  • 本地地址:22300
  • 域名类型:二级子域名
  • Sub Domain:Joplin (刚才创建的二级子域名)
  • 地区:选择China
  • 点击高级,选择Host头域 填写joplin.cpolar.cn

点击创建

image-20240126131812348

创建成功后,打开左侧在线隧道列表,查看刚刚创建隧道后生成两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址复制到浏览器访问即可,登陆后可以看到数据库信息。

image-20240126133610149

image-20240126134121093

这样一个固定且永久不变的公网地址就设置好了,并且无需公网IP环境,无需额外购买服务器!成功实现了在异地我们也可以进行远程访问JoplinServer!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用jsbarcode+qrcodejs2:实现一维码+二维码的显示——基础积累

最近在写打印的功能,就是PC端页面通过调用vue-printnb插件来实现打印功能。 vue插件——vue-print-nb 实现打印功能:http://t.csdnimg.cn/NWrPc 在打印的内容当中,有一维码二维码,展示效果如下: 一维码的使用——…

DC-5渗透测试复现

DC-5渗透测试复现 目的: 获取最高权限以及5个flag 过程: 信息打点-文件包含漏洞-弹shell- scren-4.0.5提权 环境: 攻击机:kali(192.168.85.136) 靶机:DC_3(192.168.85.134) 复现: 一.信息收集 nma…

【已测 非网上加密版】全新UI彩虹站长在线工具箱系统源码下载 全开源版本

支持高达72种站长工具、开发工具、娱乐工具等功能。本地调用API、自带免费API接口,是一个多功能性工具程序支持后台管理、上传插件、添加增减删功能。 环境要求 * PHP > 7.3 * MySQL > 5.6 * fileinfo扩展 * 使用Redis缓存需安装Redis扩展 部署 * 下载源代码 …

【QT学习】6.控件进阶,C与C++的强制类型转换,自定义控件,qt制作一个简易播放器

1.C与C的强制类型转换 2.自定义控件 要求:制作一个登录页面 1.使用控件拖拽一个页面出来 使用水平布局,垂直布局,网格布局 2.建立自定义控件 1.为项目添加自定义的类 自己写一个控件 2. (1)创建一个Group Box容器 &a…

[观成科技] 加密C2框架Merlin流量分析

一、工具介绍 Merlin是一款支持多种协议的后渗透测试工具。与CS相比,由于该工具使用go语言进行开发(go语言支持跨平台编译),使得Merlin具备了跨平台的优势。该工具传输数据使用了JWE(JSON Web Encryption)…

OSI七层网络攻击行为及防范手段

2020年3月3日,360安全大脑披露美国中央情报局攻击组织(APT-C-39)对我国大型互联网公司、政府部门及相关企业进行长达11年的网络攻击渗透,该组织所使用的网络武器和CIA“Vault7”项目中的网络武器完全吻合。如今随着互联网技术的蓬…

企业吉祥物如何通过全身动作捕捉设备化身虚拟主持人亮相直播发布会?

全身动作捕捉设备已经是各大产业领域耳熟能详的词汇,尤其在虚拟主持人等新型业务的兴起,全身动作捕捉设备可以赋能虚拟主持人亮相于企业直播发布会等现场,那企业吉祥物又该如何通过全身动作捕捉设备化身虚拟主持人亮相直播发布会呢&#xff1…

cdn加速与ssl加速

cdn CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。 简单的来说,就是把原服务器上数据复制到其他服务器上,用户访…

计算方法实验5:对鸢尾花数据集进行主成分分析(PCA)并可视化

任务 iris数据集包含150条数据,从iris.txt读取,每条数据有4个属性值和一个标签(标签取值为0,1,2)。要求对这150个4维数据进行PCA,可视化展示这些数据在前两个主方向上的分布,其中不…

云卓LS-01喊话器说明书-新版中文

一: 概述 LS-01 无人机喊话器适用于搭载无人机进行交通管制、现场指挥、应急救援、人群疏导、防疫宣传、景区安防、鱼塘巡视、林业防控等场景。产品具有喊话、警报、播放多媒体文件等多种功能。喊话器外壳采用尼龙加纤材质,具有抗、抗震、轻便灵活、外观新颖、质量稳…

贝叶斯公式中的先验概率、后验概率、似然概率

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

VectorMap论文阅读

1. 摘要 自动驾驶系统需要对周围环境具有很好的理解,包括动态物体和静态高精度语义地图。现有方法通过离线手动标注来解决语义构图问题,这些方法存在严重的可扩展性问题。最近的基于学习的方法产生稠密的分割预测结果,这些预测不包含单个地图…

总结|性能优化思路及常用工具及手段

性能优化是降低成本的手段之一,每年大促前业务平台都会组织核心链路上的应用做性能优化,一方面提升系统性能,另外一方面对腐化的代码进行清理。现结合业务平台性能优化的经验,探讨一下性能优化的思路及常用工具及手段。性能优化本…

关于下载EsayOCR模型总是连接中断报错

关于下载EsayOCR模型总是连接中断报错 因为网络问题,自动下载总是失败报错,所以只好去网上手动下载训练好的模型。 以下是一些模型的下载地址:text detection model (CRAFT) chinese (traditional) model chinese (simplified) model jap…

TCP报文与三次握手四次断开、TCP最大连接数与文件打开数限制、keepalive、tcpdump、wireshark抓包分析工具

TCP报文 tcp详解、tcp与udp对比等 TCP:传输控制协议 UDP:用户数据报协议 源端口和目的端口字段:各占 2 字节(16位)。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。 序列号:在建立…

linux学习:进程(新建+运行某文件+退出处理函数+等待)

目录 api 创建新进程 注意 运行某文件 例子 注意 例子,等待进程 进程是由进程控制块、程序段、数据段三部分组成 进程有都有一个父进程,除了init,父进程可以创建子进程 每个进程都有一个PID,可以用ps来查看,等…

目标检测应用场景—数据集【NO.30】织物缺陷图像目标检测数据集

写在前面:数据集对应应用场景,不同的应用场景有不同的检测难点以及对应改进方法,本系列整理汇总领域内的数据集,方便大家下载数据集,若无法下载可关注后私信领取。关注免费领取整理好的数据集资料!今天分享…

2024第十五届蓝桥杯 JAVA B组

目录 前言:试题 A: 报数游戏试题 B: 类斐波那契循环数试题C:分布式队列 前言: 没参加这次蓝桥杯算法赛,十四届蓝桥杯被狂虐,对算法又爱又恨,爱我会做的题,痛恨我连题都读不懂的题😭,十四届填空只…

Linux基础(持续更新~)

常见的Linux目录 1、“/”:根目录 2、“/root”:root 用户的家目录 3、“/home/username ”:普通用户的家目录 4、“/etc”:配置文件目录(类似于Windows的注册表) 5、“/bin ”:命令目录 …

不再写满屏import导入

密密麻麻的import语句不仅仅是一种视觉上的冲击,更是对代码组织结构的一种考验。 我们是如何做到让import“占领满屏“的了,又该如何优雅地管理这些import语句呢? 本文将从产生大量import语句的原因、可能带来的问题以及如何优化和管理impo…