技术咨询档案软件:零基础搭建私有知识管理系统实操指南
一、系统架构与工具选型
本方案采用Docker容器化部署,核心由三个开源组件构成,确保数据私有、部署简单、功能完整。
1.1 核心组件说明
Trilium Notes:作为知识库与档案管理的主体。它是一个分层的笔记应用,支持富文本、代码高亮、关系图谱和强大的搜索,非常适合构建结构化的技术咨询档案。
PostgreSQL:作为Trilium Notes的数据库,用于持久化存储所有笔记、标签和元数据。
Nginx Proxy Manager:一个带Web管理界面的反向代理工具,用于轻松配置域名、SSL证书(HTTPS),方便从外网安全访问。
1.2 环境与前提条件
你需要准备:
- 一台安装有Linux系统(如Ubuntu 22.04)的云服务器或本地主机,拥有sudo权限。
- 一个指向你服务器IP的域名(如需外网访问)。
- 服务器已安装Docker和Docker Compose。如未安装,执行以下命令:
安装后,请退出并重新登录SSH会话,使权限生效。
二、一键部署与初始化
我们将使用docker-compose.yml文件一键启动所有服务。
2.1 创建项目目录与配置文件
在服务器上创建一个项目目录,并进入该目录。
```bash mkdir ~/tech-archive && cd ~/tech-archive ```创建docker-compose.yml文件:
```yaml version: '3.8' services: postgres: image: postgres:16-alpine container_name: trilium-db restart: unless-stopped environment: POSTGRES_USER: trilium POSTGRES_PASSWORD: YourStrongPassword123! 请修改为强密码 POSTGRES_DB: trilium volumes: - ./postgres-data:/var/lib/postgresql/data networks: - trilium-network trilium: image: zadam/trilium:latest container_name: trilium-server restart: unless-stopped depends_on: - postgres ports: - "8080:8080" 本地访问端口 environment: TRILIUM_DATA_DIR: /home/node/trilium-data TRILIUM_DB_HOST: postgres TRILIUM_DB_USER: trilium TRILIUM_DB_PASSWORD: YourStrongPassword123! 与上方密码一致 TRILIUM_DB_DATABASE: trilium volumes: - ./trilium-data:/home/node/trilium-data networks: - trilium-network nginx-proxy-manager: image: 'jc21/nginx-proxy-manager:latest' container_name: nginx-proxy-manager restart: unless-stopped ports: - '80:80' HTTP端口 - '443:443' HTTPS端口 - '81:81' 管理界面端口 volumes: - ./nginx-proxy-data:/data - ./nginx-proxy-letsencrypt:/etc/letsencrypt networks: - trilium-network networks: trilium-network: driver: bridge ```操作要点:将文件中的YourStrongPassword123!替换为你自己设定的强密码,并在两个地方保持一致。
2.2 启动所有服务
在docker-compose.yml文件所在目录执行:
```bash docker-compose up -d ```命令执行后,Docker会拉取镜像并启动三个容器。使用以下命令检查运行状态:
```bash docker-compose ps ```当所有服务的状态均为“Up”时,表示启动成功。
2.3 初始化Trilium Notes
打开浏览器,访问 http://你的服务器IP:8080。
- 首次访问会进入设置页面。在“设置密码”和“确认密码”框中,输入你要用来登录Trilium的管理员密码(可与数据库密码不同)。
- 点击“提交”,系统将初始化数据库并自动跳转到登录页。
- 使用用户名“admin”和你刚设置的密码登录。
至此,你的私有知识库核心已部署完成,可以在本地通过IP:8080访问并开始记录。
三、配置外网安全访问(HTTPS)

若需通过域名在外网安全访问,需配置Nginx Proxy Manager。
3.1 访问NPM管理界面
浏览器访问 http://你的服务器IP:81。
- 默认登录邮箱:admin@example.com
- 默认密码:changeme
登录后,系统会强制要求你修改邮箱和密码,请务必完成此步骤。
3.2 添加反向代理
- 在NPM仪表盘,点击“Hosts” -> “Proxy Hosts” -> “Add Proxy Host”。
-
Details标签页:
- Domain Names:填写你的域名,如 archive.yourdomain.com。
- Scheme:选择 http。
- Forward Hostname / IP:填写 trilium-server(这是Docker Compose网络内的服务名)。
- Forward Port:填写 8080。
- 点击“Save”保存。
3.3 申请SSL证书
- 在刚才创建的Proxy Host条目中,点击“Edit”。
- 切换到SSL标签页。
- SSL Certificate:选择“Request a new SSL Certificate”。
- 勾选“Force SSL”和“HTTP/2 Support”。
- 在“Email Address for Let‘s Encrypt”中填写你的邮箱。
- 勾选“I agree to the Let's Encrypt Terms of Service”。
- 点击“Save”。系统将自动为你申请并配置免费的HTTPS证书。
配置完成后,等待1-2分钟,即可通过 https://archive.yourdomain.com 安全访问你的技术档案系统。
四、构建技术咨询档案体系
登录Trilium后,开始构建你的知识结构。
4.1 创建基础分类结构
在左侧笔记树状图中,右键点击根目录,选择“创建子笔记”。建议建立以下核心分类:
- 01-客户档案:按客户单位建立子笔记,记录联系人、项目历史、特殊要求。
- 02-技术专题:按技术领域分类,如“Kubernetes故障排查”、“数据库优化案例”、“API设计规范”。
- 03-咨询记录:按日期或项目记录每次咨询的详细问题、分析过程、解决方案和后续反馈。
- 04-解决方案库:归档已验证的通用解决方案模板、脚本和配置片段。
- 05-工具与资源:存放常用工具链的安装脚本、配置说明、内部文档链接。
4.2 使用标签进行多维关联
Trilium的标签功能强大,可以为笔记打上多个标签,实现跨分类关联。
- 创建标签:在右侧边栏“标签”区域,点击“+”,输入标签名如“高频问题”、“未解决”、“A客户”。
- 应用标签:在笔记编辑界面,点击笔记标题下方的“添加标签”按钮,或直接输入“”后跟标签名。
- 通过点击任意标签,可以快速筛选出所有带有该标签的笔记,无论它们属于哪个分类。
4.3 嵌入代码与附件
在编辑笔记时:
- 插入代码块:点击工具栏“>”图标,选择语言,粘贴代码。
- 上传文件:直接将文件(如日志、配置、图表)拖拽到编辑区,文件会自动上传并嵌入笔记中。
- 创建内部链接:输入“[[”后,会弹出笔记列表,选择要链接到的笔记,即可建立笔记间的超链接。
五、数据备份与恢复
定期备份是保证数据安全的核心。
5.1 手动备份
所有数据都存储在宿主机挂载的目录中(即项目目录下的postgres-data和trilium-data)。最简单的备份方式是打包整个项目目录。
```bash 在项目目录的上一级执行 cd ~ tar -czf tech-archive-backup-$(date +%Y%m%d).tar.gz tech-archive/ ```将生成的.tar.gz文件下载到本地或上传至云存储。
5.2 通过Trilium导出
Trilium支持导出单个笔记或整个子树为可移植的HTML或Markdown文件。
- 右键点击要备份的笔记或目录。
- 选择“导出” -> “导出为HTML”或“导出为Markdown”。
- 此方法适合导出部分重要内容进行分享或归档。
5.3 恢复数据
若需迁移或恢复整个系统:
- 在新服务器上按照“第二部分”的步骤,创建相同的目录和docker-compose.yml文件。
- 不要启动服务。将备份的postgres-data和trilium-data目录覆盖到新服务器的项目目录下。
- 执行docker-compose up -d启动服务。
- 访问系统,所有笔记、标签和结构都将完整恢复。
六、日常维护命令
以下命令均在项目目录(~/tech-archive)下执行。
- 查看服务日志:
docker-compose logs -f 服务名(如docker-compose logs -f trilium) - 停止所有服务:
docker-compose down - 重启所有服务:
docker-compose restart - 更新所有镜像至最新版:
docker-compose pulldocker-compose up -d
- 清理无用Docker资源:
docker system prune -f
按照以上步骤,你将拥有一个完全受控、功能强大且可随时扩展的私有技术咨询档案系统,所有数据均掌握在自己手中。