Prerequisites
Important Decisions to Make
- 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.
- 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.
- 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
-
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/hostsfile as well.)hostnamectl set-hostname <srv.example.com> -
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.comOutput:
Pinging srv.example.com [192.0.2.1] with 32 bytes of data:Reply from 192.0.2.1: bytes=32 time=41ms TTL=54Reply from 192.0.2.1: bytes=32 time=41ms TTL=54 -
Set reverse DNS for your VM at the provider hosting your VM. (Note: The process varies by provider.)
-
Configure a 'CNAME' record as 'keycloak.example.com' associated with the 'A' record 'srv.example.com'
Recommended VM Configuration
For optimal performance:
| Parameter | Minimum Configuration | Comment |
|---|---|---|
| RAM | 4 GB | 8 GB recommended |
| CPU | 2 vCPU | 4 vCPU recommended for smoother operations with a larger user base |
| Space | 100 GB | Will 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'