Discourse doesn't seem to be really self-hosted. You need a domain name to make it work, which is a tremendous downside and, basically, a dealbreaker...
I've looked at some forum engines. Asmbb is a cool little thing but lacks functionality. Fruum doesn't work, not much documentaion.
Your question is very broad and the answers might be opinion-based, because there is no "The Architecture". If you have a particular question, we would like to help. Otherwise, you maybe should try asking on SoftwareEngineering. And I doubt you can carefully design your whole architecture before starting the implementation. — dymanoid18 secs ago