## Purpose The purpose of this document is to illustrate how to deploy Mailcow in a dockerized format. !!! note "Assumptions" It is assumed that you are deploying Mailcow into an existing Ubuntu Server environment. If you are using a different operating system, refer to the [official documentation](https://docs.mailcow.email/getstarted/install/). ### Setting Up Docker Go ahead and set up docker and docker-compose with the following commands: ```bash sudo su # (1) curl -sSL https://get.docker.com/ | CHANNEL=stable sh # (2) apt install docker-compose-plugin # (3) systemctl enable --now docker # (4) ``` 1. Make yourself root. 2. Install `Docker` 3. Install `Docker-Compose` 4. Make docker run automatically when the server is booted. ### Download and Deploy Mailcow Run the following commands to pull down the mailcow deployment files and install them with docker. Go get a cup of coffee as the `docker compose pull` command may take a while to run. !!! note "Potential `Docker Compose` Issues" If you run the `docker-compose pull` command and it fails for some reason, change the command to `docker compose pull` instead. This is just the difference between the plugin version of compose versus the standalone version. Both will have the same result. ```bash cd /opt git clone https://github.com/mailcow/mailcow-dockerized cd mailcow-dockerized ./generate_config.sh # (1) docker-compose pull # (2) docker-compose up -d ``` 1. Generate a configuration file. Use a FQDN (`host.domain.tld`) as hostname when asked. 2. If you get an error about the ports of the `nginx-mailcow` service in the `docker-compose.yml` stack, change the ports for that service as follows: ```yaml ports: - "${HTTPS_BIND:-0.0.0.0}:${HTTPS_PORT:-443}:${HTTPS_PORT:-443}" - "${HTTP_BIND:-0.0.0.0}:${HTTP_PORT:-80}:${HTTP_PORT:-80}" ``` ### Login to Mailcow At this point, the Mailcow server has been deployed so you can log into it at the following urls: **Administrators**: You can now log in as an administrator using the default credentials `admin` and the password `moohoo` at: `https://${MAILCOW_HOSTNAME}/admin` **Regular Mailbox Users**: Continue logging in at the usual URL: `https://${MAILCOW_HOSTNAME}` (*FQDN only*)