System requirements

In order for the local setup to be successful, some preconditions must be met. The minimum requirements for synQup are currently as follows:

  • RAM: min. 8GB
  • CPU: modern quad core processor, at least 2.3GHz clock speed, ideally with support for hardware virtualization
  • OS: Ubuntu 20.04 LTS (other distributions or operating systems may work, but are not officially supported)

docker-engine and docker-compose

The installation of Docker und Docker-Compose is described on the official website.

Docker container setup

After downloading the project from the release page, the automatic installation can be started:

./bin/scripts/install

This installs Composer dependencies and prepares the database for its first deployment.

Creating a first module

As described in the previous section, synQup is based on a concept of modules, i.e. reusable functions or function blocks. For developers working with synQup, the creation of modules is therefore the first step to be able to write own code. However, it also allows us to learn about the structure that will be used later to install modules.

Attention: in the following step, more work is done in the container. The host name of the current computer is usually displayed at the beginning of the line (prompt) in Unix shells. This makes it easy to distinguish whether you are currently in the container or on the host system.

First, a shell must be started in the container:

synqup@rh-synqup-nb:~/setup/fbn$ ./bin/scripts/root-shell.sh
root@7b39eff761b5:/var/www/html$ 

The creation of a new module is also designed to be as simple as possible. For this, only a given console command must be started:

root@f4490118644b:/var/www/html# php bin/console make:module
Failed loading /usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so:  /usr/local/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so: cannot open shared object file: No such file or directory

 Name (pascal-case, e.g. "DemoModuleOne"):
 > CsvModule

 vendor prefix (e.g. "Synqup/Modules"):
 > Synqup/Modules

 Composer vendor (e.g. synqup):
 > synqup

 created: packages/Synqup/Modules/CsvModule/composer.json
 created: packages/Synqup/Modules/CsvModule/src/DependencyInjection/CsvModuleExtension.php
 created: packages/Synqup/Modules/CsvModule/src/Resources/config/services.yaml
 created: packages/Synqup/Modules/CsvModule/src/CsvModuleBundle.php
OK Created module!


 [WARNING] Don't forget to run "composer update synqup/demo-module-one"!

A brief explanation of the parameters queried:

  • From the Name parameter are generated: Composer package name, class name, last part of the namespace.
  • The vendor prefix is used as a namespace prefix and to create the necessary folders below packages/.
  • The composer vendor specifies the first part of the full package name. In the case shown above, this results in synqup/demomoduleone.

Let us now follow the warning from the above result and introduce a

composer update

off. Since automatically created modules are of type symfony-bundle, they are also automatically registered in the application.

In the next guide, the created plugin will be filled with life and the configuration of synQup will be explained in more detail.