Update Traveler before March 31 2021 if you use Apple devices

Apple will not support the legacy protocols used by APNS starting March31, but will only use HTTP/2 API.
This means that if you use an old version of Traveler push notifications will stop working after that date.
The solution is to upgrade to Traveler 11.0.1 or later


You can see all the details in this Technote



HCL Ambassador 2021

The HCL Ambassadors Class of 2021 has been announced here .

I am honored and proud of being in it.


One Touch Setup – Documentation has been corrected

I wrote here that the documentation was wrong for the part of writing variables in the env file.

I have been contacted by HCL and they told me they fixed it.
The documentation corrected is here, here and here

HCL is working on fixing the documentation also for this procedure, I will tell you when it will be done.


Domino v12 One Touch Setup – part 2

In my previous post I explained how to add an additional server on Docker using environment variables.
In this post I will use the other method, using a JSON file, to create a new first server.

A word of caution – this is all based on the current beta drop and I found that the instructions provided are not exactly perfect. I have reported my findings to HCL and they will make both the instructions and the setup better.
So use what I say just if you want to test V12 One Touch Setup now, for the future things will change for the better and I will post about the new stuff.

First step is to create a volume to store the Domino data directory

docker volume create notesdata

Now run the following Docker command. This command creates a Docker container without yet configuring Domino by making the container entry point a bash shell.

docker run -it -v notesdata:/local/notesdata --name adminserver --entrypoint /bin/bash -p 8585:8585 -p 1352:1352 -p 443:443 domino-docker:V1200_12022020prod

You will be in the shell in the /local/notesdata directory

Open another terminal.
Create a JSON file with all the settings needed for a first server setup, here is the one I used as an example called setup.json

{
	"serverSetup": {
		"server": {
			"type": "first",
			"name": "demo",
			"domainName": "ELD",
			"title": "Eld Demo Server",
			"password": null,
			"minPasswordLength": 0
		},
		"network": {
			"hostName": "domino.eld.it",
			"enablePortEncryption": true,
			"enablePortCompression": true
		},
		"org": {
			"countryCode": null,
			"orgName": "ELD",
			"certifierPassword": "password",
			"orgUnitName": null,
			"orgUnitPassword": null
		},
		"admin": {
			"firstName": "Roberto",
			"middleName": null,
			"lastName": "Boccadoro",
			"password": "password",
			"IDFilePath":  "/local/notesdata/rob.id"
		},
		"notesINI": {
			"ServerTasks": null,
			"LOG_REPLICATION": "1",
			"LOG_SESSIONS": "1"
		},
		"security": {
			"ACL": {
				"prohibitAnonymousAccess": true,
				"addLocalDomainAdmins": true
			}
		},
		"autoRegister": {
			"count": 7,
			"IDPath": "/local/notesdata/ids",
			"pattern": "server#"
		}
	},

	"IDVault": {
		"name": "O=ELDVault",
		"description": "ELD Vault",
		"IDFile": "ELDVault.id",
		"IDPassword": "VaultPassword",
		"path": "IBM_ID_VAULT/ELDVault.nsf",
		"passwordReset": {
			"helpText": "Call so and so for help resetting password"
		},
		"securitySettingsPolicy": {
			"name": "ELD Vault Security Settings Policy",
			"description": "ELD Vault Security Settings"
		},
		"masterPolicy": {
			"description": "ELD Vault Master Policy Description"
		}
	}
}

This is more then the minimum needed, for example I set up ID vault, which is not mandatory. The minimum needed parameters are listed in a example file you can find here

Copy the JSON file from the machine you created it into the container running this command

docker cp setup.json 737ead470a66:/local/notesdata

Where 737ead470a66 is the container ID, which you can get running the command

docker container ls -a

From inside the shell runs those two commands

export SetupAutoConfigure=1
export SetupAutoConfigureParams=setup.json

Now run the command

/local/start.sh --autoconfigure

After a while you should see your server running and have the console inside the terminal.


Domino v12 One Touch Setup

In the December drop of the Domino V12 Early Access has been introduced a very cool feature that will make Domino administrators very happy.

Domino One Touch Setup

What is it ? This is what the documentation says: “In previous versions of HCL Domino®, setting up a Domino server involved multiple steps. Starting with Domino 12, you can use one-touch Domino setup to set up a server in a single step. You invoke one-touch Domino setup by referring to a JSON file or a set of environment variables that contain the setup configuration information.”

Isn’t that way cool ?
Just prepare a file with the variables you need and run a command. Done! Server created! 🙂

As stated in the documentation there are two ways to do it, using a set of environment variables or using a JSON file. I have tested the first way using Domino on Docker and I will explain how to make it work.
If you never installed a Domino server on Docker you can find a guide here to set up your first server.

As with the normal setup you can use this new way to create a new first server or add an additional server to your domain. The latter is what I did, but the procedure is the same also for creating new first servers.

First step is to create a volume to store the Domino data directory

docker volume create notesdata

Then we need to prepare the input parameters using environment variables, to do so, if you run Domino on Docker, you define the system environment variables for Docker to export in a text file.
The official documentation is wrong, it refers to variables being enclosed in quotes, while they should not be.
The list of the variables is in two tables here, the first one contains the Server setup system environment variables for one-touch Domino setup, the second one contains the ID vault system environment variables for one-touch Domino setup.
As you can see not all the variables are needed, as an example this is my file env.txt with just the variables needed for setting up an additional server

SERVERSETUP_SERVER_TYPE=additional
SERVERSETUP_NETWORK_HOSTNAME=v12test.eldeng.it
SERVERSETUP_SERVER_DOMAINNAME=ELDENG
SERVERSETUP_ORG_ORGNAME=ELDENG
SERVERSETUP_ORG_COUNTRYCODE=IT
SERVERSETUP_SERVER_IDFILEPATH=/local/notesdata/server.id
SERVERSETUP_SERVER_NAME=v12
SERVERSETUP_EXISTINGSERVER_CN=DOMSRV01
SERVERSETUP_EXISTINGSERVER_HOSTNAMEORIP=195.101.267.159
SERVERSETUP_ADMIN_CN=Roberto Boccadoro
SERVERSETUP_ADMIN_CN=DOMSRV01
SERVERSETUP_NOTESINI_SERVERTASKS=replica,router,update,amgr,adminp,http
SERVERSETUP_SECURITY_ACL_PROHIBITANONYMOUSACCESS=true
SERVERSETUP_SECURITY_ACL_ADDLOCALDOMAINADMINS=true

Since we are setting up an additional server we need to use a server ID and we need to copy it from our machine to the container. To do so I created a temporary container that launches into a bash shell that uses the same volume we created

docker run -it -v notesdata:/local/notesdata --name debug --entrypoint /bin/bash domino-docker:V1200_12022020prod

Then copy the file using this command
docker cp /root/install/server.id 5ff8e3375fbd:/local/notesdata
Where 5ff8e3375fbd is the ID of the container you just created (you can get the ID running the command docker container ls -a)

The temporary container can later be deleted but is useful to have it now, especially if we need to check something on the data directory.

To create and set up the server you run the following command

docker run -it -v notesdata:/local/notesdata --name v12 --env-file env.txt -p 8585:8585 -p 1352:1352 -p 443:443 domino-docker:V1200_12022020prod --autoconf

Your new Domino server should be up and running in a new Docker container.
If one-step setup fails for some reason, review the autoconfigure.log file created in the container. Go in the terminal where you ran the temporary container, change directory to /local/notesdata/IBM_TECHNICAL_SUPPORT and check the file

In the terminal where you run the command you should see the Domino console. If you don’t want this, you can stop the server from the console and run again the container with the command

docker restart v12