在进行 Appflowy cloud 部署测试时,我可谓是踩坑无数。下面,我想从几个关键方面来分享一下我的经验。
先给大家讲讲我的基础情况。Appflowy cloud 的部署是在 docker 环境下,借助 docker compose 来完成的。我之前对 docker 有一些浅显的了解,但 compose 完全没用过。我对 linux 环境也有一定认知,不过并不精通,日常办公大多在 windows 环境下。我家里的 NAS 是群晖,它是基于 Linux 环境运行的。

1. 资料查阅

在部署过程中,资料查阅至关重要,下面是我参考过的一些站点和文章:
在此要特别提醒大家,一定要多关注官方文档。Appflowy +cloud 的更新速度很快,如果不及时查看官方文档,一旦有更新,出现问题时你可能根本不知道错在哪里。比如,有一次从 0.916 升级到 0.917,我发现后台管理界面不见了,当时以为是自己的配置出了问题,反复折腾了好几天,最后才发现是升级时路由地址发生了变化。

2. 安装环境

刚开始准备部署测试时,我想着在办公室的电脑上先跑通流程,于是下载了 windows 版本的 docker,还在这个 docker 里下载了 appflowy 的 docker 镜像(后来才知道,在 docker compose 部署时会自动下载,真是走了弯路),同时也下载了 github 上的源码。但在部署测试时,总是出现一个异常(现在已经记不清具体错误了),导致无法正常推进。我在这上面耗费了好几天时间,始终没有解决。后来我把测试环境换到 linux 虚拟机上,那个错误就消失了。所以,建议大家将 Appflowy cloud 部署在 Linux 环境中。我最终要部署在群晖上,因为群晖本身基于 linux,也就没什么问题了。

3. 数据库选择

为什么要单独说数据库的选择呢?这是因为看了上面提到的那位网友的文章,他提到数据库单独安装 postgres,而不使用 docker 里自带的数据库,这样做更便于备份。我觉得很有道理,就也打算单独安装。安装过程倒是挺顺利的,没遇到什么问题,可在部署前对数据库进行初始化时,我却遇到了大麻烦,在这里卡了至少 10 天,其中的艰辛真是难以言表。好在最后成功搞定了外部数据库的配置和连接,具体的配置方法我会在后续的配置文章中详细讲解。

4. Appflowy cloud 数据备份

对于像 Appflowy cloud 这样的知识库应用来说,数据备份的重要性不言而喻。只有确保备份流程顺利走通,我才会真正进行部署。所以,在学习和测试备份的过程中,又是一段漫长的经历。Appflowy cloud 的数据备份包括数据库备份和 minio 文件系统的备份,这两者缺一不可。前面也提到过,起初我想单独安装这两个应用来实现备份,但后来发现直接在 docker 中就可以进行访问和备份操作,所以最后我并没有单独安装这两个软件。数据库备份通过命令就能完成,minio 文件备份则直接进入 minio 系统,下载压缩包即可。

5. Appflowy cloud 升级

正如前面所说,Appflowy cloud 是一款更新频繁的应用,通常一周到两周就会有更新。因此,了解升级方法很有必要。客户端的升级相对简单,直接覆盖安装就行。但后端的 cloud 升级就比较麻烦了,刚开始我以为直接下载源码就是升级,结果发现并非如此。实际上,不仅需要升级 docker 镜像,还得对配置文件进行更新。在学习升级的过程中,我顺便学习了 git 的相关命令,发现用 git 进行升级会更加便捷。后续我会详细分享具体的操作方法。
 
今天就先分享到这里,后面我会找时间详细介绍部署方法,希望能对大家有所帮助。
 

Appflowy cloud 部署测试避坑指南的更多相关文章

  1. Canal v1.1.4版本避坑指南

    前提 在忍耐了很久之后,忍不住爆发了,在掘金发了条沸点(下班时发的): 这是一个令人悲伤的故事,这条情感爆发的沸点好像被屏蔽了,另外小水渠(Canal意为水道.管道)上线一段时间,不出坑的时候风平浪静 ...

  2. Hive改表结构的两个坑|避坑指南

    Hive在大数据中可能是数据工程师使用的最多的组件,常见的数据仓库一般都是基于Hive搭建的,在使用Hive时候,遇到了两个奇怪的现象,今天给大家聊一下,以后遇到此类问题知道如何避坑! 坑一:改变字段 ...

  3. Android连接远程数据库的避坑指南

    Android连接远程数据库的避坑指南 今天用Android Studio连接数据库时候,写了个测试连接的按钮,然后连接的时候报错了,报错信息: 2021-09-07 22:45:20.433 705 ...

  4. electron 编译 sqlite3避坑指南---尾部链接有已经编译成功的sqlite3

    electron 编译 sqlite3避坑指南(尾部链接有已经编译成功的sqlite3) sqlite很好用,不需要安装,使用electron开发桌面程序,sqlite自然是存储数据的不二之选,奈何编 ...

  5. CEF避坑指南(一)——下载并编译第一个示例

    CEF即Chromium Embedded Framework,Chrome浏览器嵌入式框架.它提供了接口供程序员们把Chrome放到自己的程序中.许多大型公司,如网易.腾讯都开始使用CEF进行前端开 ...

  6. Linux下Python3.6的安装及避坑指南

    Python3的安装 1.安装依赖环境 Python3在安装的过程中可能会用到各种依赖库,所以在正式安装Python3之前,需要将这些依赖库先行安装好. yum -y install zlib-dev ...

  7. Harmony OS 开发避坑指南——源码下载和编译

    Harmony OS 开发避坑指南--源码下载和编译 本文介绍了如何下载鸿蒙系统源码,如何一次性配置可以编译三个目标平台(Hi3516,Hi3518和Hi3861)的编译环境,以及如何将源码编译为三个 ...

  8. 今天 1024,为了不 996,Lombok 用起来以及避坑指南

    Lombok简介.使用.工作原理.优缺点 Lombok 项目是一个 Java 库,它会自动插入编辑器和构建工具中,Lombok 提供了一组有用的注解,用来消除 Java 类中的大量样板代码. 目录 L ...

  9. .NET AsyncLocal 避坑指南

    目录 AsyncLocal 用法简介 AsyncLocal 实现原理 AsyncLocal 的坑 AsyncLocal 的避坑指南 HttpContextAccessor 的实现原理 AsyncLoc ...

  10. Windows环境下Anaconda安装TensorFlow的避坑指南

    最近群里聊天时经常会提到DL的东西,也有群友在学习mxnet,但听说坑比较多.为了赶上潮流顺便避坑,我果断选择了TensorFlow,然而谁知一上来就掉坑里了…… 我根据网上的安装教程,默认安装了最新 ...

随机推荐

  1. T语言开发笔记1

    为什么会有开发语言的想法 在2012年,我准备开发一个给前端切图使用的屏幕取色器. 需求很简单,前端经常需要获取设计稿特定位置的颜色代码.虽然当时 PhotoShop 提供了内部取色器,但操作麻烦,而 ...

  2. 【网络安全】Shell 脚本学习

    声明:学习视频来自 b 站 up 主 泷羽 sec,如涉及侵权马上删除文章 声明:本文主要用作技术分享,所有内容仅供参考.任何使用或依赖于本文信息所造成的法律后果均与本人无关.请读者自行判断风险,并遵 ...

  3. [LC1302] 层数最深叶子节点的和

    题目概述 给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和 . 基本思路 这是一个简单的树的遍历的问题,可以用bfs或者dfs来解题.这里采用dfs来解,在遍历的过程中,只需要用全 ...

  4. spring-boot-@Valid和@Validated详解

    ---------------------------------------------------------------------------------------- 在实际的项目开发中,经 ...

  5. 第二章 dubbo源码解析目录

    6.1 如何在spring中自定义xml标签 dubbo自定义了很多xml标签,例如<dubbo:application>,那么这些自定义标签是怎么与spring结合起来的呢?我们先看一个 ...

  6. RocksDB-键值存储

    存储和访问数百PB的数据是一个非常大的挑战,开源的RocksDB就是FaceBook开放的一种嵌入式.持久化存储.KV型且非常适用于fast storage的存储引擎.   传统的数据访问都是RPC, ...

  7. 数据同步工具-DataX

    1.DataX 基本介绍 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具,致力于实现包括:关系型数据库(MySQL.Oracle等).HDFS.Hive.HBase.ODPS.FTP等各种异 ...

  8. SpringCloud(2)---入门篇

    SpringCloud(6)---熔断降级理解.Hystrix实战 一.概念 1.为什么需要熔断降级 (1)需求背景 它是系统负载过高,突发流量或者网络等各种异常情况介绍,常用的解决方案. 在一个分布 ...

  9. java多线程---总结(1)

    线程创建.start.run 一.创建线程方式 java创建线程的方式,主要有三种:类Thread.接口Runnable.接口Callable. 1.Thread和Runnable进行比较 他们之间的 ...

  10. cmake-4

    cmake-4学习,参考 cmake构建c++项目快速入门2-1 cmake构建c++项目快速入门2-2 了解 cmake的工作原理: Windows下用cmake编译cmake (1)先下载cmak ...