The insallation of this program is not really difficult, but it is different -at least for Windows users. An this description seems to be endless. But don’t be afraid – This is only a ONE TIME effort. Just follow the instructions step by step and within short you should be finished. If you find something wrong – let me know so I can change the description.

The installation is done on the commandline. This should be no problem for Linux users. As I don’t use MacOS I’m not sure whether all my advice is correct – however Google says it is OK. If not – please contact me – so I can correct.

So let’s get started:

You enter the commandline (Windows: Win-Key, type “cmd”, “as Administrator / Linux and MacOS: start terminal from Gui or you are on commandline anyway. Linux: depending on which user you are logged on you may have to add “sudo” to each command.

The steps are

Install Node.js

On many systems Node.Js is pre-installed. On any system you can test whether it is installed or not using the commands:

 

npm -v and node -v

If the answer is a version number it is already installed and you can skip this step.

Windows:
winget install OpenJS.NodeJS.LTS –silent

Should you still have a Windows 10 system with 32 bit architecture this program will not work. Nodejs stopped developement for x86 systems some time ago.

 macOS (mit Homebrew) 

If  Homebrew is installed this is the way to go. The command installs the LTS-Version (often as  Paket node@20 or similar)
bash
brew install node@20

    • Remark: To use this version as standard permanently you may have to add a Path link. (Brew will show the necessary command at the  end of the installation. Example: brew link --overwrite node@20). 

 Linux (Ubuntu/Debian-based)
Hier you use the offical NodeSource Repository to really get the actual LTS-Version (instead of older versions you may get elsewhere
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - && sudo apt-get install -y nodejs

After this node.js should be installed. You may test again with

Node -v  and npm -v          to fine out everything went fine.

Unpack my program into an empty Folder

This can be done on all systems the same way:

First you create an empty folder (via commandline) and change into that folder:
Windows: x: (Drive); md “xxx”; cd “xxx”.
Linux: mkdir /opt/xxx (suggested); cd /opt/xxx

Then you enter (exactly as shown here – use copy/paste)
Windows:
curl -L -o datei.zip https://fg.nanninga.me/$/xIJd1

Afterwards you unpack the archive
tar -xf datei.zip (Windows)

Linux/MacOS:
wget -O datei.zip https://fg.nanninga.me/$/xIJd1
Dann:  unzip datei.zip

As a result you should see a number of files in your folder now. You may delete the “Datei.zip”.

Edit the file .env

Now you have to edit the .env file in that folder

Windows: Edit .env
In Linux or MacOS use the editor of your choice (nano, vim ..).

This is the content of that file:

# Server Configuration
# Here you can configure the port to use. If 2900 is free on your system don’t change anything
APP_PORT=2900

# SMTP Configuration
SMTP_HOST=smtp.xxx.com
SMTP_PORT=465
SMTP_USER=meist Eure Email-Adress
SMTP_PASS=Euer Passwort
SMTP_FROM=Meist Eure Email-Adresse
SMTP_TO=An wen soll die Email gehen

# File Paths
# Use absolute paths or relative to workspace root
MUSIK_PATH=h:\SDMASTER
DATEN_PATH=Daten
DATABASE_PATH=SDMOmaster.db

The SMTP parameters are used for sending emails to yourself (e.g. from the caller diary). You may have to look up the correct setting with your email provider.

The MUSIK_PATH is important. This tells the program where your music resides. With Linux this is a paht like “/home/xxx/music” In Windows this is any path in Windows format. Beneath this folder you should have several sub-folders eg “Singing”, “Patter”, “Sting”, “Rhythm”. Naming and organization is your choice. One exception: Patter is handled different from the other folders. So any Patter folder MUST HAVE the word “Patter” in it (eg. “MyPatter”, “HisPatter” …).

You can also place the “Daten” folder and the database on any drive/folder. If you keep it as shown above it will be in the program folder (where is just has been unpacked). I recommend not to change it. You may also make changes later or when your email-parameters change.

Don’t forget to save the .env file after making changes.

Load necessary modules

Now some modules need to be loaded from the internet. The command is:

npm install

It may take a while – depending on your internet speed. Be patient. Ignore any warnings for now

This step creates a folder in the program folder named “node_modules”. Please ignore it – but don’t delete – it is required.

Start program

Now you may start the program for the first time (same command on all systems)

npm run dev

There will be some messages on the commandline. You now may start any browser and point it to:

http://localhost:2900  (or whichever port you selected). Then you see the first screen of the program.

You may also start via the IP-address of your PC/laptop

http://192.168.178.xxx:2900   (example your IP will be different)

You may also use your mobile device (phone or tablet) with the second command. If  the Android or IOS device is in the same network it will run the program.

One disadvantage: the commandline will be blocked. As soon as you close the commandline window – the program will stop.

Run program in background

To overcome this disadvantage some more commands are necessary:

npm install -g pm2

pm2 start ecosystem.config.cjs

After running the 2 commands you can close the terminal. The disadvantage of this method is that the program will run in background until the PC/laptop is powered off and will continue to use ressources. You can stop the memory usage by entering

pm2 stop 0

and restart it with

pm2 start 0

The alternative you may try

For each system there is a command-file beginning with “start_”.

You may try to use the respective command AFTER you edited the env. file. With some luck the following steps will be donw automatically and the program will start immediately (at least in Windows). If it works you may start the program with this command each time you use the program.

When testing on several differnt system – specially on Windows system – I had all kind of errors. Should you experience the same use the manual way as described above.

But it is worth trying. You can’t destroy the system!

On LInux do not forget to make the “start_linux.sh” executable
chmod +x start_linux.sh   and then
Start with “./start_linux.sh”