Skip to content

Instantly share code, notes, and snippets.

@opentaq
Last active February 16, 2025 15:41
Show Gist options
  • Save opentaq/2ce85108bee528700477c6db89610968 to your computer and use it in GitHub Desktop.
Save opentaq/2ce85108bee528700477c6db89610968 to your computer and use it in GitHub Desktop.
Mailserver Installation

Fail2Ban

sudo install fail2ban

UFW

sudo install ufw

UFW Settings

sudu ufw default deny incomoing

sudo ufw default allow outgoins

sudo ufw allow 22,25,80,110,143,443,465,587,993,995,4190/tcp

sudo ufw enable

Mailserver

Install curl and git

sudo apt install curl git -y

Install Docker

su

curl -sSL https://get.docker.com/ | CHANNEL=stable sh

systemctl enable --now docker

Install Docker Compose

curl -sSL https://github.com/docker/compose/releases/download/v$(curl -Ls https://www.servercow.de/docker-compose/latest)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

Install the mail server

su

cd /opt

git clone https://github.com/mailcow/mailcow-dockerized

cd mailcow-dockerized

./generate_config.sh

Start the mail server

docker-compose pull

docker-compose up -d

@LiamPerson
Copy link

I recommend instead using this install script for docker as it makes it far easier to manage the versions, removing, and updating:
https://docs.docker.com/engine/install/debian/#install-using-the-repository

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

@nicitaacom
Copy link

nicitaacom commented Mar 18, 2024

> sudo install fail2ban -->> sudo apt-get install fail2ban
> sudo install ufw -->> sudo apt-get install ufw
> sudu ufw default deny incomoing -->> sudu ufw default deny incoming
> sudo ufw default allow outgoins -->> sudo ufw default allow outgoing

It throw error

root@box:/opt/mailcow-dockerized# sudo install fail2ban -->> sudo apt-get install fail2ban
sudo install ufw -->> sudo apt-get install ufw
sudu ufw default deny incomoing -->> sudu ufw default deny incoming
sudo ufw default allow outgoins -->> sudo ufw default allow outgoing
install: target 'fail2ban' is not a directory
install: target 'ufw' is not a directory
Command 'sudu' not found, did you mean:
  command 'tudu' from deb tudu (0.10.4-1)
  command 'sudo' from deb sudo (1.9.9-1ubuntu2.4)
  command 'sudo' from deb sudo-ldap (1.9.9-1ubuntu2.4)
Try: apt install <deb name>
ERROR: Invalid syntax
root@box:/opt/mailcow-d

I think you need
sudo apt-get install fail2ban
sudo apt-get install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing

Also somebody know how to fix this error?

ubuntu@ip-172-26-0-78:~$ systemctl enable --now docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Authentication is required to reload the systemd state.
Authenticating as: Ubuntu (ubuntu)
Password:
polkit-agent-helper-1: pam_authenticate failed: Authentication failure
==== AUTHENTICATION FAILED ===
Failed to reload daemon: Access denied

I use AWS and I don't know my password

@isanecat
Copy link

how to get ssl certificate ?

@nicitaacom
Copy link

how to get ssl certificate ?

https://certbot.eff.org/

@PietroFantini
Copy link

how to get ssl certificate ?

Don't panic is automatic, sometimes it just takes a little more time ^^

@Chi3ftain
Copy link

Hey Guys,

Which Static IP SHould I use for better deliveries to gmail ?

means which ISP's IP should I use ??

Thanks In Advance

your ISP's maybe?

@isanecat
Copy link

isanecat commented Apr 3, 2024

contabo or vultr are good

@bilalyahya9d
Copy link

Can someone provide with script I can use to send email, bash python or node.
My current script keeps getting a timeout

@oldercodergithub
Copy link

great tutorial. Thanks. Followed along with your youtube videos. mailserver up and running. some typos here in few commands if i may. eg. sudu incomoing outgoins

Hello, and thanks for your contribution and great video. There are still a few things to adjust I think though:

sudo install fail2ban -->> sudo apt-get install fail2ban sudo install ufw -->> sudo apt-get install ufw sudu ufw default deny incomoing -->> sudu ufw default deny incoming sudo ufw default allow outgoins -->> sudo ufw default allow outgoing

@sametakofficial
Copy link

if you are struggling with slow dashboard and high system resource useage, you need to install docker via the original documantation and then enter docker compose up -d because in latest versions it changed from docker-compose to docker compose. İts adding docker to apt-get packet manager and its make way more easier to update to new versions.
The main problem when ı tried this ı had an error called Solved: APT GPG Error NO_PUBKEY, thats because of /etc/opt/keyrings/docker.gpg file is didnt downloaded or it have wrong key, ı solved it with downloading key manualy with this commands:

sudo apt-get install gnupg
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

after this, you will have latest version of docker with connected apt-get. It will make mailcow system way more faster atleast its been like that

@abirhossain-git
Copy link

Hi! I am able to receive mails but can't send can anyone help me on that?

@usmanjaved02
Copy link

@abirhossain-git what error you are getting on sending email?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment