说明:最近看到个论坛Homeland
,一款基于Rails
的开源、免费、不限制商业使用的社区/论坛系统,很轻巧,整体布局页不错,功能也很强大的,支持将文件存储在本地、UpYun
、Aliyun OSS
,用户可以在自己的文章中上传微信/支付宝收款码,官方也给出了Docker
安装方法,搭建起来自然就变的很简单了,这里就发下。
截图
提示:这里为了展示效果直接用了官方首页截图。
功能
#简单,却又丰富
你可以使用简单的文本来进行发帖或回帖,但在复杂的时候,你可以可以选择优雅的Markdown语法来编写正文。同时Homeland已经默认提供了一套排版整洁的阅读页面风格。
#@提及功能
你可以在发帖或回帖的时候,用类似Twitter或微博的方式@一个你需要提及的人,系统将会发送通知提醒对方。
#丰富的表情系统
在讨论的时候如果附带一些表情,你的意思将能表达的更清楚,Homeland支持Twemoji和系统内置表情。
#SSO单点登录
你可以将Homeland和任何现有系统结合实现单点登录功能,你还可以将Homeland作为SSO的提供址,给其他系统同步账号与登录。
#公共API
Homeland已经内置了一套AP`系统,在你需要的时候你可以基于它开发你的移动应用程序。
#支付宝、微信打赏
支持用户上传个人收款二维码,打赏按钮将会在话题页面显示。
#拖拽上传附件
你可以直接将一个图片拖动到发帖/回帖输入框中来实现快速的上传。此外还可以复制、粘贴来上传哦!
#对SEO友善
Homeland的各方面设计是对SEO友善的,请Google搜索Ruby China查看案例的实际收录效果。
安装
Github地址:http://github.com/ruby-china/homeland
官方论坛:https://www.ruby-china.org/
提示:官方推荐服务器内存为4G
,不过博主用512M
内存倒是可以,前提加点虚拟内存,内存不够的可以用下Swap
一键脚本→传送门。
1、安装Docker
使用以下命令:
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on
#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
2、安装Docker Compose
使用以下命令:
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#验证是否安装成功
docker-compose --version
#返回以下信息即安装成功
docker-compose version 1.23.2, build 1110ad01
3、安装依赖
#CenOS系统
yum install make git -y
#Debian/Ubuntu系统
apt install git make -y
4、安装Homeland
#下载源码
git clone https://github.com/ruby-china/homeland-docker.git
cd homeland-docker
#新建配置文件
cp app.local.env.example app.local.env
#编辑配置文件
nano app.local.env
配置文件参数如下:
#必要参数
app_name:网站名称
domain:网站的域名
admin_emails:管理员Email,多个管理员Email,用英文逗号分隔
#可选参数,这些参数也可以自己搭建好了后,在后台进行配置
modules:可拔插组件配置,详见: https://gethomeland.com/docs/configuration/modules/
https:开启Homeland的SSL功能
asset_host:自定义网站静态资源文件的Host,保持为空将不启用
google_analytics_key:Google Analytics统计的key
mailer_provider:邮件发送方式: [smtp, postmark]
mailer_sender:邮件通知发件人
mailer_options:邮件服务详细配置,根据mailer_provider参数有可能不同,详见:https://gethomeland.com/docs/configuration/mailer/
github_token:GitHub三方登录Application Token
github_secret:GitHub三方登录Application Secret
default_locale:应用程序语言,默认"zh-CN",可选['zh-CN', 'zh-TW', 'en']
auto_locale:是否自动根据用户浏览器设置,切换到相应的语言,true
配置选项官方说的很详细了,还有很多高级设置,比如文件上传配置等可以查看官方文档→传送门。
以下在原有配置参数下设置的基本参数,如下:
app_name=MOERATS
domain=bbs.moerats.com
admin_emails=moerats@live.com
编译环境:
make install
如果出现Index does not exist(Elasticsearch::Transport::Transport::Errors::NotFound)
提示,为正常情况。
启动程序:
make start
然后就可以使用域名访问了,但前提是服务器80
和443
端口不被占用,如果你想用其它端口访问,就需要在编译环境前改下docker-compose.yml
文件,大致修改最下面的port
端口,比如用8080
访问,修改如下:
ports:
- "8080:80"
配置SSL证书
编辑app.local.env
文件,新增参数:
https=ture
cert_domain=bbs.moerats.com
然后开始配置SSL
:
make install_ssl
重启:
make restart
然后就可以直接打开了。
不过这里博主安装ssl
的时候,出现点问题,https
站点也会打不开,不知道是使用姿势问题还是最新的Dokcer
配置有点小问题,然后使用之前的老版本安装倒是没这个ssl
问题,出于强迫症,博主肯定想用下最新的,所以这里就想了个解决办法,就说一下。
这里是接着上面出错后才开始继续,如果以后申请/配置ssl
没问题了是最好的,那么该步可以省掉了。
#关闭程序的容器
make stop-all
#清空镜像
docker rm $(docker ps -aq)
docker rmi $(docker images -q)
docker volume rm $(docker volume ls -q)
#进入源码文件夹
cd homeland-docker
#然后编辑docker-compose.yml
nano docker-compose.yml
大致修改如下:
#在指定的地方volumes下面新增2行代码
app: &app_base
container_name: 'homeland_app'
.
volumes:
- ./etc/homeland.conf:/etc/nginx/homeland.conf
- ./etc/nginx.conf:/etc/nginx/nginx.conf
#在最下面修改下nginx启动参数
web:
<<: *app_base
.
command: nginx -c /etc/nginx/nginx.conf
然后使用Ctrl+x
、y
保存退出。
接下来下载2
个配置文件到etc
文件夹,使用命令:
#进入源码文件夹的ect目录
cd etc
wget https://www.moerats.com/usr/down/homeland-docker-conf.zip
#解压并删除
unzip homeland-docker-conf.zip && rm -rf homeland-docker-conf.zip
#开始安装容器环境
cd ..
make install
#最后启动
make start
不出意外的话,这里SSL
就配置好了,也可以访问了。
然后进入后,使用你设置好的管理员邮箱进行注册,那该邮箱立即变成管理员。
相关命令
#更新应用程序,当homeland/homeland这个Docker Image版本变化的时候,需要执行,合并数据库、编译Assets
make update
#启动所有服务,将会自动启动所有的服务
make start
#停止所有服务
make stop
#硬重启服务
make restart
#查看服务状态
make status
进入Rails控制台
make console
#停止所有服务,包括数据库
make stop-all
重建搜索索引
make reindex
最后有其他的配置问题可以自行看下官方文档,然后慢慢琢磨。
想不到三年前的一篇文章帮我解决了问题,参考博主的文章后我一次性成功安装了homeland。非常感谢!
这个没点折腾经验挺难装好
博主你好,在安装的时候出现这个错误,ERROR: Cannot create container for service app: unknown log opt 'max-size' for journald log driver
服务器80和443端口被占用,修改了其他端口,使用ip+其它端口访问成功,但使用域名访问显示没有站点,请问能这个要怎么操作?
用域名+端口,或者反代下ip+端口
额,我都忘了,你发个地址看看
应该是用admin_emails参数指定的邮箱注册,会默认为管理员,就有入口了
用的就是设置admin_emails指定的邮箱注册的,这边显示还是没有管理员权限
docker 形式一路安装下来了然后访问提示服务访问异常..
可否指点一二
这个我也不晓得啥情况了,大半年没装过这个了。
博主,有简单搭建discuz的教程吗?
么有,dz挺简单的啊
您好,我找了官网很久都没看到是否可以设置默认节点只能管理员发帖的参数,老大是否研究过?
这个好像冒油,搭建出来,初步玩了下就删了。
相关命令里面那些命令需要在哪个目录下执行?
在源码目录运行
ruby-china之前好像也公开过另一款论坛,然后没维护了。试试这个
请问一下博主,家用网络和自建的服务器,有没有什么办法,不加端口映射转发,就能使用域名访问的,我装的是nginx。研究了很久,研究不出来怎么样才能不加端口,使用域名就能访问的
这个我只用过内网穿透,然后在公网服务器用域名反代穿出来的端口就行了
请问博主有相关教程吗。
博客自己找