0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

部署全平台实时协作Markdown笔记平台CodiMD

jf_21561199 来源:jf_21561199 作者:jf_21561199 2024-12-29 15:41 次阅读

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

1.1 云服务器介绍

云服务器通常采用按需付费模式,用户可以根据实际需求灵活调整计算资源,避免了前期高昂的硬件投资成本。这种模式特别适用于业务量波动较大的场景,例如电商平台在促销季节期间。而且通常会在多个地理位置设立数据中心,这使得即使某一个数据中心出现故障,其他数据中心仍然能够继续提供服务。这种地理分布提高了服务的可用性和容错能力。

华为云下一代云服务器 Flexus X 实例焕新上线,新产品具备柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景,从而帮您快速上云!

wKgZPGdsMcqASpHUAAKFUe3KKt0130.png

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

wKgZO2dsMcqAH_lJAAvyr-51fqA378.gif

wKgZPGdsMcuAUjtsAAJjrdaes-g421.png

本次测评使用的规格是:4 核 12G-100G-3M 规格的 Flexus X 实例基础模式

wKgZO2dsMcuAYoYlAAHXWmcDvoA538.png

1.2 性能模式

为了满足此类业务场景需要,Flexus 云服务器 X 实例推出了性能模式。开启性能模式后,Flexus 云服务器 X 实例采取底层物理绑核技术,提供极致稳定的 QoS 保障能力,您可以获得非常稳定的性能保障。

1.3 核心竞争力

•柔性算力随心配基于用户业务负载动态和内存峰值画像,动态推荐规格,减少算力浪费,提升资源利用率

•一直加速一直快首创大模型加持,智能全域调度;X-Turbo 加速,常见应用性能最高可达业界同规格 6 倍

•越用越省降本多按照算力规格变化,精准计算用量,按需灵活计费,搭配智能推介,始终确保成本更优

•安全可靠更放心提供旗舰级安全品质,跨 AZ 99.995%可用性,100+全球权威合规认证

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

2.1 重置密码

购买完成后,会短信通过你的云服务器信息,重点是公网 IP 地址和用户名。首先我们需要打开你的服务器控制台,完成重置密码

wKgZPGdsMcuAWkE9AAJxDURlVxA820.png

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

wKgZO2dsMcyAcVfrAADmtLGCblY303.png

2.2 服务器连接

•方式一:使用控制台提供的 VNC 方式登录

•方式二:使用 Putty、Xshell 等工具登录 Linux 弹性云服务器,a)下载安装登录工具,例如 Putty。b)输入弹性公网 IP。c)输入用户名:root、密码,单击“确定”。

•方式三:使用 Linux/Mac OS 系统主机登录 Linux 弹性云服务器。a)执行连接命令。ssh 弹性公网 IP 例如:ssh 123.xxx.xxx.456b)输入用户名:root、密码,登录服务器。

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

wKgZPGdsMcyAQcO3AAB35aqd5VA873.png

2.3 安全组配置

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

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

wKgZO2dsMcyAYn8-AAJtUulR8LY270.png

主要需要填写优先级(默认填 1 即可)、协议端口信息(一般选择你项目需要暴露的端口即可),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。

wKgZPGdsMc2AUvbXAAHf3yU1SGg685.png

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

三、部署 CodiMD

3.1 CodiMD 介绍

CodiMD 源自于 HackMD 的开源版本,结合了 Markdown 的简易与流行趋势,专为需要加强团队协作的用户设计。Markdown 因其轻量级标记语言的特性在技术社群中广受欢迎。借助 CodiMD,团体可以在一个共享空间中实时撰写和编辑文本,从而让信息获取和处理更加透明高效。此外,用户能够自主选择托管,确保对所有内容拥有完全的控制权和管理权限。这为需要高保密性和可定制化解决方案的公司提供了绝佳选择。

CodiMD 之所以成为众多开发者和团队青睐的工具,不仅在于它的开源和免费,还因为其独特且高效的功能设计。

实时协作 CodiMD 的实时协作功能让团队成员无论身在何处都能立即参与文档编辑。编辑过程支持多用户同时操作,减少沟通滞后与版本差异。团队成员能够即时查看彼此的修改内容,从而更加高效地协调工作。

Markdown 支持 Markdown 语法简单易懂,使得文档撰写过程轻便快捷,同时又能确保高度的格式化支持,包括 HTML、幻灯片模式和书籍模式等多种展示形式,为复杂文档的呈现提供多样选择。

独立自主的存储解决方案与大多数依赖于云端存储的工具不同,CodiMD 允许用户自主管控所有数据。通过选择适合的托管解决方案,用户可根据需求设计专属的安全性与隐私策略。

广泛的浏览器支持 CodiMD 兼容主要浏览器,包括 Chrome、Safari 和 Firefox 等,使用户在不同的设备和操作系统上均可获得流畅体验。

wKgZO2dsMc2AZXAvAAQkilqnrJA260.png

作为 markdown 笔记重度使用者,我需要就是一种全平台基于浏览器 WEB 的在线 markdown 编辑器,并且支持实时渲染预览,支持超多的富文本格式,比如常用的图片、表格、emoji 表情和代码段,此外还有各种图表和数学公式,虽然本人平时使用不多,但是肯定是有需求的人。CodiMD 以其出色的实时协作能力、强大的 Markdown 支持、多样的部署配置和开源的思想,成为了提高团队协作效率的不二选择。

•官网:https://hackmd.io/

•Github:https://github.com/hackmdio/codimd

3.2 Docker 环境搭建

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

使用 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 -vDocker 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 agoTriggeredBy: * 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 versionDocker Compose version v2.29.2

3.3 CodiMD 部署

•创建 docker-compose.yml

version:"3"services:database:image:postgres:11.6-alpineenvironment: -POSTGRES_USER=codimd -POSTGRES_PASSWORD=change_password -POSTGRES_DB=codimdvolumes: -"database-data:/var/lib/postgresql/data"restart:alwayscodimd:image:nabo.codimd.dev/hackmdio/hackmd:2.5.4environment: -CMD_DB_URL=postgres://codimd:change_password@database/codimd -CMD_USECDN=falsedepends_on: -databaseports: -"3000:3000"volumes: -upload-data:/home/hackmd/app/public/uploadsrestart:alwaysvolumes:database-data:{}upload-data:{}

•volumes:映射容器内部文件路径到本地

•ports:配置访问端口

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

•配置安全组

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

wKgZPGdsMc6AUqOGAABHEwh_tVY004.png

•启动服务

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

从 docker hub 拉取 CodiMD 镜像,地址:https://hub.docker.com/r/hackmdio/hackmd

root@flexusx-c6b3:~/codimd# docker-compose up -dCreating network "codimd_default" with the default driverCreating volume "codimd_database-data" with default driverCreating volume "codimd_upload-data" with default driverPulling database (postgres:11.6-alpine)...11.6-alpine: Pulling from library/postgresc9b1b535fdd9: Pull completed1030c456d04: Pull completed1d0211bbd9a: Pull complete07d0560c0a3f: Pull completece7fd4584a5f: Pull complete63eb0325fe1c: Pull completeb67486507716: Pull completef58de2b85820: Pull completeca982626dd56: Pull completeDigest: sha256:c132d7802dcc127486a403fb9e9a52d9df2e3ab84037c5de8395ed6ba2743e20Status: Downloaded newer image for postgres:11.6-alpinePulling codimd (nabo.codimd.dev/hackmdio/hackmd:2.5.4)...2.5.4: Pulling from hackmdio/hackmd311da6c465ea: Pull complete7e9bf114588c: Pull completeffd9397e94b7: Pull complete513d77925604: Pull completeae3b95bbaa61: Pull complete0e421f66aff4: Pull completeca266fd61921: Pull completeee7d78be1eb9: Pull complete3658276aee6a: Pull complete0423a96ab029: Pull completef67c2e66f325: Pull completebf9d6202b80c: Pull complete4f4fb700ef54: Pull completef54fcc61c4b7: Pull complete6e0261793f63: Pull completeDigest: sha256:5a589717f430bd63eb953eabe7e8aedf1df3063f1d26532879390dcb9c6886d0Status: Downloaded newer image for nabo.codimd.dev/hackmdio/hackmd:2.5.4Creating codimd_database_1 ... doneCreating codimd_codimd_1 ... done

•检查容器状态

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

root@flexusx-c6b3:~/codimd# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf1e2e6d4d369 nabo.codimd.dev/hackmdio/hackmd:2.5.4 "/home/hackmd/app/do…" 9 minutes ago Up 9 minutes 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp codimd_codimd_1070b2d0d5ccd postgres:11.6-alpine "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 5432/tcp codimd_database_1

•访问地址

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

•访问结果

wKgZO2dsMc-AGvU1AAJby1IN2Yk821.png

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

3.4 CodiMD 使用

修改语言为简体中文:主页面下滑到底部有语言选项

wKgZPGdsMc-Ae9hHAALcXwXqc1w986.png

点击探索所有功能:这是一篇介绍 CodiMD 的介绍和功能点以及 markdwon 用法的官方文档,这个文档没有进行官方的翻译,所以都是英文,除了菜单是中文名。同时这也一个 CodiMD 的编辑界面,我们后续使用添加新 markdown 文档时候,编辑界面就是这个样子,右侧还显示文章目录

wKgZO2dsMdCAA-ZsAAIU56Cspm4548.png

我们可以选择分割视图,查看编辑器和结果

wKgZPGdsMdGAEZSrAAR6XqetW0Q173.png

切换主题,浅色模式或者深色模式

wKgZO2dsMdKAERgtAAHNnMZH90c187.png

查看帮助,快速获取速查表,或者报告问题等功能

wKgZPGdsMdKAFIPhAAFwKzHvK-I334.png

右上角的功能栏,包含新建、发表和附加功能、导入、下载(支持导出 markdown、HTML、PDF 文件格式),还可以查看在线阅读这篇文档的人员

wKgZO2dsMdOAL3wPAAIb38Ez3kU313.png

再回到主页,点击登录,输出邮箱和密码,点击注册,完成帐号注册

wKgZPGdsMdSAe81oAAKMDjL6yjQ599.png

再次输出注册时的帐号和密码,点击登录

wKgZO2dsMdSAEQmKAACSDSqwtG0073.png

查看简介栏,CodiMD 的特点是实时协助、支持图表和 MathJax、支持幻灯模式

wKgZPGdsMdWAX5ZQAAC6cmGkPAE339.png

帐号管理:可以导出用户数据、删除账号和退出登录

历史功能:选择标签、搜索关键词、标题排序、时间排序、导出历史、导入文件、清空历史、刷新历史

wKgZO2dsMdWAFecPAAC24tyubYM405.png

新建笔记,随便拷贝一些内容

wKgZPGdsMdaAZKfJAAV22Hj5YYM242.png

点击发表就会出现在首页的历史列表了,我测试了一些,没有点击发表,也会自动保存内容

wKgZO2dsMdeAFIPOAADUn8Xiux8038.png

点击这篇笔记,可以修改查看、编辑权限和删除笔记,点击发表后可以将链接分享给其他人员查看或编辑

wKgZPGdsMdiAE1ACAANvkmOBVkA869.png

CodiMD 的入门级别使用就是这些了,CodiMD 的核心功能当然的 markdown 的编辑功能了,可以查看官方文档来学习,稍微看了一些,功能太多了,对我本人有点多余,我主要是码字,图表、公式这些没有用过,那些语法还需要仔细学习下。当然 CodiMD 的还有个重要功能点就是实时协作,更适合团队使用,还有更多的功能和配置就需要自行探索了。

四、总结

CodiMD 以其出色的实时协作能力、强大的 Markdown 支持、多样的部署配置和开源的思想,成为了提高团队协作效率的不二选择。无论你是小型初创企业还是大型组织用户,CodiMD 都能为你的团队协作带来持续的效率提升和用户满意度。此次使用的 Flexus X 实例配置还是很高的 4 核 12G-100G-3M 规格的基础模式,CodiMD 的对服务器配置要求不高,但是没有测试过多人同时在线协作过程,个人使用很流畅丝滑,就和本地部署的项目一样。

个人使用云服务器部署开源项目不仅可以享受到高效、灵活和经济的服务,还可以将更多精力集中在开发和创新上,而不必担心底层基础设施的问题。华为云正在举行 828 B2B 企业节,华为云凭借其稳定的服务质量和全面的产品线,成为了众多企业和个人用户的首选。不论是新创企业还是个人开发者,都可以借此良机享受到高性能的计算资源和支持,比如 Flexus X 实例,它不仅能满足高强度的算力需求,还能完美支持自建各种主流底层网络框架和应用。

快来体验华为云带来的无限可能吧!立即体验

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 云计算
    +关注

    关注

    39

    文章

    7835

    浏览量

    137501
  • 云服务器
    +关注

    关注

    0

    文章

    639

    浏览量

    13372
收藏 人收藏

    评论

    相关推荐

    基于 Flexus 云服务器 X 实例的应用场景 - 私有化部署自己的笔记平台

    ,为其他人提供一些便利帮助。 一般记录自己笔记的方式有好多种,比如在开源的博客平台上发布,比如 CSDN,博客园,51CTO 博客、公众号等。另一种方式就是:自己部署一款私有化的笔记
    的头像 发表于 01-02 09:55 81次阅读
    基于 Flexus 云服务器 X 实例的应用场景 - 私有化<b class='flag-5'>部署</b>自己的<b class='flag-5'>笔记</b><b class='flag-5'>平台</b>

    可与MES系统集成的数据采集监控平台

    可与MES系统集成的数据采集监控平台,在制造业中扮演着至关重要的角色。这类平台通过实时采集各类数据源,对数据进行整合和统一管理,为MES系统提供准确、实时的数据支持,从而帮助企业实现生
    发表于 12-16 15:08

    什么是云原生MLOps平台

    云原生MLOps平台,是指利用云计算的基础设施和开发工具,来构建、部署和管理机器学习模型的生命周期的平台。以下,是对云原生MLOps平台
    的头像 发表于 12-12 13:13 116次阅读

    Arm推出GitHub平台AI工具,简化开发者AI应用开发部署流程

    专为 GitHub Copilot 设计的 Arm 扩展程序,可加速从云到边缘侧基于 Arm 平台的开发。 Arm 原生运行器为部署云原生、Windows on Arm 以及云到边缘侧的 AI
    的头像 发表于 10-31 18:51 2300次阅读

    如何在低成本ARM平台部署LVGL免费图形库,基于志T113-i

    :完全免费,遵循开源协议,促进社区共享与协作。 控件资源丰富:提供丰富的控件,动画效果流畅,增强GUI的交互性和视觉吸引力。 跨平台可移植:支持多种操作系统和硬件平台,易于在不同环境中部署
    发表于 10-29 09:55

    志T507-H国产平台Ubuntu系统正式发布,让您的应用开发更便捷!

    本帖最后由 Tronlong创龙科技 于 2024-10-29 10:41 编辑 为了满足广大工业用户的需求,创龙科技针对志T507-H工业平台进行了Ubuntu系统适配,开发环境如下
    发表于 10-29 09:39

    实测14us,Linux-RT实时性能及开发案例分享—基于志T507-H国产平台

    ,以提供有关系统的延迟信息。它可测量由硬件、固件和操作系统引起的实时系统的延迟。 使用Cyclictest测试系统实时性 基于志T507-H(硬件平台:创龙科技TLT507-EVM评
    发表于 07-25 15:58

    深度学习算法在嵌入式平台上的部署

    随着人工智能技术的飞速发展,深度学习算法在各个领域的应用日益广泛。然而,将深度学习算法部署到资源受限的嵌入式平台上,仍然是一个具有挑战性的任务。本文将从嵌入式平台的特点、深度学习算法的优化、
    的头像 发表于 07-15 10:03 1466次阅读

    实时仿真板卡SimuCard*

    MATLAB、MWORKS生成的数学模型比特流文件部署到板卡的FPGA核心上,实现硬件在环强实时仿真。此外,借助仿真卡的高速接口,搭配多种类型、资源丰富的扩展子板,可对模拟、数字、混合信号、光电信号等
    发表于 04-25 13:02

    实测14us,Linux-RT实时性能及开发案例分享—基于志T507-H国产平台

    本文带来的是基于志T507-H(硬件平台:创龙科技TLT507-EVM评估板),Linux-RT内核的硬件GPIO输入和输出实时性测试及应用开发案例的分享。本次演示的开发环境如下: Windows
    发表于 04-18 10:21

    【分享】基于Easygo仿真平台的三电机实时仿真测试应用

    算法效果的前期仿真评估及算法或控制器参数设计及仿真验证,可以很大程度上减少系统开发周期及成本。对多电机同步控制系统进行实时仿真可有效解决此问题,但目前业内基于FPGA纳秒级实时仿真平台大多是基于单电机
    发表于 04-09 16:49

    什么是云平台?软件被云平台拦截了怎么办

    平台是一种基于云计算技术的服务平台,它为用户提供了可弹性扩展的计算资源、存储能力和其他服务,以支持用户在云环境下进行开发、部署和管理应用程序。通过云平台,用户可以实现对于计算、存储和
    的头像 发表于 02-02 16:37 2286次阅读

    能耗监测平台实时监控、数据分析与报警 #plc #物联网 #传感器

    plc监测平台
    juying
    发布于 :2024年01月15日 16:29:44

    物联网栈可视化运维监控平台

    监控企业的各种应用、系统、网络和设备,提供实时的性能指标、日志和事件数据,帮助企业快速发现和解决问题,提高系统的可用性和稳定性。 栈运维监控平台通常包括以下几个方面的功能: 1应用监控: 监控企业的各种应用程序,包括Web应用
    的头像 发表于 01-11 11:46 1340次阅读
    物联网<b class='flag-5'>全</b>栈可视化运维监控<b class='flag-5'>平台</b>

    NVIDIA AI Enterprise助力九州未来构建MaaS平台

    本案例中,九州未来的团队基于NVIDIA AI Enterprise的栈软件套件,构建其 MaaS 大模型一体化开发及部署平台,该平台同时支持云端
    的头像 发表于 01-10 17:24 1238次阅读