0. нужен питон и рабочий ежик
1. размаскировать и поставить dev-python/twisted-10.1.0, dev-python/twisted-web-10.1.0, dev-python/twisted-words-10.1.0
2. размаскировать и поставить dev-lang/spidermonkey-1.7.0-r2 (USE=unicode), dev-db/mongodb-1.6.0
4. git clone 
git://git.blasux.ru/bnwach.git
5. cd bnwach
6. git clone 
http://github.com/dustin/tornado.git
7. git clone 
http://github.com/fiorix/mongo-async-python-driver.git
8. отредактировать example.tac, там нужно выкинуть import passwords и поставить
# set up Jabber Component
sm = component.buildServiceManager('<какой-то урл>', '<какой-то пасс>', ("tcp:127.0.0.1:8888" ))
9. отредактировать /etc/jabber/ejabberd.cfg/etc/jabber/ejabberd.cfg, пункт listen:
  %%
  %% ejabberd_service: Interact with external components (transports, ...)
  %%
  {8888, ejabberd_service, [
                            {access, all},
                            {shaper_rule, fast},
                            {ip, {127, 0, 0, 1}},
                            {hosts, ["<какой-то урл>"],
                             [{password, "<какой-то пасс>"}]
                            }
                           ]},
10. перегрузить ежик
11. запускать bnw через twistd -ny example.tac
P.S. урл должен резолвиться, хотя бы через /etc/hosts