diff options
author | Alexey Shchepin <alexey@process-one.net> | 2003-01-23 20:57:55 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2003-01-23 20:57:55 +0000 |
commit | 66792183d06ebec2192e5bff1aa2870103bd4892 (patch) | |
tree | b952e4996875956cd7961d55a01738a775124f3c | |
parent | *** empty log message *** (diff) |
*** empty log message ***
SVN Revision: 48
-rw-r--r-- | doc/guide.html | 229 | ||||
-rw-r--r-- | doc/guide.tex | 272 | ||||
-rw-r--r-- | doc/logo.png | bin | 0 -> 19917 bytes | |||
-rw-r--r-- | src/ejabberd.cfg | 32 |
4 files changed, 517 insertions, 16 deletions
diff --git a/doc/guide.html b/doc/guide.html new file mode 100644 index 000000000..a8ff887a8 --- /dev/null +++ b/doc/guide.html @@ -0,0 +1,229 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" + "http://www.w3.org/TR/REC-html40/loose.dtd"> +<HTML> +<HEAD><TITLE>Ejabberd Installation and Operation Guide</TITLE> +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<META name="GENERATOR" content="hevea 1.05"> +</HEAD> +<BODY > +<!--HEVEA command line is: hevea guide.tex --> +<!--HTMLHEAD--> +<!--ENDHTML--> +<!--CUT DEF section 1 --> + + + +<H1 ALIGN=center>Ejabberd Installation and Operation Guide</H1> + +<H3 ALIGN=center>Alexey Shchepin<BR><A HREF="mailto:alexey@sevcom.net"><TT>mailto:alexey@sevcom.net</TT></A><BR><A HREF="xmpp:aleksey@jabber.ru"><TT>xmpp:aleksey@jabber.ru</TT></A></H3> + +<H3 ALIGN=center>January 23, 2003</H3> <DIV ALIGN=center><IMG SRC="logo.png"> + </DIV> + +<BR> +<BR> +<!--TOC section Introduction--> + +<H2>1 Introduction</H2><!--SEC END --> + +<A NAME="sec:intro"></A><TT>ejabberd</TT> is a Free and Open Source distributed fault-tolerant Jabber +server. It writen mostly in Erlang.<BR> +<BR> +TBD<BR> +<BR> +<!--TOC section Installation--> + +<H2>2 Installation</H2><!--SEC END --> + +<A NAME="sec:installation"></A><!--TOC subsection Installation Requirements--> + +<H3>2.1 Installation Requirements</H3><!--SEC END --> + +<A NAME="sec:installreq"></A>To compile <TT>ejabberd</TT>, you need following packages: +<UL> +<LI> + GNU Make; + +<LI> GCC; + +<LI> libexpat 1.95 or later; + +<LI> Erlang/OTP R8B or later. +</UL><!--TOC subsection Obtaining--> + +<H3>2.2 Obtaining</H3><!--SEC END --> + +<A NAME="sec:obtaining"></A>Currently no stable version released.<BR> +<BR> +Latest alpha version can be retrieved via CVS. Do following steps: +<UL> +<LI> + <TT>export CVSROOT=:pserver:cvs@www.jabber.ru:/var/spool/cvs</TT> + +<LI> <TT>cvs login</TT> + +<LI> Enter empty password + +<LI> <TT>cvs -z3 co ejabberd</TT> +</UL><!--TOC subsection Compilation--> + +<H3>2.3 Compilation</H3><!--SEC END --> + +<A NAME="sec:compilation"></A><!--TOC section Configuration--> + +<H2>3 Configuration</H2><!--SEC END --> + +<A NAME="sec:configuration"></A><!--TOC subsection Initial Configuration--> + +<H3>3.1 Initial Configuration</H3><!--SEC END --> + +<A NAME="sec:initconfig"></A>Configuration file is loaded after first start of <TT>ejabberd</TT>. It consists of +sequence of Erlang terms. Parts of lines after <TT>`%'</TT> sign are ignored. +Each term is tuple, where first element is name of option, and other are option +values.<BR> +<BR> +<!--TOC subsubsection Host Name--> + +<H4>3.1.1 Host Name</H4><!--SEC END --> + +<A NAME="sec:confighostname"></A>Option <TT>hostname</TT> defines name of Jabber domain that <TT>ejabberd</TT> +serves. E. g. to use <TT>jabber.org</TT> domain add following line in config: +<PRE> +{host, "jabber.org"}. +</PRE>This option is mandatory.<BR> +<BR> +<!--TOC subsubsection Listened Sockets--> + +<H4>3.1.2 Listened Sockets</H4><!--SEC END --> + +<A NAME="sec:configlistened"></A>Option <TT>listen</TT> defines list of listened sockets and what services +runned on them. Each element of list is a tuple with following elements: +<UL> +<LI> + Port number; + +<LI> Module that serves this port; + +<LI> Function in this module that starts connection (likely will be removed); + +<LI> Options to this module. +</UL>Currently three modules implemented: +<UL> +<LI> + <TT>ejabberd_c2s</TT>: serves C2S connections; + +<LI> <TT>ejabberd_s2s_in</TT>: serves incoming S2S connections; + +<LI> <TT>ejabberd_service</TT>: serves connections to Jabber services (i.e. + that used <TT>jabber:component:accept</TT> namespace). +</UL>For example, following configuration defines that C2S connections listened on +port 5222, S2S on port 5269 and that service <TT>conference.jabber.org</TT> +must be connected to port 8888 with password ``<TT>secret</TT>''.<BR> +<BR> +<PRE> +{listen, [{5222, ejabberd_c2s, start, []}, + {5269, ejabberd_s2s_in, start, []}, + {8888, ejabberd_service, start, ["conference.jabber.org", "secret"]} + ]}. +</PRE><!--TOC subsubsection Access Rules--> + +<H4>3.1.3 Access Rules</H4><!--SEC END --> + +<A NAME="sec:configaccess"></A>TBD<BR> +<BR> +<!--TOC subsubsection Modules--> + +<H4>3.1.4 Modules</H4><!--SEC END --> + +<A NAME="sec:configmodules"></A>Option <TT>modules</TT> defines list of modules that will be loaded after +<TT>ejabberd</TT> startup. Each list element is a tuple where first element is a +name of module and second is list of options to this module. Refer to +section <A HREF="#sec:modules">5</A> for detailed information on each module.<BR> +<BR> +Example: +<PRE> +{modules, [ + {mod_register, [one_queue]}, + {mod_roster, [one_queue]}, + {mod_configure, [one_queue]}, + {mod_disco, [one_queue]}, + {mod_stats, [one_queue]}, + {mod_vcard, [one_queue]}, + {mod_offline, []}, + {mod_echo, []}, + {mod_private, [one_queue]}, + {mod_time, [one_queue]}, + {mod_version, [one_queue]} + ]}. +</PRE><!--TOC subsection Online Configuration--> + +<H3>3.2 Online Configuration</H3><!--SEC END --> + +<A NAME="sec:onlineconfig"></A>To use facility of online reconfiguration of <TT>ejabberd</TT> needed to have +<TT>mod_configure</TT> loaded (section <A HREF="#sec:modconfigure">5.3</A>). Also highly +recommended to load <TT>mod_disco</TT> (section <A HREF="#sec:moddisco">5.4</A>), because +<TT>mod_configure</TT> highly integrates with it. Also recommended to use +disco-capable client.<BR> +<BR> +<!--TOC section Distribution--> + +<H2>4 Distribution</H2><!--SEC END --> + +<A NAME="sec:distribution"></A><!--TOC section Built-in Modules--> + +<H2>5 Built-in Modules</H2><!--SEC END --> + +<A NAME="sec:modules"></A><!--TOC subsection <TT>mod_register</TT>--> + +<H3>5.1 <TT>mod_register</TT></H3><!--SEC END --> + +<A NAME="sec:modregister"></A><!--TOC subsection <TT>mod_roster</TT>--> + +<H3>5.2 <TT>mod_roster</TT></H3><!--SEC END --> + +<A NAME="sec:modroster"></A><!--TOC subsection <TT>mod_configure</TT>--> + +<H3>5.3 <TT>mod_configure</TT></H3><!--SEC END --> + +<A NAME="sec:modconfigure"></A><!--TOC subsection <TT>mod_disco</TT>--> + +<H3>5.4 <TT>mod_disco</TT></H3><!--SEC END --> + +<A NAME="sec:moddisco"></A><!--TOC subsection <TT>mod_stats</TT>--> + +<H3>5.5 <TT>mod_stats</TT></H3><!--SEC END --> + +<A NAME="sec:modstats"></A><!--TOC subsection <TT>mod_vcard</TT>--> + +<H3>5.6 <TT>mod_vcard</TT></H3><!--SEC END --> + +<A NAME="sec:modvcard"></A><!--TOC subsection <TT>mod_offline</TT>--> + +<H3>5.7 <TT>mod_offline</TT></H3><!--SEC END --> + +<A NAME="sec:modoffline"></A><!--TOC subsection <TT>mod_echo</TT>--> + +<H3>5.8 <TT>mod_echo</TT></H3><!--SEC END --> + +<A NAME="sec:modecho"></A><!--TOC subsection <TT>mod_private</TT>--> + +<H3>5.9 <TT>mod_private</TT></H3><!--SEC END --> + +<A NAME="sec:modprivate"></A><!--TOC subsection <TT>mod_time</TT>--> + +<H3>5.10 <TT>mod_time</TT></H3><!--SEC END --> + +<A NAME="sec:modtime"></A><!--TOC subsection <TT>mod_version</TT>--> + +<H3>5.11 <TT>mod_version</TT></H3><!--SEC END --> + +<A NAME="sec:modversion"></A><!--HTMLFOOT--> +<!--ENDHTML--> + +<!--FOOTER--> +<HR SIZE=2> +<BLOCKQUOTE><EM>This document was translated from L<sup>A</sup>T<sub>E</sub>X by +</EM><A HREF="http://pauillac.inria.fr/~maranget/hevea/index.html"><EM>H</EM><EM><FONT SIZE=2><sup>E</sup></FONT></EM><EM>V</EM><EM><FONT SIZE=2><sup>E</sup></FONT></EM><EM>A</EM></A><EM>. +</EM></BLOCKQUOTE></BODY> +</HTML> + diff --git a/doc/guide.tex b/doc/guide.tex new file mode 100644 index 000000000..0703acbd5 --- /dev/null +++ b/doc/guide.tex @@ -0,0 +1,272 @@ +\documentclass[12pt]{article} + +%\usepackage{graphics} +\usepackage{hevea} +\usepackage{verbatim} + + +\newcommand{\ejabberd}{\texttt{ejabberd}} +\newcommand{\Jabber}{Jabber} + +\newcommand{\modregister}{\texttt{mod\_register}} +\newcommand{\modroster}{\texttt{mod\_roster}} +\newcommand{\modconfigure}{\texttt{mod\_configure}} +\newcommand{\moddisco}{\texttt{mod\_disco}} +\newcommand{\modstats}{\texttt{mod\_stats}} +\newcommand{\modvcard}{\texttt{mod\_vcard}} +\newcommand{\modoffline}{\texttt{mod\_offline}} +\newcommand{\modecho}{\texttt{mod\_echo}} +\newcommand{\modprivate}{\texttt{mod\_private}} +\newcommand{\modtime}{\texttt{mod\_time}} +\newcommand{\modversion}{\texttt{mod\_version}} + + + +\title{Ejabberd Installation and Operation Guide} +\author{Alexey Shchepin \\ + \ahrefurl{mailto:alexey@sevcom.net} \\ + \ahrefurl{xmpp:aleksey@jabber.ru}} +\date{January 23, 2003} + +\begin{document} +\begin{titlepage} + \maketitle{} + + + + %\includegraphics{logo.png} + {\centering + \imgsrc{logo.png}{} + } +\end{titlepage} +%\newpage +\tableofcontents{} + +\newpage +\section{Introduction} +\label{sec:intro} + +\ejabberd{} is a Free and Open Source distributed fault-tolerant \Jabber{} +server. It writen mostly in Erlang. + +TBD + + + +\section{Installation} +\label{sec:installation} + + +\subsection{Installation Requirements} +\label{sec:installreq} + +To compile \ejabberd{}, you need following packages: +\begin{itemize} +\item GNU Make; +\item GCC; +\item libexpat 1.95 or later; +\item Erlang/OTP R8B or later. +\end{itemize} + +\subsection{Obtaining} +\label{sec:obtaining} + +Currently no stable version released. + +Latest alpha version can be retrieved via CVS. Do following steps: +\begin{itemize} +\item \texttt{export CVSROOT=:pserver:cvs@www.jabber.ru:/var/spool/cvs} +\item \texttt{cvs login} +\item Enter empty password +\item \texttt{cvs -z3 co ejabberd} +\end{itemize} + + + + + + +\subsection{Compilation} +\label{sec:compilation} + + + + +%\subsection{Initial Configuration} +%\label{sec:initconfig} + + +\section{Configuration} +\label{sec:configuration} + +\subsection{Initial Configuration} +\label{sec:initconfig} + +%\verbatiminput{../src/ejabberd.cfg} + +Configuration file is loaded after first start of \ejabberd{}. It consists of +sequence of Erlang terms. Parts of lines after \texttt{`\%'} sign are ignored. +Each term is tuple, where first element is name of option, and other are option +values. + + +\subsubsection{Host Name} +\label{sec:confighostname} + +Option \texttt{hostname} defines name of \Jabber{} domain that \ejabberd{} +serves. E.\,g. to use \texttt{jabber.org} domain add following line in config: +\begin{verbatim} +{host, "jabber.org"}. +\end{verbatim} + +This option is mandatory. + + + +\subsubsection{Listened Sockets} +\label{sec:configlistened} + +Option \texttt{listen} defines list of listened sockets and what services +runned on them. Each element of list is a tuple with following elements: +\begin{itemize} +\item Port number; +\item Module that serves this port; +\item Function in this module that starts connection (likely will be removed); +\item Options to this module. +\end{itemize} + +Currently three modules implemented: +\begin{itemize} +\item \texttt{ejabberd\_c2s}: serves C2S connections; +\item \texttt{ejabberd\_s2s\_in}: serves incoming S2S connections; +\item \texttt{ejabberd\_service}: serves connections to \Jabber{} services (i.e. + that used \texttt{jabber:component:accept} namespace). +\end{itemize} + +For example, following configuration defines that C2S connections listened on +port 5222, S2S on port 5269 and that service \texttt{conference.jabber.org} +must be connected to port 8888 with password ``\texttt{secret}''. + +\begin{verbatim} +{listen, [{5222, ejabberd_c2s, start, []}, + {5269, ejabberd_s2s_in, start, []}, + {8888, ejabberd_service, start, ["conference.jabber.org", "secret"]} + ]}. +\end{verbatim} + + +\subsubsection{Access Rules} +\label{sec:configaccess} + +TBD + + +\subsubsection{Modules} +\label{sec:configmodules} + +Option \texttt{modules} defines list of modules that will be loaded after +\ejabberd{} startup. Each list element is a tuple where first element is a +name of module and second is list of options to this module. Refer to +section~\ref{sec:modules} for detailed information on each module. + +Example: +\begin{verbatim} +{modules, [ + {mod_register, [one_queue]}, + {mod_roster, [one_queue]}, + {mod_configure, [one_queue]}, + {mod_disco, [one_queue]}, + {mod_stats, [one_queue]}, + {mod_vcard, [one_queue]}, + {mod_offline, []}, + {mod_echo, []}, + {mod_private, [one_queue]}, + {mod_time, [one_queue]}, + {mod_version, [one_queue]} + ]}. +\end{verbatim} + + +\subsection{Online Configuration} +\label{sec:onlineconfig} + +To use facility of online reconfiguration of \ejabberd{} needed to have +\modconfigure{} loaded (see section~\ref{sec:modconfigure}). Also highly +recommended to load \moddisco{} (see section~\ref{sec:moddisco}), because +\modconfigure{} highly integrates with it. Also recommended to use +disco-capable client. + +TBD + +\section{Distribution} +\label{sec:distribution} + + + + + +\section{Built-in Modules} +\label{sec:modules} + + + + +\subsection{\modregister{}} +\label{sec:modregister} + + + +\subsection{\modroster{}} +\label{sec:modroster} + + + +\subsection{\modconfigure{}} +\label{sec:modconfigure} + + + +\subsection{\moddisco{}} +\label{sec:moddisco} + + + +\subsection{\modstats{}} +\label{sec:modstats} + + + +\subsection{\modvcard{}} +\label{sec:modvcard} + + + +\subsection{\modoffline{}} +\label{sec:modoffline} + + + +\subsection{\modecho{}} +\label{sec:modecho} + + + +\subsection{\modprivate{}} +\label{sec:modprivate} + + + +\subsection{\modtime{}} +\label{sec:modtime} + + + +\subsection{\modversion{}} +\label{sec:modversion} + + + + + + +\end{document} diff --git a/doc/logo.png b/doc/logo.png Binary files differnew file mode 100644 index 000000000..bb58a0e89 --- /dev/null +++ b/doc/logo.png diff --git a/src/ejabberd.cfg b/src/ejabberd.cfg index cfc1a8b55..c616cbfb4 100644 --- a/src/ejabberd.cfg +++ b/src/ejabberd.cfg @@ -10,30 +10,30 @@ {acl, aleksey, {user, "aleksey", "jabber.ru"}}. {access, disco_admin, [{allow, admin}, - {deny, all}]}. + {deny, all}]}. {access, configure, [{allow, admin}]}. {host, "e.localhost"}. {listen, [{5522, ejabberd_c2s, start, []}, - {5269, ejabberd_s2s_in, start, []}, - {8888, ejabberd_service, start, ["asd.e.localhost", "asdqwe"]} - ]}. + {5269, ejabberd_s2s_in, start, []}, + {8888, ejabberd_service, start, ["asd.e.localhost", "asdqwe"]} + ]}. {modules, [ - {mod_register, [one_queue]}, - {mod_roster, [one_queue]}, - {mod_configure, [one_queue]}, - {mod_disco, [one_queue]}, - {mod_stats, [one_queue]}, - {mod_vcard, [one_queue]}, - {mod_offline, []}, - {mod_echo, []}, - {mod_private, [one_queue]}, - {mod_time, [one_queue]}, - {mod_version, [one_queue]} - ]}. + {mod_register, [one_queue]}, + {mod_roster, [one_queue]}, + {mod_configure, [one_queue]}, + {mod_disco, [one_queue]}, + {mod_stats, [one_queue]}, + {mod_vcard, [one_queue]}, + {mod_offline, []}, + {mod_echo, []}, + {mod_private, [one_queue]}, + {mod_time, [one_queue]}, + {mod_version, [one_queue]} + ]}. |