白嫖aws创建Joplin server服务器
网上有很多的Joplin服务器的搭建教程,但是基本都是抄来抄去,对初学者实在是太不友好了。
话不多说,说干就干,自己从头找资料搭了一个,这可能是全网最好的Joplin服务器搭建教程了。
aws服务器
aws的服务器还是很香的,只要有visa信用卡,就可以白嫖一年,如何申请,开通,创建就不提了,网上这种教程已经非常非常多,也很简单。我只列几个关键点:
1. aws服务器的安全组策略
在申请成功aws服务器后,一定要记得添加安全组入站策略,Joplin必须的两个端口(22300,5432),都要加入入站策略里面,以下是完整的入站规则截图:

2. 域名
如果自己有域名,直接关联aws服务器的ip到自己的域名里去,域名很便宜,10年才1,2百块,我几年前注册的域名还送企业邮箱。阿里,腾讯,华为都能注册域名,很方便。
3. 服务器版本
我用的是Ubuntu的20.04版,在创建服务器的时候就可以选择。如果你需要看我的这个教程,建议你也用同样的版本,以免某些细节不一致导致错误。
安装Docker
在Docker的官网,点击: Ubuntu安装Docker官方教程 可以直达,不过里面都是英文,我就辛苦搬运一下,并且做一些中文注解:
- 清除所有旧版本的docker
使用的命令为
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
- 安装docker的准备:
这里我们使用官网推荐的apt repository方法来进行安装准备
# 首先下载 Docker 官方 GPG 密钥,并使用它来验证下载的软件包
# 实际使用的时候,最好一行一行复制,这样避免出错
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
- 将仓库添加到 Apt 的源列表中
# 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
- 好,准备工作做完,接下来开始安装docker
# 安装最新版本的Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 检测安装是否成功
sudo docker run hello-world
# 如果没有报错,那基本就是成功了
- 安装docker-compose
6.1 虽然 Docker 可以创建和管理容器,但 Docker Compose 则提供了更高级别的工具,用于管理和编排多个容器组成的应用程序。
6.2 它通过一个单独的文件(通常是 docker-compose.yml 文件)来定义应用程序中的多个服务、网络、卷等,并且可以通过一个命令一次性启动所有服务。
# 下载最新版本的Docker Compose,可以从其GitHub仓库的“Releases”页面找到最新版本的链接。
sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 使二进制文件可执行:
sudo chmod +x /usr/local/bin/docker-compose
# 检查Docker Compose版本,看看是否安装成功
docker-compose --version
- 部署Joplin Server
7.1 创建专用目录
# 首先,创建一个目录来存储Joplin数据
mkdir joplinserver
cd joplinserver
7.2 使用vim编辑器进行编辑,注意,进去后默认是只读模式,先按"i"进行编辑,然后按esc键,输入":wq"退出
vim docker-compose.yml
7.3 把以下内容复制到vim编辑器中,里面有几个关键参数需要修改 ,我都在后面做了备注,没有备注的就是不用改的哦。
官方GitHub给出了参考,链接: yml文件官方建议,以下是我略作修改后的版本,可以对照着看,自己进行调整
version: '3'services:db:image: postgres:16volumes:- ./data/postgres:/var/lib/postgresql/dataports:- "5432:5432"restart: unless-stoppedenvironment:# Postgresql的设置# 请把password替换成你自己想要设置的密码# 请把user替换成你自己想要设置的用户名- POSTGRES_PASSWORD=password- POSTGRES_USER=user- POSTGRES_DB=joplinapp:image: joplin/server:latestdepends_on:- dbports:- "22300:22300"restart: unless-stoppedenvironment:# 请把http://joplin.xxx.com替换成你自己的域名,注意后面的端口号不要改# 请把password替换成你自己想要设置的密码# 请把user替换成你自己想要设置的用户名- APP_PORT=22300- APP_BASE_URL=http://joplin.xxx.com:22300- DB_CLIENT=pg- POSTGRES_PASSWORD=password- POSTGRES_DATABASE=joplin- POSTGRES_USER=user- POSTGRES_PORT=5432- POSTGRES_HOST=db
7.4 启动Joplin server
docker-compose up -d
好了,到这里,设置就基本完成了,输入http://joplin.xxx.com:22300,即可看到以下界面

相关文章:
白嫖aws创建Joplin server服务器
网上有很多的Joplin服务器的搭建教程,但是基本都是抄来抄去,对初学者实在是太不友好了。 话不多说,说干就干,自己从头找资料搭了一个,这可能是全网最好的Joplin服务器搭建教程了。 aws服务器 aws的服务器还是很香的&…...
metartc5_jz源码阅读-p2p通过stun服务器进行通信
1. YangIpc.c/yang_create_ipc 需要设置stun服务器的ip地址和端口号 设置iceCandidateType为2,表示走stun,即向stun服务器发起请求获取本机的公网ip地址。 //设置iceServerIP和端口号,设置iceCandidate类型。 strcpy(session->avinfo.rtc…...
总结:Java程序员读书清单顺序
总结:Java程序员读书清单顺序,持续更新中。。。。。。 一经验提示:1.零基础不建议直接看计算机专业书籍,建议先去看视频教程2.本书单目录用作自学顺序记录,也适用于有Java开发基础的同志3.看计算机书籍可以完善自己的技…...
ubuntu通过virtualbox安装win虚拟机
系统:Ubuntu22.04 需要准备:下载你想用的windows的iso镜像,官方传送门。 一、安装virtualbox sudo apt-get install virtualbox安装完成后,打开Applications,找到virtualbox,点击启动 二、安装windows虚…...
云流量回溯的工作原理及关键功能
云计算和网络技术的快速发展为企业提供了更灵活、高效的业务运营环境,同时也引发了一系列网络安全挑战。在这个背景下,云流量回溯成为网络安全领域的一个关键技术,为企业提供了对网络活动的深入洞察和实时响应的能力。 一、 云流量回溯的基本…...
DCP文件传输的重要性与应用
在数字时代,文件传输已成为商业运作中不可或缺的一环。随着企业越来越多地采用云基础设施和服务,有效地在云和团队之间传输大文件和数据集变得至关重要。在这一背景下,数据复制协议(DCP)文件传输应运而生,引…...
JAVA面试部分——后端-线程后篇
3.12 如果在运行当中,遇到线程不够了,会以什么样的方式创建线程 线程池在运行过程中,如果遇到线程不够的情况,会根据线程池的类型和配置进行不同的处理: 对于固定大小的线程池:如果线程因异常结束ÿ…...
C语言辨析——深入理解字符常量与表达式
1. 问题 今天看到一个题目,截图如下。 从答题情况来看,本题的答案是B,那么就意味着A、C、D是错的。但我认为这4个选项都是对的。当然,如果要从4个选项中挑选一个的话,那还是选择B妥当一些。 2. 分析 字符常量的定义…...
Springboot + websocket 实现 一对一 单人聊天
Springboot websocket 实现 一对一 单人聊天 要使用websocket ,需要添加 jar 打开项目中的pom.xml,添加以下内容 创建java端代码 配置websocke的endpoints 配置websocket的server ServerEndpoint(value "/websocket/{username}") 这句话 一定要注意, 这里 路…...
GEE机器学习——利用最短距离方法进行土地分类和精度评定
最短距离方法 最短距离方法(Minimum Distance)是一种常用的模式识别算法,用于计算样本之间的相似度或距离。该方法通过计算样本之间的欧氏距离或其他距离度量,来确定样本之间的相似程度或差异程度。 最短距离方法的具体步骤如下: 1. 数据准备:收集并准备用于训练的数据…...
数据结构时间复杂度与空间复杂度
文章目录 引入算法 1、时间复杂度1.概念2.大O渐进表示法3.常见时间复杂度计算举例 2、空间复杂度1.概念2.常见空间复杂度计算举例 引入 算法 算法就是一段能将一个物体从初始状态转换到某个目标转态的一个有限长序列方法的统称 算法效率:考虑一个方法是否好&…...
【计算机网络】内容整理
概述 分组交换 分组交换则采用存储转发(整个包必须到达路由器,然后才能在下一个链路上传输)技术。 在发送端,先把较长的报文划分成较短的、固定长度的数据段。 电路交换 在端系统间通信会话期间,预留了端系统间沿路径通信所需…...
【K12】Python写分类电阻问题的求解思路解析
分压电阻类电路问题python程序写法 一个灯泡的电阻是20Ω,正常工作的电压是8V,正常工作时通过它的电流是______A。现在把这个灯泡接到电压是9V的电源上,要使它正常工作,需要给它______联一个阻值为______的分压电阻。 解决思想 …...
数据库面经---10则
数据库范式有哪些: 第一范式(1NF): 数据表中的每一列都是不可分割的原子值。每一行数据在关系表中都有唯一标识,通常是通过主键来实现。第二范式(2NF): 满足第一范式。…...
深度学习基本介绍-李沐
目录 AI分类:模型分类:广告案例: bilibili视频链接:https://www.bilibili.com/video/BV1J54y187f9/?p2&spm_id_frompageDriver&vd_sourcee6a6e7fec41c59c846c142eb5ef1da0b AI分类: 模型分类: 图…...
【上分日记】第369场周赛(分类讨论 + 数学 + 前缀和)
文章目录 前言正文1.3000. 对角线最长的矩形的面积2.3001. 捕获黑皇后需要的最少移动次数3.3002. 移除后集合的最多元素数3.3003. 执行操作后的最大分割数量 总结尾序 前言 终于考完试了,考了四天,也耽搁了四天,这就赶紧来补这场周赛的题了&a…...
CMake Error at CMakeLists.txt:14 (project): The CMAKE_CXX_COMPILER:
报错 CMake Error at CMakeLists.txt:14 (project):The CMAKE_CXX_COMPILER:arm-none-eabi-g 解决办法1 Arm GNU Toolchain Downloads – Arm Developer x86_64 linux上: x86_64 Linux hosted cross toolchains AArch32 bare-metal target (arm-none-eabi)arm-g…...
Sqoop与其他数据采集工具的比较分析
比较Sqoop与其他数据采集工具是一个重要的话题,因为不同的工具在不同的情况下可能更适合。在本博客文章中,将深入比较Sqoop与其他数据采集工具,提供详细的示例代码和全面的内容,以帮助大家更好地了解它们之间的差异和优劣势。 Sq…...
Pandas实战100例 | 案例 31: 转换为分类数据
案例 31: 转换为分类数据 知识点讲解 在处理包含文本数据的 DataFrame 时,将文本列转换为分类数据类型通常是一个好主意。这可以提高性能并节省内存。Pandas 允许将列转换为 category 类型。 分类数据类型: category 类型适用于那些只包含有限数量不同值的列&…...
椋鸟C语言笔记#33:文件的顺序读写
萌新的学习笔记,写错了恳请斧正。 目录 光标(文件位置指示器) 文件的顺序读写 fgetc 使用实例 fputc 使用实例 fgets fputs 使用实例 fscanf fprintf fread fwrite 使用实例 光标(文件位置指示器) 我们…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
接口 RESTful 中的超媒体:REST 架构的灵魂驱动
在 RESTful 架构中,** 超媒体(Hypermedia)** 是一个核心概念,它体现了 REST 的 “表述性状态转移(Representational State Transfer)” 的本质,也是区分 “真 RESTful API” 与 “伪 RESTful AP…...
