开源论坛之discourse搭建
快2个月没写博客,最近一个是忙着开发docker平台,另外一个是接手了公司私有云,所以比较忙。
公司最近有个新项目,想弄个技术的问答论坛,挑选了半天,选择ruby语言的discourse,这个是完全开源的,界面简洁,支持中文,有管理后台,满足需求。
discourse的地址是https://www.discourse.org
界面如下
下面是安装过程
系统环境
官方推荐使用ubuntu,并且安装的程序也是支持ubuntu系统,docker安装模式,所以我选择了云主机ubuntu 14.04系统,discourse是最新的1.5.0版本。
安装地址可以参考https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md
1、更新源
apt-get update
2、安装依赖软件
apt-get install ruby git
3、安装docker
wget -qO- https://get.docker.com/ | sh
安装完成后可以使用docker version查看
root@i-chxjfvpy:/tmp# docker version Client:Version: 1.9.1API version: 1.21Go version: go1.4.2Git commit: a34a1d5Built: Fri Nov 20 13:12:04 UTC 2015OS/Arch: linux/amd64Server:Version: 1.9.1API version: 1.21Go version: go1.4.2Git commit: a34a1d5Built: Fri Nov 20 13:12:04 UTC 2015OS/Arch: linux/amd64
当前我的是1.9.1版本
4、安装discourse
mkdir /data/discourse git clone https://github.com/discourse/discourse_docker.git /data/discourse cd /data/discourse cp samples/standalone.yml containers/app.yml
ps:默认官方是放入/var目录里,我这里放入/data是因为这个目录是我云主机挂载的盘
root@i-chxjfvpy:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 18G 1.8G 15G 11% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 3.9G 8.0K 3.9G 1% /dev tmpfs 799M 412K 799M 1% /run none 5.0M 0 5.0M 0% /run/lock none 3.9G 0 3.9G 0% /run/shm none 100M 0 100M 0% /run/user /dev/vdb1 193G 60M 183G 1% /data
5、修改discourse配置
root@i-chxjfvpy:/data/discourse# grep -v "^ #" containers/app.yml |grep -v "^#"|sed '/^$/d' templates:- "templates/postgres.template.yml"- "templates/redis.template.yml"- "templates/web.template.yml"- "templates/sshd.template.yml"- "templates/web.ratelimited.template.yml"- "templates/web.china.template.yml" expose:- "80:80" # fwd host port 80 to container port 80 (http)- "2222:22" # fwd host port 2222 to container port 22 (ssh) params:db_default_text_search_config: "pg_catalog.english"db_shared_buffers: "2GB"db_work_mem: "40MB" env:LANG: en_US.UTF-8UNICORN_WORKERS: 6DISCOURSE_DEVELOPER_EMAILS: 'xxx@163.com'DISCOURSE_HOSTNAME: 'discuss.xxx.net'DISCOURSE_SMTP_ADDRESS: smtp.163.com # (mandatory)DISCOURSE_SMTP_PORT: 25 # (optional)DISCOURSE_SMTP_USER_NAME: xxx # (optional)DISCOURSE_SMTP_PASSWORD: 123123 # (optional, WARNING the char '#' in pw can cause problems!)DISCOURSE_SMTP_AUTHENTICATION: loginDISCOURSE_SMTP_OPENSSL_VERIFY_MODE: noneDISCOURSE_SMTP_ENABLE_START_TLS: false # (optional, default true) volumes:- volume:host: /data/discourse/shared/standaloneguest: /shared- volume:host: /data/discourse/shared/standalone/log/var-logguest: /var/log hooks:after_code:- exec:cd: $home/pluginscmd:- git clone https://github.com/discourse/docker_manager.git run:- exec: echo "Beginning of custom commands"- exec: echo "End of custom commands"- exec: awk -F\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "Authorized SSH keys for this container:"; } NF>=2 {print $NF;}'
下面是需要修改的
DISCOURSE_DEVELOPER_EMAILS是你邮件地址; DISCOURSE_HOSTNAME是你web端打开的地址,可以是公网IP,也可以是dns域名; DISCOURSE_SMTP_ADDRESS、DISCOURSE_SMTP_PORT、DISCOURSE_SMTP_USER_NAME、DISCOURSE_SMTP_PASSWORD是你邮箱信息,这个邮箱是用户注册或其他行为时,发送给用户进行验证的邮箱,其中密码DISCOURSE_SMTP_PASSWORD里不能包含#,否则会被识别有问题; 默认authentication是plain,但我测试使用163邮箱的话,无法登陆,所以改为login; 默认enable_starttls_auto是开启tls验证,我这里也给改为false; 另外在template里加入一行- "templates/web.china.template.yml" 不加入的话,默认使用ruby的库是国外的ruby.org镜像源,加上这个后是使用国内taobao的ruby镜像源 具体配置参考注释,比如db_shared_buffers、db_work_mem、UNICORN_WORKERS根据你内存来配置。
6、生成镜像
默认是先下载一个公共的discourse/discourse镜像,然后会根据你的配置生成一个本地的镜像local_discourse/app,如下
root@i-su8g5dng:/tmp# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE local_discourse/app latest 4272aa220d69 2 hours ago 1.877 GB discourse/discourse 1.0.15 cb7b58c22b11 2 weeks ago 1.265 GB
下面是生成的命令
./launcher bootstrap app
86c397191c205624ded7181c06b1d73ea1856abe126a717354dc308d2964282a cfbab5cb2ff9745616cb0e604c47644d2a7041445fda6b0da0aa697714bf466b Successfully bootstrapped, to startup use ./launcher start app root@i-chxjfvpy:/data/discourse# ./launcher start app
然后使用./launcher start app启动
root@i-chxjfvpy:/data/discourse# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d0b519f15db7 local_discourse/app "/sbin/boot" 35 seconds ago Up 33 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:2222->22/tcp app
之后直接在web里输入域名或者ip就可以直接访问
7、配置管理员用户
参考https://meta.discourse.org/t/create-admin-account-from-console/17274
或者直接按照下面操作
进入容器
./launcher enter app
创建管理员账户
rake admin:create
下面是官方的介绍
You will be asked for Email, Password and Confirm Password.After providing required information a new account will be created with random username.Now you will be asked: Do you want to grant Admin privileges to this account? (Y/n). Press enter to continue.You will see success message: Your account now has Admin privileges!.That's it, you have created a new account with Admin privileges.
8、登陆验证
登陆后的界面为
9、修改为中文界面
修改后刷新,然后显示为
10、FAQ
如果遇到无法发送验证邮件,检测问题为
553 Mail from must equal authorized user
需要你修改
开源论坛之discourse搭建相关推荐
- 一起赚美元⑥ | 创立Discourse开源论坛软件每月赚取12万美元的故事
译者:柚子 星球链接:https://t.zsxq.com/jqzNJ6e 英文原文链接:https://www.indiehackers.com/businesses/discourse 1.主人公 ...
- 给热心老哥搭个窝,2021年30分钟用Discourse搭建新一代BBS论坛站全攻略
Discourse 是 Stack Overflow 的联合创始人 Jeff Atwood 推出的一个新的开源论坛项目,其目的是为了改变十年未变的论坛软件.它摒弃了传统论坛的话题讨论形式.拥有自学习系 ...
- Apache2.2.22 + PHP5.2.17 + MySQL5.5.22 快速搭建部署PHPWind开源论坛
我是搞Java WEB开发的,由于比较喜欢看日本动漫,例如火影,海贼等.所以经常逛bbs.jumpcn.com(该论坛就是基于PHPWind开源论坛的).闲来没事.就自己整下玩玩. 一.简介 Apac ...
- 17款开源论坛系统/Forum Software(转载)
phpBB phpBB具有友好的用户界面,简单易懂的管理面板和FAQ.你可采用PHP+MySQL,MS-SQL,PostgreSQL或Access/ODBC数据库来搭建自己的论坛系统. OPB OPB ...
- STM32开源开发环境的搭建
STM32开源开发环境的搭建 Eclipse+ GNU ARM Eclipse Plug-in+Sourcery G++ Lite Edition for ARM+OPENCD+Jlink的开源开发环 ...
- php开源论坛系统,十款开源论坛系统推荐(二)
6. IceBB Forums IceBB 是一个强大.开源.快速的论坛系统,基于 PHP+MySQL.IceBB 适合于任何规模,不论有多少用户和贴子数,这是因为它具有简洁.高效的代码.IceBB ...
- 共享开源技术,共建开放生态丨平凯星辰余梦杰出席 2022 世界互联网大会开源论坛圆桌对话
2022 年 11 月 9 日下午,2022 年世界互联网大会乌镇峰会开源技术生态创新发展论坛成功举办.论坛由中国科学院主办,中国科学院软件研究所.中国科学院计算技术研究所.浙江省互联网信息办公室等单 ...
- 品尝当下国外最受欢迎的开源论坛系统phpBB
phpBB是时下开源论坛中使用最多的一个了.phpBB及其强大,功能齐全,界面优雅,用户友好,非常适合没有编程经验的人去搭建论坛.官网中还提供了许多漂亮的 style 和 功能 plug-in .官网 ...
- 开源应用中心 | 这款轻量简洁的开源论坛系统,你get了没?
1. 背景 如果你想搭建一个论坛系统,可能有很多的开源论坛系统可以满足你的需求.但你是否感觉很多的论坛系统都过于臃肿了,在论坛系统的核心功能上堆积了很多比较鸡肋的功能,占用大量的系统资源导致花费不必要 ...
最新文章
- 接口限流算法:漏桶算法令牌桶算法
- linux awk 用一个或多个空格做分隔符
- 干货整理 Unity3D资源汇总
- JQ中的方法、事件及动画
- JS的NaN与isNaN
- iis下的php不显示报错信息,IIS环境下 PHP无法显示错误信息怎么办
- webpack5 模块联邦 single-spa基座微前端 systemjs
- centOS chkconfig 使用
- SpringMVC实现ajax上传图片实时预览
- 最新Unity 3D游戏开发学习资料集合
- 第八届全国噪声与振动控制工程学术会议大会报告
- freeswitch与eyebeam
- 自变量与因变量相关分析不显著能做回归分析吗?
- BigDecimal的equals方法做等值比较问题
- 不要虚掷你的黄金时代,不要去倾听枯燥乏味的东西,不要设法挽留无望的失败,不要把你的生命献给无知、平庸和低俗。
- 哈雷haley教你如何用你的手机测试你的移动端项目
- R语言 | 关联规则
- Android实现仿支付宝流水
- 第一次软件工程作业(One who wants to wear the crown, Bears the crown.)
- linux 读取U盘内容
热门文章
- 剑指offer面试题[9]-裴波那契数列
- 21天jenkins打卡前置准备:linux环境
- 软件测试开发实战| Java版本,Gson解析json比较常用的2种方式
- 测试员35岁以后找不到工作?问完了几千人后,我们得到了答案......
- 稳定性测试怎么做,这篇文章彻底讲透了
- 蜘蛛搜索引擎_「SEO工具」如何利用爱站工具去分析各搜索引擎蜘蛛情况?
- 验证码图片 java_验证码图片
- the jacobian matrix and the gradient matrix
- error和warning指令
- 【java】创建一个JFrame,可以使得一个字符串用按钮进行颜色的选择