{"id":102,"date":"2026-05-08T20:29:51","date_gmt":"2026-05-08T18:29:51","guid":{"rendered":"http:\/\/192.168.178.50:8666\/?page_id=102"},"modified":"2026-05-26T19:49:39","modified_gmt":"2026-05-26T17:49:39","slug":"installation-2","status":"publish","type":"page","link":"https:\/\/ctbonline.nanninga.me\/en\/installation-2\/","title":{"rendered":"Installation Windows"},"content":{"rendered":"<p>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&#8217;t be afraid &#8211; 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 &#8211; let me know so I can change the description.<\/p>\n<p>The installation is done on the commandline. This should be no problem for Linux users. As I don&#8217;t use MacOS I&#8217;m not sure whether all my advice is correct &#8211; however Google says it is OK. If not &#8211; please contact me &#8211; so I can correct.<\/p>\n<p>So let&#8217;s get started:<\/p>\n<p>You enter the commandline (Windows: Win-Key, type &#8220;cmd&#8221;, &#8220;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 &#8220;sudo&#8221; to each command.<\/p>\n<p>The steps are<\/p>\n<h3 id=\"mcetoc_1jo4e41m20\">Install Node.js<\/h3>\n<p>On many systems Node.Js is pre-installed. On any system you can test whether it is installed or not using the commands:<\/p>\n<p>&nbsp;<\/p>\n<p>npm -v and node -v<\/p>\n<p>If the answer is a version number it is already installed and you can skip this step.<\/p>\n<p><strong>Windows:<\/strong><br \/>\nwinget install OpenJS.NodeJS.LTS &#8211;silent<br \/>\n<strong><\/strong><\/p>\n<p>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.<\/p>\n<p><strong>\u00a0macOS (mit Homebrew)\u00a0<\/strong><!--TgQPHd|[]--><\/p>\n<div data-sfc-cp=\"\" jsaction=\"\" jscontroller=\"TDBkbc\" data-sfc-root=\"c\" jsuid=\"ATRhEb_r\" data-sfc-cb=\"\" data-hveid=\"CAAIBxAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 16px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 12px=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">If <span data-sfc-cp=\"\" data-sfc-root=\"c\" data-sfc-cb=\"\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: \"><a class=\"H23r4e\" target=\"_blank\" rel=\"noopener\" data-hveid=\"CAAIBxAB\" href=\"https:\/\/brew.sh\/\" ping=\"\/url?sa=t&#038;source=web&#038;rct=j&#038;url=https:\/\/brew.sh\/&#038;ved=2ahUKEwi-lMWm0quUAxWJBdsEHXdCMKoQy_kOegYIAAgHEAE&#038;opi=89978449\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 16px=\"\" font-weight:=\"\" 500=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" underline=\"\" 1px=\"\" solid=\"\" rgb=\"\" 21=\"\" 88=\"\" 214=\"\" border-bottom:=\"\" none=\"\">\u00a0Homebrew<\/a><!--TgQPHd|[[\"https:\/\/brew.sh\/\",null,null,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[{\"1218\":[16]}]],16,null,null,null,null,null,null,[[1778310351768126,81462665,2855289463],null,null,null,null,[[0,5,127]]]]]--><\/span> is installed this is the way to go. The command installs the LTS-Version (often as\u00a0 Paket <code dir=\"ltr\" class=\"KDcb0c\" jsaction=\"\" jscontroller=\"hNviFe\" data-sfc-root=\"c\" jsuid=\"ATRhEb_t\" data-sfc-cb=\"\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none solid rgb(10, 10, 10); border-bottom: 1px solid rgb(240, 242, 245);\">node@20<!--TgQPHd|[]--><\/code> or similar)<\/div>\n<div class=\"r1PmQe\" jsaction=\"\" jscontroller=\"HP6Sjf\" data-sfc-root=\"c\" jsuid=\"ATRhEb_y\" data-wiz-uids=\"ATRhEb_10,ATRhEb_z\" data-sfc-cb=\"\" data-hveid=\"CAAICBAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 4px=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">\n<div data-processed=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">\n<div class=\"pHpOfb\" data-animation-atomic=\"\" data-sae=\"\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\" 1px=\"\" 240=\"\" 242=\"\" 245=\"\">\n<div class=\"z0e9Qd\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">\n<div class=\"vVRw1d\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 20px=\"\" font-weight:=\"\" 500=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">bash<\/div>\n<\/div>\n<div class=\"pCTyYe\" dir=\"ltr\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">\n<pre data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 14px 0px; text-decoration: none solid rgb(10, 10, 10); border-bottom: 0px none rgb(10, 10, 10);\"><code jsuid=\"ATRhEb_10\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none solid rgb(10, 10, 10); border-bottom: 0px none rgb(10, 10, 10);\"><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none solid rgb(10, 10, 10); border-bottom: 0px none rgb(10, 10, 10);\">brew install node@20\r\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<p><!--TgQPHd|[[\"bash\",\"brew install node@20\\n\",[[\"brew install node@20\\n\",0]]]]--><\/p>\n<\/div>\n<ul class=\"KsbFXc U6u95\" jsaction=\"\" jscontroller=\"mPWODf\" data-sfc-root=\"c\" jsuid=\"ATRhEb_16\" data-sfc-cb=\"\" data-processed=\"true\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 16px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 12px=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">\n<li style=\"list-style-type: none;\">\n<ul class=\"KsbFXc U6u95\" jsaction=\"\" jscontroller=\"mPWODf\" data-sfc-root=\"c\" jsuid=\"ATRhEb_16\" data-sfc-cb=\"\" data-processed=\"true\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 16px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 12px=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">\n<li class=\"Z1qcYe\" data-sfc-cp=\"\" jsaction=\"\" jscontroller=\"oSLmPe\" data-sfc-root=\"c\" jsuid=\"ATRhEb_17\" data-sfc-cb=\"\" data-hveid=\"CAAICxAA\" data-sae=\"\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 16px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 0px=\"\" 12px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\"><span class=\"T286Pc\" data-sfc-cp=\"\" data-sfc-root=\"c\" data-sfc-cb=\"\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: \"><strong class=\"Yjhzub\" jsaction=\"\" jscontroller=\"zYmgkd\" data-sfc-root=\"c\" jsuid=\"ATRhEb_19\" data-sfc-cb=\"\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 16px=\"\" font-weight:=\"\" 600=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">Remark:<!--TgQPHd|[]--><\/strong> To use this version as standard permanently you may have to add a Path link. (Brew will show the necessary command at the\u00a0 end of the installation. Example: <code dir=\"ltr\" class=\"KDcb0c\" jsaction=\"\" jscontroller=\"hNviFe\" data-sfc-root=\"c\" jsuid=\"ATRhEb_1b\" data-sfc-cb=\"\" data-complete=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none solid rgb(10, 10, 10); border-bottom: 1px solid rgb(240, 242, 245);\">brew link --overwrite node@20<!--TgQPHd|[]--><\/code>).<!--TgQPHd|[]--><\/span><span>\u00a0<\/span><!--TgQPHd|[]--><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!--TgQPHd|[]--><\/p>\n<div class=\"Fsg96\" data-sfc-cp=\"\" jsaction=\"rcuQ6b:&#038;ATRhEb_1h|npT2md\" jscontroller=\"KHhJQ\" data-sfc-root=\"c\" jsuid=\"ATRhEb_1h\" data-sfc-cb=\"\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\"><!--TgQPHd|[]--><\/div>\n<div class=\"otQkpb\" aria-level=\"3\" role=\"heading\" data-animation-nesting=\"\" data-sfc-cp=\"\" jsaction=\"\" jscontroller=\"a7qCn\" data-sfc-root=\"c\" jsuid=\"ATRhEb_1i\" data-sfc-cb=\"\" data-complete=\"true\" data-processed=\"true\" data-sae=\"\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 20px=\"\" font-weight:=\"\" 600=\"\" margin:=\"\" 24px=\"\" 0px=\"\" 12px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\"><strong>\u00a0Linux (Ubuntu\/Debian-based)<\/strong><span><\/span><!--TgQPHd|[]--><\/div>\n<div data-sfc-cp=\"\" jsaction=\"\" jscontroller=\"TDBkbc\" data-sfc-root=\"c\" jsuid=\"ATRhEb_1m\" data-sfc-cb=\"\" data-hveid=\"CAAIEBAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 16px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 12px=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\"><\/div>\n<div data-sfc-cp=\"\" jsaction=\"\" jscontroller=\"TDBkbc\" data-sfc-root=\"c\" jsuid=\"ATRhEb_1m\" data-sfc-cb=\"\" data-hveid=\"CAAIEBAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 16px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 12px=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">Hier you use the offical <strong class=\"Yjhzub\" jsaction=\"\" jscontroller=\"zYmgkd\" data-sfc-root=\"c\" jsuid=\"ATRhEb_1n\" data-sfc-cb=\"\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 16px=\"\" font-weight:=\"\" 600=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">NodeSource<!--TgQPHd|[]--><\/strong> Repository to really get the actual LTS-Version (instead of older versions you may get elsewhere<br \/>\n<code jsuid=\"ATRhEb_1x\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none solid rgb(10, 10, 10); border-bottom: 0px none rgb(10, 10, 10);\"><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none solid rgb(10, 10, 10); border-bottom: 0px none rgb(10, 10, 10);\">curl -fsSL <\/span><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none solid rgb(10, 10, 10); border-bottom: 0px none rgb(10, 10, 10);\">https:\/\/deb.nodesource.com\/setup_lts.x<\/span><span class=\"undefined\" data-copy-service-computed-style=\"font-family: monospace; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none solid rgb(10, 10, 10); border-bottom: 0px none rgb(10, 10, 10);\"> | sudo -E bash - && sudo apt-get install -y nodejs<\/span><\/code><\/div>\n<div class=\"r1PmQe\" jsaction=\"\" jscontroller=\"HP6Sjf\" data-sfc-root=\"c\" jsuid=\"ATRhEb_1v\" data-wiz-uids=\"ATRhEb_1x,ATRhEb_1w\" data-sfc-cb=\"\" data-hveid=\"CAAIERAA\" data-complete=\"true\" data-processed=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 4px=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">\n<div data-processed=\"true\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\">\n<div class=\"pHpOfb\" data-animation-atomic=\"\" data-sae=\"\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\" 1px=\"\" 240=\"\" 242=\"\" 245=\"\">\n<div class=\"z0e9Qd\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\"><\/div>\n<\/div>\n<div class=\"LIBz9e\" data-animation-atomic=\"\" data-sae=\"\" data-copy-service-computed-style=\"font-family: \" google=\"\" sans=\"\" arial=\"\" sans-serif=\"\" font-size:=\"\" 14px=\"\" font-weight:=\"\" 400=\"\" margin:=\"\" 3px=\"\" 0px=\"\" text-decoration:=\"\" none=\"\" solid=\"\" rgb=\"\" 10=\"\" border-bottom:=\"\" 1px=\"\" 240=\"\" 242=\"\" 245=\"\"><\/div>\n<\/div>\n<\/div>\n<p>After this node.js should be installed. You may test again with<\/p>\n<p>Node -v\u00a0 and npm -v\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 to fine out everything went fine.<\/p>\n<h3 id=\"mcetoc_1jo5p5trj0\">Unpack my program into an empty Folder<\/h3>\n<p>This can be done on all systems the same way:<\/p>\n<p>First you create an empty folder (via commandline) and change into that folder:<br \/>\nWindows: x: (Drive); md &#8220;xxx&#8221;; cd &#8220;xxx&#8221;.<br \/>\nLinux: mkdir \/opt\/xxx (suggested); cd \/opt\/xxx<\/p>\n<p>Then you enter (exactly as shown here &#8211; use copy\/paste)<br \/>\nWindows:<br \/>\ncurl -L -o datei.zip https:\/\/fg.nanninga.me\/$\/xIJd1<\/p>\n<p>Afterwards you unpack the archive<br \/>\ntar -xf datei.zip (Windows)<\/p>\n<p>Linux\/MacOS:<br \/>\nwget -O datei.zip https:\/\/fg.nanninga.me\/$\/xIJd1<br \/>\nDann: \u00a0unzip datei.zip<\/p>\n<p>As a result you should see a number of files in your folder now. You may delete the &#8220;Datei.zip&#8221;.<\/p>\n<h3 id=\"mcetoc_1jo5rk4gl0\">Edit the file .env<\/h3>\n<p>Now you have to edit the .env file in that folder<\/p>\n<p>Windows: Edit .env<br \/>\nIn Linux or MacOS use the editor of your choice (nano, vim ..).<\/p>\n<p>This is the content of that file:<\/p>\n<p># Server Configuration<br \/>\n# Here you can configure the port to use. If 2900 is free on your system don&#8217;t change anything<br \/>\nAPP_PORT=2900<\/p>\n<p># SMTP Configuration<br \/>\nSMTP_HOST=smtp.xxx.com<br \/>\nSMTP_PORT=465<br \/>\nSMTP_USER=meist Eure Email-Adress<br \/>\nSMTP_PASS=Euer Passwort<br \/>\nSMTP_FROM=Meist Eure Email-Adresse<br \/>\nSMTP_TO=An wen soll die Email gehen<\/p>\n<p># File Paths<br \/>\n# Use absolute paths or relative to workspace root<br \/>\nMUSIK_PATH=h:\\SDMASTER<br \/>\nDATEN_PATH=Daten<br \/>\nDATABASE_PATH=SDMOmaster.db<\/p>\n<p>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.<\/p>\n<p>The MUSIK_PATH is important. This tells the program where your music resides. With Linux this is a paht like &#8220;\/home\/xxx\/music&#8221; In Windows this is any path in Windows format. Beneath this folder you should have several sub-folders eg &#8220;Singing&#8221;, &#8220;Patter&#8221;, &#8220;Sting&#8221;, &#8220;Rhythm&#8221;. Naming and organization is your choice. One exception: Patter is handled different from the other folders. So any Patter folder MUST HAVE the word &#8220;Patter&#8221; in it (eg. &#8220;MyPatter&#8221;, &#8220;HisPatter&#8221; &#8230;).<\/p>\n<p>You can also place the &#8220;Daten&#8221; 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.<\/p>\n<p>Don&#8217;t forget to save the .env file after making changes.<\/p>\n<h3 id=\"mcetoc_1jo5sb2pp1\">Load necessary modules<\/h3>\n<p>Now some modules need to be loaded from the internet. The command is:<\/p>\n<p>npm install<\/p>\n<p>It may take a while &#8211; depending on your internet speed. Be patient. Ignore any warnings for now<\/p>\n<p>This step creates a folder in the program folder named &#8220;node_modules&#8221;. Please ignore it &#8211; but don&#8217;t delete &#8211; it is required.<\/p>\n<h3 id=\"mcetoc_1jo5si32a3\">Start program<\/h3>\n<p>Now you may start the program for the first time (same command on all systems)<\/p>\n<p>npm run dev<\/p>\n<p>There will be some messages on the commandline. You now may start any browser and point it to:<\/p>\n<p><a href=\"http:\/\/localhost:2900\u00a0\">http:\/\/localhost:2900\u00a0<\/a> (or whichever port you selected). Then you see the first screen of the program.<\/p>\n<p>You may also start via the IP-address of your PC\/laptop<\/p>\n<p><a href=\"http:\/\/192.168.178.55:2900\">http:\/\/192.168.178.xxx:2900\u00a0 \u00a0(example your IP will be different)<\/a><\/p>\n<p>You may also use your mobile device (phone or tablet) with the second command. If\u00a0 the Android or IOS device is in the same network it will run the program.<\/p>\n<p>One disadvantage: the commandline will be blocked. As soon as you close the commandline window &#8211; the program will stop.<\/p>\n<h3 id=\"mcetoc_1jo5sqgft5\">Run program in background<\/h3>\n<p>To overcome this disadvantage some more commands are necessary:<\/p>\n<p>npm install -g pm2<\/p>\n<p>pm2 start ecosystem.config.cjs<\/p>\n<p>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<\/p>\n<p>pm2 stop 0<\/p>\n<p>and restart it with<\/p>\n<p>pm2 start 0<\/p>\n<h3 id=\"mcetoc_1jo5tbgpd8\">The alternative you may try<\/h3>\n<p>For each system there is a command-file beginning with &#8220;start_&#8221;.<\/p>\n<p>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.<\/p>\n<p>When testing on several differnt system &#8211; specially on Windows system &#8211; I had all kind of errors. Should you experience the same use the manual way as described above.<\/p>\n<p>But it is worth trying. You can&#8217;t destroy the system!<\/p>\n<p>On LInux do not forget to make the &#8220;start_linux.sh&#8221; executable<br \/>\nchmod +x start_linux.sh\u00a0 \u00a0and then<br \/>\nStart with &#8220;.\/start_linux.sh&#8221;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8217;t be afraid &#8211; This is only a ONE TIME effort. Just follow the <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/ctbonline.nanninga.me\/en\/installation-2\/\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-102","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ctbonline.nanninga.me\/en\/wp-json\/wp\/v2\/pages\/102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ctbonline.nanninga.me\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ctbonline.nanninga.me\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ctbonline.nanninga.me\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ctbonline.nanninga.me\/en\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":27,"href":"https:\/\/ctbonline.nanninga.me\/en\/wp-json\/wp\/v2\/pages\/102\/revisions"}],"predecessor-version":[{"id":146,"href":"https:\/\/ctbonline.nanninga.me\/en\/wp-json\/wp\/v2\/pages\/102\/revisions\/146"}],"wp:attachment":[{"href":"https:\/\/ctbonline.nanninga.me\/en\/wp-json\/wp\/v2\/media?parent=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}