828华为云征文|部署多功能集成的协作知识库 AFFiNE

828华为云征文|部署多功能集成的协作知识库 AFFiNE

  • 一、Flexus云服务器X实例介绍
  • 二、Flexus云服务器X实例配置
    • 2.1 重置密码
    • 2.2 服务器连接
    • 2.3 安全组配置
    • 2.4 Docker 环境搭建
  • 三、Flexus云服务器X实例部署 AFFiNE
    • 3.1 AFFiNE 介绍
    • 3.2 AFFiNE 部署
    • 3.3 AFFiNE 使用
  • 四、总结

一、Flexus云服务器X实例介绍

云服务器是一种高效便捷的计算资源服务。它可随时根据需求进行弹性扩展,具有高可靠性和稳定性。无需担心硬件维护,轻松应对高并发访问。无论是企业建站、开发应用还是数据存储,云服务器都能提供强大支持,助力你的业务在云端飞速发展。

华为云下一代云服务器Flexus X实例焕新上线,新产品提供与华为云旗舰级云服务器产品相同的单AZ 99.975%可用性,跨AZ 99.995%可用性,阶梯式定价、动态画像并搭配AS,实现资源弹性伸缩对应业务弹性变化,同时降低TCO,覆盖行业大多数通用工作负载场景。

在这里插入图片描述

Flexus X实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。

在这里插入图片描述
本次测评使用的规格是:4核12G-100G-3M规格的Flexus X实例基础模式

在这里插入图片描述

二、Flexus云服务器X实例配置

2.1 重置密码

购买服务器的时候可以提前设置用户名和密码,因为我这里跳过了,所以购买完成后需要重置密码,会短信或站内消息通过你的云服务器信息,重点是公网IP地址和用户名,首先打开你的服务器控制台,选择重置密码

在这里插入图片描述

勾选自动重启,点击确定即可

在这里插入图片描述

2.2 服务器连接

华为云服务器提供了多种链接方式,如使用控制台提供的VNC方式登录、使用Linux/Mac OS系统主机登录Linux弹性云服务器(即ssh root@192.168.48.78命令)或者使用Putty、Xshell等工具登录Linux弹性云服务器。

我个人习惯使用 MobaXterm 这款软件,添加SSH连接,输出公网IP、用户名和端口(默认22),连接即可。

在这里插入图片描述

2.3 安全组配置

安全组是一个逻辑上的分组,为同一个VPC内的云服务器提供访问策略。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。

系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要创建自定义的安全组

在这里插入图片描述

主要需要填写优先级(默认填1即可)、协议端口(协议一般为TCPUDP,端口一般选择你项目需要暴露的端口即可),描述(选填,一般会填写此端口的用途以免忘记了),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。

在这里插入图片描述

如果还不清楚可以参考文档:安全组配置示例

2.4 Docker 环境搭建

本次服务器环境是ubuntu系统镜像,需要自己安装docker环境

服务器类别系统镜像内网IP地址Docker版本操作系统版本
Flexus云服务器X实例Ubuntu192.168.0.16827.2.0Ubuntu 22.04.4 LTS

使用apt-get命令安装docker及其配置

# 安装必要工具包
$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common# 添加Docker GPG秘钥
$ sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -# 配置仓库源
$ sudo add-apt-repository \"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) \stable"	# 更新apt包索引
$ sudo apt-get update# 安装docker
$ sudo apt-get install docker-ce docker-ce-cli containerd.io# 添加docker镜像源
$ sudo vim /etc/docker/daemon.json{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://ccr.ccs.tencentyun.com/","https://docker.m.daocloud.io/","https://dockerproxy.com",]
}
# 重启
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

测试docker安装是否成功

root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```

检查docker服务状态

root@flexusx-c6b3:~# systemctl status docker
* docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h ago
TriggeredBy: * docker.socketDocs: https://docs.docker.comMain PID: 24912 (dockerd)Tasks: 13Memory: 24.7MCPU: 3.778sCGroup: /system.slice/docker.service`-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

检查docker compose版本

root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2

三、Flexus云服务器X实例部署 AFFiNE

3.1 AFFiNE 介绍

AFFiNE 是一个开源的一体化工作区和操作系统,适用于构建知识库的所有构建块以及更多内容 — wiki、知识管理、演示和数字资产。它是 Notion 和 Miro 的更好替代品。

AFFiNE 是一款基于 CRDT 的本地优先应用程序,支持实时协作。您的数据始终存储在本地,同时多个节点保持实时同步。

  • 集成化文档与白板:通过将文档和白板集成为一个功能模块,AFFiNE使团队能够实现从思维导图到正式文档的无缝过渡,确保了创意的完整和共享。

  • 强大的看板功能:AFFiNE提供了先进的看板项目管理工具,支持用户轻松管理各种任务,尤其适合团队协作和个人规划。通过可视化的方式,用户可以直接跟踪项目进展,提高时间和任务管理的效率。

  • 灵活的操作界面:其简洁直观的设计界面赢得了用户的一致赞赏,用户可以通过个人化的设置,自由调整工作视图,从而更好地支持不同的工作风格。

  • 本地优先的隐私保护:用户数据的管理完全掌握在用户的手中。AFFiNE旨在提供一个安全可靠的环境,用户的数据不会无意间被分享或者滥用。

  • 开源社区:用户不仅是产品的消费者,更是其设计的参与者。通过开源,AFFiNE开放了更多可能性,让用户根据自己所需定制和创新出不一样的功能。

在这里插入图片描述
AFFiNE 以及我们的云服务和所有基础设施都是 100% 开源的,可以自由地管理、自行托管甚至塑造您自己的 AFFiNE 版本。借助官方即将推出的插件社区和第三方模块,正在构建一个适合任何人的独特需求的平台,想象一个像您自己的数字生活方式一样可定制的工作空间,其中每个工具和功能都是专门为您独特的工作流程量身定制的。

  • 官网:https://affine.pro/
  • Github:https://github.com/toeverything/AFFiNE

3.2 AFFiNE 部署

  • 创建 docker-compose.yml
version: "3.5"
services:affine:image: ghcr.io/toeverything/affine-graphql:stablecontainer_name: affine_selfhostedcommand:['sh', '-c', 'node ./scripts/self-host-predeploy && node ./dist/index.js']ports:- '3010:3010'- '5555:5555'depends_on:- redis- postgresvolumes:# custom configurations- ./self-host/config:/root/.affine/config# blob storage- ./self-host/storage:/root/.affine/storagelogging:driver: 'json-file'options:max-size: '1000m'restart: unless-stoppedenvironment:- NODE_OPTIONS="--import=./scripts/register.js"- AFFINE_CONFIG_PATH=/root/.affine/config- REDIS_SERVER_HOST=redis- DATABASE_URL=postgres://affine:affine@postgres:5432/affine- NODE_ENV=production- AFFINE_ADMIN_EMAIL="maxx@maxxspace.com"- AFFINE_ADMIN_PASSWORD=1q2w3e4r# Telemetry allows us to collect data on how you use the affine. This data will helps us improve the app and provide better features.# Uncomment next line if you wish to quit telemetry.# - TELEMETRY_ENABLE=falseredis:image: rediscontainer_name: affine_redisrestart: unless-stoppedvolumes:- ./self-host/redis:/datahealthcheck:test: ['CMD', 'redis-cli', '--raw', 'incr', 'ping']interval: 10stimeout: 5sretries: 5postgres:image: postgrescontainer_name: affine_postgresrestart: unless-stoppedvolumes:- ./self-host/postgres:/var/lib/postgresql/datahealthcheck:test: ['CMD-SHELL', 'pg_isready -U affine']interval: 10stimeout: 5sretries: 5environment:POSTGRES_USER: affinePOSTGRES_PASSWORD: affinePOSTGRES_DB: affinePGDATA: /var/lib/postgresql/data/pgdata
  • ports: 映射主机的 3010 端口到容器的 3010 端口
  • volumes: 将主机目录挂载到容器。
  • 包含三个容器服务:affine、postgres 和 redis

如果将上述代码片段保存在名为 docker-compose.yml 的文件中,则只需从同一文件夹中运行 docker compose up -d 即可自动拉取 AFFiNE 镜像,并创建并启动一个容器。 up 表示启动服务,-d 表示在后台执行。docker-compose down 命令用于停止和清理由 docker-compose up 启动的服务。

  • 启动服务

进入项目目录,执行docker-compose up -d启动命令,会自动拉取容器并运行

从 Github Packages 拉取 AFFiNE 镜像,地址:https://ghcr.io/toeverything/affine-graphql

root@flexusx-c6b3:~/affine# docker-compose up -d
Pulling redis (redis:latest)...
latest: Pulling from library/redis
302e3ee49805: Pull complete
5d0249d9189d: Pull complete
4825c5e95815: Pull complete
b0ce50685fa2: Pull complete
455886c7d31b: Pull complete
96377887d476: Pull complete
4f4fb700ef54: Pull complete
5fac73c23c9b: Pull complete
Digest: sha256:82d08ad50c181182ee5ce23dcefd754a12f946534af57959ba08490e1d0696a0
Status: Downloaded newer image for redis:latest
Pulling postgres (postgres:latest)...
latest: Pulling from library/postgres
302e3ee49805: Already exists
db123f79d191: Pull complete
0f8c00fde6b5: Pull complete
faa7319453cb: Pull complete
db22d52fa3c2: Pull complete
a75b6bd68f08: Pull complete
3bbfa3446e21: Pull complete
0b62c3405bb7: Pull complete
2b20a8c7ce41: Pull complete
e7c88e163985: Pull complete
e5a700d882eb: Pull complete
28b27d53d86b: Pull complete
bfc263366b3f: Pull complete
e5ff51eeda62: Pull complete
Digest: sha256:6a1018836fcf5be0ecf77b265b4434c58816205061817cba70168907fb328d41
Status: Downloaded newer image for postgres:latest
Pulling affine (ghcr.io/toeverything/affine-graphql:stable)...
stable: Pulling from toeverything/affine-graphql
a2318d6c47ec: Already exists
00e35d36405a: Already exists
225fba03fa1f: Already exists
447f637b003c: Already exists
dd1be0639854: Already exists
4650130184b5: Pull complete
10a0952dbfc4: Pull complete
b4f530463457: Pull complete
d6f29f3b6b33: Pull complete
4f4fb700ef54: Pull complete
b9c166759c7d: Pull complete
Digest: sha256:b0dbbfe989185019e2dc30c5b1c89192ec5ab6eb71eee8643398f5589c811907
Status: Downloaded newer image for ghcr.io/toeverything/affine-graphql:stable
Creating affine_redis ... 
Creating affine_postgres ... 
Creating affine_redis
Creating affine_redis ... done
Creating affine_selfhosted ... 
Creating affine_selfhosted ... done
  • 配置安全组

在Flexus云服务器X实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听3010端口,所以添加安全组为TCP:3010协议端口。

在这里插入图片描述

  • 检查容器状态

检查 AFFiNE 容器状态,确保容器正常启动

root@flexusx-c6b3:~/affine# docker ps
CONTAINER ID   IMAGE                                        COMMAND                  CREATED         STATUS                   PORTS                                                                                  NAMES
ca413173e7ec   ghcr.io/toeverything/affine-graphql:stable   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes             0.0.0.0:3010->3010/tcp, :::3010->3010/tcp, 0.0.0.0:5555->5555/tcp, :::5555->5555/tcp   affine_selfhosted
96e154565e16   postgres                                     "docker-entrypoint.s…"   3 minutes ago   Up 2 minutes (healthy)   5432/tcp                                                                               affine_postgres
bed4a95d26c1   redis                                        "docker-entrypoint.s…"   3 minutes ago   Up 2 minutes (healthy)   6379/tcp                                                                               affine_redis
  • 访问地址

内网:http://localhost:3010
外网:http://公网IP:3010

  • 访问结果

在这里插入图片描述

若出现此页面,则部署 affine server 成功。

3.3 AFFiNE 使用

通过一些简单的设置来配置您的自托管 AFFiNE,创建管理员账户,也可用于普通用户使用,输入用户名、邮箱和密码,继续

在这里插入图片描述

登录成管理系统,可以查看和添加用户、服务器设置、允许新注册等相关权限设置,后续访问管理员地址:http://localhost:3010/admin

在这里插入图片描述

切换到默认地址访问即可进入 AFFiNE 首页,可以启用 AFFiNE Cloud 同步服务

在这里插入图片描述

每个用户有10GB的免费空间容量,若不想使用云同步,可以不开启,直接使用本地

在这里插入图片描述

设置页功能:可以修改外观中的配色方案和显示语言,编辑器设置(启用 AFFiNE AI、字体样式、页面、背景、图形、画笔、连线等),键盘快捷键,实验性功能

在这里插入图片描述

还有工作区设置:工作区LOGO、工作区名称、邀请成员、删除工作区等

在这里插入图片描述

查看所有文档界面,文档精选标签三个Tab选项,所有文档列表可以进行条件筛选:创建时间、更新时间、已收藏、标签、已分享,并且支持多条件筛选,文档列表显示属性可调节:内容预览、标签、创建时间、更新时间,还可以条件进行文档分组显示:创建时间、更新时间、标签、收藏、不分组,文档列表也可以进行排序、批处理操作等

在这里插入图片描述

选中文档,可以进行加入收藏、查看信息、在新标签页打开、复制、移动到回收站等操作

在这里插入图片描述

新建文档,可以创建新的页面、新的无界界面、导入支持 Markdown 和 Notion

在这里插入图片描述

查看 Jourunals 模块:上面展示日期,可以添加标签和i其他自定义属性,还有反向链接和外链统计,右上角菜单可以转化为无界、查看信息、查看目录、查看历史版本、导入、导出等

在这里插入图片描述
编辑部分和Notion操作类似,支持Markdown语法,使用快捷键/可以调出命令,空格键调用AI

在这里插入图片描述

导出功能支持导出HTML、PNG、Markdown格式和打印

在这里插入图片描述

组织可以新建文件夹,再添加文档,就类似的 Notion 笔记了

在这里插入图片描述

尝试下无界界面

在这里插入图片描述

支持幻灯片放映、分享和导出

在这里插入图片描述

还一些其他选项功能:回收站、导入、了解更多使用技巧

在这里插入图片描述

点击收藏,并查看收藏夹内容

在这里插入图片描述
在快节奏的现代生活中,信息不再是稀缺资源,而是过剩的挑战,如何有效地组织这些信息变得至关重要。使用AFFiNE,从登录界面进入,用户可以创建和管理自己的工作空间,文档的创建非常简单,只需点击并编辑,同时用户可以随时将内容从文本切换到手写模式,为工作增添一份个性化的细节。白板功能使得用户能够在进行团队合作或个人头脑风暴时,随时展示和记录想法,这种实时协作的特性,能够促进沟通并推动项目向前发展,还有更多有趣的设置和功能就需要自行探索了。

四、总结

AFFiNE的独特之处在于整合了文档处理、白板创作和数据库管理等多种功能,让用户在一个平台上完成多种任务,其无缝的工作流程和注重隐私的设计,使其不仅适合个人用户,更为企业提供了一个理想的协作渠道。此次使用的Flexus X实例配置还是很高的4核12G-100G-3M规格基础模式,项目整体占用不高,有点性能过剩,操作丝滑流畅,写笔记过程使用各种文字类型或者媒体类型的都不会延迟,自部署的使用体验要好过Notion,网络加载更快,画图体验也不错。

华为云服务器,卓越性能之选!强大的计算能力、稳定可靠的运行环境,为你的业务提供坚实保障。现在正值828 B2B企业节,价格更优惠,服务不打折。无论是企业级应用还是个人项目,华为云服务器都能满足你的需求。快来体验!

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何让系统u盘重新可用

目录 引言开始操作遇到的错误 引言 我们将 u 盘制作为系统 U 盘后,U 盘就没法在电脑中正常识别出了。当装完系统,不再需要 u 盘充当系统 U 盘想要正常使用该 U 盘,这时候就需要有些操作,让这个 U 盘正常化。 上图就是充当系统盘的…

elementui/plus灯下面的指示怎么改成圆圈或者隐藏

改成圆圈的步骤 改成没有indicator-position指示的位置/或者隐藏

58 深层循环神经网络_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录深度循环神经网络1. 模型复杂性增加2. 训练数据不足3. 梯度消失和爆炸4. 正则化不足5. 特征冗余总结 函数依赖关系简洁实现训练与预测小结练习 深度循环神经网络 🏷sec_deep_rnn 到目前为止,我们只讨论了具有一个单…

基于Hive和Hadoop的招聘分析系统

本项目是一个基于大数据技术的招聘分析系统,旨在为用户提供全面的招聘信息和深入的职位市场分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 Spark 为核…

【Qt笔记】QFrame控件详解

目录 引言 一、QFrame的基本特性 二、QFrame的常用方法 2.1 边框形状(Frame Shape) 2.2 阴影样式(Frame Shadow) 2.3 线条宽度(Line Width) 2.4 样式表(styleSheet) 三、QFrame的应用场景 四、应用…

京东健康高级项目经理段一凡受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 京东健康技术产品部高级项目经理段一凡先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾,演讲议题为“项目经理如何做好资源管理——货币化资源管理实践”。大会将于10月26-27日在北京举办…

7.字符串 Strings

作业系统链接 字符串文字可以使用单引号、双引号或三引号来定义,其中三引号特别适用于多行字符串。转义序列如\n(换行)和\t(制表符)在字符串中起到特殊作用。字符串方法如replace()、strip()、lower()和upper()提供了丰…

C++之STL—常用拷贝和替换算法

copy(iterator beg, iterator end, iterator dest); // 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置 // beg 开始迭代器 // end 结束迭代器 // dest 目标起始迭代器 replace(iterator beg, iterator end, oldvalue, newvalue); …

ComfyUI | 好用的人体 衣服分割工具-③-Layer Style | 超多实用功能 | 强烈推荐

这里为大家分享检测人体的脸部、五官、头发、手臂、腿、脚,上衣、裤子、背景的插件,能够生成出对应的蒙版mask,接入到ComfyUI中,用于后续处理,如局部重绘,换背景等。 (需要相关插件的同学可自…

无人机之虚拟云台技术篇

一、概念解释 虚拟云台技术,并非直接安装在无人机上的机械装置,而是通过软件算法和传感器技术,模拟出物理云台的功能,实现对相机或传感器的稳定控制。这种技术通过高精度的算法和实时数据处理,能够在无人机飞行过程中&…

酒水速送小程序开发制作方案

在餐饮娱乐领域,即时酒水配送服务逐渐成为市场新宠。开发一款集在线选购、快速配送、于一体的酒水配送小程序,以满足用户在家中、聚会场所或商业活动中即时获取各类酒水的需求,提升用户体验,拓宽酒水销售渠道。 目标用户 年轻消费…

顶顶通呼叫中心中间件-机器人话术挂机后是否处理完成事件

前言 问题:机器人放音的过程中,如果用户直接挂机就会继续匹配下一个流程,如果匹配上的是放音节点,还会进行放音,那么在数据库表中就会多出一条放音记录。 解决方法 一、话术添加一个全局挂机节点 需要在话术中添加一…

C++在线开发环境搭建(WEBIDE)

C在线开发环境搭建 一、环境说明1.1 系统基础环境说明1.1 docker-ce社区版安装 二、codeserver构建2.1 构建codeserver环境的docker容器2.2 构建docker镜像2.3 运行docker2.4 运行展示 三、构建codeserver中的c开发环境3.1 插件下载3.2 插件安装 四、其他知识4.2 code-server配…

Java-数据结构-排序-(二) (๑¯∀¯๑)

文本目录: ❄️一、交换排序: ➷ 1、 冒泡排序: ▶ 代码: ➷ 2、 快速排序: ☞ 基本思想: ☞ 方法一:Hoare法 ▶ 代码: ☞ 方法二:挖坑法 ▶ 代码: ☞ 方法三…

Brave编译指南2024 MacOS篇-获取源码(三)

引言 在上一篇文章中,我们介绍了Brave浏览器的基本特性,以及编译Brave所需的系统要求和推荐工具。现在,我们将进入编译过程的第一个实际步骤:获取Brave的源代码。这一步骤对于后续的编译和开发工作至关重要。 1. Brave源码的获取途径 Brave的源码托管在GitHub上,任何人都可以…

Scrapy框架入门

一、Scrapy简介 Scrapy是一款快速而强大的web爬虫框架,基于Twisted的异步处理框架、Twisted是事件驱动的。 Scrapy是由python实现的爬虫框架:架构清晰、可扩展性强、可以灵活完成需求。 一、Scrapy应用 scrapy及其他模块的安装 pip3 install scrapy…

【漏洞复现】数字通云平台智慧政务 login 存在登录绕过漏洞

》》》产品描述《《《 数字通云平台智慧政务OA产品是基于云计算、大数据、人工智能等先进技术,为政府部门量身定制的智能化办公系统。该系统旨在提高政府部门的办公效率、协同能力和信息资源共享水平,推动电子政务向更高层次发展。 》》》漏洞描述《《《…

【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)

文章目录 从零实现 list 容器:细粒度剖析与代码实现前言1. list 的核心数据结构1.1节点结构分析: 2. 迭代器设计与实现2.1 为什么 list 需要迭代器?2.2 实现一个简单的迭代器2.2.1 迭代器代码实现:2.2.2 解释: 2.3 测试…

设置VsCode搜索时排除文件,文件列表中隐藏文件

按照《VsCode gdb gdbserver远程调试C程序》中介绍的方法,配置好VsCode后,打开一个C/C工程,发现左侧的面板会显示编译时生成的中间文件(比如.d和.o文件)。我们可以通过设置隐藏掉一些我们不需要打开的文件以简洁面板…

如何使用 DomCrawler 进行复杂的网页数据抓取?

在互联网时代,数据是宝贵的资源。无论是市场分析、客户洞察还是内容聚合,从网页中抓取数据都是一项关键技能。Symfony 的 DomCrawler 是一个强大的工具,可以帮助开发者从复杂的网页中提取所需的数据。本文将详细介绍如何使用 DomCrawler 进行…