【打工日常】Docker部署开源轻量级文档管理系统

一、项目介绍

    1.项目简述
    Teedy是一个面向个人和企业的开源轻量级文档管理系统。
    
    2.项目功能
    保持组织:一个现代的界面,以保持您的重要文件在一个地方,您的业务操作清晰。
    上传&搜索:不要花费时间使用该工具,只需上传文档,然后在需要时轻松找到。
    安全:加密和数据中心将确保只有合适的人员才能看到正确的文档。

    3.项目特点
    响应式用户界面、光学字符识别、LDAP身份验证、支持图片、PDF、ODT、DOCX、PPTX文件、视频文件支持、灵活的搜索引擎,提供建议和突出显示、在所有支持的文件中进行全文搜索、所有Dublin Core元数据、自定义用户定义的元数据、工作流程系统、存储文件的256位AES加密、文件版本控制、带嵌套的标签系统、从电子邮件导入文档(EML格式)、自动收件箱扫描和导入、用户/组权限系统、因素身份验证、每个用户的存储配额、按URL共享文档、RESTful Web API、用于触发外部服务的 Webhook、功能齐全的Android客户端、批量文件导入器(单次或扫描模式)、经过100万份文档的测试

    4.项目开源地址
    https://github.com/sismics/docs/tree/v1.8?tab=readme-ov-file
    

----------

二、项目搭建环境

    1. 项目测试环境

    A.项目搭建在腾讯云centos7.6,外网地址为43.138.153.157
    Linux VM-8-12-centos 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

    B.docker版本为26.01,docker-compose版本为v2.26.1
    注意:本次实践部署环境为个人腾讯云的测试环境,若是生产环境请谨慎部署;对应开启了容器的端口,在linux下和防火墙下需开放对应端口。
    
    2. 本次项目实施过程
    
    使用docker下载镜像,创建好项目需要挂载的路径,通过docker-cli或者docker compose启动容器,启动容器后查看容器启动状态,查看容器的运行日志是否正常,以上全部正常执行后体验项目功能。

    3.注意:docker下载镜像有可能遇到比较慢的情况,参考以下解决措施:
    
    A.docker配置换源,进入/etc/docker的路径,如果没有就创建这个目录
    cd /etc/docker/
    mkdir -p /etc/docker
    
    B.编辑配置文件
    vim daemon.json   ##可以清空里面的内容:%d 然后复制下面的源进去wq保存
    
    {
        "registry-mirrors":[
            "https://286u3d9d.mirror.aliyuncs.com"
        ]
    }
    
    C.registry-mirrors:指定了一个镜像仓库的 URL https://286u3d9d.mirror.aliyuncs.com。 这个配置项用于设置 Docker镜像的镜像仓库地址,使得在拉取和推送 Docker 镜像时能够通过该镜像仓库进行加速。这边提供的是广东广州服务器的镜源,建议个人自己去阿里云建一个个人账号,根据实际所在区获取镜源。
    
    D.重新加载源,重启docker服务
    sudo systemctl daemon-reload 
    sudo systemctl restart docker

----------


三、项目搭建前巡检

    1. 检查docker是否正常运行
    systemctl status docker
    or
    service docker status
    注:我个人测试环境是使用systemctl进行管理,若有使用service管理请使用第二条的命令进行查看。   
    
    [root@VM-8-12-centos ~]# systemctl status docker
    ● docker.service - Docker Application Container Engine
       Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
       Active: active (running) since Mon 2024-04-22 23:13:57 CST; 4 days ago
         Docs: https://docs.docker.com
     Main PID: 17092 (dockerd)
        Tasks: 158
       Memory: 142.3M
       CGroup: /system.slice/docker.service

    若显示docker的Active是active (running),即表明docker是正常运行的。

    2.一般我会使用docker-compose去管理,所以预先需要创建好yaml文件,vim docker-compose.yml,格式如下例子:

    version: '3.9'
    services:
        nginx:
            image: nginx
            logging:
                options:
                    max-size: 1g
            restart: always
            volumes:
                - '/var/run/docker.sock:/tmp/docker.sock:ro'
            ports:
                - '80:80'

----------


四、项目实施过程

    1.根据开源项目,找到对应的镜像进行pull,若遇到很慢的情况,先检查是否网络问题以及是否已经换源。
    docker pull  sismics/docs

    [root@VM-8-12-centos ~]# docker pull  sismics/docs
    Using default tag: latest
    latest: Pulling from sismics/docs
    c5cc0d8681c1: Pull complete 
    25992ae88689: Pull complete 
    92b293e28b63: Pull complete 
    5e97fb8c1b1b: Pull complete 
    e89d6de98e44: Pull complete 
    9181ab0a3cc7: Pull complete 
    986d85dbde77: Pull complete 
    ff6f9607eef5: Pull complete 
    e1f18d97e35f: Pull complete 
    5827635e4d0f: Pull complete 
    3a2abf46fbbe: Pull complete 
    e2d1dd553bca: Pull complete 
    d64ca9609368: Pull complete 
    57b31095515c: Pull complete 
    afd0e1b54580: Pull complete 
    d4dc52236c92: Pull complete 
    df51b630111c: Pull complete 
    b7f71ce56e9d: Pull complete 
    aabd4c468f60: Pull complete 
    9a77c3212377: Pull complete 
    Digest: sha256:e86804e995a0be52ee81231bfcbeb8b7003a15fd5dc24b300e23f498850d9aa2
    Status: Downloaded newer image for sismics/docs:latest
    docker.io/sismics/docs:latest

    2.若已经下载完成显示新的一行,可以输入命令查看是否上一条命令执行成功
    echo$?
    若返回0,则成功;返回其他则根据实际情况重新下载或者查找原因。

    3.docker下载完后,可以查看对应的镜像是否下载成功
    docker images |grep docs

    [root@VM-8-12-centos ~]# docker images |grep docs
    sismics/docs                latest      9bc6f6e084f7   3 years ago     1.19GB

    4.创建teedy挂载目录

    mkdir -p ./teedy/dat
     
    5.下载成功后,编辑docker-compose.yml文件
    
    version: '3.9'
    services:
        docs:
            image: sismics/docs
            container_name: Teedy
            volumes:
                - '/opt/teedy/data:/data'
            environment:
                - DOCS_ADMIN_PASSWORD_INIT="$$2a$$05$$PcMNUbJvsk7QHFSfEIDaIOjk1VI9/E7IPjTKx.jkjPxkx2EOKSoPS"
                - DOCS_ADMIN_EMAIL_INIT=admin@example.com
                - 'DOCS_BASE_URL=http://localhost:4498'
            ports:
                - '4498:8080'
            restart: always

    编辑后输入wq进行保存
        
    6.为了便捷启动,也可以使用docker-cli启动
        
    docker run -d \ 
      --restart always \ 
     -p 4498:8080 \ 
     -e DOCS_BASE_URL=http://localhost:4498 \ 
     -e DOCS_ADMIN_EMAIL_INIT=admin@example.com \ 
     -e DOCS_ADMIN_PASSWORD_INIT="$$2a$$05$$PcMNUbJvsk7QHFSfEIDaIOjk1VI9/E7IPjTKx.jkjPxkx2EOKSoPS" \ 
     -v /opt/teedy/data:/data \ 
     --name Teedy \ 
     sismics/docs:latest

    7.启动docker-compose

    docker compose up -d  
    
    8.启动容器后,查看容器的状态是否正常  
    
    docker ps |grep  Teedy
        
    [root@VM-8-12-centos jmalcloud]# docker ps |grep  Teedy
    38509c29c94f   sismics/docs            "bin/jetty.sh run"       7 minutes ago   Up 7 minutes   0.0.0.0:4498->8080/tcp, :::4498->8080/tcp   Teed
    
    9.启动容器后,查看容器的日志是否正常
    
    docker logs -f Teedy
    
    [root@VM-8-12-centos jmalcloud]# docker logs -f Teedy
    Running Jetty: 
    2024-04-30 10:34:10.483:INFO::main: Logging initialized @1109ms to org.eclipse.jetty.util.log.StdErrLog
    2024-04-30 10:34:10.954:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended.  See documentation at http://www.eclipse.org/jetty/documentation/current/startup.html
    2024-04-30 10:34:11.027:INFO:oejs.Server:main: jetty-9.4.12.v20180830; built: 2018-08-30T13:59:14.071Z; git: 27208684755d94a92186989f695db2d7b21ebc51; jvm 11.0.8+10-post-Ubuntu-0ubuntu118.04.1
    2024-04-30 10:34:11.054:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///opt/jetty/webapps/] at interval 1
    2024-04-30 10:34:13.016:WARN:oeja.AnnotationParser:main: Unknown asm implementation version, assuming version 393216
    2024-04-30 10:34:13.205:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=188ms
    2024-04-30 10:34:13.602:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
    2024-04-30 10:34:13.603:INFO:oejs.session:main: No SessionScavenger set, using defaults
    2024-04-30 10:34:13.608:INFO:oejs.session:main: node0 Scavenging every 600000ms
    30 Apr 2024 10:34:14,119 INFO com.sismics.util.filter.RequestContextFilter.init(RequestContextFilter.java:43) Using base data directory: /data 
    30 Apr 2024 10:34:14,184 INFO com.sismics.util.jpa.EMF.getEntityManagerProperties(EMF.java:84) Configuring EntityManager from environment parameters 
    30 Apr 2024 10:34:15,221 INFO com.sismics.util.jpa.DbOpenHelper.open(DbOpenHelper.java:57) Opening database and executing incremental updates 
    30 Apr 2024 10:34:15,242 INFO com.sismics.util.jpa.DbOpenHelper.open(DbOpenHelper.java:83) Unable to get database version: Table T_CONFIG not found 
    30 Apr 2024 10:34:15,243 INFO com.sismics.util.jpa.DbOpenHelper.open(DbOpenHelper.java:98) Executing initial schema creation script 
    30 Apr 2024 10:34:15,253 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-000-0.sql 
    30 Apr 2024 10:34:15,333 INFO com.sismics.util.jpa.DbOpenHelper.open(DbOpenHelper.java:106) Found database version 0, new version is 27, executing database incremental update scripts 
    30 Apr 2024 10:34:15,339 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-001-0.sql 
    30 Apr 2024 10:34:15,383 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-002-0.sql 
    30 Apr 2024 10:34:15,391 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-003-0.sql 
    30 Apr 2024 10:34:15,396 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-004-0.sql 
    30 Apr 2024 10:34:15,416 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-005-0.sql 
    30 Apr 2024 10:34:15,418 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-006-0.sql 
    30 Apr 2024 10:34:15,568 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-007-0.sql 
    30 Apr 2024 10:34:15,597 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-008-0.sql 
    30 Apr 2024 10:34:15,600 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-009-0.sql 
    30 Apr 2024 10:34:15,615 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-010-0.sql 
    30 Apr 2024 10:34:15,620 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-011-0.sql 
    30 Apr 2024 10:34:15,631 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-012-0.sql 
    30 Apr 2024 10:34:15,645 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-013-0.sql 
    30 Apr 2024 10:34:15,648 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-014-0.sql 
    30 Apr 2024 10:34:15,663 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-015-0.sql 
    30 Apr 2024 10:34:15,674 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-016-0.sql 
    30 Apr 2024 10:34:15,682 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-017-0.sql 
    30 Apr 2024 10:34:15,684 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-018-0.sql 
    30 Apr 2024 10:34:15,715 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-019-0.sql 
    30 Apr 2024 10:34:15,720 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-020-0.sql 
    30 Apr 2024 10:34:15,729 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-021-0.sql 
    30 Apr 2024 10:34:15,739 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-022-0.sql 
    30 Apr 2024 10:34:15,759 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-023-0.sql 
    30 Apr 2024 10:34:15,769 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-024-0.sql 
    30 Apr 2024 10:34:15,774 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-025-0.sql 
    30 Apr 2024 10:34:15,776 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-026-0.sql 
    30 Apr 2024 10:34:15,778 INFO com.sismics.util.jpa.DbOpenHelper.executeAllScript(DbOpenHelper.java:142) Executing script: dbupdate-027-0.sql 
    30 Apr 2024 10:34:15,778 INFO com.sismics.util.jpa.DbOpenHelper.open(DbOpenHelper.java:108) Database upgrade complete 
    30 Apr 2024 10:34:15,779 INFO com.sismics.util.jpa.EMF.getEntityManagerProperties(EMF.java:84) Configuring EntityManager from environment parameters 
    30 Apr 2024 10:34:18,736 INFO com.sismics.util.ClasspathScanner.findClasses(ClasspathScanner.java:48) Found 1 classes for IndexingHandler 
    30 Apr 2024 10:34:18,824 INFO com.sismics.docs.core.util.indexing.LuceneIndexingHandler.initLucene(LuceneIndexingHandler.java:118) Using file Lucene storage: /data/lucene 
    30 Apr 2024 10:34:19,029 INFO com.sismics.docs.core.service.FileService.startUp(FileService.java:39) File service starting up 
    30 Apr 2024 10:34:19,038 INFO com.sismics.docs.core.service.InboxService.startUp(InboxService.java:55) Inbox service starting up

----------


五、项目体验

    注:云服务器记得放开防火墙4498!
    访问地址http://43.138.153.157:4498/#/login,欢迎点击玩一下!账号admin,密码admin。
    ps:我的测试服务器是乞丐版,所以每次发了大的项目启动后,可能会把前面的项目停掉,不然会卡爆了,请大家体谅...
    更多好玩有趣有用的内容,请关注微信公众号:零氪的云原生


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全糖去冰吃不了苦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值