Page MenuHomePhabricator

Add floating IP and vanity domain for azwikimedia project
Closed, ResolvedPublic

Description

I am planning to install mailcow, a self-hosted, Dockerized mail server suite. Mailcow manages its own Postfix/Dovecot stack and handles SMTP, IMAP, and webmail entirely within the instance. So it will not use the Cloud VPS SMTP relay.

This requires these things:

Floating IP:
Mailcow requires a dedicated public IP address for outbound and inbound mail (SMTP on port 25, submission on 465/587, IMAP on 993, POP3 on 995). These protocols cannot be proxied through the Cloud VPS HTTP/HTTPS web proxy. So I am requesting a floating IP address.

Vanity domain
We need to use wikimedia.az domain.

This is my first time installing a self-hosted mail server on Cloud VPS, and I'm aware the setup may differ from a regular server. Any guidance or heads-up about Cloud VPS-specific quirks would be really appreciated.

Also where should I point my domain's DNS records (for the vanity domain) to? The static IP or floating IP?

Event Timeline

Nemoralis renamed this task from Add floating IP, PTR record, and vanity domain for azwikimedia project to Add floating IP and vanity domain for azwikimedia project.Mar 10 2026, 5:44 PM

Mentioned in SAL (#wikimedia-cloud-feed) [2026-03-12T15:36:28Z] <dcaro@cloudcumin1001> START - Cookbook wmcs.openstack.quota_increase by 1 floating-ips (T419582)

Mentioned in SAL (#wikimedia-cloud-feed) [2026-03-12T15:36:35Z] <dcaro@cloudcumin1001> END (PASS) - Cookbook wmcs.openstack.quota_increase (exit_code=0) by 1 floating-ips (T419582)

Just added the floating ip :)

For the vanity domain, you have to follow the steps here: https://wikitech.wikimedia.org/wiki/Help:Using_a_web_proxy_to_reach_Cloud_VPS_servers_from_the_internet#Vanity_domains, once you are done changing the DNS entries and such, ping us back.

Fyi. The certificate will be hosted on CloudVPS proxies (not handled by you).

This was discussed and approved during today's weekly meeting.

once you are done changing the DNS entries and such, ping us back.

Done.

One thing I wanted to clarify: mailcow handles both a web UI (HTTPS) and raw mail protocols (SMTP, IMAP, POP3). My understanding is that the web proxy can only handle the web UI part, while the mail protocols need to go directly to the floating IP. So I'm thinking the DNS setup should be split like this:

  • mail.wikimedia.az (web UI) → CNAME to proxy.project-proxy.eqiad1.wmcloud.org
  • MX record → floating IP directly
  • A record for mail.wikimedia.az → floating IP directly
  • SPF, DKIM, DMARC TXT records → floating IP

Is that correct? Or is there a different recommended way to set this up on Cloud VPS?

Mailcow requires a PTR (reverse DNS) record matching the mail hostname (mail.wikimedia.az) for mail deliverability. Is it possible to set a PTR record for the floating IP you assigned?

I'd also like to set up a web redirect from wikimedia.az to az.wikimedia.org while keeping mail on wikimedia.az. Is that something that can be configured on the proxy side?

@Nemoralis your plan looks fine.

For the PTR record, can you please create a sub-task? We should be able to configure it for you.

Re: web redirect, it would be easier if you can handle it in your server.

Andrew triaged this task as Medium priority.Mar 18 2026, 2:50 PM

(Just as an extra note, mailcow’s default logo branding is still present on dark mode, only light mode is using the Wikimedia logo. Not relevant to the task itself but I don’t believe there’s a more specific task on this)

(Just as an extra note, mailcow’s default logo branding is still present on dark mode, only light mode is using the Wikimedia logo. Not relevant to the task itself but I don’t believe there’s a more specific task on this)

I was just fixing that too. Thanks!

image.png (696×1 px, 49 KB)

Hi @Nemoralis, is there anything else needed here? Can we close the task?

Hi @Nemoralis, is there anything else needed here? Can we close the task?

Yes, you can close it. I wanted to close it myself but I didn't know who to put as "Assigned To"

PixDeVl assigned this task to dcaro.

Marking as assigned to David since he was the one who added the floating IP (title of the task)