CentOS安装SeaTable、SeaFile和Overleaf

技术笔记 · 2021-07-14 · 1171 人浏览

SeaTableSeaFile以及Overleaf均可以使用docker-compose命令来安装,分别使用对应的docker-compose.yml配置文件,使用docker-compose up -d命令运行即可。

0x00. SeaTable

(1) docker-compose.yml文件的编写

# SeaTable的配置文件
version: '2.0'
services:
  db:
    image: mariadb:10.5
    container_name: seatable-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=PASSWORD  # 请设置一个较为复杂的数据库密码
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /opt/seatable/mysql-data:/var/lib/mysql  # 请修改冒号前的路径以储存数据库的文件
    networks:
      - seatable-net

  memcached:
    image: memcached:1.5.6
    container_name: seatable-memcached
    entrypoint: memcached -m 256
    networks:
      - seatable-net

  redis:
    image: redis:5.0.7
    container_name: seatable-redis
    networks:
      - seatable-net
          
  seatable:
    image: seatable/seatable:latest
    container_name: seatable
    ports:
      - "80:80"
      - "443:443"  # 按需将端口号改为其他端口,建议修改为10000以上的端口号
    volumes:
      - /opt/seatable/seatable-data:/shared  # 请修改冒号前的路径以储存SeaTable的文件
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=PASSWORD  # 请输入文件开始设置的数据库密码
      - SEATABLE_SERVER_LETSENCRYPT=False # 是否需要生成自签名证书,建议选否
      - SEATABLE_SERVER_HOSTNAME=example.seatable.com # 可以填写内外IP地址也可以填写域名
      - TIME_ZONE=Asia/Shanghai # 时区,国内默认即可
    depends_on:
      - db
      - memcached
      - redis
    networks:
      - seatable-net

networks:
  seatable-net:

(2) 安装SeaTable

  1. 在你希望存放SeaTable文件的地方新建目录,在目录中新建seatable-datamysql-data文件夹用于存放数据;
  2. 对应修改docker-compose.yml文件中的文件夹路径;
  3. 使用docker-compose up命令拉取所需要的docker镜像文件,待日志中出现This is a idle script (infinite loop) to keep container running时,Ctrl+C结束命令
  4. 使用docker-compose up -d在后台启动SeaTable系列容器;
  5. 使用docker exec -d seatable /shared/seatable/scripts/seatable.sh start在容器中启动SeaTable服务;
  6. 第一次启动后请使用docker exec -it seatable /shared/seatable/scripts/seatable.sh superuser创建管理员账号。
  7. 注意:

    • 若出现Network error的错误,请使用浏览器控制台查看无法访问的地址,并修改<DIR>/seatable/seatable-data/seatable/confdtable_web_settings.py文件中对应的地址,使用docker exec -d seatable /shared/seatable/scripts/seatable.sh stop & docker exec -d seatable /shared/seatable/scripts/seatable.sh start重启SeaTable服务;
    • 若群晖安装过程中,第三步出现WARNING:no logs are available with the 'db' log driver,请直接无视或者到群晖的docker中查看输出的日志。

0x01. SeaFile

(1) docker-compose.yml文件的编写

# SeaFile的配置文件
version: '2.0'
services:
  db:
    image: mariadb:10.5
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=db_dev  # 请设置一个较为复杂的数据库密码
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - /opt/seafile-mysql/db:/var/lib/mysql  # 请修改冒号前的路径以储存数据库的数据
    networks:
      - seafile-net

  memcached:
    image: memcached:1.5.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net
          
  seafile:
    image: seafileltd/seafile-mc:latest
    container_name: seafile
    ports:
      - "80:80"
      - "443:443"  # 按需将端口号改为其他端口,建议修改为10000以上的端口号
    volumes:
      - /opt/seafile-data:/shared   # 请修改冒号前的路径以储存SeaFile的数据
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=db_dev  # 请输入文件开始设置的数据库密码
      - TIME_ZONE=Asia/Shanghai # 时区,国内默认即可
      - SEAFILE_ADMIN_EMAIL=me@example.com # 管理员账户邮箱
      - SEAFILE_ADMIN_PASSWORD=asecret     # 管理员账户密码
      - SEAFILE_SERVER_LETSENCRYPT=false   # 是否使用自签名证书,推荐选false,使用nginx反向代理统一配置泛域名证书
      - SEAFILE_SERVER_HOSTNAME=seafile.example.com # 域名
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net

networks:
  seafile-net:

(2) 安装SeaTable

  1. SeaFile的安装比较简单,基本不需要什么操作;
  2. 在你希望存放SeaFile文件的地方新建目录<DIR>,在<DIR>中新建seafile-dataseafile-mysql文件夹,对应修改docker-compose.yml中的文件夹路径;
  3. 使用docker-compose up -d命令启动SeaFile系列容器即可。

0x02. Overleaf

(1) docker-compose.yml文件的编写

# Overleaf的配置文件
version: '2.0'
services:
  sharelatex:
    restart: always
    image: sharelatex/sharelatex:with-texlive-full-cn
    container_name: sharelatex
    depends_on:
      mongo:
        condition: service_healthy
      redis:
        condition: service_started
    ports:
      - 80:80  # 端口修改成自己需要的端口
    links:
      - mongo
      - redis
    volumes:
      - /opt/overleaf/sharelatex_data:/var/lib/sharelatex
      - /opt/overleaf/cnfonts:/usr/share/fonts/cnfonts
    environment:
      - SHARELATEX_APP_NAME: Overleaf Community Edition
      - SHARELATEX_MONGO_URL: mongodb://mongo/sharelatex
      - SHARELATEX_SITE_LANGUAGE: cn
      - SHARELATEX_REDIS_HOST: redis
      - REDIS_HOST: redis
      - ENABLED_LINKED_FILE_TYPES: 'url,project_file'
      - ENABLE_CONVERSIONS: 'true'
      - EMAIL_CONFIRMATION_DISABLED: 'true'  # 选true关闭邮件验证
      - TEXMFVAR: /var/lib/sharelatex/tmp/texmf-var
      - SHARELATEX_SITE_URL: &lt;Your Domain>  # 站点URL
      - SHARELATEX_NAV_TITLE: Our ShareLaTeX Instance  # 站点名称
      - SHARELATEX_HEADER_IMAGE_URL: http://somewhere.com/mylogo.png  #站点图标
      - SHARELATEX_ADMIN_EMAIL: support@it.com  # 站点管理员邮箱

      # 页脚及邮件服务器相关的配置,自己用默认即可
      # SHARELATEX_LEFT_FOOTER: '&#91;{"text": "Powered by &lt;a href=\"https://www.sharelatex.com\">ShareLaTeX&lt;/a> 2016"},{"text": "Another page I want to link to can be found &lt;a href=\"here\">here&lt;/a>"} ]'
      # SHARELATEX_RIGHT_FOOTER: '&#91;{"text": "Hello I am on the Right"} ]'
      # SHARELATEX_EMAIL_FROM_ADDRESS: "team@sharelatex.com"
      # SHARELATEX_EMAIL_AWS_SES_ACCESS_KEY_ID:
      # SHARELATEX_EMAIL_AWS_SES_SECRET_KEY:
      # SHARELATEX_EMAIL_SMTP_HOST: smtp.mydomain.com
      # SHARELATEX_EMAIL_SMTP_PORT: 587
      # SHARELATEX_EMAIL_SMTP_SECURE: false
      # SHARELATEX_EMAIL_SMTP_USER:
      # SHARELATEX_EMAIL_SMTP_PASS:
      # SHARELATEX_EMAIL_SMTP_TLS_REJECT_UNAUTH: true
      # SHARELATEX_EMAIL_SMTP_IGNORE_TLS: false
      # SHARELATEX_EMAIL_SMTP_NAME: '127.0.0.1'
      # SHARELATEX_EMAIL_SMTP_LOGGER: true
      # SHARELATEX_CUSTOM_EMAIL_FOOTER: "This system is run by department x"

  mongo:
    restart: always
    image: mongo:4.0
    container_name: mongo
    expose:
      - 27017
    volumes:
      - /opt/overleaf/mongo_data:/data/db  # 自定义数据库存放的地址
    healthcheck:
      test: echo 'db.stats().ok' | mongo localhost:27017/test --quiet
      interval: 10s
      timeout: 10s
      retries: 5

  redis:
    restart: always
    image: redis:5
    container_name: redis
    expose:
      - 6379
    volumes:
      - /opt/overleaf/redis_data:/data  # 自定义Overleaf数据存放的地址

(2)安装overleaf

  1. 使用 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io 以及 sudo systemctl restart docker更换docker镜像源,加速镜像下载;
  2. 使用docker-compose up -d启动Overleaf系列容器;
  3. 使用docker exec sharelatex tlmgr install scheme-full安装完整的TeXLive,共约4000个包,为防止ssh断连造成安装中断,建议使用tmux新开一个终端运行;
  4. 根据教程安装中文字体支持文件;
  5. 使用docker commit sharelatex sharelatex/sharelatex:with-texlive-full-cn将容器转化为镜像,修改docker-compose.yml的部分内容以使用新的镜像:
# ...
services:
    sharelatex:
        image: sharelatex/sharelatex:with-texlive-full-cn
# ...
  1. 后续使用过程中,直接使用docker-compse up -d运行即可。
技术 计算机
  1. 1 24 天前

    1

  2. 1 24 天前

    1

  3. 1 24 天前

    1

  4. 1 24 天前

    1

  5. 1 24 天前

    1

  6. 1 24 天前

    1

  7. 1 24 天前

    1

  8. 1 2024-12-19

    1

    1. 1 24 天前
      @1

      555

    2. 1 24 天前
      @1

      1

    3. 1 24 天前
      @1

      1

    4. 1 24 天前
      @1

      1

    5. 1 24 天前
      @1

      1

  9. 1 2024-12-19

    1

  10. 1 2024-12-19

    1

    1. 1 24 天前
      @1

      555

  11. 1 2024-12-19

    555

  12. 1 2024-12-19

    1

  13. 1 2024-12-19

    1

  14. 1 2024-12-16

    1

    1. 1 2024-12-19
      @1

      555

    2. 1 2024-12-19
      @1

      555

      1. 1 24 天前
        @1

        1

      2. 1 24 天前
        @1

        1

    3. 1 2024-12-19
      @1

      1

    4. 1 2024-12-19
      @1

      1

      1. 1 24 天前
        @1

        1

    5. 1 2024-12-19
      @1

      1

      1. 1 24 天前
        @1

        1

    6. 1 2024-12-19
      @1

      1

  15. 1 2024-12-16

    1

    1. 1 2024-12-19
      @1

      555

  16. 1 2024-12-16

    1

    1. 1 24 天前
      @1

      1

    2. 1 2024-12-19
      @1

      555

  17. 1 2024-12-16

    1

  18. 1 2024-12-16

    1

  19. 1 2024-12-15

    1

    1. 1 2024-12-16
      @1

      1

  20. 1 2024-12-15

    1

  21. 1 2024-12-15

    555

  22. 1 2024-12-15

    1

    1. 1 24 天前
      @1

      1

      1. 1 24 天前
        @1

        1

  23. 1 2024-12-15

    1

  24. 1 2024-12-15

    1

  25. 1 2024-12-06

    1

    1. 1 2024-12-16
      @1

      555

    2. 1 2024-12-15
      @1

      555

    3. 1 2024-12-15
      @1

      1

    4. 1 2024-12-15
      @1

      1

    5. 1 2024-12-15
      @1

      1

      1. 1 2024-12-19
        @1

        1

      2. 1 2024-12-19
        @1

        1

    6. 1 2024-12-15
      @1

      1

  26. 1 2024-12-06

    1

    1. 1 2024-12-15
      @1

      555

    2. 1 2024-12-06
      @1

      555

      1. 1 2024-12-15
        @1

        555

      2. 1 2024-12-06
        @1

        1

      3. 1 2024-12-06
        @1

        1

      4. 1 2024-12-06
        @1

        1

      5. 1 2024-12-06
        @1

        1

  27. 1 2024-12-06

    555

    1. 1 2024-12-06
      @1

      555

    2. 1 2024-12-06
      @1

      555

    3. 1 2024-12-06
      @1

      1

      1. 1 2024-12-15
        @1

        1