🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
Parsed/MDriven on Synology
This page was created by PageReplicator on 2025-09-01. Last edited by PageReplicator on 2025-09-01.

Template:Notice



How to run MDriven on a Synology box[<a href="/index.php?title=Documentation:MDriven_on_Synology&veaction=edit&section=1" class="mw-editsection-visualeditor" title="Edit section: How to run MDriven on a Synology box" data-bs-title="Documentation:MDriven_on_Synology">edit</a> | <a href="/index.php?title=Documentation:MDriven_on_Synology&action=edit&section=1" title="Edit section: How to run MDriven on a Synology box" data-bs-title="Documentation:MDriven_on_Synology">edit source</a>]

This guide will help you get up and running with MDriven Server and MDriven Turnkey environment on a Synology DSM. Since the synology has the ability to run MariaDB with an easy install from the built-in package center, we will assume this would be the best solution. There is also an option to run the database in Docker - then we can choose for ex PostgreSQL.

Preparations[<a href="/index.php?title=Documentation:MDriven_on_Synology&veaction=edit&section=2" class="mw-editsection-visualeditor" title="Edit section: Preparations" data-bs-title="Documentation:MDriven_on_Synology">edit</a> | <a href="/index.php?title=Documentation:MDriven_on_Synology&action=edit&section=2" title="Edit section: Preparations" data-bs-title="Documentation:MDriven_on_Synology">edit source</a>]

Download the latest MDriven Core Server and Turnkey binaries for Linux from <a target="_blank" rel="nofollow noreferrer noopener" class="external text" href="https://mdriven.net/">mdriven.net</a> and <a target="_blank" rel="nofollow noreferrer noopener" class="external text" href="https://dotnet.microsoft.com/en-us/download/dotnet">ASP.NET</a> Core Runtime x64 for Linux

Create a new share on the synology box ex [\\synology\webapp ] where we will run the MDriven application from.

If Maria DB is not installed, add it from Package center, or add your flavor of database as an Docker image.

Install ASP.NET Core Runtime[<a href="/index.php?title=Documentation:MDriven_on_Synology&veaction=edit&section=3" class="mw-editsection-visualeditor" title="Edit section: Install ASP.NET Core Runtime" data-bs-title="Documentation:MDriven_on_Synology">edit</a> | <a href="/index.php?title=Documentation:MDriven_on_Synology&action=edit&section=3" title="Edit section: Install ASP.NET Core Runtime" data-bs-title="Documentation:MDriven_on_Synology">edit source</a>]

Connect to your synology through SSH. This assumes you have <a target="_blank" rel="nofollow noreferrer noopener" class="external text" href="https://kb.synology.com/sv-se/DSM/tutorial/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet">enabled SSH</a> on you synology box.

You will now install asp.net by extracting the tar.gz-file and adding a path to environment variable.

<span></span>mkdir -p /usr/local/bin/dotnet <span class="o">&&</span> tar zxf aspnetcore-runtime-8.0.3-linux-x64.tar.gz -C /usr/local/bin/dotnet
<span class="nb">export</span> <span class="nv">DOTNET_ROOT</span><span class="o">=</span>/usr/local/bin/dotnet
<span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="nv">$PATH</span>:/usr/local/bin/dotnet

Initiate a database[<a href="/index.php?title=Documentation:MDriven_on_Synology&veaction=edit&section=4" class="mw-editsection-visualeditor" title="Edit section: Initiate a database" data-bs-title="Documentation:MDriven_on_Synology">edit</a> | <a href="/index.php?title=Documentation:MDriven_on_Synology&action=edit&section=4" title="Edit section: Initiate a database" data-bs-title="Documentation:MDriven_on_Synology">edit source</a>]

For mySQL: Create database MyApp and user myAppUser in mySQL

<span></span><span class="n">mysql</span><span class="w"> </span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="o">-</span><span class="n">u</span><span class="w"> </span><span class="n">root</span><span class="w"></span>

<span class="k">CREATE</span><span class="w"> </span><span class="k">DATABASE</span><span class="w"> </span><span class="n">myApp</span><span class="p">;</span><span class="w"></span>
<span class="k">CREATE</span><span class="w"> </span><span class="k">USER</span><span class="w"> </span><span class="n">myAppUser</span><span class="o">@</span><span class="n">localhost</span><span class="w"> </span><span class="n">IDENTIFIED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="s1">'myPassword'</span><span class="p">;</span><span class="w"> </span><span class="k">GRANT</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="k">PRIVILEGES</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">myApp</span><span class="p">.</span><span class="o">*</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">myAppUser</span><span class="o">@</span><span class="n">localhost</span><span class="p">;</span><span class="w"></span>

Setup MDriven[<a href="/index.php?title=Documentation:MDriven_on_Synology&veaction=edit&section=5" class="mw-editsection-visualeditor" title="Edit section: Setup MDriven" data-bs-title="Documentation:MDriven_on_Synology">edit</a> | <a href="/index.php?title=Documentation:MDriven_on_Synology&action=edit&section=5" title="Edit section: Setup MDriven" data-bs-title="Documentation:MDriven_on_Synology">edit source</a>]

Extract Mdriven Turnkey Core for Linux into \\synology\webapp\myApp\MDTurnkey

Extract Mdriven Server Core for Linux into \\synology\webapp\myApp\MDServer

Create a scriptfile run.sh* that will be used to start the MDriven environment.

Save it together with your application on \\synology\webapp\myApp\

<span></span>dotnet /volume1/webapp/myApp/MDServer/AppCompleteGenericCore.dll -port<span class="o">=</span><span class="m">5010</span> -nohttps
dotnet /volume1/webapp/myApp/MDTurnkey/StreaminAppCoreWebApp.dll -port<span class="o">=</span><span class="m">5011</span> -nohttps

If you're using Notepad++, be sure to end line in unix (LF), Edit -> EOL Conversion->UnixConfiguration

Create a Triggered Task that will run at boot time in your Synology box by navigating to Controll Panel -> Task Scheduler

Run your script as follows: /bin/bash /volume1/webapp/myApp/run.sh

Configure MDriven Server[<a href="/index.php?title=Documentation:MDriven_on_Synology&veaction=edit&section=6" class="mw-editsection-visualeditor" title="Edit section: Configure MDriven Server" data-bs-title="Documentation:MDriven_on_Synology">edit</a> | <a href="/index.php?title=Documentation:MDriven_on_Synology&action=edit&section=6" title="Edit section: Configure MDriven Server" data-bs-title="Documentation:MDriven_on_Synology">edit source</a>]

Now you are ready to browse to your MDriven Server on <a target="_blank" rel="nofollow noreferrer noopener" class="external free" href="https://synology:5010">https://synology:5010</a> and set up your MySQL database with connection string.

Server=localhost;Port=3306;Database=myApp;Uid=myAppUser;Pwd=myPassword;

As always, we have to configure MdrivenServerOverride.xml and TurnkeySettingsOverride.xml to make sure we have a smooth process of upgrading the servers.

MySQL/MariaDB: Unfortunately, there may be a bug between some versions of the MySQL connector and MySQL server which may result in an error when uploading your model.

  • Extended run.sh that will restart the application if it is currently running:

    <span></span><span class="ch">#!/bin/bash /volume1/webapp/myApp/run.sh</span>

clear <span class="nv">BLUE</span><span class="o">=</span><span class="s1">'\033[0;34m'</span> <span class="nb">printf</span> <span class="s2">"</span><span class="si">${</span><span class="nv">BLUE</span><span class="si">}</span><span class="s2">STARTING MDRIVEN ENVIRONMENT\n\n"</span> <span class="nv">APPNAME</span><span class="o">=</span>myApp <span class="nv">TURNKEYPORT</span><span class="o">=</span><span class="m">5011</span> <span class="nv">SERVERPORT</span><span class="o">=</span><span class="m">5010</span>

<span class="c1"># Kill process to restart webapplications</span> netstat -lpn <span class="p">|</span> grep <span class="s2">":</span><span class="nv">$TURNKEYPORT</span><span class="s2">"</span> <span class="p">|</span> awk <span class="s1">'{sub(/\/.*/, "", $NF); print $NF}'</span> <span class="p">|</span> xargs -i <span class="nb">kill</span> -kill <span class="o">{}</span> netstat -lpn <span class="p">|</span> grep <span class="s2">":</span><span class="nv">$SERVERPORT</span><span class="s2">"</span> <span class="p">|</span> awk <span class="s1">'{sub(/\/.*/, "", $NF); print $NF}'</span> <span class="p">|</span> xargs -i <span class="nb">kill</span> -kill <span class="o">{}</span>

<span class="c1"># Start MDriven Environment</span> sleep 1s <span class="nb">cd</span> /volume1/webapp/myApp/MDServer /usr/local/bin/dotnet/dotnet /volume1/webapp/myApp/MDServer/AppCompleteGenericCore.dll -port<span class="o">=</span><span class="nv">$SERVERPORT</span> -nohttps <span class="p">&</span> sleep 15s <span class="nb">cd</span> /volume1/webapp/myApp/MDTurnkey /usr/local/bin/dotnet/dotnet /volume1/webapp/myApp/MDTurnkey/StreaminAppCoreWebApp.dll -port<span class="o">=</span><span class="nv">$TURNKEYPORT</span> -nohttps <span class="p">&</span> <span class="nb">printf</span> <span class="s2">"</span><span class="si">${</span><span class="nv">BLUE</span><span class="si">}</span><span class="s2">RUNNING IN BACKGROUND\n\n"</span>