Difference between revisions of "Eng:J2J:AdminGuide"
(85) |
m (Reverted edits by 200.177.228.4 (Talk); changed back to last version by 83.32.73.6) |
||
Line 2: | Line 2: | ||
Installation and operation guide for [[Eng:J2J|J2J]] (Jabber-to-Jabber) gateway. | Installation and operation guide for [[Eng:J2J|J2J]] (Jabber-to-Jabber) gateway. | ||
− | + | == Installation and configuring == | |
+ | |||
+ | === Dependencies === | ||
+ | |||
+ | For J2J you will need: | ||
+ | * [http://python.org Python] >=2.3 | ||
+ | * [http://twistedmatrix.com/ Twisted] >=8.0.1 | ||
+ | * [http://www.postgresql.org/ PostgreSQL] >=7.4.7 | ||
+ | * [http://www.pygresql.org/ PyGreSQL] >=3.8 | ||
+ | * [http://pyopenssl.sourceforge.net/ PyOpenSSL] >=0.6 | ||
+ | (Note: there is experimental [http://www.mysql.com/ Mysql] with [http://mysql-python.sourceforge.net/ mysql-python] support in 1.1.8 and beyond, see Changelog.txt) | ||
+ | |||
+ | * Any Jabber-server (for example ejabberd, jabberd2 or Openfire), that supports: | ||
+ | ** {{xep|0114|Jabber Component Protocol}} | ||
+ | ** {{xep|0030|Service Discovery}} | ||
+ | |||
+ | === Source code downloads === | ||
+ | You need to get sources of [[Eng:J2J|J2J]]. You can do it at [http://jrudevels.org/index.php?pg=downloads.php&dir=J2J JRuDevels Downloads], or with help of [http://subversion.tigris.org/ SVN]: | ||
+ | |||
+ | <nowiki>svn co https://svn.jrudevels.org/j2j/trunk j2j/</nowiki> | ||
+ | |||
+ | === Database setup === | ||
+ | |||
+ | You need to setup a database to work with [[Eng:J2J|J2J]]: | ||
+ | |||
+ | Let's create a database for [[Eng:J2J|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 [[Eng:J2J|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: | ||
+ | <nowiki>Exception exceptions.AttributeError: "database instance has no attribute 'dbCursor'" in <bound method | ||
+ | database.__del__ of <database.database instance at 0x85f1bec>> ignored</nowiki> | ||
+ | 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 [[Eng:J2J|J2J]] with the --help key to get help about command-line options. | ||
+ | |||
+ | [[Category:Documentation]] | ||
+ | [[Category:English]] |
Revision as of 15:55, 4 January 2010
This page is also available in Russian.
Pages in English • Translated pages • Pages that have an english versionInstallation and operation guide for J2J (Jabber-to-Jabber) gateway.
Contents
Installation and configuring
Dependencies
For J2J you will need:
- Python >=2.3
- Twisted >=8.0.1
- PostgreSQL >=7.4.7
- PyGreSQL >=3.8
- PyOpenSSL >=0.6
(Note: there is experimental Mysql with mysql-python support in 1.1.8 and beyond, see Changelog.txt)
- Any Jabber-server (for example ejabberd, jabberd2 or Openfire), that supports:
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 to get help about command-line options.