Docmost是什么

Docmost 是一个开源的协作 wiki 和文档软件。它是 Confluence 和 Notion 的开源替代方案。
官方文档:https://docmost.com/docs/

核心功能

  • 主开发语言:主要使用 TypeScript 开发(性能好,扩展性强)
  • 实时协作: 支持多人同时编辑文档,像 Google Docs 一样流畅。
  • 可视化工具支持: 内置支持 Draw.io、Excalidraw、Mermaid 等画图工具,轻松制作专业文档。
  • 权限管理: 可以灵活管理文档的访问权限,满足企业级安全需求。
  • 全文搜索: 强大的搜索引擎让你秒找到需要的内容,再也不用翻半天。
  • 文档历史记录: 支持版本管理,可以回溯任何时间段的文档内容。
  • 多种嵌入功能: 能嵌入外部资源,比如 Airtable、Loom、Miro 等,让文档不仅是文字,还更直观。
  • 文件附件: 方便上传和管理图片、PDF 等文件。
  • 团队评论: 支持文档实时评论,提升团队沟通效率。

环境准备

安装Docker和Docker Compose

# 安装基础工具
yum install -y net-tools wget vim   # 解决网络命令缺失问题 
# 安装 Docker 及 Docker Compose
yum install -y docker
systemctl start docker && systemctl enable docker
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Ubuntu docker 安装

# Add Docker's official GPG key:
sudo apt-get update -qqy
sudo apt-get install ca-certificates curl -qqy
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
    
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \

sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update -qqy
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -qqy

Docmost 部署流程常用

Docmost部分功能需要配置证书才有效,比如代码片段的复制。

  • 流量走向: WAF → SLB(HTTPS) → 后端(HTTP 80)
    • 用户浏览器 → WAF(HTTPS)
    • WAF → SLB(HTTPS 或 HTTP)
    • SLB → 后端服务器(80 或 443)
      那么 只要 SLB → 后端是 HTTP(80):
      后端服务器完全不需要证书!

目录结构

需要创建 docker-compose.yml 和.env以及deploy_docmost.sh 文件,存放至/opt/docmost/

/opt/docmost/
├── backups
├── data
│   └── storage
├── db_data
└── redis_data

配置目录

mkdir -p /opt/docmost
cd /opt/docmost

编写 docker-compose.yml

vim /opt/docmost/docker-compose.yml
services:
  docmost:
    image: docmost/docmost:latest
    container_name: docmost
    env_file: .env
    depends_on:
      - db
      - redis
    environment:
      APP_URL: "http://localhost:3000"
      APP_SECRET: ${APP_SECRET}
      DATABASE_URL: ${DATABASE_URL}
      REDIS_URL: ${REDIS_URL}

    ports:
      - "3000:3000"

    user: "1000:1000"

    volumes:
      - ./data/storage:/app/data/storage

    restart: unless-stopped

  db:
    image: postgres:16-alpine
    container_name: docmost-db
    environment:
      POSTGRES_DB: docmost
      POSTGRES_USER: docmost
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - ./db_data:/var/lib/postgresql/data
    restart: unless-stopped

  redis:
    image: redis:7.2-alpine
    container_name: docmost-redis
    volumes:
      - ./redis_data:/data
    restart: unless-stopped

编写环境变量

配置APP_SECRET密钥

openssl rand -hex 32   #保存下该密钥
vim /opt/docmost/.env
APP_SECRET=3d2cfc09eb8ac96e789df47bf8d2024284980dd655e3e5fbf16d4aef0a33a5e8
POSTGRES_PASSWORD=YourDBPassword
DATABASE_URL=postgresql://docmost:YourDBPassword@db:5432/docmost?schema=public
REDIS_URL=redis://redis:6379
STORAGE_PATH=/app/data/storage
UPLOADS_DIR=/app/data/storage
FILE_STORAGE=local

  • 关键配置说明:
    • APP_SECRET 必须使用长随机密钥,否则服务启动失败
    • 数据库密码(POSTGRES_PASSWORD 和 DATABASE_URL)需设置为强密码且保持一致

配置部署脚本

vim deploy_docmost.sh
#!/bin/bash

echo "=== Docmost 托管部署脚本 ==="
BASE_DIR=/opt/docmost
cd $BASE_DIR || exit
echo "[1/5] 创建目录结构..."
mkdir -p data/storage db_data redis_data
echo "[2/5] 修复权限为 UID 1000..."
chown -R 1000:1000 data db_data redis_data
echo "[3/5] 确保 storage 正确挂载..."
if [ ! -d "data/storage" ]; then
    mkdir -p data/storage
fi
chown -R 1000:1000 data/storage

echo "[4/5] 停止旧容器..."
docker-compose down
echo "[5/5] 启动新容器..."
docker-compose up -d
echo "=== 部署完成 ==="
echo "可访问 Docmost: http://<你的服务器IP>:3000"

确保三个文件在/opt/docmost

docker-compose.yml
.env
deploy_docmost.sh
chmod +x deploy_docmost.sh
./deploy_docmost.sh

配置邮件环境变量

新建用户当前只有通过邮件邀请

创建配置文件

cd /opt/docmost  # 进入部署目录
vim .env         # 创建环境变量文件
# .env 文件内容
APP_SECRET=3d2cfc09eb8ac96e789df47bf8d2024284980dd655e3e5fbf16d4aef0a33a5e8
POSTGRES_PASSWORD=YourDBPassword
DATABASE_URL=postgresql://docmost:YourDBPassword@db:5432/docmost?schema=public
REDIS_URL=redis://redis:6379
STORAGE_PATH=/app/data/storage
UPLOADS_DIR=/app/data/storage
FILE_STORAGE=local

MAIL_DRIVER=smtp
SMTP_HOST=smtp.qq.com
SMTP_PORT=465
SMTP_USERNAME=**2889@qq.com
SMTP_PASSWORD=radabsjjbha
SMTP_ENCRYPTION=ssl
SMTP_SECURE=true
SMTP_TLS_REJECT_UNAUTH=false
MAIL_FROM_ADDRESS=**2889@qq.com
MAIL_FROM_NAME=Docmost

chmod 600 /opt/docmost/.env

重启服务:

docker-compose down && docker-compose up -d
  • 邮箱服务要求:
    • Gmail/QQ邮箱需开启 SMTP 服务
    • Gmail 需开启两步验证并创建应用密码

各组件作用

服务名 镜像 作用
docmost docmost/docmost:latest 主应用服务,提供协作 Wiki 和文档功能。依赖数据库(db)和 Redis(redis)。
db postgres:16-alpine PostgreSQL 数据库服务,存储用户数据、文档内容、权限等结构化数据。
redis redis:7.2-alpine Redis 缓存服务,用于会话管理、临时数据存储和性能优化

初始化与访问

  • 首次访问:
    • 浏览器打开 http://<服务器IP>:3000,使用默认账号:
      • 用户名:admin@example.com
      • 密码:admin
  • 强制修改密码:登录后进入 Settings > User Management,立即重置管理员密码
  • 域名与 HTTPS 配置(可选):
    • 修改 docker-compose.yml 中的 APP_URL 为域名(如 https://doc.yourdomain.com)。
    • 通过 Nginx 反向代理配置 SSL 证书(推荐 Let’s Encrypt)

备份

完整备份脚本 (backup_docmost.sh)

vim backup_docmost.sh
#!/bin/bash
# Docmost 备份脚本
# 保存路径:/opt/docmost/backup_docmost.sh

set -e

BASE_DIR="/opt/docmost"
BACKUP_DIR="$BASE_DIR/backups"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_NAME="docmost_backup_$TIMESTAMP.tar.gz"

mkdir -p "$BACKUP_DIR"

echo "📦 开始备份 Docmost (时间: $TIMESTAMP)..."

# 停止容器以防写入冲突
echo "⏹️  停止 Docmost docker-compose..."
cd $BASE_DIR
docker-compose down

echo "🗂️  打包以下目录:"
echo " - data/"
echo " - db_data/"
echo " - redis_data/"
echo " - docker-compose.yml"
echo " - .env"

tar -czvf "$BACKUP_DIR/$BACKUP_NAME" \
    data \
    db_data \
    redis_data \
    docker-compose.yml \
    .env

echo "▶️  启动 docker-compose..."
docker-compose up -d

echo "✅ 备份完成:$BACKUP_DIR/$BACKUP_NAME"
sudo chmod +x /opt/docmost/backup_docmost.sh

执行备份

cd /opt/docmost
./backup_docmost.sh

备份文件位置

/opt/docmost/backups/docmost_backup_YYYYMMDD_HHMMSS.tar.gz

还原脚本 (restore_docmost.sh)

vim restore_docmost.sh
#!/bin/bash
# Docmost 恢复脚本
# 位置:/opt/docmost/restore_docmost.sh

set -e

if [ -z "$1" ]; then
    echo "❗用法:$0 <备份文件路径>"
    exit 1
fi

BACKUP_FILE=$1
BASE_DIR="/opt/docmost"

if [ ! -f "$BACKUP_FILE" ]; then
    echo "❌ 备份文件不存在:$BACKUP_FILE"
    exit 1
fi

echo "⛔ 停止 Docmost docker-compose..."
cd $BASE_DIR
docker-compose down

echo "🧹 清理原有数据目录..."
rm -rf data db_data redis_data
mkdir -p data db_data redis_data

echo "📦 解压备份..."
tar -xzvf "$BACKUP_FILE" -C "$BASE_DIR"

echo "▶️ 启动 Docmost..."
docker-compose up -d

echo "✅ 恢复完成!"
sudo chmod +x /opt/docmost/restore_docmost.sh

执行恢复

cd /opt/docmost
./restore_docmost.sh backups/docmost_backup_20250101_120000.tar.gz

安装验证以及升级

# 查看日志确认运行状态
docker-compose logs -f docmost

升级版本

docker pull docmost/docmost:latest
docker compose up --force-recreate --build docmost -d

高级配置与优化

  • 空间与权限管理:
    • 创建 Spaces 划分不同项目区域,设置细粒度权限(编辑/只读)
  • 数据备份:
    • 定期备份 /opt/docmost 目录下的 data、db_data、redis_data 卷。
  • 常见问题解决:
    • 容器启动失败:检查 APP_SECRET 格式(需 64 位十六进制字符串) 。
    • 数据库连接错误:确认 DATABASE_URL 与 POSTGRES_PASSWORD 一致性。
    • 端口冲突:若 3000 端口被占用,修改 ports 为 “新端口:3000”。

故障无法解决强制重建容器

docker-compose down --volumes --remove-orphans  # 停止并删除旧容器
docker system prune -af  # 清理旧容器缓存
docker-compose up -d --force-recreate  # 重新构建启动

镜像拉取报错

如果镜像无法下载,调整docker 的镜像地址

{
"registry-mirrors": [
"https://dockerpull.com",
"https://dockerproxy.cn",
"https://docker.loli.voto",
"https://docker.chenby.cn",
"https://docker-cf.registry.cyou",
"https://docker.m.daocloud.io",
"https://docker.ketches.cn",
"https://docker.1panel.dev",
"https://docker.1panel.live",
"https://docker.rainbond.cc",
"https://hub.rat.dev",
"https://docker.aityp.com/",
"https://docker.catiz.eu.org/"
]

调整成中文

http://localhost:3000
在这里插入图片描述

编辑文档

访问该网站可使excel 生成markdown文本
https://tableconvert.com/excel-to-markdown

  • 复制表格内容
    在这里插入图片描述
  • 粘贴到网站文本框里在这里插入图片描述
  • 下拉找到Markdown
    在这里插入图片描述
  • 粘贴到Docmost
    在这里插入图片描述
  • 生成表格

在这里插入图片描述

移除Docmost

#停止并删除 Docmost 所有容器
cd /opt/docmost
docker-compose down --remove-orphans
#删除 Docmost、Postgres、Redis、Nginx、Certbot 的容器和镜像
docker rm -f docmost docmost-postgres docmost-redis docmost-nginx docmost-certbot 2>/dev/null
#docker rmi docmost/docmost:latest postgres:15 redis:7 nginx:latest certbot/certbot 2>/dev/null
#删除所有 Docmost 数据目录
rm -rf /opt/docmost/data
rm -rf /opt/docmost/db_data
rm -rf /opt/docmost/redis_data
rm -rf /opt/docmost/nginx
rm -rf /opt/docmost/certbot
#删除 docker-compose.yml 和 .env
rm -f /opt/docmost/docker-compose.yml
rm -f /opt/docmost/.env
#最后移除整个 docmost 目录
rm -rf /opt/docmost

拓展 内网一键部署Docmost(自签名 HTTPS )

/opt/docmost
│
├── data/                     # 📌 Docmost 所有持久化数据(最重要)
│   ├── postgres/             # PostgreSQL 数据库文件
│   ├── redis/                # Redis 缓存数据(可不备份)
│   └── storage/              # 📌 所有上传文件(图片、文档、附件)
│
├── cert/                     # 内网自签名证书
│   ├── docmost.local.crt
│   └── docmost.local.key
│
├── docker-compose.yml        # Docker 核心配置
├── nginx.conf                # 反向代理、HTTPS、WebSocket 配置
│
├── docmost-install.sh        # 你使用的一键部署脚本
├── backup_docmost.sh         #(如果已添加)备份脚本
└── restore_docmost.sh        #(如果已添加)恢复脚本
vim /opt/docmost-install.sh

配置域名为:docmost.local 也可以调整成你自己的
IP:192.168.40.133

#!/bin/bash
set -e

# ================================
# Docmost 内网版一键部署脚本(增强版)
# 支持:域名 HTTPS + IP HTTP 共存(均支持 WebSocket)
# 域名:docmost.local
# IP:192.168.40.133
# ================================

DOMAIN="docmost.local"
SERVER_IP="192.168.40.133"

BASE_DIR="/opt/docmost"
DATA_DIR="$BASE_DIR/data"
CERT_DIR="$BASE_DIR/cert"

echo "====================================="
echo "🚀 Docmost 内网部署开始"
echo "====================================="

# -------------------------------------
# 1. 安装 Docker(如果未安装)
# -------------------------------------
if ! command -v docker >/dev/null 2>&1 ; then
    echo "[1/8] 安装 Docker..."
    curl -fsSL https://get.docker.com | bash
else
    echo "[1/8] Docker 已安装"
fi

# -------------------------------------
# 2. 安装 Docker Compose(如果未安装)
# -------------------------------------
if ! command -v docker compose >/dev/null 2>&1 ; then
    echo "[2/8] 安装 Docker Compose..."
    sudo apt-get update -y || true
    sudo apt-get install -y docker-compose-plugin
else
    echo "[2/8] Docker Compose 已安装"
fi

# -------------------------------------
# 3. 创建目录
# -------------------------------------
echo "[3/8] 创建目录..."
mkdir -p $DATA_DIR/postgres
mkdir -p $DATA_DIR/redis
mkdir -p $DATA_DIR/storage
mkdir -p $CERT_DIR

# -------------------------------------
# 4. 设置权限(Docmost 运行用户 UID=1000)
# -------------------------------------
echo "[4/8] 修复目录权限..."
chown -R 1000:1000 $DATA_DIR
chmod -R 775 $DATA_DIR

# -------------------------------------
# 5. 生成自签名证书
# -------------------------------------
echo "[5/8] 生成内网自签名证书..."
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
  -keyout $CERT_DIR/$DOMAIN.key \
  -out $CERT_DIR/$DOMAIN.crt \
  -subj "/C=CN/ST=Intranet/L=LAN/O=Local/CN=$DOMAIN"

# -------------------------------------
# 6. 生成 docker-compose.yml
# -------------------------------------
echo "[6/8] 生成 docker-compose.yml ..."

cat > $BASE_DIR/docker-compose.yml <<EOF
version: "3.9"

services:

  postgres:
    image: postgres:15
    container_name: docmost-postgres
    restart: always
    environment:
      POSTGRES_DB: docmost
      POSTGRES_USER: docmost
      POSTGRES_PASSWORD: docmost_pass
    volumes:
      - $DATA_DIR/postgres:/var/lib/postgresql/data

  redis:
    image: redis:7
    container_name: docmost-redis
    restart: always
    volumes:
      - $DATA_DIR/redis:/data

  docmost:
    image: docmost/docmost:latest
    container_name: docmost
    restart: always
    env_file:
      - .env
    depends_on:
      - postgres
      - redis
    environment:
      DATABASE_URL: postgres://docmost:docmost_pass@postgres:5432/docmost
      REDIS_URL: redis://redis:6379
      APP_SECRET: \${APP_SECRET}
      SITE_URL: https://$DOMAIN

      STORAGE_PATH: /app/data/storage
      UPLOADS_DIR: /app/data/storage
      FILE_STORAGE: local

    ports:
      - "3000:3000"

    volumes:
      - $DATA_DIR/storage:/app/data/storage

  nginx:
    image: nginx:latest
    container_name: docmost-nginx
    restart: always
    depends_on:
      - docmost
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - $CERT_DIR:/etc/nginx/cert
      - $BASE_DIR/nginx.conf:/etc/nginx/nginx.conf

EOF

# -------------------------------------
# 7. 生成 nginx.conf(增强:IP 支持 WebSocket)
# -------------------------------------
echo "[7/8] 生成 nginx.conf ..."

cat > $BASE_DIR/nginx.conf <<EOF
# ================================
# Docmost 内网 Nginx 配置
# 域名:$DOMAIN
# IP:$SERVER_IP
# ================================

events {}

http {

    # -------------------------------
    # 1) IP 访问(HTTP + WebSocket 支持)
    # -------------------------------
    server {
        listen 80;
        server_name $SERVER_IP;
        server_name_in_redirect off;

        location / {
            proxy_pass http://docmost:3000;
            proxy_set_header Host \$host;
            proxy_set_header X-Real-IP \$remote_addr;
            proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;

            # WebSocket 支持(新增)
            proxy_http_version 1.1;
            proxy_set_header Upgrade \$http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }

    # -------------------------------
    # 2) 域名 HTTP → 跳转 HTTPS
    # -------------------------------
    server {
        listen 80;
        server_name $DOMAIN;

        return 302 https://$DOMAIN\$request_uri;
    }

    # -------------------------------
    # 3) 域名 HTTPS(原有 WebSocket)
    # -------------------------------
    server {
        listen 443 ssl http2;
        server_name $DOMAIN;

        ssl_certificate     /etc/nginx/cert/$DOMAIN.crt;
        ssl_certificate_key /etc/nginx/cert/$DOMAIN.key;

        client_max_body_size 500M;

        location / {
            proxy_pass http://docmost:3000;
            proxy_set_header Host \$host;
            proxy_set_header X-Real-IP \$remote_addr;
            proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;

            proxy_http_version 1.1;
            proxy_set_header Upgrade \$http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }

}
EOF

# -------------------------------------
# 8. 启动 Docmost
# -------------------------------------
echo "[8/8] 启动 Docmost..."

cd $BASE_DIR
export APP_SECRET=$(openssl rand -hex 32)

docker compose down || true
docker compose up -d

echo "====================================="
echo "🎉 Docmost 内网部署完成!"
echo "====================================="
echo "域名访问(HTTPS): https://$DOMAIN"
echo "IP 访问(HTTP+WebSocket): http://$SERVER_IP"
echo "证书路径:$CERT_DIR/$DOMAIN.crt"
echo "数据目录:$DATA_DIR"
echo "上传目录:$DATA_DIR/storage"
echo "APP_SECRET:$APP_SECRET"
echo "====================================="

运行安装

chmod +x /opt/docmost-install.sh
bash /opt/docmost-install.sh
  • 安装完成后访问
    • 你的 Windows / Mac hosts 文件中添加:
      • 192.168.x.x www.docmost.com
    • 然后浏览器打开:https://yourdomain.com

备份

  • 备份内容说明
    • db.sql (完整 PostgreSQL 数据)
    • storage.tar.gz(上传文档、图片、附件、封面等所有文件)
vim /opt/docmost/backup_docmost.sh
#!/bin/bash
set -e

BACKUP_DIR="/opt/docmost/backup"
DATA_DIR="/opt/docmost/data"
TIMESTAMP=$(date +"%Y%m%d-%H%M%S")
BACKUP_FILE="$BACKUP_DIR/docmost-backup-$TIMESTAMP.tar.gz"

echo "====================================="
echo "📦 Docmost 备份开始:$TIMESTAMP"
echo "====================================="

mkdir -p $BACKUP_DIR

POSTGRES="docmost-postgres"
REDIS="docmost-redis"
DOCMOST="docmost"

echo "[1/5] 暂停 Docmost 应用以防止写入(不停止数据库)..."

# 仅停止 docmost(应用),不要停止 postgres
docker stop $DOCMOST >/dev/null || true
docker stop $REDIS >/dev/null || true

echo "[2/5] 导出 PostgreSQL 数据库..."
docker exec $POSTGRES pg_dump -U docmost docmost > $BACKUP_DIR/db.sql

echo "[3/5] 打包 storage 文件..."
tar -czf $BACKUP_DIR/storage.tar.gz -C $DATA_DIR storage

echo "[4/5] 打包最终备份包..."
tar -czf $BACKUP_FILE -C $BACKUP_DIR db.sql storage.tar.gz

echo "[5/5] 重启 Docmost..."
docker start $POSTGRES $REDIS $DOCMOST >/dev/null || true

echo "====================================="
echo "🎉 Docmost 备份完成"
echo "备份文件:$BACKUP_FILE"
echo "====================================="
chmod +x backup_docmost.sh

手动备份

cd /opt/docmost
./backup_docmost.sh

备份文件位置

/opt/docmost/backup
├── db.sql
├── docmost-backup-20251126-165758.tar.gz
└── storage.tar.gz

恢复

vim /opt/docmost/restore_docmost.sh
#!/bin/bash
set -e

if [ -z "$1" ]; then
    echo "❌ 使用方法:$0 <备份文件路径>"
    echo "例如:$0 /opt/docmost/backup/docmost-backup-20251126-120000.tar.gz"
    exit 1
fi

BACKUP_FILE="$1"

BASE_DIR="/opt/docmost"
DATA_DIR="$BASE_DIR/data"

POSTGRES="docmost-postgres"
REDIS="docmost-redis"
DOCMOST="docmost"

WORK_DIR="/tmp/docmost-restore"
rm -rf $WORK_DIR
mkdir -p $WORK_DIR

echo "====================================="
echo "♻️ Docmost 恢复开始"
echo "备份文件:$BACKUP_FILE"
echo "====================================="

if [ ! -f "$BACKUP_FILE" ]; then
    echo "❌ 找不到备份文件:$BACKUP_FILE"
    exit 1
fi

echo "[1/6] 解压备份包..."
tar -xzf $BACKUP_FILE -C $WORK_DIR

if [ ! -f "$WORK_DIR/db.sql" ]; then
    echo "❌ 备份包缺少 db.sql,无法恢复数据库"
    exit 1
fi

if [ ! -f "$WORK_DIR/storage.tar.gz" ]; then
    echo "❌ 备份包缺少 storage.tar.gz"
    exit 1
fi

echo "[2/6] 停止 Docmost 相关容器..."
docker stop $DOCMOST >/dev/null || true
docker stop $REDIS >/dev/null || true
docker stop $POSTGRES >/dev/null || true

echo "[3/6] 清空 PostgreSQL 数据目录(非常重要)..."
rm -rf $DATA_DIR/postgres/*
mkdir -p $DATA_DIR/postgres

echo "➡️ 重新启动 PostgreSQL 空库..."
docker start $POSTGRES >/dev/null

echo "等待 PostgreSQL 启动..."
sleep 5

echo "[4/6] 恢复数据库..."
docker exec -i $POSTGRES psql -U docmost docmost < $WORK_DIR/db.sql

echo "[5/6] 恢复 storage 用户上传文件..."
rm -rf $DATA_DIR/storage
mkdir -p $DATA_DIR/storage
tar -xzf $WORK_DIR/storage.tar.gz -C $DATA_DIR

echo "[6/6] 重启所有 Docmost 服务..."
docker start $REDIS $DOCMOST >/dev/null || true

echo "====================================="
echo "🎉 Docmost 恢复完成!"
echo "====================================="
echo "📌 数据库已恢复"
echo "📌 上传文件已恢复"
echo "📌 服务已重新启动"
echo "====================================="

chmod +x restore_docmost.sh

恢复备份

cd /opt/docmost
./restore.sh /opt/docmost/backup/docmost-backup-20251126-140000.tar.gz

邮件

vim /opt/docmost/.env
MAIL_DRIVER=smtp
SMTP_HOST=smtp.qq.com
SMTP_PORT=465
SMTP_USERNAME=**2889@qq.com
SMTP_PASSWORD=radabsjjbha
SMTP_ENCRYPTION=ssl
SMTP_SECURE=true
SMTP_TLS_REJECT_UNAUTH=false
MAIL_FROM_ADDRESS=**2889@qq.com
MAIL_FROM_NAME=Docmost
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐