828华为云征文|部署全平台实时协作 Markdown 笔记平台 CodiMD

828华为云征文|部署实时协作 Markdown 笔记平台 CodiMD

  • 一、Flexus云服务器X实例介绍
    • [1.1 云服务器介绍](#1.1 云服务器介绍)
    • [1.2 性能模式](#1.2 性能模式)
    • [1.3 核心竞争力](#1.3 核心竞争力)
  • 二、Flexus云服务器X实例配置
    • [2.1 重置密码](#2.1 重置密码)
    • [2.2 服务器连接](#2.2 服务器连接)
    • [2.3 安全组配置](#2.3 安全组配置)
  • [三、部署 CodiMD](#三、部署 CodiMD)
    • [3.1 CodiMD 介绍](#3.1 CodiMD 介绍)
    • [3.2 Docker 环境搭建](#3.2 Docker 环境搭建)
    • [3.3 CodiMD 部署](#3.3 CodiMD 部署)
    • [3.4 CodiMD 使用](#3.4 CodiMD 使用)
  • 四、总结

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

1.1 云服务器介绍

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

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

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


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

1.2 性能模式

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

关闭性能模式后的规格信息 开启性能模式后的规格信息
CPU/内存配比:支持灵活自定义vCPU和内存配比,您可基于业务资源需要选择合适规格,节省资源开销。 CPU/内存配比:支持灵活自定义vCPU和内存配比,您可基于业务资源需要选择合适规格,节省资源开销。
vCPU/内存范围:vCPU最大范围为1~16,内存最大范围为1GiB~128GiB。 vCPU/内存范围:vCPU最大范围为2~32,内存最大范围为2GiB~256GiB。
处理器:第三代英特尔® 至强® 可扩展处理器。基频/睿频:2.8GHz/3.5GHz。 基频/睿频:2.45GHz/3.5GHz。

1.3 核心竞争力

  • 柔性算力随心配

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

  • 一直加速一直快

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

  • 越用越省降本多

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

  • 安全可靠更放心

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

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

2.1 重置密码

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

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

2.2 服务器连接

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

  • 方式二 :使用Putty、Xshell等工具登录Linux弹性云服务器,

    a) 下载安装登录工具,例如Putty。

    b) 输入弹性公网IP。

    c) 输入用户名:root、密码,单击"确定"。

  • 方式三 :使用Linux/Mac OS系统主机登录Linux弹性云服务器。

    a) 执行连接命令。

    ssh 弹性公网IP

    例如:ssh 123.xxx.xxx.456

    b) 输入用户名:root、密码,登录服务器。

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

2.3 安全组配置

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

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

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

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

三、部署 CodiMD

3.1 CodiMD 介绍

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

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

  1. 实时协作

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

  2. Markdown 支持

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

  3. 独立自主的存储解决方案

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

  4. 广泛的浏览器支持

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

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

3.2 Docker 环境搭建

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

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

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

bash 复制代码
# 安装必要工具包
$ 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安装是否成功

bash 复制代码
root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```

检查docker服务状态

bash 复制代码
root@flexusx-c6b3:~# systemctl status docker
* docker.service - Docker Application Container Engine
     Loaded: 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.socket
       Docs: https://docs.docker.com
   Main PID: 24912 (dockerd)
      Tasks: 13
     Memory: 24.7M
        CPU: 3.778s
     CGroup: /system.slice/docker.service
             `-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

检查docker compose版本

bash 复制代码
root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2

3.3 CodiMD 部署

  • 创建 docker-compose.yml
yml 复制代码
version: "3"
services:
  database:
    image: postgres:11.6-alpine
    environment:
      - POSTGRES_USER=codimd
      - POSTGRES_PASSWORD=change_password
      - POSTGRES_DB=codimd
    volumes:
      - "database-data:/var/lib/postgresql/data"
    restart: always
  codimd:
    image: nabo.codimd.dev/hackmdio/hackmd:2.5.4
    environment:
      - CMD_DB_URL=postgres://codimd:change_password@database/codimd
      - CMD_USECDN=false
    depends_on:
      - database
    ports:
      - "3000:3000"
    volumes:
      - upload-data:/home/hackmd/app/public/uploads
    restart: always
volumes:
  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协议端口。

  • 启动服务

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

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

bash 复制代码
root@flexusx-c6b3:~/codimd# docker-compose up -d
Creating network "codimd_default" with the default driver
Creating volume "codimd_database-data" with default driver
Creating volume "codimd_upload-data" with default driver
Pulling database (postgres:11.6-alpine)...
11.6-alpine: Pulling from library/postgres
c9b1b535fdd9: Pull complete
d1030c456d04: Pull complete
d1d0211bbd9a: Pull complete
07d0560c0a3f: Pull complete
ce7fd4584a5f: Pull complete
63eb0325fe1c: Pull complete
b67486507716: Pull complete
f58de2b85820: Pull complete
ca982626dd56: Pull complete
Digest: sha256:c132d7802dcc127486a403fb9e9a52d9df2e3ab84037c5de8395ed6ba2743e20
Status: Downloaded newer image for postgres:11.6-alpine
Pulling codimd (nabo.codimd.dev/hackmdio/hackmd:2.5.4)...
2.5.4: Pulling from hackmdio/hackmd
311da6c465ea: Pull complete
7e9bf114588c: Pull complete
ffd9397e94b7: Pull complete
513d77925604: Pull complete
ae3b95bbaa61: Pull complete
0e421f66aff4: Pull complete
ca266fd61921: Pull complete
ee7d78be1eb9: Pull complete
3658276aee6a: Pull complete
0423a96ab029: Pull complete
f67c2e66f325: Pull complete
bf9d6202b80c: Pull complete
4f4fb700ef54: Pull complete
f54fcc61c4b7: Pull complete
6e0261793f63: Pull complete
Digest: sha256:5a589717f430bd63eb953eabe7e8aedf1df3063f1d26532879390dcb9c6886d0
Status: Downloaded newer image for nabo.codimd.dev/hackmdio/hackmd:2.5.4
Creating codimd_database_1 ... done
Creating codimd_codimd_1   ... done
  • 检查容器状态

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

bash 复制代码
root@flexusx-c6b3:~/codimd# docker ps
CONTAINER ID   IMAGE                                   COMMAND                  CREATED         STATUS         PORTS                                       NAMES
f1e2e6d4d369   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_1
070b2d0d5ccd   postgres:11.6-alpine                    "docker-entrypoint.s..."   9 minutes ago   Up 9 minutes   5432/tcp                                    codimd_database_1
  • 访问地址

内网:http://localhost:3000

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

  • 访问结果

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

3.4 CodiMD 使用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

四、总结

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

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

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

相关推荐
大口粘痰嚼不烂2 小时前
十分钟快速上手 markdown
markdown
杨浦老苏3 小时前
开源音乐管理软件Melody
docker·群晖·多媒体
行十万里人生5 小时前
Qt事件处理:理解处理器、过滤器与事件系统
开发语言·git·qt·华为od·华为·华为云·harmonyos
杨浦老苏5 小时前
面向npm的实时仪表板Dashly
网络·docker·群晖·导航
JunLan~7 小时前
Docker 部署 GLPI(IT 资产管理软件系统)
运维·docker·容器
特立独行的猫a8 小时前
使用 Docker(Podman) 部署 MongoDB 数据库及使用详解
数据库·docker·podman
LUCIAZZZ10 小时前
基于Docker以KRaft模式快速部署Kafka
java·运维·spring·docker·容器·kafka
特立独行的猫a14 小时前
Golang 应用的 Docker 部署方式介绍及使用详解
开发语言·docker·golang
康世行15 小时前
Windows环境下MaxKB大模型 Docker部署图文指南
windows·docker·容器
程序员石磊1 天前
学术总结Ai Agent中firecrawl(大模型爬虫平台)的超简单的docker安装方式教程
人工智能·爬虫·docker