本文以开源且功能强大的Paperless-ngx为例,讲解如何在Linux服务器上从零搭建企业级档案管理系统。该方案支持OCR识别、标签管理及全文检索,完全满足企业档案数字化需求。操作系统建议使用Ubuntu 20.04或22.04 LTS。
确保系统包列表已更新并安装必要的工具:
```bash sudo apt-get update sudo apt-get install -y curl python3-pip ```接着,安装Docker和Docker Compose。这是运行该软件最简单且最稳定的方式。执行以下一键安装命令:
```bash curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER ```安装完成后,重新登录或执行以下命令使组权限生效,并安装Docker Compose插件:
```bash newgrp docker sudo apt-get install -y docker-compose-plugin ```为了确保数据持久化且不因容器重启而丢失,我们需要在宿主机创建标准的数据目录结构。执行以下命令:
```bash mkdir -p ~/paperless/data mkdir -p ~/paperless/media mkdir -p ~/paperless/export mkdir -p ~/paperless/consume mkdir -p ~/paperless/db ```注意:上述目录分别用于存储应用配置、原始文档、导出文件、待处理文档和数据库文件。赋予目录正确的读写权限至关重要,否则容器将无法写入数据:
```bash chmod -R 755 ~/paperless ```进入项目目录并创建配置文件:
```bash cd ~/paperless nano docker-compose.yml ```将以下完整配置复制到文件中。该配置集成了PostgreSQL数据库、Redis缓存服务以及Brotsky(OCR处理服务),确保系统高效运行:
```yaml services: broker: image: docker.io/library/redis:7 restart: always volumes: - ./redis:/data db: image: docker.io/library/postgres:15 restart: always volumes: - ./db:/var/lib/postgresql/data environment: POSTGRES_USER: paperless POSTGRES_PASSWORD: paperless POSTGRES_DB: paperless webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest restart: always depends_on: - db - broker - gotenberg - tika ports: - "8000:8000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000"] interval: 30s timeout: 10s retries: 5 volumes: - ./data:/usr/src/paperless/data - ./media:/usr/src/paperless/media - ./export:/usr/src/paperless/export - ./consume:/usr/src/paperless/consume env_file: - .env environment: PAPERLESS_REDIS: redis://broker:6379 gotenberg: image: docker.io/gotenberg/gotenberg:7.7.1 restart: always command: - "gotenberg" - "--chromium-disable-routes" environment: DISABLE_CHROMIUM_SANDBOX: "true" tika: image: apache/tika:latest restart: always tika: image: ghcr.io/paperless-ngx/tika:latest restart: always ```在同级目录下创建.env文件来存储敏感配置和系统参数:
填入以下关键配置。特别要注意PAPERLESS_OCR_LANGUAGE的设置,这里配置为简体中文和英文混合识别:
配置文件就绪后,执行以下命令拉取镜像并启动所有服务:
```bash docker compose up -d ```首次启动需要下载镜像,耗时取决于网络速度。启动成功后,查看容器状态确保所有服务均为Up (healthy):
如果Webserver服务显示不健康,请使用docker compose logs -f webserver查看日志排查。通常是因为目录权限问题,请重新检查第三步的chmod命令。
系统初始化需要下载OCR语言包。进入Webserver容器手动下载中文语言包,确保OCR功能正常:
```bash docker compose exec webserver wget https://github.com/tesseract-ocr/tessdata/raw/main/chi_sim.traineddata -P /usr/share/tessdata/ docker compose exec webserver wget https://github.com/tesseract-ocr/tessdata/raw/main/eng.traineddata -P /usr/share/tessdata/ ``>
下载完成后,重启容器使配置生效:
```bash docker compose restart webserver ```为了在企业内网或公网安全访问,建议配置Nginx反向代理。首先安装Nginx:
```bash sudo apt-get install -y nginx ```创建站点配置文件:
```bash sudo nano /etc/nginx/sites-available/paperless ```写入以下配置(假设域名为archive.company.com,请替换为实际IP或域名):
启用配置并重启Nginx:
```bash sudo ln -s /etc/nginx/sites-available/paperless /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx ```如需HTTPS加密,安装Certbot并自动配置证书:
```bash sudo apt-get install -y certbot python3-certbot-nginx sudo certbot --nginx -d archive.company.com ```浏览器访问http://服务器IP:8000或配置的域名。使用.env文件中设置的管理员账号登录。
在系统设置中,预先定义好企业的档案类型,如“合同”、“发票”、“人事档案”。在“标签”栏创建部门标签,如“财务部”、“技术部”。这些元数据是后续检索的关键。
点击界面上的“上传”按钮,拖拽PDF或图片文件。系统会自动将文件移动到consume目录,由后台任务进行OCR处理。
操作细节:上传后,文档会出现在“待处理”视图中。等待数秒后,刷新页面,文档会自动转入“文档”视图,且右侧边栏会显示OCR识别出的全文内容。如果包含中文,确认chi_sim语言包已生效,文字无乱码。
点击文档进入详情页。在右侧面板:
作为管理员,点击右上角头像 -> “设置” -> “用户”。点击“+ 添加用户”创建普通员工账号。
权限模型说明:
数据备份是档案管理的底线。编写定时任务脚本backup.sh:
赋予执行权限并设置Crontab每天凌晨2点执行:
```bash chmod +x backup.sh crontab -e 添加以下行 0 2 cd ~/paperless && ./backup.sh ```