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

部署Joplin私有云服务器postgres版-docker compose

我曾经使用过一段时间 Joplin,官方版本是收费的,而我更倾向于将数据掌握在自己手中。因此,在多次权衡后,我决定自己搭建 Joplin 服务器并进行尝试。

个人搭建的版本与数据库直连,下面是使用 Docker Compose 配置数据库和 Joplin 服务的示例。如果你不想使用数据库,也可以修改配置来连接已安装的数据库,具体的细节我就不赘述了。

注意事项:

  1. 请替换为你自己的数据库配置信息。

  2. 邮箱配置也需要根据你的实际情况进行更改。

Docker Compose 配置

version: '3'
services:db:image: postgresvolumes:- ./data/postgres:/var/lib/postgresql/dataports:- "5432:5432"restart: unless-stoppedenvironment:- POSTGRES_PASSWORD=123456- POSTGRES_USER=admin- POSTGRES_DB=joplinapp:image: joplin/server:latestdepends_on:- dbports:- "22300:22300"restart: unless-stoppedenvironment:- APP_PORT=22300- APP_BASE_URL= # 填入你的外网域名- DB_CLIENT=pg- POSTGRES_PASSWORD=123456- POSTGRES_DATABASE=joplin- POSTGRES_USER=sunboxiang- POSTGRES_PORT=5432- POSTGRES_HOST=db- ALLOW_ORIGIN=127.0.0.1 # 填入数据库地址,或外网域名- LANG=zh_CN- MAILER_ENABLED=true  # 启用邮件服务- MAILER_HOST=smtp.163.com  # 设置SMTP服务器地址,示例为163邮箱- MAILER_PORT=465  # SMTP端口,通常为465或587- MAILER_SECURITY=tls  # 使用SSL连接- MAILER_AUTH_USER=xxx@163.com  # 邮箱用户名- MAILER_AUTH_PASSWORD=123456  # 邮箱密码(使用163邮箱开放465时的密码)- MAILER_NOREPLY_NAME=Joplin Server- MAILER_NOREPLY_EMAIL=xxx@163.com- SUPPORT_EMAIL=xxx@163.com- SUPPORT_NAME=Joplin Support- BUSINESS_EMAIL=xxx@163.com

以上配置中,db 服务是 PostgreSQL 数据库,app 服务是 Joplin 服务器。你可以根据自己的需求调整配置项,确保数据安全和邮件配置正常。

希望这个配置能够帮助你快速搭建一个稳定的 Joplin 服务器!

相关文章:

部署Joplin私有云服务器postgres版-docker compose

我曾经使用过一段时间 Joplin,官方版本是收费的,而我更倾向于将数据掌握在自己手中。因此,在多次权衡后,我决定自己搭建 Joplin 服务器并进行尝试。 个人搭建的版本与数据库直连,下面是使用 Docker Compose 配置数据库…...

C++20 标准化有符号整数:迈向更可预测的整数运算

文章目录 一、背景:为什么需要标准化?二、2 的补码:原理与优势(一)2 的补码原理(二)2 的补码的优势 三、C20 的变化:明确 2 的补码四、如何利用这一特性优化代码(一&…...

npm ERR! code 128 npm ERR! An unknown git error occurred

【问题描述】 【问题解决】 管理员运行cmd(右键window --> 选择终端管理员) 执行命令 git config --global url.“https://”.insteadOf ssh://git cd 到项目目录 重新执行npm install 个人原因,这里执行npm install --registryhttps:…...

【uniapp】子组件和父组件双向绑定,vue3已废除sync写法,v-model代替

vue3已废除sync写法&#xff0c;v-model代替 实现state的值可以从子组件传递给父组件&#xff0c;也可以从父组件传递给子组件 文件地址pages/about/about.vue <template><view><button size"mini" click"clickBtn">开启{{mystate}}<…...

playbin之Source插件加载流程源码剖析

之前我们有讲解过uridecodebin的setup_source中会创建source插件&#xff0c;关键函数&#xff1a; /* create and configure an element that can handle the uri */ source gen_source_element (decoder); /** Generate and configure a source element.** Returns: (tra…...

泵吸式激光可燃气体监测仪:快速精准守护燃气管网安全

在城市化进程加速的今天&#xff0c;燃气泄漏、地下管网老化等问题时刻威胁着城市安全。如何实现精准、高效的可燃气体监测&#xff0c;守护“城市生命线”&#xff0c;成为新型基础设施建设的核心课题。泵吸式激光可燃气体监测仪&#xff0c;以创新科技赋能安全监测&#xff0…...

Stiring-PDF:开源免费的PDF文件处理软件

Stiring-PDF是一款开源免费且比较好用的PDF文件处理工具。 Stiring-PDF官网网址为&#xff1a;https://www.stiringpdf.com/。Stiring-PDF是一款专业的PDF文件处理工具&#xff0c;支持Windows和macOS操作系统&#xff1b;提供丰富的PDF编辑和转换功能&#xff0c;适用于日常工…...

Cherno C++ P60 为什么不用using namespace std

这篇文章我们讲一下之前写代码的时候的一个习惯&#xff0c;也就是不使用using namespace std。如果我们接触过最早的C教程&#xff0c;那么第一节课都会让我们写如下的代码&#xff1a; #include<iostream>using namespace std;int main() {cout << "Hello …...

大模型微调实验记录(一)数据探索

文章目录 概要整体架构流程前期的技术探索技术构造技术细节小结 概要 根据之前博客使用的docker技术&#xff0c;如果换公司了&#xff0c;我可能就要重新搭建环境了&#xff0c;哎&#xff0c;公司没资源给我&#xff0c;给我一台带不走的电脑&#xff0c;哎&#xff0c;这可…...

JavaWeb-社区版Idea安装配置

idea配置 一&#xff0c;下载idea社区版 百度搜索IntelliJ IDEA&#xff0c;点击下载链接。 二&#xff0c;全局配置 前提安装好jdk&#xff0c;这一步不再赘述。进入引导页&#xff0c;把可以配置的东西都先配置上&#xff0c;这个配置是全局的&#xff0c;省的之后&#…...

iOS 实现UIButton自动化点击埋点

思路&#xff1a;我们HOOK UIControl的 addtarget:action:forControlEvents方法&#xff0c;交换UIControl的 addtarget:action:forControlEvents 方法的实现&#xff0c; 在交换的方法中添加原来响应的同时&#xff0c;再添加一个埋点响应&#xff0c;该响应方法实现了点击埋点…...

商城系统单商户开源版源码

环境配置 1.软件安装 宝塔安装系统软件:Nginx、MySQL5.6、PHP( PHP用7.1-7.4版本)、phpMyAdmin(Web端MySQL管理工具)。 2.配置mysql 设置mysql&#xff0c;在已安装的软件里面找到 mysql点击进行设置 3.修改sql-mode 选择左侧配置修改&#xff0c;找到里面的sql-mode&…...

用不同语言写力扣题的思考:如何选择最适合的编程语言

目录 1. 为什么选择不同的编程语言&#xff1f; 2. 如何根据题目特点选择编程语言&#xff1f; 2.1 题目类型 2.2 个人熟练度 2.3 性能要求 3. 实例分析 3.1 两数之和&#xff08;Two Sum&#xff09; Python 实现 C 实现 3.2 反转链表&#xff08;Reverse Linked Li…...

Python PDF文件拆分-详解

目录 使用工具 将PDF按页数拆分 将PDF的每一页拆分为单独的文件 将PDF按指定页数拆分 根据页码范围拆分PDF 根据指定内容拆分PDF 将PDF的一页拆分为多页 在日常生活中&#xff0c;我们常常会遇到大型的PDF文件&#xff0c;这些文件可能难以发送、管理和查阅。将PDF拆分成…...

ubuntu部署gitlab-ce及数据迁移

ubuntu部署gitlab-ce及数据迁移 进行前梳理: 在esxi7.0 Update 3 基础上使用 ubuntu22.04.5-server系统对 gitlab-ce 16.10进行部署,以及将gitlab-ee 16.9 数据进行迁移到gitlab-ce 16.10 进行后总结: 起初安装了极狐17.8.3-jh 版本(不支持全局中文,就没用了) …...

Y3学习打卡

网络结构图 YOLOv5配置了4种不同大小的网络模型&#xff0c;分别是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x&#xff0c;其中 YOLOv5s 是网络深度和宽度最小但检测速度最快的模型&#xff0c;其他3种模型都是在YOLOv5s的基础上不断加深、加宽网络使得网络规模扩大&#xff0c;在增强…...

英码科技携昇腾DeepSeek大模型一体机亮相第三届北京人工智能产业创新发展大会

2025年2月28日&#xff0c;第三届北京人工智能产业创新发展大会在国家会议中心隆重开幕。本届大会以"好用、易用、愿用——以突破性创新加速AI赋能千行百业”为主题&#xff0c;重点展示人工智能技术创新成果与产业化应用实践。作为昇腾生态的APN伙伴&#xff0c;英码科技…...

系统讨论Qt的并发编程2——介绍一下Qt并发的一些常用的东西

目录 QThreadPool与QRunnable 互斥机制&#xff1a;QMutex, QMutexLocker, QSemaphore, QWaitCondition 跨线程的通信 入门QtConcurrent&#xff0c;Qt集成的一个并发框架 一些参考 QThreadPool与QRunnable QThreadPool自身预备了一些QThread。这样&#xff0c;我们就不需…...

JS禁止web页面调试

前言 由于前端在页面渲染的过程中 会调用很多后端的接口&#xff0c;而有些接口是不希望别人看到的&#xff0c;所以前端调用后端接口的行为动作就需要做一个隐藏。 禁用右键菜单 document.oncontextmenu function() {console.log("禁用右键菜单");return false;…...

modbus 协议的学习,谢谢老师

&#xff08;1&#xff09;谢谢这位老师 &#xff0c;谢谢老师的教导 &#xff08;2&#xff09; 谢谢...

Go 接口使用

个人学习笔记 接口作用 1. 实现多态 多态允许不同的类型通过实现相同的接口&#xff0c;以统一的方式进行处理。这使得代码更加灵活和可扩展&#xff0c;提高了代码的复用性。 示例代码&#xff1a; package mainimport ("fmt" )// 定义一个接口 type Speaker int…...

题解 | 牛客周赛82 Java ABCDEF

目录 题目地址 做题情况 A 题 B 题 C 题 D 题 E 题 F 题 牛客竞赛主页 题目地址 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 做题情况 A 题 判断字符串第一个字符和第三个字符是否相等 import java.io.*; import java.math.*; import java.u…...

命名管道——进程间通信

个人主页&#xff1a;敲上瘾-CSDN博客 匿名管道&#xff1a;进程池的制作&#xff08;linux进程间通信&#xff0c;匿名管道... ...&#xff09;-CSDN博客 一、命名管道的使用 1.创建命名管道 1.1.在命令行中&#xff1a; 创建&#xff1a; mkfifo 管道名 删除&#xff1a…...

高频 SQL 50 题(基础版)_1141. 查询近30天活跃用户数

1141. 查询近30天活跃用户数 select activity_date day,count(distinct user_id) active_users from Activity where (activity_date<2019-07-27 and activity_date>DATE_sub(2019-07-27,INTERVAL 30 DAY)) group by(activity_date)...

Yocto + 树莓派摄像头驱动完整指南

—— 从驱动配置、Yocto 构建&#xff0c;到 OpenCV 实战 在树莓派上运行摄像头&#xff0c;在官方的 Raspberry Pi OS 可能很简单&#xff0c;但在 Yocto 项目中&#xff0c;需要手动配置驱动、设备树、软件依赖 才能确保摄像头正常工作。本篇文章从 BSP 驱动配置、Yocto 关键…...

seaborn中文乱码

在进行matplotlib画图的时候&#xff0c;经常会出现中文乱码的问题,这主要是默认的文件不支持中文,可以在代码中显示指定。解决方法&#xff1a; import seaborn as sns import matplotlib.pyplot as pltplt.rcParams["font.sans-serif"] ["SimHei"] # …...

函数的特殊形式——递归函数

C递归函数入门指南&#xff1a;从概念到实践 ​1. 什么是递归&#xff1f; 递归是指函数直接或间接调用自身的过程&#xff0c;就像照镜子时影像无限反射&#xff0c;通过不断分解问题解决问题 适用场景&#xff1a; 问题可分解为相同子问题&#xff08;如阶乘、斐波那契数列…...

计算最大海岛面积

最大海岛面积问题的不同解法 问题举例 给定一个包含了一些 0 和 1 的非空二维数组 matrix 。 一个岛屿是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设matrix的四个边缘都被 0&#xff08;代表水&am…...

list的两个实现类

ArrayList&#xff1a;适用于需要频繁随机访问元素 LinkedList&#xff1a;适用于需要频繁进行插入和删除操作&#xff0c;尤其是在列表的头部或尾部进行操作 二者的用法基本一致&#xff0c;只是时间和空间复杂度不同 List<Integer> arrayList new ArrayList<>…...

Spark核心之02:RDD、算子分类、常用算子

spark内存计算框架 一、目标 深入理解RDD弹性分布式数据集底层原理掌握RDD弹性分布式数据集的常用算子操作 二、要点 ⭐️1. RDD是什么 RDD&#xff08;Resilient Distributed Dataset&#xff09;叫做**弹性分布式数据集&#xff0c;是Spark中最基本的数据抽象&#xff0c…...