# HG changeset patch # User Pascal Volk # Date 1344805761 0 # Node ID 2b165e90e2254282c1aaf1ce78a55d738beeaec2 # Parent 9d343514b832b11154e484d422f3a96ab596bc2f doc/web: Added the 'Howto'. The reStructuredText version of vmm.1, in multiple parts. diff -r 9d343514b832 -r 2b165e90e225 doc/web/source/howto.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/web/source/howto.rst Sun Aug 12 21:09:21 2012 +0000 @@ -0,0 +1,81 @@ +========= +Using vmm +========= + +vmm is the easy to use command-line tool of the Virtual Mail Manager. +It allows you to simply and quickly administer your mail server. +The general command syntax looks like:: + + vmm subcommand [argument …] + +Each subcommand has both a long and a short form. +Both forms are case sensitive. +The subcommands are categorized by their functionality: + +.. toctree:: + :maxdepth: 1 + + howto/general_subcommands + howto/manage_domains + howto/manage_alias_domains + howto/manage_accounts + howto/manage_alias_addresses + howto/manage_catch-all_addresses + howto/manage_relocated_users + + +Most of the *subcommand*\ s take one or more *argument*\ s. + +Arguments +--------- +address + The complete e-mail address (*local-part*\ @\ *fqdn*) of an user account, + alias address or relocated user. + +destination + Is either an e-mail address when used with + :doc:`Alias subcommands `. + Or a *fqnd* when used with + :doc:`Alias domain subcommands `. + +fqdn + The fully qualified domain name – without the trailing dot – of a domain + or alias domain. + +messages + An integer value which specifies a quota limit in number of messages. + **0** (zero) means unlimited - no quota limit for the number of messages. + +option + Is the name of a configuration option, prefixed with the section name and + a dot. + For example: *misc*\ **.**\ *transport* + All configuration options are described in :manpage:`vmm.cfg(5)`. + +service + The name of a service, commonly used with Dovecot. + Supported services are: **imap**, **pop3**, **sieve** and **smtp**. + +storage + Specifies a quota limit in bytes. + One of the following prefixes can be appended to the integer value: + **b** (bytes), **k** (kilobytes), **M** (megabytes) or **G** (gigabytes). + **0** (zero) means unlimited - no quota limit in bytes. + +transport + A transport for Postfix, written as: *transport*\ **:** or + *transport*\ **:**\ *nexthop*. + See :manpage:`transport(5)` for more details. + +Files +----- +:command:`vmm` reads its configuration data from :file:`vmm.cfg`. + +:file:`/root/vmm.cfg` + will be used when found. + +:file:`/usr/local/etc/vmm.cfg` + will be used when the above file doesn't exist. + +:file:`/etc/vmm.cfg` + will be used when none of the both above mentioned files exists. diff -r 9d343514b832 -r 2b165e90e225 doc/web/source/howto/general_subcommands.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/web/source/howto/general_subcommands.rst Sun Aug 12 21:09:21 2012 +0000 @@ -0,0 +1,193 @@ +=================== +General subcommands +=================== + +configget +--------- +Syntax: + | **vmm configget** *option* + | **vmm cg** *option* + +This subcommand is used to display the actual value of the given +configuration *option*. + +Example: + +.. code-block:: console + + root@host:~# vmm configget misc.crypt_sha512_rounds + misc.crypt_sha512_rounds = 5000 + +.. versionadded:: 0.6.0 + +configset +--------- +Syntax: + | **vmm configset** *option value* + | **vmm cs** *option value* + +Use this subcommand to set or update a single configuration option's value. +*option* is the configuration option, *value* is the *option*'s new value. + +.. note:: + This subcommand will create a new :file:`vmm.cfg` without any comments. + Your current configuration file will be backed as :file:`vmm.cfg.bak`. + +Example: + +.. code-block:: console + + root@host:~# vmm configget domain.transport + domain.transport = dovecot: + root@host:~# vmm configset domain.transport lmtp:unix:private/dovecot-lmtp + root@host:~# vmm cg domain.transport + domain.transport = lmtp:unix:private/dovecot-lmtp + +.. versionadded:: 0.6.0 + +configure +--------- +Syntax: + | **vmm configure** [*section*] + | **vmm cf** [*section*] + +Starts the interactive configuration for all configuration sections. + +In this process the currently set value of each option will be displayed +in square brackets. +If no value is configured, the default value of each option will be +displayed in square brackets. +Press the return key, to accept the displayed value. + +If the optional argument *section* is given, only the configuration options +from the given section will be displayed and will be configurable. +The following sections are available: + +======== ========================== +section description +======== ========================== +account Account settings +bin Paths to external binaries +database Database settings +domain Domain settings +mailbox Mailbox settings +misc Miscellaneous settings +======== ========================== + +All configuration options are described in :manpage:`vmm.cfg(5)`. + +.. note:: + This subcommand will create a new :file:`vmm.cfg` without any comments. + Your current configuration file will be backed as :file:`vmm.cfg.bak`. + +Example: + +.. code-block:: console + + root@host:~# vmm configure mailbox + Using configuration file: /usr/local/etc/vmm.cfg + + * Configuration section: `mailbox' + Enter new value for option folders [Drafts:Sent:Templates:Trash]: + Enter new value for option format [maildir]: mdbox + Enter new value for option subscribe [True]: + Enter new value for option root [Maildir]: mdbox + +getuser +------- +Syntax: + | **vmm getuser** *uid* + | **vmm gu** *ui* + +If only the *uid* is available, for example from process list, the +subcommand **getuser** will show the user's address. + +Example: + +.. code-block:: console + + root@host:~# vmm getuser 79876 + Account information + ------------------- + UID............: 79876 + GID............: 70704 + Address........: a.user@example.com + +help +---- +Syntax: + | **vmm help** [*subcommand*] + | **vmm h** [*subcommand*] + +Prints a list of available subcommands with a short description to stdout. +When a *subcommand* was given, help for that *subcommand* will be displayed. +After this :command:`vmm` exits. + +listdomains +----------- +Syntax: + | **vmm listdomains** [*pattern*] + | **vmm ld** [*pattern*] + +This subcommand lists all available domains. +All domain names will be prefixed either with '[+]', if the domain is +a primary domain, or with '[-]', if it is an alias domain name. +The output can be limited with an optional pattern. + +To perform a wild card search, the **%** character can be used at the start +and/or the end of the *pattern*. + +Example: + +.. code-block:: console + + root@host:~# vmm listdomains %example% + Matching domains + ---------------- + [+] example.com + [-] e.g.example.com + [-] example.name + [+] example.net + [+] example.org + +listpwschemes +------------- +Syntax: + | **vmm listpwschemes** + | **vmm lp** + +This subcommand lists all password schemes which could be used in the +:file:`vmm.cfg` as value of the *misc.password_scheme* option. +The output varies, depending on the used Dovecot version and the system's +libc. + +When your Dovecot installation isn't too old, you will see additionally +a few usable encoding suffixes. +One of them can be appended to the password scheme. + +Example: + +.. code-block:: console + + root@host:~# vmm listpwschemes + Usable password schemes + ----------------------- + CRYPT SHA512-CRYPT LDAP-MD5 DIGEST-MD5 SHA256 SHA512 SSHA512 + SKEY SSHA NTLM RPA MD5-CRYPT HMAC-MD5 SHA1 PLAIN SHA CRAM-MD5 + SSHA256 MD5 LANMAN CLEARTEXT PLAIN-MD5 PLAIN-MD4 OTP SMD5 + SHA256-CRYPT + + Usable encoding suffixes + ------------------------ + .B64 .BASE64 .HEX + +.. versionadded:: 0.6.0 + +version +------- +Syntax: + | **vmm version** + | **vmm v** + +Prints :command:`vmm`'s version and copyright information to stdout. +After this :command:`vmm` exits. diff -r 9d343514b832 -r 2b165e90e225 doc/web/source/howto/manage_accounts.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/web/source/howto/manage_accounts.rst Sun Aug 12 21:09:21 2012 +0000 @@ -0,0 +1,171 @@ +================= +Managing accounts +================= +useradd +------- +Syntax: + | **vmm useradd** *address* [*password*] + | **vmm ua** *address* [*password*] + +Use this subcommand to create a new e-mail account for the given *address*. + +If the password is not provided, :command:`vmm` will prompt for it +interactively. +When no *password* is provided and *account.random_password* is set to +**true**, :command:`vmm` will generate a random password and print it to +stdout after the account has been created. + +Example: + +.. code-block:: console + + root@host:~# vmm ua d.user@example.com "A 5ecR3t P4s5\/\/0rd" + root@host:~# vmm useradd e.user@example.com + Enter new password: + Retype new password: + +userdelete +---------- +Syntax: + | **vmm userdelete** *address* [*force*] + | **vmm ud** *address* [*force*] + +Use this subcommand to delete the account with the given *address*. + +If there are one or more aliases with an identical destination address, +:command:`vmm` will abort the requested operation and show an error message. +To prevent this, specify the optional keyword **force**. + +userinfo +-------- +Syntax: + | **vmm userinfo** *address* [*details*] + | **vmm ui** *address* [*details*] + +This subcommand displays some information about the account specified by +*address*. + +If the optional argument *details* is given some more information will be +displayed. +Possible values for *details* are: + +======= ============================================================== +value description +======= ============================================================== +aliases to list all alias addresses with the destination *address* +du to display the disk usage of the user's mail directory. + In order to summarize the disk usage each time this subcommand + is executed automatically, set *account.disk_usage* in your + :file:`vmm.cfg` to **true**. +full to list all information mentioned above +======= ============================================================== + +Example: + +.. code-block:: console + + root@host:~# vmm ui d.user@example.com + Account information + ------------------- + Address..........: d.user@example.com + Name.............: None + UID..............: 79881 + GID..............: 70704 + Home.............: /srv/mail/2/70704/79881 + Mail_Location....: mdbox:~/mdbox + Quota Storage....: [ 0.00%] 0/500.00 MiB [domain default] + Quota Messages...: [ 0.00%] 0/10,000 [domain default] + Transport........: lmtp:unix:private/dovecot-lmtp [domain default] + SMTP.............: disabled [domain default] + POP3.............: disabled [domain default] + IMAP.............: enabled [domain default] + SIEVE............: enabled [domain default] + +username +-------- +Syntax: + | **vmm username** *address* [*name*] + | **vmm un** *address* [*name*] + +The user's real *name* can be set/updated with this subcommand. + +If no *name* is given, the value stored for the account is erased. + +Example: + +.. code-block:: console + + root@host:~# vmm un d.user@example.com "John Doe" + +userpassword +------------ +Syntax: + | **vmm userpassword** *address* [*password*] + | **vmm up** *address* [*password*] + +The password of an account can be updated with this subcommand. + +If no *password* was provided, :command:`vmm` will prompt for it interactively. + +Example: + +.. code-block:: console + + root@host:~# vmm up d.user@example.com "A |\/|0r3 5ecur3 P4s5\/\/0rd?" + +usernote +-------- +Syntax: + | **vmm usernote** *address* [*note*] + | **vmm uo** *address* [*note*] + +With this subcommand, it is possible to attach a note to the specified +account. +Without an argument, an existing note is removed. + +Example: + +.. code-block:: console + + root@host:~# vmm uo d.user@example.com Only needed until end of May 2012 + +.. versionadded:: 0.6.0 + +userquota +--------- +Syntax: + | **vmm userquota** *address storage* [*messages*] + | **vmm uq** *address storage* [*messages*] + +This subcommand is used to set a new quota limit for the given account. + +When the argument *messages* was omitted the default number of messages +**0** (zero) will be applied. + +Instead of *storage* pass **domain** to remove the account-specific +override, causing the domain's value to be in effect. + +Example: + +.. code-block:: console + + root@host:~# userquota d.user@example.com 750m + +.. versionadded:: 0.6.0 + +usertransport +------------- +Syntax: + | **vmm usertransport** *address transport* + | **vmm ut** *address transport* + +A different *transport* for an account can be specified with this subcommand. + +Instead of *transport* pass **domain** to remove the account-specific +override, causing the domain's value to be in effect. + +Example: + +.. code-block:: console + + root@host:~# ut c.user@example.com [pc105.it.example.com] diff -r 9d343514b832 -r 2b165e90e225 doc/web/source/howto/manage_alias_addresses.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/web/source/howto/manage_alias_addresses.rst Sun Aug 12 21:09:21 2012 +0000 @@ -0,0 +1,61 @@ +======================== +Managing alias addresses +======================== +aliasadd +-------- +Syntax: + | **vmm aliasadd** *address destination ...* + | **vmm aa** *address destination ...* + +This subcommand is used to create a new alias *address* with one or more +*destination* addresses. + +Within the destination address, the placeholders **%n**, **%d**, and **%=** +will be replaced by the local-part, the domain, or the email address with +**@** replaced by **=** respectively. +In combination with alias domains, this enables domain-specific destinations. + +Example: + +.. code-block:: console + + root@host:~# vmm aliasadd john.doe@example.com d.user@example.com + root@host:~# vmm aa support@example.com d.user@example.com e.user@example.com + root@host:~# vmm aa postmaster@example.com postmaster+%d@example.org + +aliasdelete +----------- +Syntax: + | **vmm aliasdelete** *address* [*destination*] + | **vmm ad** *address* [*destination*] + +Use this subcommand to delete the alias with the given *address*. + +If the optional *destination* address is given, only this destination will +be removed from the alias. + +Example: + +.. code-block:: console + + root@host:~# vmm ad support@example.com d.user@example.com + +aliasinfo +--------- +Syntax: + | **vmm aliasinfo** *address* + | **vmm ai** *address* + +Information about the alias with the given *address* can be displayed with +this subcommand. + +Example: + +.. code-block:: console + + root@host:~# vmm aliasinfo support@example.com + Alias information + ----------------- + Mail for support@example.com will be redirected to: + * e.user@example.com + diff -r 9d343514b832 -r 2b165e90e225 doc/web/source/howto/manage_alias_domains.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/web/source/howto/manage_alias_domains.rst Sun Aug 12 21:09:21 2012 +0000 @@ -0,0 +1,77 @@ +====================== +Managing alias domains +====================== +An alias domain is an alias for a domain that was previously added with the +subcommand :ref:`domainadd`. +All accounts, aliases and relocated users from the domain will be also +available in the alias domain. +In the following is to be assumed that example.net is an alias for example.com. + +Postfix will not accept erroneously e-mails for unknown.user\@example.net +and bounce them back later to the mostly faked sender. +Postfix will immediately reject all e-mails addressed to nonexistent users. + +This behavior is ensured as long as you use the recommended database queries +in your :file:`{$config_directory}/pgsql-*.cf` configuration files. + +aliasdomainadd +-------------- +Syntax: + | **vmm aliasdomainadd** *fqdn destination* + | **vmm ada** *fqdn destination* + +This subcommand adds the new alias domain (*fqdn*) to the *destination* +domain that should be aliased. + +Example: + +.. code-block:: console + + root@host:~# vmm aliasdomainadd example.net example.com + +aliasdomaindelete +----------------- +Syntax: + | **vmm aliasdomaindelete** *fqdn* + | **vmm add** *fqdn* + +Use this subcommand if the alias domain *fqdn* should be removed. + +Example: + +.. code-block:: console + + root@host:~# vmm aliasdomaindelete e.g.example.com + +aliasdomaininfo +--------------- +Syntax: + | **vmm aliasdomaininfo** *fqdn* + | **vmm adi** *fqdn* + +This subcommand shows to which domain the alias domain *fqdn* is assigned to. + +Example: + +.. code-block:: console + + root@host:~# vmm adi example.net + Alias domain information + ------------------------ + The alias domain example.net belongs to: + * example.com + +aliasdomainswitch +----------------- +Syntax: + | **vmm aliasdomainswitch** *fqdn destination* + | **vmm aos** *fqdn destination* + +If the destination of the existing alias domain *fqdn* should be switched +to another *destination* use this subcommand. + +Example: + +.. code-block:: console + + root@host:~# vmm aliasdomainswitch example.name example.org diff -r 9d343514b832 -r 2b165e90e225 doc/web/source/howto/manage_catch-all_addresses.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/web/source/howto/manage_catch-all_addresses.rst Sun Aug 12 21:09:21 2012 +0000 @@ -0,0 +1,65 @@ +============================ +Managing catch-all addresses +============================ +catchalladd +----------- +Syntax: + | **vmm catchalladd** *fqdn destination ...* + | **vmm caa** *fqdn destination ...* + +This subcommand allows to specify destination addresses for a domain, which +shall receive mail addressed to unknown local-parts within that domain. +Those catch-all aliases hence "catch all" mail to any address in the domain +(unless a more specific alias, mailbox or relocated entry exists). + +.. warning:: + Catch-all addresses can cause mail server flooding because spammers like + to deliver mail to all possible combinations of names, e.g. to all + addresses between abba\@example.org and zztop\@example.org. + +Example: + +.. code-block:: console + + root@host:~# vmm catchalladd example.com user@example.org + +.. versionadded:: 0.6.0 + +catchalldelete +-------------- +Syntax: + | **vmm catchalldelete** *fqdn* [*destination*] + | **vmm cad** *fqdn* [*destination*] + +With this subcommand, catch-all aliases defined for a domain can be removed, +either all of them, or a single one if specified explicitly. + +Example: + +.. code-block:: console + + root@host:~# vmm catchalldelete example.com user@example.com + +.. versionadded:: 0.6.0 + +catchallinfo +------------ +Syntax: + | **vmm catchallinfo** *fqdn* + | **vmm cai** *fqdn* + +This subcommand displays information about catch-all aliases defined for +a domain. + +Example: + +.. code-block:: console + + root@host:~# vmm catchallinfo example.com + Catch-all information + --------------------- + Mail to unknown localparts in domain example.com will be sent to: + * user@example.org + +.. versionadded:: 0.6.0 + diff -r 9d343514b832 -r 2b165e90e225 doc/web/source/howto/manage_domains.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/web/source/howto/manage_domains.rst Sun Aug 12 21:09:21 2012 +0000 @@ -0,0 +1,184 @@ +================ +Managing domains +================ +.. _domainadd: + +domainadd +--------- +Syntax: + | **vmm domainadd** *fqdn* [*transport*] + | **vmm da** *fqdn* [*transport*] + +Adds the new domain into the database and creates the domain directory. + +If the optional argument transport is given, it will override the default +transport (*domain.transport*) from :file:`vmm.cfg`. +The specified *transport* will be the default transport for all new accounts +in this domain. + +Configuration-related behavior: + + *domain.auto_postmaster* + When that option is set to **true** (default) :command:`vmm` will + automatically create the postmaster account for the new domain and prompt + for **postmaster**\ @\ *fqdn*'s password. + + *account.random_password* + When the value of that option is also set to **true**, :command:`vmm` + will automatically create the postmaster account for the new domain and + print the generated postmaster password to stdout. + +Example: + +.. code-block:: console + + root@host:~# vmm domainadd support.example.com smtp:[mx1.example.com]:2025 + Creating account for postmaster@support.example.com + Enter new password: + Retype new password: + root@host:~# vmm cs account.random_password true + root@host:~# vmm da sales.example.com + Creating account for postmaster@sales.example.com + Generated password: pLJUQ6Xg_z + +domaindelete +------------ +Syntax: + | **vmm domaindelete** *fqdn* [**force**] + | **vmm dd** *fqdn* [**force**] + +This subcommand deletes the domain specified by *fqdn*. + +If there are accounts, aliases and/or relocated users assigned to the given +domain, :command:`vmm` will abort the requested operation and show an error +message. +If you know, what you are doing, you can specify the optional keyword +**force**. + +If you really always know what you are doing, edit your :file:`vmm.cfg` and +set the option *domain.force_deletion* to **true**. + +domaininfo +---------- +Syntax: + | **vmm domaininfo** *fqdn* [*details*] + | **vmm di** *fqdn* [*details*] + +This subcommand shows some information about the given domain. + +For a more detailed information about the domain the optional argument +*details* can be specified. +A possible *details* value can be one of the following six keywords: + +============ ========================================================== +keyword description +============ ========================================================== +accounts to list the e-mail addresses of all existing user accounts +aliasdomains to list all assigned alias domain names +aliases to list all available alias e-mail addresses +catchall to list all catch-all destinations +relocated to list the e-mail addresses of all relocated users +full to list all information mentioned above +============ ========================================================== + +Example: + +.. code-block:: console + + root@host:~# vmm domaininfo sales.example.com + Domain information + ------------------ + Domain Name......: sales.example.com + GID..............: 70708 + Domain Directory.: /srv/mail/c/70708 + Quota Limit/User.: Storage: 500.00 MiB; Messages: 10,000 + Active Services..: IMAP SIEVE + Transport........: lmtp:unix:private/dovecot-lmtp + Alias Domains....: 0 + Accounts.........: 1 + Aliases..........: 0 + Relocated........: 0 + Catch-All Dests..: 0 + +domainnote +---------- +Syntax: + | **vmm domainnote** *fqdn* [*note*] + | **vmm do** *fqdn* [*note*] + +With this subcommand, it is possible to attach a note to the specified +domain. +Without an argument, an existing note is removed. + +Example: + +.. code-block:: console + + root@host:~# vmm do example.com Belongs to Robert + +.. versionadded:: 0.6.0 + +domainquota +----------- +Syntax: + | **vmm domainquota** *fqdn storage* [*messages*] [**force**] + | **vmm dq** *fqdn storage* [*messages*] [**force**] + +This subcommand is used to configure a new quota limit for the accounts +of the domain - not for the domain itself. + +The default quota limit for accounts is defined in the :file:`vmm.cfg` +(*domain.quota_bytes* and *domain.quota_messages*). + +The new quota limit will affect only those accounts for which the limit has +not been overridden. +If you want to restore the default to all accounts, you may pass the keyword +**force**. +When the argument *messages* was omitted the default number of messages +**0** (zero) will be applied. + +Example: + +.. code-block:: console + + root@host:~# vmm domainquota example.com 1g force + +.. versionadded:: 0.6.0 + +domainservices +-------------- +Syntax: + | **vmm domainservices** *fqdn* [*service ...*] [**force**] + | **vmm ds** *fqdn* [*service ...*] [**force**] + +To define which services could be used by the users of the domain — with +the given *fqdn* — use this subcommand. + +Each specified *service* will be enabled/usable. +All other services will be deactivated/unusable. +Possible service names are: **imap**, **pop3**, **sieve** and **smtp**. +The new service set will affect only those accounts for which the set has +not been overridden. +If you want to restore the default to all accounts, you may pass the +keyword **force**. + +.. versionadded:: 0.6.0 + +domaintransport +--------------- +Syntax: + | **vmm domaintransport** *fqdn transport* [**force**] + | **vmm dt** *fqdn transport* [**force**] + +A new transport for the indicated domain can be set with this subcommand. + +The new transport will affect only those accounts for which the transport +has not been overridden. +If you want to restore the default to all accounts, you may pass the +keyword **force**. + +Example: + +.. code-block:: console + + root@host:~# vmm domaintransport support.example.com dovecot: diff -r 9d343514b832 -r 2b165e90e225 doc/web/source/howto/manage_relocated_users.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/web/source/howto/manage_relocated_users.rst Sun Aug 12 21:09:21 2012 +0000 @@ -0,0 +1,53 @@ +======================== +Managing relocated users +======================== +relocatedadd +------------ +Syntax: + | **vmm relocatedadd** *address newaddress* + | **vmm ra** *address newaddress* + +A new relocated user can be created with this subcommand. + +*address* is the user's ex-email address, for example b.user\@example.com, +and *newaddress* points to the new email address where the user can be +reached. + +Example: + +.. code-block:: console + + root@host:~# vmm relocatedadd b.user@example.com b-user@company.tld + +relocateddelete +--------------- +Syntax: + | **vmm relocateddelete** *address* + | **vmm rd** *address* + +Use this subcommand in order to delete the relocated user with the given +*address*. + +Example: + +.. code-block:: console + + root@host:~# vmm relocateddelete b.user@example.com + +relocatedinfo +------------- +Syntax: + | **vmm relocatedinfo** *address* + | **vmm ri** *address* + +This subcommand shows the new address of the relocated user with the given +*address*. + +Example: + +.. code-block:: console + + root@host:~# vmm relocatedinfo b.user@example.com + Relocated information + --------------------- + User 'b.user@example.com' has moved to 'b-user@company.tld' diff -r 9d343514b832 -r 2b165e90e225 doc/web/source/index.rst --- a/doc/web/source/index.rst Sun Aug 12 18:10:42 2012 +0000 +++ b/doc/web/source/index.rst Sun Aug 12 21:09:21 2012 +0000 @@ -36,6 +36,7 @@ download install upgrade + howto * :ref:`search` diff -r 9d343514b832 -r 2b165e90e225 doc/web/source/installation/install_vmm.rst --- a/doc/web/source/installation/install_vmm.rst Sun Aug 12 18:10:42 2012 +0000 +++ b/doc/web/source/installation/install_vmm.rst Sun Aug 12 21:09:21 2012 +0000 @@ -60,6 +60,7 @@ Ready, set, go! --------------- For a list of available subcommands execute :command:`vmm help`. -For details about the subcommands see :manpage:`vmm(1)`. +For details about the subcommands see :manpage:`vmm(1)` or continue reading +at :doc:`../howto`. .. include:: ../ext_references.rst