Eng:J2J:AdminGuide

From JaWiki (Jabber/XMPP wiki)
Revision as of 04:09, 22 July 2008 by 83.63.237.229 (Talk) (Dependencies)

Jump to: navigation, search
Эта страница доступна в версии на русском языке.

This page is also available in Russian.

Pages in EnglishTranslated pagesPages that have an english version

Installation and operation guide for J2J (Jabber-to-Jabber) gateway.

Installation and configuring

Dependencies

For J2J you will need:

(Note: there is experimental Mysql support in 1.1.8, see Changelog.txt)

Source code downloads

You need to get sources of J2J. You can do it at JRuDevels Downloads, or with help of SVN:

svn co https://svn.jrudevels.org/j2j/trunk j2j/

Database setup

You need to setup a database to work with J2J:

Let's create a database for J2J:

  • postgresql:
createdb j2j
  • mysql
mysql -h localhost -u root -p -e "CREATE DATABASE j2j;"

Let's create a DB user:

  • postgresql:
createuser -P j2j

A -P key means, that user is created with a password-prompt. Store it, because it will be needed for next steps. Same with yourpassword in mysql:

  • mysql:
mysql -h localhost -u root -p -e "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON j2j.* TO 'j2j'@'localhost' IDENTIFIED BY 'yourpassword';"

And import a database structure:

  • postgresql:
psql -U j2j j2j
\i pgsql.schema
  • mysql
mysql -h localhost -u root -p -e "use j2j; \. mysql.schema"

Gateway configuration

Configuration file is needed for J2J. Default search paths for it is: ./j2j.conf, ~/.j2j/j2j.conf and /etc/j2j/j2j.conf; also you can use "-c /path/j2j.conf" in main.py, see later. Let's copy example of this and edit it:

cp j2j.conf.example j2j.conf
nano -w j2j.conf

Parameters:

  • Section component
    • JID - JID of gateway. For example,
JID=j2j.server.com
    • Host - IP or domain-name of your Jabber-server. For example,
Host="127.0.0.1"
    • Port - port on Jabber-server to which J2J will be connected. It must be the same as it specified in your Jabber-server's configuration.
    • Password - password on Jabber-server to which J2J will be connected.
  • Section database
    • Host - IP or Domain-name of your database server. Leave it blank to use postgres' UNIX-socket.
    • Type - Type of your database server: postgres or mysql
    • User - Database username (in our example is j2j)
    • Name - Database name (in our example is j2j)
    • Password - Password for this database username.
    • Prefix - pass it as is.
  • Section admins
    • List - a list of JIDs, for a notifications of new users registrations. For example,
List=vasya@server.ru,zhenya@server.com
  • Section debug
    • Pass it as is. If you will get errors in J2J's work try to turn on logging in it section.

Running

Let's start the gateway:

python main.py

it should spit "Connected", see also your jabber server log.

Problems

  • If you see:
 Exception exceptions.AttributeError: "database instance has no attribute 'dbCursor'" in <bound method database.__del__ of <database.database instance at 0x85f1bec>> ignored 
 

Check if you have installed python db access support ( i.e. python-pygresql, python-mysqldb in debian) and if it is up to date. Otherwise, is postgresql/mysql rdbms accesible with the parameters in [database] section in your j2j.conf? is it up?

  • In debian etch twisted is too old:
 Traceback (most recent call last):
  File "/usr/src//j2j/main.py", line 11, in ?
    import j2j
  File "/usr/src/j2j/j2j.py", line 14, in ?
    from client import Client
  File "/usr/src/j2j/client.py", line 10, in ?
    from twisted.names.error import DNSNameError
ImportError: No module named error
 

... required twisted 8.01 is in etch+1; ubuntu 8.04 is ok too.

  • Sometimes main.py doesn't spit nothing, check your jabber server log, maybe there is an authentication password problem so recheck [component] section in j2j.conf

Command line options

Start J2J with the --help key for get the help on command-line options.