一、部署准备

硬件要求

  • 最低配置:2核CPU / 2GB内存 / 20GB存储
  • 推荐配置:4核CPU / 4GB内存 / 50GB存储(适合10人以上团队)

软件依赖

# Ubuntu/Debian
sudo apt update && sudo apt install -y \
    docker.io \
    docker-compose-plugin \
    caddy

# 配置docker用户组
sudo usermod -aG docker $USER
newgrp docker

域名配置(必需)

服务类型示例域名说明
主应用notes.yourdomain.com同步服务器
身份认证auth.yourdomain.com用户认证服务
实时事件events.yourdomain.comSSE推送服务
笔记分享mono.yourdomain.com公开笔记分享服务

二、核心服务部署

1. 获取部署文件

mkdir notesnook && cd notesnook
wget https://raw.githubusercontent.com/streetwriters/notesnook-sync-server/master/docker-compose.yml

2. 环境变量配置 (.env)

# 基础配置
INSTANCE_NAME="My Private Notes"
DISABLE_SIGNUPS=false  # 初始部署设为false,注册后改为true

# API安全
NOTESNOOK_API_SECRET=$(openssl rand -hex 32)

# SMTP配置(必须真实有效)
[email protected]
SMTP_PASSWORD=your-smtp-password
SMTP_HOST=smtp.yourdomain.com
SMTP_PORT=587

# 域名配置(必须与准备环节一致)
NOTESNOOK_APP_PUBLIC_URL=https://notes.yourdomain.com
MONOGRAPH_PUBLIC_URL=https://mono.yourdomain.com
AUTH_SERVER_PUBLIC_URL=https://auth.yourdomain.com
ATTACHMENTS_SERVER_PUBLIC_URL=https://files.yourdomain.com

# MinIO配置
MINIO_ROOT_USER=notesnook
MINIO_ROOT_PASSWORD=$(openssl rand -hex 16)

3. 启动服务

docker compose up -d

三、高级配置技巧

1. 邮件发送优化

解决SMTP用户名不等于发件人地址的问题:

# 在identity-server容器中执行
docker exec -it identity-server \
    sed -i 's/mailOptions.from = username;/mailOptions.from = "[email protected]";/' \
    /app/dist/services/email/service.js

2. 数据库备份方案

# 每日MongoDB备份脚本
cat > /usr/local/bin/notesnook-backup <<EOF
#!/bin/bash
BACKUP_DIR=/var/backups/notesnook
mkdir -p \$BACKUP_DIR
docker exec notesnook-db mongodump \
    --uri="mongodb://notesnook-db:27017/?replSet=rs0" \
    --out=\$BACKUP_DIR/\$(date +%Y%m%d)
EOF
chmod +x /usr/local/bin/notesnook-backup

3. 性能监控仪表板

使用Grafana监控关键指标:

# 在docker-compose.yml中添加
services:
  prometheus:
    image: prom/prometheus
    ports: ["9090:9090"]
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    networks:
      - notesnook

  grafana:
    image: grafana/grafana
    ports: ["3000:3000"]
    networks:
      - notesnook

四、安全加固措施

1. 网络隔离

# 创建专用网络
docker network create --internal notesnook-internal

# 修改docker-compose.yml中的网络配置
networks:
  notesnook:
    internal: true
  public:
    driver: bridge

2. 防火墙规则

# 只开放必要端口
ufw allow 80,443/tcp
ufw enable

3. 定期安全更新

# 设置自动更新
cat > /etc/cron.weekly/docker-update <<EOF
#!/bin/sh
docker compose pull && docker compose up -d --force-recreate
EOF
chmod +x /etc/cron.weekly/docker-update

五、客户端配置指南

  1. 桌面端:从官网下载客户端
  2. 移动端:在应用商店搜索"Notesnook"
  3. 服务器设置

    Sync Server: https://notes.yourdomain.com
    Auth Server: https://auth.yourdomain.com
    Events Server: https://events.yourdomain.com
    Monograph Server: https://mono.yourdomain.com

六、故障排除

常见问题解决方案

问题现象排查步骤
注册收不到邮件1. 检查SMTP日志
2. 验证垃圾邮件箱
3. 执行邮件测试脚本
同步失败1. 检查网络连接
2. 验证服务器时间同步
3. 查看docker日志
附件上传失败1. 检查MinIO存储空间
2. 验证S3权限配置
3. 监控磁盘使用率

日志查看命令

# 查看实时日志
docker compose logs -f

# 筛选错误日志
docker compose logs | grep -i error

七、生态整合方案

1. 与Nextcloud集成

# 通过WebDAV同步附件
docker exec notesnook-server \
    sed -i 's|S3_SERVICE_URL=.*|S3_SERVICE_URL=https://nextcloud.yourdomain.com/remote.php/dav/files/admin/Attachments|' \
    /app/.env

2. 支持Markdown导出

# 添加自定义导出处理器
docker exec notesnook-server \
    npm install --save @notesnook/exporter

3. 邮件提醒整合

# 配置邮件模板
docker cp custom-email-templates/ identity-server:/app/dist/services/email/templates/

通过本指南,您已成功部署了一个完全私有化端到端加密的企业级笔记系统。Notesnook 的自托管方案特别适合:

  • 注重隐私安全的个人用户
  • 需要合规审计的企业团队
  • 有特定数据驻留要求的组织机构

建议定期关注官方GitHub获取最新更新,并加入社区论坛与其他自托管用户交流经验。

标签: docker, notesnook, 加密, 私有, 开源笔记

添加新评论