--- /dev/null
+<!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>
+
--- /dev/null
+\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}
{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]}
+ ]}.