diff --git a/docs/first_steps.md b/docs/first_steps.md
index a5ed486e..14d28bd7 100644
--- a/docs/first_steps.md
+++ b/docs/first_steps.md
@@ -1,4 +1,4 @@
-# SSL (and: How to use Let's Encrypt)
+## SSL (and: How to use Let's Encrypt)
mailcow dockerized comes with a snakeoil CA "mailcow" and a server certificate in `data/assets/ssl`. Please use your own trusted certificates.
@@ -8,7 +8,7 @@ mailcow uses 3 domain names that should be covered by your new certificate:
- autodiscover.**example.org**
- autoconfig.**example.org**
-**Obtain multi-SAN certificate by Let's Encrypt**
+### Obtain multi-SAN certificate by Let's Encrypt
This is just an example of how to obtain certificates with certbot. There are several methods!
@@ -51,7 +51,7 @@ docker-compose restart postfix-mailcow dovecot-mailcow nginx-mailcow
When renewing certificates, run the last two steps (link + restart) as post-hook in a script.
-# Rspamd Web UI
+## Rspamd Web UI
At first you may want to setup Rspamds web interface which provides some useful features and information.
1\. Generate a Rspamd controller password hash:
@@ -71,7 +71,7 @@ docker-compose restart rspamd-mailcow
Open https://${MAILCOW_HOSTNAME}/rspamd in a browser and login!
-# Optional: Reverse proxy
+## Optional: Reverse proxy
You don't need to change the Nginx site that comes with mailcow: dockerized.
mailcow: dockerized trusts the default gateway IP 172.22.1.1 as proxy. This is very important to control access to Rspamd's web UI.
@@ -88,7 +88,7 @@ Recreate affected containers by running `docker-compose up -d`.
2\. Configure your local webserver as reverse proxy:
-**Apache 2.4**
+### Apache 2.4
```
ServerName mail.example.org
@@ -114,7 +114,7 @@ Recreate affected containers by running `docker-compose up -d`.
```
-**Nginx**
+### Nginx
```
server {
listen 443;
@@ -133,7 +133,7 @@ server {
}
```
-# Sender and receiver model
+## Sender and receiver model
When a mailbox is created, a user is allowed to send mail from and receive mail for his own mailbox address.
@@ -162,7 +162,7 @@ Administrators and domain administrators can edit mailboxes to allow specific us
You can choose between mailbox users or completely disable the sender check for domains.
-**SOGo "mail from" addresses**
+### SOGo "mail from" addresses
Mailbox users can, obviously, select their own mailbox address, as well as all alias addresses and aliases that exist through alias domains.
diff --git a/docs/images/logo.svg b/docs/images/logo.svg
new file mode 100644
index 00000000..bea3f826
--- /dev/null
+++ b/docs/images/logo.svg
@@ -0,0 +1,197 @@
+
+
+
+
\ No newline at end of file
diff --git a/docs/index.md b/docs/index.md
index f44f3308..f4aea569 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -2,6 +2,12 @@
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JWBSYHF4SMC68)
+## Screenshots
+
+You can find screenshots [on Imgur](http://imgur.com/a/oewYt).
+
+## Overview
+
mailcow dockerized comes with **11 containers** linked in **one bridged network**.
- Dovecot
diff --git a/docs/install.md b/docs/install.md
index f4342da5..fddfaa59 100644
--- a/docs/install.md
+++ b/docs/install.md
@@ -1,4 +1,4 @@
-# Install mailcow
+## Install mailcow
You need Docker and Docker Compose.
@@ -46,7 +46,7 @@ You can now access **https://${MAILCOW_HOSTNAME}** with the default credentials
The database will be initialized right after a connection to MySQL can be established.
-# Update mailcow
+## Update mailcow
There is no update routine. You need to refresh your pulled repository clone and apply your local changes (if any). Actually there are many ways to merge local changes. Here is one to
stash all local changes, pull changes from the remote master branch and apply your stash on top of it. You will most likely see warnings about non-commited changes; you can ignore them:
diff --git a/docs/u_and_e.md b/docs/u_and_e.md
index 89d35428..32ac50c1 100644
--- a/docs/u_and_e.md
+++ b/docs/u_and_e.md
@@ -1,4 +1,4 @@
-# Anonymize headers
+## Anonymize headers
Save as `data/conf/postfix/mailcow_anonymize_headers.pcre`:
@@ -17,9 +17,9 @@ Add this to `data/conf/postfix/main.cf`:
smtp_header_checks = pcre:/opt/postfix/conf/mailcow_anonymize_headers.pcre
```
-# Backup and restore maildir (simple tar file)
+## Backup and restore maildir (simple tar file)
-**Backup**
+### Backup
This line backups the vmail directory to a file backup_vmail.tar.gz in the mailcow root directory:
```
@@ -32,7 +32,7 @@ docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .D
You can change the path by adjusting ${PWD} (which equals to the current directory) to any path you have write-access to.
Set the filename `backup_vmail.tar.gz` to any custom name, but leave the path as it is. Example: `[...] tar cvfz /backup/my_own_filename_.tar.gz`
-**Restore**
+### Restore
```
cd /path/to/mailcow-dockerized
source mailcow.conf
@@ -40,19 +40,19 @@ DATE=$(date +"%Y%m%d_%H%M%S")
docker run --rm -it -v $(docker inspect --format '{{ range .Mounts }}{{ if eq .Destination "/var/vmail" }}{{ .Name }}{{ end }}{{ end }}' $(docker-compose ps -q dovecot-mailcow)):/vmail -v ${PWD}:/backup debian:jessie tar xvfz /backup/backup_vmail.tar.gz
```
-# Docker Compose Bash completion
+## Docker Compose Bash completion
For the tab-tab... :-)
```
curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
```
-# Black and Whitelist
+## Black and Whitelist
Edit a domain as (domain) administrator to add an item to the filter table.
Beware that a mailbox user can login to mailcow and override a domain policy filter item.
-# Change default language
+## Change default language
Change `data/conf/sogo/sogo.conf` and replace "English" by your prefered language.
@@ -62,7 +62,7 @@ Create a file `data/web/inc/vars.local.inc.php` and add "DEFAULT_LANG" with eith
$DEFAULT_LANG = "de";
```
-# Change UI theme
+## Change UI theme
mailcow uses [Bootstrap](http://getbootstrap.com/), a HTML, CSS, and JS framework.
@@ -71,7 +71,7 @@ Open or create the file `data/web/inc/vars.local.inc.php` and change `DEFAULT_TH
backup_${DBNAME}_${DATE}.sql
```
-**Restore the database**
+### Restore
```
cd /path/to/mailcow-dockerized
source mailcow.conf
docker-compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} < backup_file.sql
```
-# Read logs
+## Debugging
+
You can use `docker-compose logs $service-name` for all containers.
Run `docker-compose logs` for all logs at once.
Follow the log output by running docker-compose with `logs -f`.
-# Redirect port 80 to 443
+## Redirect port 80 to 443
Since February the 28th 2017 mailcow does come with port 80 and 443 enabled.
@@ -242,15 +244,15 @@ Restart the stack, changed containers will be updated:
`docker-compose up -d`
-# Redis
+## Redis
-**Connect to redis key store**
+### Client
```
docker-compose exec redis-mailcow redis-cli
```
-# Remove persistent data
+## Remove persistent data
- Remove volume `mysql-vol-1` to remove all MySQL data.
- Remove volume `redis-vol-1` to remove all Redis data.
@@ -260,7 +262,7 @@ docker-compose exec redis-mailcow redis-cli
Running `docker-compose down -v` will **destroy all mailcow: dockerized volumes** and delete any related containers.
-# Reset admin password
+## Reset admin password
Reset mailcow admin to `admin:moohoo`:
1\. Drop admin table
@@ -271,9 +273,9 @@ docker-compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DR
2\. Open mailcow UI to auto-init the db
-# Rspamd
+## Rspamd
-**Learn spam and ham**
+### Learn spam and ham
Rspamd learns mail as spam or ham when you move a message in or out of the junk folder to any mailbox besides trash.
This is archived by using the Dovecot plugin "antispam" and a simple parser script.
@@ -284,7 +286,7 @@ The bayes statistics are written to Redis as keys `BAYES_HAM` and `BAYES_SPAM`.
You can also use Rspamd's web ui to learn ham and/or spam.
-**CLI tools**
+### CLI tools
```
docker-compose exec rspamd-mailcow rspamc --help
@@ -293,7 +295,7 @@ docker-compose exec rspamd-mailcow rspamadm --help
See [Rspamd documentation](https://rspamd.com/doc/index.html)
-# Adjust service configurations
+## Adjust service configurations
The most important configuration files are mounted from the host into the related containers:
```
data/conf
@@ -367,7 +369,7 @@ Just change the according configuration file on the host and restart the related
docker-compose restart service-mailcow
```
-# Tagging
+## Tagging
Mailbox users can tag their mail address like in `me+facebook@example.org` and choose between to setups to handle this tag:
@@ -375,7 +377,7 @@ Mailbox users can tag their mail address like in `me+facebook@example.org` and c
2\. Prepend the tag to the subject: "[facebook] Subject"
-# Two-factor authentication
+## Two-factor authentication
So far two methods for TFA are impelemented. Both work with the fantastic [Yubikey](https://www.yubico.com).
@@ -387,18 +389,18 @@ As administrator you are able to temporary disable a domain adminsitrators TFA l
The key used to login will be displayed in green, while other keys remain grey.
-**Yubi OTP**
+### Yubi OTP
The Yubi API ID and Key will be checked against the Yubico Cloud API. When setting up TFA you will be asked for your personal API account for this key.
The API ID, API key and the first 12 characters (your YubiKeys ID in modhex) are stored in the MySQL table as secret.
-**U2F**
+### U2F
Only Google Chrome (+derivates) and Opera support U2F authentication to this day natively.
For Firefox you will need to install the "U2F Support Add-on" as provided on [mozilla.org](https://addons.mozilla.org/en-US/firefox/addon/u2f-support-add-on/).
U2F works without an internet connection.
-# Why Bind?
+## Why Bind?
For DNS blacklist lookups and DNSSEC.
diff --git a/mkdocs.yml b/mkdocs.yml
index c0b3d9a0..1ab6bec8 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,9 +1,25 @@
site_name: "mailcow: dockerized"
-repo_url: https://github.com/andryyy/mailcow-dockerized/
+repo_url: https://github.com/andryyy/mailcow-dockerized
remote_branch: gh-pages
-theme: readthedocs
+theme: material
+extra:
+ social:
+ - type: 'github'
+ link: 'https://github.com/andryyy/mailcow-dockerized'
+ palette:
+ primary: 'indigo'
+ accent: 'yellow'
+ logo: 'images/logo.svg'
+
+markdown_extensions:
+ - admonition
+ - codehilite(guess_lang=true)
+ - footnotes
+ - meta
+ - toc(permalink=true)
+
pages:
- - 'Overview': 'index.md'
+ - 'This is mailcow': 'index.md'
- 'Installation': 'install.md'
- 'First Steps': 'first_steps.md'
- 'Usage & Examples': 'u_and_e.md'