当前位置: 首页 > news >正文

白嫖aws创建Joplin server服务器

网上有很多的Joplin服务器的搭建教程,但是基本都是抄来抄去,对初学者实在是太不友好了。
话不多说,说干就干,自己从头找资料搭了一个,这可能是全网最好的Joplin服务器搭建教程了。

aws服务器

aws的服务器还是很香的,只要有visa信用卡,就可以白嫖一年,如何申请,开通,创建就不提了,网上这种教程已经非常非常多,也很简单。我只列几个关键点:

1. aws服务器的安全组策略

在申请成功aws服务器后,一定要记得添加安全组入站策略,Joplin必须的两个端口(22300,5432),都要加入入站策略里面,以下是完整的入站规则截图:
aws安全组入站规则

2. 域名

如果自己有域名,直接关联aws服务器的ip到自己的域名里去,域名很便宜,10年才1,2百块,我几年前注册的域名还送企业邮箱。阿里,腾讯,华为都能注册域名,很方便。

3. 服务器版本

我用的是Ubuntu的20.04版,在创建服务器的时候就可以选择。如果你需要看我的这个教程,建议你也用同样的版本,以免某些细节不一致导致错误。

安装Docker

在Docker的官网,点击: Ubuntu安装Docker官方教程 可以直达,不过里面都是英文,我就辛苦搬运一下,并且做一些中文注解:

  1. 清除所有旧版本的docker
    使用的命令为
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
  1. 安装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
  1. 将仓库添加到 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
  1. 好,准备工作做完,接下来开始安装docker
# 安装最新版本的Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 检测安装是否成功
sudo docker run hello-world
# 如果没有报错,那基本就是成功了
  1. 安装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
  1. 部署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,即可看到以下界面

Joplin服务器界面

相关文章:

白嫖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 如果在运行当中,遇到线程不够了,会以什么样的方式创建线程 线程池在运行过程中,如果遇到线程不够的情况,会根据线程池的类型和配置进行不同的处理: 对于固定大小的线程池:如果线程因异常结束&#xff…...

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 使用实例 光标(文件位置指示器) 我们…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

Python Einops库:深度学习中的张量操作革命

Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...