Skip to main content

Prerequisites

Important Decisions to Make

  1. Ensure you have full control of your domain to add records such as "A" and "AAAA". Verify that you can add records and that they are reflected on the internet.
  2. Select a domain name. For the Single Sign-On (SSO) server, it is recommended to use a subdomain like srv.yourdomain.com. Ensure the domain is available and you have full control through your provider.
  3. Root access to the VM is required, as containers run on Docker. The VM must also be set up with other tools and configurations.

Hosting Requirements

  1. Set the hostname of the machine to the correct domain name using the following command. (Note: You may need to review and update your /etc/hosts file as well.)

    hostnamectl set-hostname <srv.example.com>
  2. Configure the 'A' record with the IPv4 address and the 'AAAA' record with the IPv6 address in your domain hosting platform. (Note: The process varies by provider.)

    Ping should work from any external host to the meeting server host.

    ping srv.example.com

    Output:

    Pinging srv.example.com [192.0.2.1] with 32 bytes of data:
    Reply from 192.0.2.1: bytes=32 time=41ms TTL=54
    Reply from 192.0.2.1: bytes=32 time=41ms TTL=54
  3. Set reverse DNS for your VM at the provider hosting your VM. (Note: The process varies by provider.)

  4. Configure a 'CNAME' record as 'keycloak.example.com' associated with the 'A' record 'srv.example.com'

For optimal performance:

ParameterMinimum ConfigurationComment
RAM4 GB8 GB recommended
CPU2 vCPU4 vCPU recommended for smoother operations with a larger user base
Space100 GBWill increase depending on the services planned

Required Settings and Packages on the VM

Install Basic System Packages

sudo apt install net-tools apt-transport-https certbot python3-certbot-nginx

Set the Correct Time Zone

dpkg-reconfigure tzdata

After this, ensure NTP is enabled and synchronized. Run the following command to check:

timedatectl status

Output:

Local time: Wed 2026-01-28 10:47:23 IST
Universal time: Wed 2026-01-28 05:17:23 UTC
RTC time: Wed 2026-01-28 05:17:23
Time zone: Asia/Kolkata (IST, +0530)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

Ensure Required Ports Are Not Used or Blocked

If the following command returns anything, review and remove the processes before setting up the new email server.

ss -tlpn | grep -E -w '8443|8080|9000|5432|389|636|443|80'