Docker安装部署DocHub
安装Docker
链接地址:https://www.bookstack.cn/read/docker-practice/install-README.md
还不会用Docker的朋友,建议简单学习下Docker。因为你学会docker,比你成功部署DocHub要快多…
配置阿里云的OSS
目前DocHub文库的文件存储,主要使用的是阿里云OSS。当然,后期会扩展腾讯云存储、百度云存储和七牛云存储等。
登录阿里云,进入
OSS
,创建两个bucket
,一个设置为私有
,一个设置为公共读
,如私有的叫dochub-private
,公共读的叫dochub-public
。导入样式
创建一个txt文件,复制下面的文本粘贴进去。
styleName:cover,styleBody:image/resize,m_pad,w_140,h_200,limit_0/auto-orient,0/quality,q_90
styleName:avatar,styleBody:image/resize,m_fill,w_120,h_120,limit_0/auto-orient,0/quality,q_90
styleName:banner,styleBody:image/resize,m_fill,w_825,h_316,limit_0/auto-orient,0/quality,q_90
进入公共读的bucket,如dochub-public
,在导入样式
里面选择导入样式
,选择您刚刚的txt文件进行导入。
然后点击访问设置
,将自定义分隔符设置为/
,如图:
- 公共读的bucket,设置默认图片
默认图片,一般需要设置4张,分别是
默认头像
、默认封面
、默认横幅
和一般默认图片
。 图片自己选,然后上传到公共读
的bucket的指定目录,如/default/
目录,4张默认图片设置好之后,如我自己设置的如下:/default/avatar.png
/default/cover.jpg
/default/banner.jpg
/default/default.jpg
下载Docker版的DocHub
- Github下载地址:https://github.com/TruthHun/DocHub/releases
- Gitee下载地址:https://gitee.com/truthhun/DocHub/releases
下载如DocHub.{$version}_Docker.zip
的附件,其中{$version}
表示DocHub
的版本,如DocHub.V1.0_Docker.zip
。
解压,会看到解压文件夹里面存在一下目录和文件。
- 进入
conf
目录,把所有xx.conf.example
的文件改成xx.conf
。
- 修改
app.conf
把runmode = dev
修改为runmode = prod
即可,其他项不用动。(也可以不修改) - 修改
database.conf
修改为你自己的数据库链接、账号和密码等。 - 修改
oss.conf
我这边自己的修改配置如下:
[oss]
#当前环境是否内网,内网则启用内网endpoint,否则启用外网endpoint
IsInternal=false
#内网的endpoint
EndpointInternal=oss-cn-hongkong-internal.aliyuncs.com
#外网的endpoint
EndpointOuter=oss-cn-hongkong.aliyuncs.com
#key
AccessKeyId=你的key
#secret
AccessKeySecret=你的secret
#供文档预览的bucket
BucketPreview=dochub-public
#供文档存储的bucket
BucketStore=dochub-private
#预览链接
#PreviewUrl=http://wenku-preview.oss-cn-qingdao.aliyuncs.com
PreviewUrl=http://dochub-public.oss-cn-hongkong.aliyuncs.com
DownloadUrl=http://dochub-private.oss-cn-hongkong.aliyuncs.com
#签名链接默认有效期时间,单位为秒
UrlExpire=600
#默认图片
DefaultAvatar=/default/avatar.png
DefaultCover=/default/cover.jpg
DefaultBanner=/default/banner.jpg
DefaultPic=/default/default.jpg
其中,IsInternal
配置项,如果您的服务器跟阿里云OSS是在同一内网,则设置为true,否则设置为false。
最后面四项配置,就是我们刚刚在OSS设置的默认图片,如下:
DefaultAvatar=/default/avatar.png
DefaultCover=/default/cover.jpg
DefaultBanner=/default/banner.jpg
DefaultPic=/default/default.jpg
- 修改
email.conf
修改成你自己的邮箱配置。如我自己的配置:[email]
host=smtpdm.aliyun.com
port=80
username=admin@wenkuzhijia.cn
password=123456
replyto=admin@wenkuzhijia.cn
Docker部署
在以上配置文件都修改好了的前提下,就可以创建您的DocHub
镜像了。
进入在解压目录,执行如下命令:
sudo docker build -t dochub .
其中,Dockerfile
的文件内容,如下:
FROM ubuntu:16.04
MAINTAINER "TruthHun <TruthHun@QQ.COM>"
# 阿里云源设置
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse "\
"\ndeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse "\
"\ndeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse "\
"\ndeb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse "\
"\ndeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse "\
"\ndeb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse "\
"\ndeb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse "\
"\ndeb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse "\
"\ndeb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse "\
"\ndeb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse" > /etc/apt/sources.list
# 安装字符编码支持
RUN apt update -y && apt install -y locales && rm -rf /var/lib/apt/lists/* \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8
# 安装中文字体支持等相关依赖
RUN apt update -y && apt install -y fonts-wqy-zenhei fonts-wqy-microhei wget libreoffice imagemagick pdf2svg poppler-utils xdg-utils wget xz-utils python \
&& wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin
COPY . /www/dochub/
RUN chmod 0777 -R /www/dochub/
WORKDIR /www/dochub
CMD [ "./DocHub" ]
运行镜像
sudo docker run -d -p 8090:8090 dochub
如果配置文件没有配置错,访问http://localhost:8090 ,就可以看到程序运行了。
然后自行设置反向代理,nginx反向代理,可以参考这里: https://beego.me/docs/deploy/nginx.md
事项说明
- docker启动的程序,我自己在测试的时候,能正常注册和登录,邮件发送也是成功的。当然,这不表示您部署的程序也能发送邮件成功,所以注意下邮件配置项,可能有些发送邮件的依赖,在
dockerfile
中没有安装,或者是邮件端口没有映射到宿主机。 - 有很多问题,我可能没遇到,但不代表不存在,所以在使用的时候,如果遇到问题,请先到GitHub或者gitee提交issue,再把issue链接发群里,我会抽时间看下和解决下。
- GitHub:https://github.com/TruthHun/DocHub
- gitee:https://gitee.com/TruthHun/DocHub QQ交流群:457803862