I did what (I think is what) you need many years ago. I don´t remember exactly the details, but this is still working. What I did was the following:
When my application initiates, it checks if there exists a database named MYAPPLICATIONCONFIGURACION.FDB. If it doesn't exist, it creates it. When the application creates the database, it creates 3 UDFs executing SQLs begining with "DECLARE EXTERNAL FUNCTION
The UDFs are the following (the names are in spanish):
It is called with a parameter "Alias". It opens the file aliases.conf, look for the alias and returns a string with the path of the database.
It is called with a parameter "Alias" and a parameter "Path". It opens the file aliases.conf, and adds a new line with Alias=Path.
It is called with a parameter "Directory". It creates a folder in the hard disk with the name indicated.
In the file aliases.conf, there is a line MYAPPLICATIONCONFIGURACION = C:\...\MYAPPLICATIONCONFIGURACION.FDB.
When a user wants to create a new database, the application opens the database MYAPPLICATIONCONFIGURACION and executes the following SQL:
SELECT MMudfPudeEstablecerAlias('Alias','Path') FROM RDB$DATABASE
This can be done using the application in the server or in any client PC of the newtork.