白嫖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:16
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    restart: unless-stopped
    environment:
    # Postgresql的设置
    # 请把password替换成你自己想要设置的密码
    # 请把user替换成你自己想要设置的用户名
      - POSTGRES_PASSWORD=password
      - POSTGRES_USER=user
      - POSTGRES_DB=joplin

  app:
    image: joplin/server:latest
    depends_on:
      - db
    ports:
      - "22300:22300"
    restart: unless-stopped
    environment:
    	# 请把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服务器界面

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

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

相关文章

idea git回滚之前提交记录

提交代码时,如果不小心提交了不需要提交的内容,在本地仓库中,此时需要回滚版本,如何回滚 1.打开git控制台,左下角git,选择要处理的分支,选择刷新获取最新git提交记录 2)选中自己commit需要回滚…

Fluids —— Minimal fluid setups

目录 Waterline FLIP Boundary Boundary flow 创建流体设置的三个基本方法; Waterline 由FLIP Container SOP与FLIP Solver SOP组成的基本network,可不需要任何外部源; FLIP Container SOP,能使用不同的容器形状;F…

PiflowX-MysqlCdc组件

MysqlCdc组件 组件说明 MySQL CDC连接器允许从MySQL数据库读取快照数据和增量数据。 计算引擎 flink 组件分组 cdc 端口 Inport:默认端口 outport:默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子hostnameHostname“”无是MySQL…

MySql -数据库基本概念

一、数据库的基本概念 1.为什么要学数据库? 之前我们如果想将一些数据实现永久化存储,可以怎么做呢?没错。使用IO流的技术将数据保存到本地文件中但是接下来我有这样一个需求:将下面的user.txt文件中的王五年龄修改为35 张三 2…

leetcode 动态规划(最后一块石头的重量II、目标和、一和零)

1049.最后一块石头的重量II 力扣题目链接(opens new window) 题目难度&#xff1a;中等 有一堆石头&#xff0c;每块石头的重量都是正整数。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < …

Go语言学习笔记(三)

教程&#xff1a;文档 - Go 编程语言 (studygolang.com) 调用模块代码 在call-module-code需要注意&#xff0c;需要在hello目录下操作 go mod edit -replace example.com/greetings../greetings 这是一个在Go项目的模块管理中的命令。在Go的模块管理工具&#xff08;go mod&…

SpringBoot-admin健康监控

监控-健康监控服务 目的&#xff1a;能够理解健康监控actuator的作用 背景&#xff1a; 在一些大型的业务应用中&#xff0c;工程会根据业务模块做微服务拆分&#xff0c;后期每一个微服务在云上部署以后&#xff0c;都需要对其进行监控、追踪、审计、控制等操纵&#xff0c…

chatglm3的api调用

conda activate chatglm3 cd openai_api_demo python openai_api.py 启动ok&#xff0c;然后内网映射后 anaconda启动jupyter !pip install openai1.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/ """ This script is an example of using the OpenAI …

人工智能复习

机器学习中线性回归和逻辑回归&#xff1a; 机器学习的分类&#xff1a; 监督学习和无监督学习&#xff0c;半监督学习 监督学习&#xff08;Supervised Learning&#xff09;&#xff1a; 监督学习是一种利用带有标签&#xff08;标记&#xff09;的数据进行训练的机器学习…

【学习总结】地面路谱分析

本文仅用于记录自己的学习总结&#xff0c;包括个人理解。不保证内容严格正确。 0. 参考资料 [1] 国标GB/T 703-2005/ISO 8608:1995。[2] Bilibili-车辆考研-路面不平度统计特性[3] Bilibili-清华大学《汽车理论》[4] 网络参考文档.[5] 论文&#xff1a;高雄《路面不平度统计…

什么是Helm?它是如何提升云原生应用私有化部署效率的

转载至我的博客 &#xff0c;公众号&#xff1a;架构成长指南 试想一下&#xff0c;如果有一个项目有50 个微服务&#xff0c;每个微服务都有service、deployment、ingress、pvc等 yaml 文件&#xff0c;算下来大概有 200 个文件&#xff0c;然后这个项目需要基于k8s进行私有化…

强化学习求解TSP(四):Qlearning求解旅行商问题TSP(提供Python代码)

一、Qlearning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于奖励的决策问题。它是一种无模型的学习方法&#xff0c;通过与环境的交互来学习最优策略。Q-learning的核心思想是通过学习一个Q值函数来指导决策&#xff0c;该函数表示在给定状态下采取某个动作所获…

Vue3-41-组件- 动态组件 component 标签 和 is 属性 的使用

说明 <component> 标签 有一个 is 属性&#xff0c; 可以给这个 is属性 赋值为一个 组件对象&#xff0c; 这样这个<component> 标签就可以渲染指定的组件对象了。 使用案例 本案例中会 准备两个简单的组件&#xff0c; 在 App.vue 中导入这两个组件&#xff0c;并…

C#入门篇(一)

变量 顾名思义就是变化的容器&#xff0c;即可以用来存放各种不同类型数值的一个容器 折叠代码 第一步&#xff1a;#region 第二步&#xff1a;按tab键 14种数据类型 有符号的数据类型 sbyte&#xff1a;-128~127 short&#xff1a;-32768~32767 int&#xff1a;-21亿多~21亿多…

VMware Visio OmniGraffle模板和图标

VMware Visio OmniGraffle模板和图标 包含可用于Visio、omnigraffle的图标和SVG矢量图。 简介 这组资源适用于 IT 管理员、系统架构师、网络工程师和其他需要可视化 VMware 基础架构的专业人士创建精确的 VMware 网络和数据中心部署图&#xff0c;通过使用这些模板和图标&am…

css三大特性

css 三大特性 一、层叠性&#xff1a;css样式冲突采取原则&#xff08;后者覆盖前者&#xff09; 二、继承性&#xff1a;对于部分属性样式会有天生的继承 &#xff08;1&#xff09;字体系列属性 font-family&#xff1a;字体系列 font-weight&#xff1a;字体的粗细 fon…

ai中的渐变怎么使用

Adobe Illustrator 是Adobe系统公司推出的基于矢量的图形制作软件&#xff0c;作为全球最著名的矢量图形软件&#xff0c;以其强大的功能和体贴用户的界面&#xff0c;已经占据了全球矢量编辑软件中的大部分份额。据不完全统计全球有37%的设计师在使用Adobe Illustrator进行艺术…

一键修复所有dll缺失的工具,dll修复工具下载使用教程

在计算机使用过程中&#xff0c;我们经常会遇到各种软件或系统错误提示&#xff0c;其中最常见的就是“找不到指定的模块”或“无法找到某某.dll文件”。Dll是动态链接库的缩写&#xff0c;它是Windows操作系统中的重要组成部分&#xff0c;负责提供各种功能和资源给应用程序使…

Kafka集群部署 (KRaft模式集群)

KRaft 模式是 Kafka 在 3.0 版本中引入的新模式。KRaft 模式使用了 Raft 共识算法来管理 Kafka 集群元数据。Raft 算法是一种分布式共识算法&#xff0c;具有高可用性、可扩展性和安全性等优势。 在 KRaft 模式下&#xff0c;Kafka 集群中的每个 Broker 都具有和 Zookeeper 类…

NVIDIA GPU 与服务器型号匹配查询

NVIDIA GPU 与服务器型号匹配查询 1. Qualified System Catalog (认证服务器目录)2. NVIDIA L40S2.1. NVIDIA L40S GPU Specifications References 1. Qualified System Catalog (认证服务器目录) https://www.nvidia.cn/data-center/data-center-gpus/qualified-system-catal…