简介
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