SeaTable、SeaFile以及Overleaf均可以使用docker-compos
e命令来安装,分别使用对应的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
- 在你希望存放SeaTable文件的地方新建目录,在目录中新建
seatable-data
与mysql-data
文件夹用于存放数据; - 对应修改
docker-compose.yml
文件中的文件夹路径; - 使用
docker-compose up
命令拉取所需要的docker镜像文件,待日志中出现This is a idle script (infinite loop) to keep container running
时,Ctrl+C
结束命令 - 使用
docker-compose up -d
在后台启动SeaTable系列容器; - 使用
docker exec -d seatable /shared/seatable/scripts/seatable.sh start
在容器中启动SeaTable服务; - 第一次启动后请使用
docker exec -it seatable /shared/seatable/scripts/seatable.sh superuser
创建管理员账号。 注意:
- 若出现
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
- SeaFile的安装比较简单,基本不需要什么操作;
- 在你希望存放SeaFile文件的地方新建目录
<DIR>
,在<DIR>
中新建seafile-data
及seafile-mysql
文件夹,对应修改docker-compose.yml
中的文件夹路径; - 使用
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: <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: '[{"text": "Powered by <a href=\"https://www.sharelatex.com\">ShareLaTeX</a> 2016"},{"text": "Another page I want to link to can be found <a href=\"here\">here</a>"} ]'
# SHARELATEX_RIGHT_FOOTER: '[{"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
- 使用
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
以及sudo systemctl restart docker
更换docker镜像源,加速镜像下载; - 使用
docker-compose up -d
启动Overleaf系列容器; - 使用
docker exec sharelatex tlmgr install scheme-full
安装完整的TeXLive,共约4000个包,为防止ssh断连造成安装中断,建议使用tmux新开一个终端运行; - 根据教程安装中文字体支持文件;
- 使
用docker commit sharelatex sharelatex/sharelatex:with-texlive-full-cn
将容器转化为镜像,修改docker-compose.yml
的部分内容以使用新的镜像:
# ...
services:
sharelatex:
image: sharelatex/sharelatex:with-texlive-full-cn
# ...
- 后续使用过程中,直接使用
docker-compse up -d
运行即可。
1
1
1
1
1
1
1
1
555
1
1
1
1
1
1
555
555
1
1
1
555
555
1
1
1
1
1
1
1
1
1
555
1
1
555
1
1
1
1
1
555
1
1
1
1
1
1
555
555
1
1
1
1
1
1
1
555
555
555
1
1
1
1
555
555
555
1
1