Personal Blog of Thomas Hampel - Creative Mythbusting in Development and Collaboration

Who am I?

Feeds

Domino Portable Edition - Building the smallest Domino server - Hot Pants for Geeks

Thomas Hampel
 3 August 2019

Two weeks ago at the the HCL Factory Tour #3 we've shown the (possibly) smallest Domino server ever built.
With just 47,88 ccm (6,3 x 9,5 x 0,8 cm) it is just a little bigger than a credit card and small enough to fit your pocket. Also, for those of you who remember, it's much smaller than the
Lotus Foundations box which Mike Rhodin introduced at Lotusphere 2008.
Thanks to
Panagenda we also were able to show that you can run Domino off the grid.

What kind of hardware is this based on?

It is
Zotac Pi 225 pico, a mini PC fully equiped with CPU, memory and storage, all combined in a case that is passively cooled.
The case itself looks like a thin 2,5" HDD - but thinner (for US folks : 3.76 x 2.48 x 0.31 inches )

Image:Domino Portable Edition - Building the smallest Domino server - Hot Pants for Geeks

Compared to the well known
Raspberry Pi, this Zotac device is actually smaller (thinner) because it does not expose an ethernet port.
Image:Domino Portable Edition - Building the smallest Domino server - Hot Pants for GeeksImage:Domino Portable Edition - Building the smallest Domino server - Hot Pants for Geeks

It weights less than 500g and is hardware specs looked promissing: Intel N3350 dual-core CPU (x86 compatible!), 4GB RAM, 32GB internal storage (expandable via microSD card), Intel HD Graphics 500,
Furthermore it provides two USB 3.0 Type-C Ports for connecting keyboard, HDMI an ethernet adapter. It also provides an internal 802.11ac Wi-Fi antenna, which I want use for creating a WiFi Hotspot later on.

You can find it
here on Amazon for approx. €150

Stage 1 - Installing Linux

Zotac comes preinstalled with Windows 10 - an operating system which beside being clunky is not supported for running Domino.

Of course my idea was to install Domino on Linux. As you know IBM/HCL is supporting to run
Domino on SuSE or Redhat Linux and also fully supporting CentOS since last year.
After spending a few hours with CentOS I
had to learn by hard that it can not simply be installed on this Zotac device because it is missing support for this specific Intel Atom CPU.
The installation caused errors and booting it took several hours before it finally failed.

Plan B:

Switch to
Ubuntu 18.04.2 LTS (alternative installer!) which installs without problems from a USB stick.

Stage 2 - Linux tuning

Although the installation itself completed in a few minutes there still are some errors when booting up.

Most annoying this one:
systemd-gpt-auto-generator: Failed to dissect: Input/output error. which is caused by the device using an internal MMC card as disk storage.

To fix this error we have to modify the kernel boot parameters as follows:

sudo nano /etc/default/grub

add a parameter to the line "GRUB_CMDLINE_LINUX_DEFAULT"
GRUB_CMDLINE_LINUX_DEFAULT="systemd.gpt_auto=0"

After saving changes we need to tell grub to update the bootloader using
sudo update-grub


Stage 3 - Install Docker

We could have installed Domino natively on Linux but why wasting time if we can also run Domino on Docker.

Installation of Docker on Ubuntu Linux is staight forward
sudo apt-get install docker-ce


To avoid having to type 'sudo' every time you run the docker command, just add your username to the docker group.

sudo usermod -aG docker ${USER}

For changes to take effect, log off and log on again.

Image:Domino Portable Edition - Building the smallest Domino server - Hot Pants for Geeks

Stage 4 - Create Domino Image for Docker

In order to run Domino in Docker I'm using my (more powerful) MacBook and
this Github repo to build a docker image.
All that needs to be done is...
- clone the repository (or
download and extract the zip file) to a directory of your choice.
- Add the Domino Linux installation package + FP2 package into the subfolder "software"

- run "./build domino"

A few minutes later you'll have a perfect Domino image to work with...

Image:Domino Portable Edition - Building the smallest Domino server - Hot Pants for Geeks

Now we need to export this image by turning it into a tar file using this command:

docker image save -o domino1001fp2.tar ibmcom/domino:10.0.1FP2

Copy the resulting file "domino1001fp2.tar" to a USB stick


Stage 5 - Import Docker Image

Attach the USB stick to the Zotac device and copy the file  "domino1001fp2.tar" to a directory of your choice, e.g. /tmp

Then import the image using the command:

docker image load -i domino1001fp2.tar

Verify results using the command
docker image ls - you should now have one image listed.

in case any TAGs are missing, add them using

docker image tag ibmcom/domino:10.0.1FP2
docker image tag ibmcom/domino:latest


Stage 6 - Run Domino and Enjoy

Finally running Domino in this configuration is a piece of cake:

At first create a persistent volume - this is required because we would like to preserve our data directory in case the container is being restarted or recreated.

docker volume create dominodata

then spin up a (new) Domino server with a name of your choice.

docker run -it -d -e "ServerName=Zotac" -e "AdminPassword=passw0rd" -p 1352:1352 -p 80:80 -p 443:443 -v dominodata:/local/notesdata --cap-add=SYS_PTRACE --name domino ibmcom/domino:10.0.1FP2


Without supplying a
config file, this image will not start the HTTP task by default, so we need to open a shell into the container
docker exec -it domino /bin/bash

and from within the container then run "domino monitor" to access the server console to launch the http task using "load http"


Browsing to http:// will now show up this well known homepage.

Image:Domino Portable Edition - Building the smallest Domino server - Hot Pants for Geeks
For more information on how to work with Domino in Docker please refer to
this documentation ( Thanks Roberto ! )

Finall word of warning:

Certainly this Zotac device produces some heat, so running a Domino server in your trousers will for sure turn them into
hot pants for geeks - so please be careful !

Further ideas & todo:

- I have not done any stress testing, so please dont ask me how many users this device is going to support in production

- Enabling the embedded WiFi antenna and turning it into a WiFi hotspot would make a cool demo
- Zotac Pi 225 is not the smallest device that can run Domino -- I have some more ideas but getting hold of the hardware is more complicated, stay tuned for more :)


References:

-
Zotac Pi 225 nano on Amazon
-
Domino on Docker
- Domino on Docker
Management Script
- Mike Rhodin
announcing Lotus Foundations
Comments [0]
Tagged with: Docker Domino Domino10 Linux
Go ElsewhereSubscribe to RSSAboutStay ConnectedAnd More
Thomas Hampel, All rights reserved.