Debian 12 上一次完成 Memos 私有笔记部署

  • 时间:2025-11-11 20:08 作者: 来源: 阅读:0
  • 扫一扫,手机访问
摘要:# Debian 12 上一次完成 Memos 私有笔记部署(含 Docker 安装、Compose 管理、七牛云自动备份、无痛更新方案)---## 0. 前提- 一台 Debian 12(Ubuntu 同理)能上网的 Linux 主机- 拥有 sudo 权限的普通用户(示例用户 chenyinfu)- 80/443 端口未被占用(若后来做反代)- 七牛云账号已开通 Kodo 对象存储,并拿到:-

# Debian 12 上一次完成 Memos 私有笔记部署

(含 Docker 安装、Compose 管理、七牛云自动备份、无痛更新方案)

---

## 0. 前提

- 一台 Debian 12(Ubuntu 同理)能上网的 Linux 主机

- 拥有 sudo 权限的普通用户(示例用户 chenyinfu)

- 80/443 端口未被占用(若后来做反代)

- 七牛云账号已开通 Kodo 对象存储,并拿到:

- `AccessKey` / `SecretKey`

- 存储空间名(bucket)及对应外链域名

---

## 1. Docker & Docker Compose 安装(国内镜像加速)

### 1.1 卸载旧版本(可选)

```bash

sudo apt remove -y docker docker-engine docker.io containerd runc

```

### 1.2 使用清华源安装 Docker CE

```bash

# 安装依赖

sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release

# 导入清华 GPG key

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg |

sudo gpg --dearmor -o /etc/apt/keyrings/docker.asc

# 写入清华软件源

echo

"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc]

https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian

$(lsb_release -cs) stable" |

sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装

sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

```

### 1.3 配置镜像加速器(拉取速度↑)

```bash

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<'EOF'

{

"registry-mirrors": [

"https://docker.mirrors.tuna.tsinghua.edu.cn",

"https://hub-mirror.c.163.com"

],

"dns": ["223.5.5.5", "8.8.8.8"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

# 验证

docker info | grep -A3 "Registry Mirrors"

```

### 1.4 把当前用户加入 docker 组(免 sudo)

```bash

sudo usermod -aG docker $USER

newgrp docker

```

---

## 2. Memos 安装(官方镜像 + Compose)

### 2.1 创建项目目录

```bash

mkdir -p ~/memos && cd ~/memos

```

### 2.2 编写 docker-compose.yml(无版次警告)

```yaml

# ~/memos/docker-compose.yml

services:

memos:

image: neosmemo/memos:stable

container_name: memos

restart: unless-stopped

ports:

- "5230:5230"

volumes:

- ./data:/var/opt/memos

```

### 2.3 首次启动

```bash

docker compose up -d

```

浏览器访问 `http://<服务器IP>:5230` → 注册第一个管理员账号即可使用。

**数据文件实体位置**:`~/memos/data`

---

## 3. 七牛云自动备份方案

思路:

- 每天 02:30 打包 `~/memos/data` → `memos-$(date +%F).tar.gz`

- 使用 qshell 上传至七牛云 bucket,保留最近 30 份

- 通过 systemd timer(或 cron)定时执行

### 3.1 本地安装 qshell(七牛官方 CLI)

```bash

wget https://devtools.qiniu.com/qshell-v2.14.0-linux-amd64.tar.gz

tar xf qshell-v2.14.0-linux-amd64.tar.gz -C /usr/local/bin qshell

chmod +x /usr/local/bin/qshell

```

### 3.2 配置 qshell 账户

```bash

qshell account <AccessKey> <SecretKey> memos

```

### 3.3 编写备份脚本

```bash

sudo tee /usr/local/bin/memos-backup.sh <<'EOF'

#!/bin/bash

# 变量

DATA_DIR=$HOME/memos/data

BACKUP_DIR=$HOME/memos/backup

BUCKET=your-bucket

DOMAIN=your-domain.com # 七牛外链域名

KEEP_LOCAL=7 # 本地保留天数

KEEP_REMOTE=30

mkdir -p "$BACKUP_DIR"

DATE=$(date +%F)

ARCHIVE="$BACKUP_DIR/memos-${DATE}.tar.gz"

# 打包

tar -zcf "$ARCHIVE" -C "$(dirname "$DATA_DIR")" "$(basename "$DATA_DIR")"

# 上传

qshell rput "$BUCKET" "memos/${DATE}.tar.gz" "$ARCHIVE"

# 清理本地旧备份

find "$BACKUP_DIR" -name 'memos-*.tar.gz' -mtime +${KEEP_LOCAL} -delete

# 清理远程旧备份(通过列举 + 删除)

qshell listbucket2 "$BUCKET" --prefix memos/ | awk '{print $1}' | sort -r | tail -n +$((KEEP_REMOTE+1)) | xargs -I{} qshell delete "$BUCKET" {}

EOF

chmod +x /usr/local/bin/memos-backup.sh

```

### 3.4 建立 systemd 定时任务

```bash

# /etc/systemd/system/memos-backup.service

sudo tee /etc/systemd/system/memos-backup.service <<EOF

[Unit]

Description=Memos data backup to Qiniu

After=network-online.target

[Service]

Type=oneshot

User=chenyinfu

ExecStart=/usr/local/bin/memos-backup.sh

EOF

# /etc/systemd/system/memos-backup.timer

sudo tee /etc/systemd/system/memos-backup.timer <<EOF

[Unit]

Description=Run memos backup daily

[Timer]

OnCalendar=02:30

Persistent=true

[Install]

WantedBy=timers.target

EOF

sudo systemctl daemon-reload

sudo systemctl enable --now memos-backup.timer

```

查看状态:

```bash

systemctl list-timers memos-backup.timer

```

首次可手动验证:

```bash

systemctl start memos-backup.service

```

上传成功后会返回 `Hash/Key`,通过 `https://<DOMAIN>/memos/2025-08-19.tar.gz` 即可下载。

---

## 4. Memos 平滑更新方案(零停机)

### 4.1 更新前自动备份(可选)

```bash

systemctl start memos-backup.service

```

### 4.2 拉取最新镜像并重启

```bash

cd ~/memos

docker compose pull # 获取最新 stable

docker compose up -d # 自动重新创建容器,数据卷保留

```

### 4.3 回滚(万一有问题)

```bash

# 查看刚才的镜像 ID

docker images neosmemo/memos

# 立即回滚到旧镜像

docker compose stop

docker compose rm -f

docker tag <旧镜像ID> neosmemo/memos:stable

docker compose up -d

```

---

## 5. 常用命令速查

| 场景 | 命令 |

|---|---|

| 启动 memos | `docker compose up -d` |

| 查看日志 | `docker compose logs -f` |

| 重启应用 | `docker compose restart` |

| 更新镜像 | `docker compose pull && docker compose up -d` |

| 手动备份 | `systemctl start memos-backup.service` |

| 进入容器调试 | `docker exec -it memos /bin/sh` |

---

## 6. 小结

1. 用清华源秒装 Docker,再配镜像加速器,拉镜像飞快。

2. 一份 Compose 文件即可管理 Memos;数据落盘到 `~/memos/data`,删容器也不丢。

3. 七牛云 + qshell 每晚自动打包上传,保留 30 份历史,本地再留 7 天,兼顾安全与空间。

4. 更新只需两行 `pull && up -d`,出问题秒级回滚;更新前脚本自动再备一份,万无一失。

把这份流程保存成 `README.md` 放在 `~/memos` 目录,后来换机器也能 10 分钟重建。祝使用愉快!

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】最低 2 美元,这 55 款 macOS & Windows 应用一次全都入手(2025-11-11 22:01)
【系统环境|】SCI期刊对论文图片有哪些要求?(2025-11-11 22:00)
【系统环境|】论文缩写大全,拿走不谢(2025-11-11 22:00)
【系统环境|】阿甘正传高频词整理 GRE托福四六级词汇整理(2025-11-11 21:59)
【系统环境|】矢量图形编辑应用程序-WinFIG(2025-11-11 21:59)
【系统环境|】Figma上市首日暴涨250%的深层逻辑:为什么AI时代协作平台更加不可替代?(2025-11-11 21:58)
【系统环境|】FigJam是什么?一文读懂在线白板软件的方方面面!(2025-11-11 21:58)
【系统环境|】在windows上有什么好用的书写白板软件?(2025-11-11 21:57)
【系统环境|】Docker基础应用之nginx(2025-11-11 21:57)
【系统环境|】VS Code 新手必装插件清单(2025-11-11 21:56)
手机二维码手机访问领取大礼包
返回顶部