discourse踩坑记录
Discourse服务器搭建日志
帮同学搭建了Discourse服务器,这是搭建过程中踩的坑
首先检查网络连接
首先需要启动clash,并知道clash的端口,同时clash需要开启<允许来自局域网的链接>
如果不知道端口可以使用sudo lsof -i -P -n | grep verg
查看clash-verge的断口
可以先测试一下端口写的对不对
1 |
|
配制discourse
不要按照 github repo 里面的那个 INSTALL-cloud.md!除非你的网络条件很好(^-^)
建议参考https://github.com/discourse/discourse_docker
1 |
|
可以先运行discourse-setup
生成一个默认的配置文件containers/app.yml
然后可以对app.yml做修改
运行./launcher rebuild app
后无法访问github
1 |
|
排查出是因为这时候discourse启动了一个discourse/base
的docker容器,在里面执行git pull,所以要把https代理传递给容器
1 |
|
其中10.19.179.91
是宿主机的ip,所以clash要打开允许来自局域网的链接
修改templete
discourse提供了一个专门针对中国网络环境优化的templete,可以把 - "templates/web.china.template.yml"
加入到app.yml
的templete里面
rebuild 没有明显报错,但访问不了discourse
使用discourse_docker
搭建的过程中会创建两个容器,一个是discourse/base
(rebuild的时候运行rebuild结束就停止了,rebuild过程中输出的信息来自这个容器),另一个是local_discourse/app
(最终搭建的discourse服务器,log不会默认输出到控制台)
如果docker ps
发现local_discourse/<服务器名称>
的容器在运行,但是对应的端口无法访问网页,可以用docker logs <容器的id>
看一下这个容器的日志,或者直接docker exec -it <容器的id> /bin/bash
进到容器的shell
想删除之前的数据(用户/帖子/管理员帐号密码etc)
数据库不会保存在docker里面,每次rebuild的时候并不会清除上次的数据
docker inspect <容器id> | vim -
看一下容器的信息,看一下挂载了那些目录
然后清空这两个目录就行了(应该?)
1 |
|
有关tailscale
受网络环境/防火墙限制,tailscale可能会链接失败/速度非常慢,建议当一个备选方案
因为起初我想用x11-forwarding来改clash的设置,然后那个端口转发太慢了,就在服务器上安装了tailscale
Tailscale 是一种基于 WireGuard 的 VPN 解决方案,使用 WireGuard 协议来创建加密的点对点连接,自动穿透防火墙和 NAT,无需通过中央服务器中转,所以速度很快,也非常好用.
tailscale的原理可以参考官网
https://tailscale.com/kb/1151/what-is-tailscale
https://tailscale.com/blog/how-nat-traversal-works
https://tailscale.com/blog/how-tailscale-works
安装tailscale
1 |
|
登陆后,我把这个Tailscale 节点设置为通往 10.19.179.0/24
子网的路由器(感觉子网设太大了,以后可以试一试10.19.179.91/32行不行(就子网只有这一个ip))
1 |
|
然后我就可以直接在我的电脑上使用suat.ysyx.org
或者10.19.179.91
访问服务器了