Discord With Discourse
UPDATE: 20161202 - I can now recommend people instead consider using NodeBB, NOT Discourse. http://nodebb.org Much better community & developer environment, much better documentation, and far less of a kludge product than Discourse.
I had an exceptionally, surprisingly, disappointing overall experience with the entire Discourse Forum ecosystem: the product, the documentation, the creators/founders, and even the overall community.
It has been a long time since I had such a bad experience as this. Don't waste your time on this product or community.
I am recommending to all I can reach, you should avoid Discourse.org's Discourse forum software, it is not ready for production use at all. It needs many more years to mature, furthermore they have an unusually poor approach to "community" and "support" of their product...
I will be talking about this in some more depth on the next episode of Tech Talk With Hawke. For episode #150, this "adventure" will be covered, in addition to a number of other topics: http://techtalkhawke.com/news/tech-talk-with-hawke-next-episode-topics
In addition to all the issues shown in the lower parts of this long posting, it is most important to note the remarkably embarrassing immature behavior of one of the co-founders of the product.
There are just too many fundamental design and implementation flaws inherent, here are some of the additional problems of the Discourse product that include, but are by no means limited to:
- Extremely fragile chain of dependencies, and upgrades easily break product environment at many levels.
- Poor, and contradictory documentation, tutorials, and FAQs.
- Poor, or no, support for other Linux flavors besides Ubuntu, and even on Ubuntu is a mess.
- Pound "#" symbol in server smtp password is problematic.
- SMTP server password is NOT encrypted (clear text in the app.yml)!
- Immature product development methodologies.
- Immature community.
- Poor community support.
- Shockingly immature product founder(s) & moderator(s).
- They have a disturbingly huge list of unresolved problems with installs, upgrades of dependency chains breaking installs, etc.
- Little-to-no-sense of security considerations.
UPDATE 20161117, 22:13. I let the project manager know that Discourse.org's forum-like product Discourse, is not ready for production use, nor does it have sufficient support to consider for such an important platform as their project. I am now researching alternatives. As is usually the case, most of the many people that daily ask me for technology and product advice, follow my suggestions, and drop any product I suggest they avoid.
I suggest you avoid using Discourse.org's Discourse software. Maybe in a few years it/they will be more mature and ready for use. For now I strongly recommend against using the product.
Below is some of the hassle/history of the very fragile software, and the unexpected behavior of one of the "founders" of the product.
UPDATE 20161117 17:10
On and off (an hour here and there) I was beating my head against the wall with poor documentation, such fragile dependencies, and so many bugs, trying to get Discourse to work on OpenSuse 13.2.
So I rolled back to an Ubuntu LTS setup on a laptop to try to get familiar. And that was having problems too.
We were thinking that Discourse might be a great product, for a specific major project, but so far I am not impressed with how incredibly fragile it is trying to get it setup in any "non-standard" configurations.
To top it off, they throttled my back and forth conversations in trying to troubleshoot these issues with the Discourse community (many of whom were sincerely trying to help, though inadvertently not doing the best job paying attention to what I had already posted, they kept suggesting to do things I had already posted I had already done (there is a circular statement! :-).
This meant I had to keep repeating myself, in NEW REPLIES to point out that their suggestion failed, , and (politely) ask again for some additional ideas.
Despite the having to repeat myself, I was getting some useful suggestions on things to try.
Then a moderator decided to be irritated, throttled my postings so I couldn't reply for an hour, right in the middle of it all! And to add insult to injury, not only throttled, he MUTED THE TOPIC!!!
That just hurts everyone, not just me.
STATUS UPDATE: And, the moderator's response to the request to unthrottle since I was spam, "Jeff Atwoodcodinghorrorco-founder2h I think the limits are working just fine. You shouldn't be adding so many replies -- I had to mute your topic. Take some time to process what you are doing rather than treating this as your personal live chat support."
To which I responded it was good to know, early on, before investing too much into this product, that that is how things work in this community (not well in my view, for what it is worth).
So, I'll still try to get this product working, for sake of someone needing it. But while I was considering integrating into my sites, rude founders that aren't supportive of new users, especially with a product that is such a clustered mess, it doesn't take much for me to not only abandon it, but also spread the word to clients, and others, to stay far away from that product/community.
Sheesh!.
STATUS UPDATE: So, I will give it another shot to get it working for a friend. But I don't know that I can recommend a product, that appears to be such kludge, compounded with such an attitude about community support.
https://meta.discourse.org/t/remove-max-number-of-replies-throttle-for-me-please/53050
https://meta.discourse.org/t/just-cant-seem-to-get-discourse-to-work-with-opensuse-13-2-please-help-me-troubleshoot/52988/22
Terrible support. Terribly messy kludge of product for setup.
And , since I don't know how immature the moderators may be, I'll quickly copy my posts to this posting, in case others are having similar struggles as I have (immature co-founder removed the support thread, I was in the middle of copying the thread here, just in case something like that happened, so unfortunately only part of the thread was saved here)...
UPDATE: Strangely, I was able to copy and paste the lower half of the thread, just before being kicked, but not the upper half. Fortunately I found the upper half still available in the Google webcache: http://webcache.googleusercontent.com/search?q=cache:https://meta.discourse.org/t/just-cant-seem-to-get-discourse-to-work-with-opensuse-13-2-please-help-me-troubleshoot/52988
Just can't seem to get Discourse to work with Opensuse 13.2. Please help me troubleshoot?
support
merpdotcom (Merpdotcom) 2016-11-16 23:56:15 UTC #1
If it is not one thing is another. Hopefully someone can help me isolate what is wrong.
I tried repeatedly to get discourse to work on an OpenSuse 13.2 server at the colo, but no joy, and it appears it is not well supported on that platform.
I have repeatedly completely uninstalled/removed docker, discourse, /var/discourse, removed images, containers, etc. I am perfectly willing to start fresh again if needed.
And that server, though it had a block of many IPs, I kept fighting over the ports, and setting up nginx while battling with all the other webservers running (Apache, Plone, etc.). So I tried setting up on my own laptop, but again OpenSuse 13.2 seemed to have a lot of issues with the setup.
So I setup an old laptop, completely fresh server install, with nothing else on it, with Ubuntu 16.04 LTS server, hoping the closer match to the instructions would solve things, however this is an at-home NAT network, so using proper DNS seemed to be tripping me up. I had setup portforwarding, and dns (I control my own dns servers at various colos). So i tried just configuring the host to only use the IP address. I'm a newb to docker and discourse, and I'm missing something somewhere.
It seems to be running, but I just can't for the life of me seem to figure out what piece I am missing so that it is accessible.
I tried several different instructions from several locations. Here is one (of several I tried) I have been following the directions step-by-step here still to now avail.:
https://www.digitalocean.com/community/tutorial/how-to-install-discourse-on-ubuntu-14-04
But after everything is setup, I just get access denied on the server, even when doing lynx 172.17.0.1 or lynx 192.168.2.16 (the docker/discourse/app ip and the laptop/server ip respectively), and when trying to hist 192.168.2.16 from another computer on the same home network.
I'm not seeing where I can get some good logging information turned up so I can better debug, so I am hoping folks will be kind enough to walk me through troubleshooting this?
cat /proc/sys/net/ipv4/ip_forward
1
ifconfig
docker0 Link encap:Ethernet HWaddr 02:42:20:24:0f:bc
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:20ff:fe24:fbc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:339781 errors:0 dropped:0 overruns:0 frame:0
TX packets:339488 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:22368991 (22.3 MB) TX bytes:114341055 (114.3 MB)
enp5s0 Link encap:Ethernet HWaddr 00:16:36:e1:e0:70
inet addr:192.168.2.16 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: 2601:602:c000:bdfc:216:36ff:fee1:e070/64 Scope:Global
inet6 addr: fe80::216:36ff:fee1:e070/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:384670 errors:0 dropped:427 overruns:0 frame:0
TX packets:339498 errors:4 dropped:0 overruns:0 carrier:4
collisions:434 txqueuelen:1000
RX bytes:123207216 (123.2 MB) TX bytes:29004392 (29.0 MB)
Interrupt:18 Memory:da000000-da020000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:96 errors:0 dropped:0 overruns:0 frame:0
TX packets:96 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:7184 (7.1 KB) TX bytes:7184 (7.1 KB)
veth107b9cb Link encap:Ethernet HWaddr 2a:2c:34:62:48:c9
inet6 addr: fe80::282c:34ff:fe62:48c9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:360 errors:0 dropped:0 overruns:0 frame:0
TX packets:360 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:28542 (28.5 KB) TX bytes:120453 (120.4 KB)
ping 172.17.0.1
PING 172.17.0.1 (172.17.0.1) 56(84) bytes of data.
64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=0.081 ms
lynx 172.17.0.1
Looking up '172.17.0.1' first
Looking up 172.17.0.1 first
Looking up 172.17.0.1
Making HTTP connection to 172.17.0.1
Alert!: Unable to connect to remote host.
lynx: Can't access startfile http://172.17.0.1/
lynx 192.168.2.16
Looking up '192.168.2.16' first
Looking up 192.168.2.16 first
Looking up 192.168.2.16
Making HTTP connection to 192.168.2.16
Alert!: Unable to connect to remote host.
lynx: Can't access startfile http://192.168.2.16/
netstat -na | grep LIST
tcp 0 0 0.0.0.0:4422 0.0.0.0:* LISTEN
tcp6 0 0 :::4422 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::443 :::* LISTEN
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-ISOLATION all -- anywhere anywhere
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:https
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:http
Chain DOCKER-ISOLATION (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
ps -ef | grep discourse
d2dadmin 14687 14608 0 15:35 ? 00:00:04 sidekiq 4.2.4 discourse [0 of 5 busy]
message+ 14953 14591 0 15:35 ? 00:00:00 postgres: 9.5/main: discourse discourse [local] idle
message+ 15065 14591 0 15:35 ? 00:00:00 postgres: 9.5/main: discourse discourse [local] idle
message+ 15146 14591 0 15:35 ? 00:00:00 postgres: 9.5/main: discourse discourse [local] idle
message+ 15171 14591 0 15:35 ? 00:00:00 postgres: 9.5/main: discourse discourse [local] idle
message+ 16879 14591 0 15:49 ? 00:00:00 postgres: 9.5/main: discourse discourse [local] idle
ps -ef | grep docker
root 13013 1 0 15:33 ? 00:00:02 /usr/bin/dockerd -H fd://
root 13021 13013 0 15:33 ? 00:00:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc
root 14509 13013 0 15:34 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 443 -container-ip 172.17.0.2 -container-port 443
root 14518 13013 0 15:34 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.17.0.2 -container-port 80
root 14524 13021 0 15:34 ? 00:00:00 docker-containerd-shim 5620389761ce36103721914d23d0d12a4b229c6c2acca30bff2695a7e6a7be2d /var/run/docker/libcontainerd/5620389761ce36103721914d23d0d12a4b229c6c2acca30bff2695a7e6a7be2d docker-runc
lynx 172.17.0.2
Looking up '172.17.0.2' first
Looking up 172.17.0.2 first
Looking up 172.17.0.2
Making HTTP connection to 172.17.0.2
Alert!: Unable to connect to remote host.
lynx: Can't access startfile http://172.17.0.2/
cat app.yml
## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Uncomment these two lines if you wish to add Lets Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Set db_shared_buffers to a max of 25% of the total memory.
## will be set automatically by bootstrap based on detected RAM, or you can override
db_shared_buffers: "256MB"
## can improve sorting performance, but adds memory usage per-connection
#db_work_mem: "40MB"
## Which Git revision should this container use? (default: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## How many concurrent web requests are supported? Depends on memory and CPU cores.
## will be set automatically by bootstrap based on detected CPUs, or you can override
UNICORN_WORKERS: 4
## TODO: The domain name this Discourse instance will respond to
DISCOURSE_HOSTNAME: 192.168.2.16
## Uncomment if you want the container to be started with the same
## hostname (-h option) as specified above (default "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: List of comma delimited emails that will be made admin and developer
## on initial signup example 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'remmedout@gmail.com'
## TODO: The SMTP mail server used to validate new accounts and send notifications
DISCOURSE_SMTP_ADDRESS: smtp.gmail.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: remmedout@gmail.com
DISCOURSE_SMTP_PASSWORD: "remmedout"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
LETSENCRYPT_ACCOUNT_EMAIL: remmedout@gmail.com
## The CDN address for this Discourse instance (configured to pull)
## see https://meta.discourse.org/t/14857 for details
#DISCOURSE_CDN_URL: //discourse-cdn.example.com
## The Docker container is stateless; all data is stored in /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Any custom commands to run after building
run:
- exec: echo "Beginning of custom commands"
## If you want to set the 'From' email address for your first registration, uncomment and change:
## After getting the first signup email, re-comment the line. It only needs to run once.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "End of custom commands"
Please let me know what else I can do/provide to troubleshoot the problem.
Thanks!
merpdotcom (Merpdotcom) 2016-11-17 00:21:21 UTC #2
Here is syslog output from most recent restart:
Nov 16 15:33:19 dv9 systemd[1]: Starting Docker Socket for the API.
Nov 16 15:33:19 dv9 systemd[1]: Listening on Docker Socket for the API.
Nov 16 15:33:19 dv9 systemd[1]: Starting Docker Application Container Engine...
Nov 16 15:33:20 dv9 dockerd[13013]: time="2016-11-16T15:33:20.257317841-08:00" level=info msg="libcontainerd: new containerd process, pid: 13021"
Nov 16 15:33:21 dv9 kernel: [177395.180479] audit: type=1400 audit(1479339201.610:17): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="docker-default" pid=13033 comm="apparmor_parser"
Nov 16 15:33:21 dv9 dockerd[13013]: time="2016-11-16T15:33:21.803442446-08:00" level=info msg="[graphdriver] using prior storage driver \"aufs\""
Nov 16 15:33:22 dv9 dockerd[13013]: time="2016-11-16T15:33:22.234685153-08:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Nov 16 15:33:22 dv9 dockerd[13013]: time="2016-11-16T15:33:22.235164554-08:00" level=warning msg="Your kernel does not support swap memory limit."
Nov 16 15:33:22 dv9 dockerd[13013]: time="2016-11-16T15:33:22.246964773-08:00" level=info msg="Loading containers: start."
Nov 16 15:33:22 dv9 dockerd[13013]: ....time="2016-11-16T15:33:22.416701752-08:00" level=info msg="Firewalld running: false"
Nov 16 15:33:22 dv9 dockerd[13013]: time="2016-11-16T15:33:22.798989621-08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Nov 16 15:33:23 dv9 kernel: [177396.737691] aufs au_opts_verify:1597:dockerd[13018]: dirperm1 breaks the protection by the permission bits on the lower branch
Nov 16 15:33:23 dv9 kernel: [177396.780252] aufs au_opts_verify:1597:dockerd[13018]: dirperm1 breaks the protection by the permission bits on the lower branch
Nov 16 15:33:23 dv9 kernel: [177396.785989] device veth256ee7f entered promiscuous mode
Nov 16 15:33:23 dv9 systemd-udevd[13108]: Could not generate persistent MAC address for veth7f79922: No such file or directory
Nov 16 15:33:23 dv9 kernel: [177396.786106] IPv6: ADDRCONF(NETDEV_UP): veth256ee7f: link is not ready
Nov 16 15:33:23 dv9 systemd-udevd[13109]: Could not generate persistent MAC address for veth256ee7f: No such file or directory
Nov 16 15:33:24 dv9 kernel: [177397.580743] eth0: renamed from veth7f79922
Nov 16 15:33:24 dv9 kernel: [177397.592662] IPv6: ADDRCONF(NETDEV_CHANGE): veth256ee7f: link becomes ready
Nov 16 15:33:24 dv9 kernel: [177397.592696] docker0: port 1(veth256ee7f) entered forwarding state
Nov 16 15:33:24 dv9 kernel: [177397.592711] docker0: port 1(veth256ee7f) entered forwarding state
Nov 16 15:33:24 dv9 dockerd[13013]: time="2016-11-16T15:33:24.296829175-08:00" level=info msg="Loading containers: done."
Nov 16 15:33:24 dv9 dockerd[13013]: time="2016-11-16T15:33:24.313239228-08:00" level=info msg="Daemon has completed initialization"
Nov 16 15:33:24 dv9 dockerd[13013]: time="2016-11-16T15:33:24.313311096-08:00" level=info msg="Docker daemon" commit=6b644ec graphdriver=aufs version=1.12.3
Nov 16 15:33:24 dv9 dockerd[13013]: time="2016-11-16T15:33:24.343694456-08:00" level=info msg="API listen on /var/run/docker.sock"
Nov 16 15:33:24 dv9 systemd[1]: Started Docker Application Container Engine.
Nov 16 15:33:39 dv9 kernel: [177412.640034] docker0: port 1(veth256ee7f) entered forwarding state
Nov 16 15:34:44 dv9 kernel: [177478.275186] aufs au_opts_verify:1597:dockerd[13030]: dirperm1 breaks the protection by the permission bits on the lower branch
Nov 16 15:34:45 dv9 kernel: [177478.592197] aufs au_opts_verify:1597:dockerd[13030]: dirperm1 breaks the protection by the permission bits on the lower branch
Nov 16 15:34:45 dv9 kernel: [177478.702247] aufs au_opts_verify:1597:dockerd[13030]: dirperm1 breaks the protection by the permission bits on the lower branch
Nov 16 15:34:45 dv9 kernel: [177478.724833] device veth9bb5f8b entered promiscuous mode
Nov 16 15:34:45 dv9 kernel: [177478.724920] IPv6: ADDRCONF(NETDEV_UP): veth9bb5f8b: link is not ready
Nov 16 15:34:45 dv9 systemd-udevd[14171]: Could not generate persistent MAC address for veth74d7cc2: No such file or directory
Nov 16 15:34:45 dv9 systemd-udevd[14172]: Could not generate persistent MAC address for veth9bb5f8b: No such file or directory
Nov 16 15:34:45 dv9 kernel: [177479.461983] eth0: renamed from veth74d7cc2
Nov 16 15:34:45 dv9 kernel: [177479.480521] IPv6: ADDRCONF(NETDEV_CHANGE): veth9bb5f8b: link becomes ready
Nov 16 15:34:45 dv9 kernel: [177479.480547] docker0: port 2(veth9bb5f8b) entered forwarding state
Nov 16 15:34:45 dv9 kernel: [177479.480558] docker0: port 2(veth9bb5f8b) entered forwarding state
Nov 16 15:34:46 dv9 kernel: [177479.757804] docker0: port 2(veth9bb5f8b) entered disabled state
Nov 16 15:34:46 dv9 kernel: [177479.757867] veth74d7cc2: renamed from eth0
Nov 16 15:34:46 dv9 kernel: [177479.834945] docker0: port 2(veth9bb5f8b) entered disabled state
Nov 16 15:34:46 dv9 kernel: [177479.836806] device veth9bb5f8b left promiscuous mode
Nov 16 15:34:46 dv9 kernel: [177479.836813] docker0: port 2(veth9bb5f8b) entered disabled state
Nov 16 15:34:50 dv9 dockerd[13013]: time="2016-11-16T15:34:50.372481116-08:00" level=warning msg="libcontainerd: container 5620389761ce36103721914d23d0d12a4b229c6c2acca30bff2695a7e6a7be2d restart canceled"
Nov 16 15:34:50 dv9 kernel: [177484.125637] docker0: port 1(veth256ee7f) entered disabled state
Nov 16 15:34:50 dv9 kernel: [177484.125773] veth7f79922: renamed from eth0
Nov 16 15:34:50 dv9 kernel: [177484.213040] docker0: port 1(veth256ee7f) entered disabled state
Nov 16 15:34:50 dv9 kernel: [177484.214842] device veth256ee7f left promiscuous mode
Nov 16 15:34:50 dv9 kernel: [177484.214849] docker0: port 1(veth256ee7f) entered disabled state
Nov 16 15:34:51 dv9 kernel: [177484.637757] aufs au_opts_verify:1597:dockerd[13030]: dirperm1 breaks the protection by the permission bits on the lower branch
Nov 16 15:34:51 dv9 systemd-udevd[14464]: Could not generate persistent MAC address for veth107b9cb: No such file or directory
Nov 16 15:34:51 dv9 kernel: [177484.642193] device veth107b9cb entered promiscuous mode
Nov 16 15:34:51 dv9 kernel: [177484.642298] IPv6: ADDRCONF(NETDEV_UP): veth107b9cb: link is not ready
Nov 16 15:34:51 dv9 kernel: [177484.642305] docker0: port 1(veth107b9cb) entered forwarding state
Nov 16 15:34:51 dv9 kernel: [177484.642315] docker0: port 1(veth107b9cb) entered forwarding state
Nov 16 15:34:51 dv9 systemd-udevd[14463]: Could not generate persistent MAC address for veth705a290: No such file or directory
Nov 16 15:34:51 dv9 kernel: [177485.096712] eth0: renamed from veth705a290
Nov 16 15:34:51 dv9 kernel: [177485.108521] IPv6: ADDRCONF(NETDEV_CHANGE): veth107b9cb: link becomes ready
Nov 16 15:35:06 dv9 kernel: [177499.680036] docker0: port 1(veth107b9cb) entered forwarding state
Nov 16 16:16:01 dv9 systemd[1]: Started Session 416 of user d2dadmin.
Nov 16 16:17:02 dv9 CRON[20526]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Falco (Rafael dos Santos Silva) 2016-11-17 00:41:54 UTC #3
Please run this:
tail /var/discourse/shared/standalone/log/var-log/nginx/access.log
merpdotcom (Merpdotcom) 2016-11-17 00:50:58 UTC #4
Falco:
tail /var/discourse/shared/standalone/log/var-log/nginx/access.log
Thanks Falco, this may help point me in the right direction. Interesting. While there is an error.log in that directory, showing ssl errors, there is no access.log file.
I did a touch access.log, and chown'd www-data:www-data (same as the error.log), and restarted with ./launcher restart app.
And yet during setup and bootstrap I didn't see any errors generated, but this looks like something didn't finish (mostly likely because the cert provider won't support NATted IPs?).
Looks like something went wrong during the SSL setup. I will see if I can rebuild without any ssl, and see if that helps?
tail -f error.log:
2016/11/17 00:49:14 [emerg] 949#949: BIO_new_file("/shared/ssl/192.168.2.16.cer") failed (SSL: erro001002:system library:fopen:No such file or directory:fopen('/shared/ssl/192.168.2.16.cer','r') err006D080:BIO routines:BIO_new_file:no such file)
Falco (Rafael dos Santos Silva) 2016-11-17 00:52:46 UTC #5
If you want let's encrypt SSL you need to provide a valid domain name, like forum.example.com.
You provided 192.168.2.16 as your domain, and Let's Encrypt servers won't talk with your server to validate the ownership that way.
merpdotcom (Merpdotcom) 2016-11-17 00:57:03 UTC #6
Yeah, that is part of the cascade of problems. Originally I started trying to get it setup on OpenSuse 13.2 on a colo server that had a proper dns setup and all. But since it had so many other problems (which I'll have to come back to after I get the home setup going), I figured trying to setup on Ubuntu since the discourse instructions seemed focused on that distro, would at least help narrow the problems, but unfortunately I don't have an Ubuntu server that is public.
I have remmed out the ssl portions of the app.yml, and am re-running the ./launcher rebuild app right now. Hopefully that will at least get something working. If so, then I'll try going back to the live server, and try to tackle getting it working on OpenSuse again.
merpdotcom (Merpdotcom) 2016-11-17 01:10:26 UTC #7
Okay, that fixed it on the Ubuntu setup (without ssl).
I am able to access the test setup on my home network, at the 192.168.2.16 IP address, from another computer on the home network (.99 system), though it is only the basic welcome page, that just wasn't working before, and was the key piece needed.. And I am able to hit it from the Internet (I had setup my router to port forward). So, this test setup at least helped me see a working setup on Ubuntu, which I couldn't get that far with the desired OpenSuse system, and helped learn some of the debugging. The OpenSuse 13.2 setup had a lot more errors trying to get it up and running, so now I'm going back to the original goal of getting it working on the OpenSuse 13.2 setup (which is at a colocation facility with live IPs, DNS, FQDN, etc.), now that I have a little more understanding about Discourse/Docker setup. Will report back in a bit on the issues there. Thanks! I didn't know where those logs were, that is exactly the kind of help I was hoping for.
director (MD8D Director) 2016-11-17 04:44:25 UTC #8
It can be very frustrating trying to put all the pieces together - don't give up! Mine just stopped working for no good reason after I installed akismet. Back to first principals for me, I'm afraid.
codinghorror (Jeff Atwood) 2016-11-17 08:24:39 UTC #9
I thought we were quite clear in our setup docs that an IP address will not work. You need a real domain name. For mail, for https, for a bunch of things.
Perhaps we could make this more clear in our github setup doc @techAPJ?
merpdotcom (Merpdotcom) 2016-11-17 17:50:21 UTC #10
Okay, now back to the original goal of trying to get this to work on the colo server on OpenSuse 13.2.
Get through the initial setup of docker, and grabbing discourse from github just fine (at least as far as I know).
Then when run ./discourse-setup, it runs for a while, and then aborts with an error:
./discourse-setup
which: no docker.io in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/games)
which: no docker.io in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/games)
Ports 4080 and 40443 are free for use
Found 16GB of memory and 6 physical CPU cores
setting db_shared_buffers = 4096MB
setting UNICORN_WORKERS = 8
Hostname for your Discourse? [discourse.example.com]: d2.merp.com
Email address for admin account? [me@example.com,you@example.com]: remmedout@gmail.com
SMTP server address? [smtp.example.com]: smtp.gmail.com
SMTP port? [587]:
SMTP user name? [postmaster@discourse.example.com]: remmedout@gmail.com
SMTP password? []: remmedout (note this is scary that not encrypted in app.yml, hopefully can resolve that later?)
Let's Encrypt account email? (ENTER to skip) [me@example.com]: remmedout@gmail.com
Does this look right?
Hostname : d2.merp.com
Email : remmedout@gmail.com
SMTP address : smtp.gmail.com
SMTP port : 587
SMTP username : remmedout@gmail.com
SMTP password : remmedout
Let's Encrypt : remmedout@gmail.com
ENTER to continue, 'n' to try again, Ctrl+C to exit:
web.ssl.template.yml enabled
letsencrypt.ssl.template.yml enabled
Configuration file at containers/app.yml updated successfully!
which: no docker.io in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/games)
cd /pups && git pull && /pups/bin/pups --stdin
fatal: unable to access 'https://github.com/SamSaffron/pups.git/': Could not resolve host: github.com
a1950b328d285c3ad37161017d76a9265048eb26bf73177d4ac408a5bb06e869
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one
I verified /etc/resolve.conf, but read that is not used during this process.
So then I edited /etc/sysconfig/docker to include:
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
Is that the correct syntax?
But re-running, still had the same error.
So, since the docks point to /etc/docker/docker, I tried a symlink:
ln -s /etc/sysconfig/docker /etc/docker/docker
rm'd app.yml, and ran ./discourse-setup again. Same error.
Suggestions?
Thanks!
pfaffman (Jay Pfaffman) 2016-11-17 20:32:27 UTC #11
merpdotcom:
which: no docker.io
That line appears a bunch of times. It means that Docker is not installed. I am pretty sure that the docs make it clear that Docker is required.
merpdotcom:
Could not resolve host: github.com
This also indicates that your server is not set up correctly, or, perhaps you are somewhere that cannot access github.
Just can’t seem to get Discourse to work with Opensuse 13.2. Please help me troubleshoot?
Pretty much same result?
./launcher bootstrap app
which: no docker.io in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/games)
cd /pups && git pull && /pups/bin/pups --stdin
fatal: unable to access 'https://github.com/SamSaffron/pups.git/': Could not resolve host: github.com
d2ce24f941f71a170a7ff1d6fb05b91137fbb0341376bb23bb018afa3a9aad7f
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one
cat app.yml
## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Uncomment these two lines if you wish to add Lets Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
- "4080:4080" # http
- "40443:40443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Set db_shared_buffers to a max of 25% of the total memory.
## will be set automatically by bootstrap based on detected RAM, or you can override
db_shared_buffers: "4096MB"
## can improve sorting performance, but adds memory usage per-connection
#db_work_mem: "40MB"
## Which Git revision should this container use? (default: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## How many concurrent web requests are supported? Depends on memory and CPU cores.
## will be set automatically by bootstrap based on detected CPUs, or you can override
UNICORN_WORKERS: 8
## TODO: The domain name this Discourse instance will respond to
DISCOURSE_HOSTNAME: d2.merp.com
## Uncomment if you want the container to be started with the same
## hostname (-h option) as specified above (default "$hostname-$config")
DOCKER_USE_HOSTNAME: true
## TODO: List of comma delimited emails that will be made admin and developer
## on initial signup example 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'remmed@gmail.com'
## TODO: The SMTP mail server used to validate new accounts and send notifications
DISCOURSE_SMTP_ADDRESS: smtp.gmail.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: remmed@gmail.com
DISCOURSE_SMTP_PASSWORD: "remmed"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
#LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
LETSENCRYPT_ACCOUNT_EMAIL: remmed@gmail.com
## The CDN address for this Discourse instance (configured to pull)
## see https://meta.discourse.org/t/14857 for details
#DISCOURSE_CDN_URL: //discourse-cdn.example.com
## The Docker container is stateless; all data is stored in /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## Any custom commands to run after building
run:
- exec: echo "Beginning of custom commands"
## If you want to set the 'From' email address for your first registration, uncomment and change:
## After getting the first signup email, re-comment the line. It only needs to run once.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "End of custom commands"
Thanks. I had mentioned earlier (but understandable to have missed with the growing length of this thread), that I did the following early on:
/etc/sysconfig/docker
## Path : System/Management
## Description : Extra cli switches for docker daemon
## Type : string
## Default : ""
## ServiceRestart : docker
#
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
And just in case, symlinked it to /etc/docker/docker:
ln -s /etc/sysconfig/docker /etc/docker/docker
But, it still doesn't seem to be resolving. So I will back up and try digging deeper into docker to see why it isn't getting name resolution properly...
I will report back.
Crud, now I can't post this response, "You've reached the maximum number of replies a new user can create on their first day. Please wait 1 hour before trying again."
Now that is really compounding frustration.
Please, can someone please un-throttle me?
Oops, looks like I didn't restart the Docker service after making the changes to /etc/sysconfig/docker.
So, running again:
./launcher bootstrap app
which: no docker.io in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/games)
cd /pups && git pull && /pups/bin/pups --stdin
Already up-to-date.
I, [2016-11-17T23:09:11.260343 #14] INFO -- : Loading --stdin
I, [2016-11-17T23:09:11.269033 #14] INFO -- : > mkdir -p /shared/postgres_run
I, [2016-11-17T23:09:11.272431 #14] INFO -- :
I, [2016-11-17T23:09:11.272668 #14] INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2016-11-17T23:09:11.275957 #14] INFO -- :
I, [2016-11-17T23:09:11.276178 #14] INFO -- : > chmod 775 /shared/postgres_run
I, [2016-11-17T23:09:11.278879 #14] INFO -- :
I, [2016-11-17T23:09:11.279051 #14] INFO -- : > rm -fr /var/run/postgresql
I, [2016-11-17T23:09:11.281939 #14] INFO -- :
I, [2016-11-17T23:09:11.282114 #14] INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2016-11-17T23:09:11.284730 #14] INFO -- :
I, [2016-11-17T23:09:11.284898 #14] INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
I, [2016-11-17T23:09:11.293513 #14] INFO -- : postgres already running stop container
FAILED
--------------------
Pups::ExecError: socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1 failed with return #<Process::Status: pid 21 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:108:in `spawn'
exec failed with the params "socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1"
7f24537d5bc82d13bed9da3c5de67121158a72c66c3580602a275bb8fc2daa11
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one
Do I need to remove the current attempts from Docker, and delete the directory (again), and try to start over again? Or is there another approach to get this to continue from a partially failed install?
Thanks!
I'm trying just docker stop app.
And then re-run ./launcher bootstrap app, and will see how it goes now...
Okay. It looks like the base install finally completed:
Successfully bootstrapped, to startup use ./launcher start app
d2d203:/var/discourse # ./launcher start app
which: no docker.io in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/games)
starting up existing container
+ /usr/bin/docker start app
app
Ah, but the SSL still failed to setup properly. There isn't an access.log file, and the error.log file for nginx is complaining about no cert:
tail -f /var/discourse/shared/standalone/log/var-log/nginx
2016/11/18 00:16:20 [emerg] 1767#1767: BIO_new_file("/shared/ssl/66.165.236.129.cer") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/66.165.236.129.cer','r') error:2006D080:BIO routines:BIO_new_file:no such file)
^C
I guess I could rem out the SSL options, and go without SSL just for the sake of trying to get the basics working?
I'll try that, re-run rebuild, and see if that will at least get the regular http working...
That didn't not resolve. It is still looking for the SSL errors, and still no access.log, only error.log.
I guess I'll try wiping it clean again, and try again with the new tweaks learned.
Remove the docker images. Delete the content from the /var/discourse dir.
Regrab it from github. Copy samples/standalone.yml to containers/app.yml. Edit the app.yml to not have ssl at this stage. Run the launcher bootstrap app. And see if that works any better.
And the final ludicrousness:
Wow, I still can't believe the moderator muted this call for help.
Since the moderator muted/killed this thread, hopefully I can figure out the rest on my own. I'll post the rest of my challenges, findings, and fixes to this blog posting instead. This will make for an interesting discussion for the show's next episode regarding community support approaches and attitudes.
http://techtalkhawke.com/news/discord-with-discourse
Sheesh.
UPDATE: 19:38, 20161117. Now the moderator completely suspended my account on meta.discourse.org!!! Wow, how childish! More fodder for the next show. Fun!
Just noticed, account banned for a year. Reason, "No longer welcome here".
Unbelievable. The level of immaturity is amazing. Was he a Reddit or 4Chan moderator moonlighting on the Discourse.org website? :-)
And a good thing I made a backup, sure enough the cofounder / moderator in a fit of pique, deleted both threads completely (or at least locked them from public view).
With all those ruled out, what is left? Quick search lists: Mybema, XenForo, Spirit-Project, Burning Board, NodeBB, MyBB, bbPress, ZeroTalk, MUUT, TangoBB, VoxPopuli, YaBB, Kunena, IkoBB, Codoforum, esoTalk, moot.it, Juvia, Isso, Open Comment Box, Talkatv. Those don't have enough information on the summary pages, so I'll have to delve into each quickly to see which ones are in the ballpark to fit the projects scope requirements. I'll let folks know what the results are.
https://muut.com/[…]/open-word:how-does-this-compare-to-di
https://meta.discourse.org/[…]/90
https://discuss.flarum.org/[…]/34