SectionQuick start
DocumentationGetting started

Quick start

mp setup --admin-password '…'   # or omit it: a password is generated and shown
mp status                       # panel, host, services, jobs
mp stack install nginx
mp config set web.hostname panel.example.com --restart
mp ssl panel issue              # Let's Encrypt for the panel's name, served on :8443 at once

mp user add alex --generate --shell
mp php install 8.4              # alongside 7.4, 5.6 …
mp stack install percona        # Percona Server 8.4, root via auth_socket

mp site add example.com --user alex --www --preset wordpress
mp site add old.example.com --user alex --php 7.4 --mode apache
mp site add app.example.com --user alex --mode proxy --backend http://127.0.0.1:3000
mp db create shop --user alex   # a password is generated and shown
mp stack install valkey && mp valkey add cache --user alex   # the account's own Valkey
mp firewall enable && mp stack install fail2ban
mp backup target add local1 --repo /var/backups/monopanel --schedule daily

mp mail install --hostname mail.example.com   # postfix + dovecot + opendkim
mp mail domain add example.com --user alex    # with a DKIM key
mp mail box add ivan@example.com --quota 2048
mp mail domain dns example.com                # what to publish in DNS
mp mail webmail webmail.example.com --user alex --port 2096   # Roundcube

# move an account in from another MonoPanel server
mp migrate grant user:alex                        # on the old server
mp migrate plan --source https://old:8443 --token … --scope user:alex
mp migrate run  --source https://old:8443 --token … --scope user:alex
# … or from BitrixVM and FASTPANEL: over ssh, the source is only read
mp migrate run --from bitrixvm  --source root@old.example.com --domain shop.example.com
mp migrate run --from fastpanel --source root@old.example.com --scope user:shop
mp                              # terminal menu

Remotely: mp --server https://host:8443 --token <token> status (mint one with mp token create).

Page source on GitHub