如何使用 Docker Compose 安装 Memos 自托管笔记应用

简介

Memos是一个自托管的开源笔记应用程序,专为个人组织和信息管理而设计。它允许用户高效地创建、存储和管理笔记,提供如Markdown支持、用户友好的界面和注重隐私的设计等功能。Memos可以在各种平台上运行,但使用Docker Compose可以简化部署过程,使其易于设置和维护。

  • 隐私优先方法: Memos确保所有用户数据保持私密和安全,允许用户控制他们的信息。
  • Markdown支持: 用户可以使用广泛的Markdown语法以纯文本形式创建笔记,便于轻松格式化和组织。
  • 轻量级架构: 使用Go和React.js构建的Memos旨在轻量级,确保快速性能和最小资源使用。
  • 可定制功能: 用户可以通过定制服务器名称、图标、描述和系统样式来个性化他们的体验。
  • 开源: Memos完全开源,允许用户为其开发做出贡献,并根据需要定制应用程序。
  • 免费使用: Memos的所有功能均可免费使用,没有隐藏费用或订阅。
  • 数据持久性: 笔记保存在SQLite数据库文件中,确保即使在应用程序关闭后也能保留数据。
  • 用户友好界面: Memos提供了一个直观的界面,使其易于捕捉和管理笔记。
  • 多设备可访问性: 用户可以从各种设备访问他们的笔记,增强了便利性和灵活性。
  • 协作功能: Memos允许轻松共享笔记,促进用户之间的协作。

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。
  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。
  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。
  • 到此为止,我们的云服务器就远程连接上了。

使用Docker Compose安装Memos

要使用Docker Compose安装Memos,你需要创建一个docker-compose.yml文件,该文件定义了运行应用程序所需的服务、网络和卷。以下是两种部署Memos的配置:一个使用SQLite,另一个使用PostgreSQL。

1 创建 docker-compose.yml

jsx 复制代码
touch docker-compose.yml

2 使用SQLite的Memos

以下docker-compose.yml文件使用SQLite作为数据库设置Memos:

yaml 复制代码
services:
  memos:
    image: neosmemo/memos:stable
    container_name: memos
    user: root
    restart: unless-stopped
    volumes:
      - ./memos/:/var/opt/memos
    ports:
		  - 5230:5230

配置说明:

  • services: 这一节定义了Docker将运行的服务。这里,我们有一个名为memos的单一服务。
  • image: 指定要使用的Docker镜像,在这种情况下是neosmemo/memos:stable
  • container_name: 为容器分配一个名称,以便于管理。
  • user: 以root用户身份运行容器。
  • restart: 配置重启策略。unless-stopped意味着容器将在没有明确停止的情况下重启。
  • networks: 将服务连接到名为traefik-net的外部网络,这对于路由很有用。
  • volumes: 将本地目录(./memos/)映射到容器的数据存储目录(/var/opt/memos),确保数据持久性。

3 使用PostgreSQL数据库的Memos

如果你更喜欢使用PostgreSQL作为数据库,你可以使用以下配置。这是在你有很多笔记需要一个强大的数据库时的情况。以下是带有doc的Memos数据库选项。

yaml 复制代码
services:
  memos:
    image: neosmemo/memos:stable
    container_name: memos
    restart: unless-stopped
    volumes:
      - ./memos/:/var/opt/memos
    ports:
		  - 5230:5230
    environment:
      MEMOS_DRIVER: postgres
      MEMOS_DSN: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@memos-db:5432/${POSTGRES_DB}?sslmode=disable
    depends_on:
      memos-db:
        condition: service_healthy

  memos-db:
    image: postgres:16.1-alpine
    volumes:
      - ./memos-db:/var/lib/postgresql/data:rw
    environment:
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    healthcheck:
      test:
        - CMD-SHELL
        - pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}
      interval: 5s
      timeout: 5s
      retries: 5
    restart: on-failure:5

配置说明:

  • memos服务与SQLite配置类似,但包括PostgreSQL的环境变量。
  • depends_on: 确保memos-db服务在memos服务之前启动。
  • environment: 设置PostgreSQL连接的环境变量,包括数据库名称、用户和密码。
  • memos-db服务运行一个PostgreSQL数据库,有一个健康检查以确保在Memos服务启动之前它已经准备好。

4 创建一个.env文件

对于PostgreSQL配置,在与你的docker-compose.yml文件相同的目录中创建一个.env文件,以定义环境变量:

bash 复制代码
POSTGRES_DB=memos
POSTGRES_USER=memos
POSTGRES_PASSWORD=memos

你可以根据需要更改数据库详细信息。

5 启动Docker Compose文件

要启动Memos应用程序,请在包含docker-compose.yml文件的目录中运行以下命令:

bash 复制代码
docker compose up -d

此命令将下载必要的Docker镜像,创建容器,并以分离模式启动服务。

启动后可以查看容器运行状态:

bash 复制代码
docker compose ps

6 访问Memos UI并创建你的第一个用户

一旦容器运行,你可以通过在Web浏览器中导航到 http://your_ip:5230 来访问Memos Web界面。你将看到一个注册屏幕,你可以在其中创建你的第一个用户帐户。

然后Memos UI将如下所示:

然后你有设置区域,你可以在其中将外观从浅色更改为深色,添加用户或启用SSO。

结论

使用Docker Compose设置Memos提供了一种直接部署自托管笔记应用程序的方法。通过使用SQLite或PostgreSQL,用户可以选择最适合他们需求的数据库。所提供的配置允许轻松定制和扩展,使Memos成为个人组织和笔记管理的灵活解决方案。

相关链接

雨云 - 新一代云服务提供商: https://rainyun.ivwv.site

我的博客:https://blog.ivwv.site

相关推荐
A小辣椒13 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒17 小时前
TShark:基础知识
linux
AlfredZhao19 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式