分析 paperlessngx 的典型项目结构(基于其官方仓库)。这是一个基于 Docker 的文档管理系统,主要依赖 Python (Django)、PostgreSQL、Redis 和 Tesse
好的收到您的项目代号paperlessngx。我将以资深技术文档工程师/DevOps专家的身份为您生成一份详细的部署指南。首先我将按照预设的工作流分析项目、推断环境要求并最终整合成完整的部署文档。第一步项目分析我将分析paperlessngx的典型项目结构基于其官方仓库。这是一个基于 Docker 的文档管理系统主要依赖 Python (Django)、PostgreSQL、Redis 和 Tesseract OCR。分析结果 (JSON):{language:Python,framework:Django,dependencies:[docker-compose.yml,docker-compose.env,requirements.txt],config_files:[.env.docker,docker-compose.env.example],database:PostgreSQL,other_notes:这是一个强烈推荐使用 Docker Compose 部署的项目。核心配置通过环境变量文件管理。需要 OCR 功能因此依赖 Tesseract 及其语言包。}第二步环境要求推断根据分析部署paperlessngx主要依赖 Docker 和 Docker Compose。系统本身的要求较低。在 Ubuntu 22.04 LTS 上的环境准备:Docker Engine软件名: Docker CE版本要求: 20.10.0 或更高安装命令:# 卸载旧版本sudoapt-getremovedockerdocker-engine docker.io containerd runc# 设置仓库sudoapt-getupdatesudoapt-getinstallca-certificatescurlgnupg lsb-releasesudomkdir-p/etc/apt/keyringscurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpgecho\deb [arch$(dpkg --print-architecture)signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release-cs)stable|sudotee/etc/apt/keyrings/docker.list/dev/null# 安装 Dockersudoapt-getupdatesudoapt-getinstalldocker-ce docker-ce-cli containerd.io docker-compose-plugin# 验证安装sudodockerrun hello-worldDocker Compose (作为插件已安装)软件名: Docker Compose Plugin版本要求: v2.0.0 或更高安装命令: 上述docker-compose-plugin包已包含。可通过docker compose version验证。(可选) Git软件名: Git安装命令:sudo apt-get install git第三步 第五步部署步骤撰写与最终整合现在我将基于以上分析为您生成完整的paperlessngx部署指南。paperlessngx 部署指南本文档由部署文档智能体生成项目代号paperlessngx1. 环境准备确保您的服务器满足以下要求操作系统: Ubuntu 22.04 LTS / Debian 11 或类似 Linux 发行版。内存: 至少 2GB RAM处理大量文档或OCR时建议 4GB。存储: 为文档和数据库预留充足空间。按照上文第二步中的命令安装Docker Engine和Docker Compose Plugin。2. 获取代码与配置官方推荐使用 Docker Compose 部署您可以直接下载其编排文件。# 创建一个项目目录并进入mkdir-p~/paperlesscd~/paperless# 下载官方的 docker-compose.yml 和环境变量示例文件curl-sSLhttps://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/docker-compose.yml-odocker-compose.ymlcurl-sSLhttps://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docker/compose/.env.docker-o.env.docker3. 配置关键的配置都在.env.docker文件中。您需要编辑它来设置密码、密钥等。# 复制示例文件作为我们的配置文件cp.env.docker .env# 使用文本编辑器如 nano 或 vim编辑 .env 文件nano.env以下是最关键的需要修改的变量请务必修改PAPERLESS_SECRET_KEY: 一个长的随机字符串用于加密。可以用命令openssl rand -base64 45生成。PAPERLESS_ADMIN_USER: 默认管理员用户名如admin。PAPERLESS_ADMIN_PASSWORD: 默认管理员密码务必修改为强密码。PAPERLESS_REDIS: 内部 Redis 连接通常保持redis://redis:6379不变。PAPERLESS_DBHOST: 数据库主机保持db不变Docker 服务名。PAPERLESS_DBPORT: 数据库端口保持5432不变。PAPERLESS_DBNAME: 数据库名如paperless。PAPERLESS_DBUSER: 数据库用户如paperless。PAPERLESS_DBPASS: 数据库密码务必修改为强密码。您还可以配置PAPERLESS_OCR_LANGUAGES: OCR 语言如eng deu fra英语、德语、法语。更多语言需在docker-compose.yml中映射额外包。PAPERLESS_URL: 您访问 paperless 的完整 URL如https://docs.yourdomain.com用于生成正确的链接。保存并退出编辑器。4. 启动服务配置完成后使用 Docker Compose 启动所有服务。# 在 ~/paperless 目录下执行# -d 参数让服务在后台运行dockercompose up-d此命令会拉取 PostgreSQL, Redis, Tesseract OCR 和 paperless-ngx 应用本身的镜像并启动所有容器。5. 验证部署检查容器状态:dockercomposeps所有服务的State栏应显示为Up。查看应用日志:dockercompose logs-fapp等待片刻直到看到类似Starting development server at http://0.0.0.0:8000/或Application startup complete.的日志表示应用已就绪。访问 Web 界面:打开浏览器访问http://你的服务器IP:8000。首次访问会跳转到设置向导您可以按提示完成初始设置或者直接使用您在.env文件中设置的PAPERLESS_ADMIN_USER和PAPERLESS_ADMIN_PASSWORD登录。6. 持久化数据重要默认的docker-compose.yml已经配置了 Docker 卷 (volumes) 来持久化数据redisdata: Redis 数据pgdata: PostgreSQL 数据库数据data: 导入的文档、缩略图等media: 原始上传的文档文件export: 导出的文件consume: 监视文件夹放入此文件夹的文档会被自动消费请确保定期备份这些卷所在的目录通常位于/var/lib/docker/volumes/下或由docker compose config查看具体路径。7. 常见问题Q1: 访问http://服务器IP:8000时连接被拒绝或无法访问。现象: 浏览器无法打开页面。可能原因:服务器防火墙未开放 8000 端口。容器启动失败。解决方案:检查防火墙规则 (如sudo ufw status)并允许 8000 端口 (sudo ufw allow 8000)。运行docker compose logs app查看应用容器日志检查是否有错误。运行docker compose ps确认所有容器是否正常运行。Q2: 登录时提示“用户名或密码错误”但确认密码正确。现象: 无法使用.env中设置的密码登录。可能原因: 在首次启动并访问向导后通过向导创建了新管理员覆盖了环境变量设置。解决方案:尝试使用您在设置向导中创建的账号密码。或者重置为环境变量中的密码# 进入 app 容器dockercomposeexecappbash# 在容器内执行密码重置命令python manage.py changepassword你的管理员用户名# 输入新密码然后 exit 退出容器Q3: OCR 对某些语言如中文不工作。现象: 非英语文档的 OCR 结果为空白或乱码。可能原因: 默认镜像只包含英语语言包。解决方案:修改docker-compose.yml中webserver服务的volumes部分将主机上的语言包目录映射进去需先在主机安装tesseract-ocr-*包。更简单的方法使用包含更多语言的社区版镜像修改.env中的PAPERLESS_OCR_LANGUAGES并参考官方文档更换镜像标签。Q4: 上传文档时提示“文件大小超出限制”。现象: 无法上传较大的 PDF 文件。可能原因: Nginx 代理如果使用或 Django 有默认文件大小限制。解决方案:在.env文件中添加或修改以下变量增大限制例如设置为 200MBPAPERLESS_MAX_FILE_SIZE209715200然后重启服务docker compose restart。Q5: 如何更新 paperless-ngx 到新版本现象: 需要获取新功能或安全更新。解决方案:cd~/paperless# 拉取最新的镜像dockercompose pull# 使用新镜像重新启动服务dockercompose up-d# 可选清理旧的、不再使用的镜像dockerimage prune更新前请务必确认已备份数据附录项目官网: https://paperless-ngx.com/GitHub 仓库: https://github.com/paperless-ngx/paperless-ngx详细配置文档: https://docs.paperless-ngx.com/configuration/默认数据目录: 通过docker volume inspect volume_name可以查看卷在主机上的具体位置。文档生成完毕。您可以在~/paperless目录下找到docker-compose.yml、.env配置文件以及通过docker compose logs查看运行状态。祝您部署顺利
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2446704.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!