Install SoloDB on Azure
In this document the process is explained to install SoloDB on Azure. To run SoloDB the following services will be installed
Service | Role |
---|---|
App Service | App service in which the Docker container will run |
Worker | SoloDB worker container for backend processes |
Solr | Installation of Solr in Azure VM |
MySQL | Azure Database for MySQL Flexible Server |
Virtual network | Virtual network for secured traffic between all services |
Container registry | Docker container registry for SoloDB docker containers and deployments via webhooks |
App Service
The system will be deployed using GitHub Actions. Therefore, an action is created in .github/workflows/deploy.yml
Download the Publish profile from App service and save it as a secret in GitHub. The secret is called AZURE_PUBLISH_PROFILE, do the same for the Container registry username and password.
Make sure you connect the app service to the Virtual network and set the connection setting of SOLR_HOST to the internal IP of the worker VM
Worker VM
The worker VM is a Microsoft Virtual machine with the following specifications Choose Debian 11 as OS and let Azure choose the other default settings. The name can be solodb-worker
but any other name can be chosen as well. Let Azure also create a default VM user. The VM will be created in the same resource
Make sure "Delete public IP and NIC when VM is deleted" is checked. This will make sure the IP is deleted when the VM is removed
Networking and monitoring is not needed Make sure you download the key and save it in a safe place. This key will be used to connect to the VM. The following entry can be created in your .ssh/config
The database can now be connected via mysql -u databasename -h 127.0.0.1 -P 3006 -p --ssl-ca=/users/username/.ssh/DigiCertGlobalRootCA.crt.pem
Login to the machine and install the following packages
Install GIT, PHP (CLI), NGINX and Redis
Install packages
Set timezone on CET
Install SOLR (version number might be higher, can be checked on the Solr Download page)
Change SOLR, so it listens to all interfaces (and not only to localhost)
Change the following settings
Reboot the machine to reload all changes and to test if everything is working
Prevent remote access from non-trusted IP addresses
Clone SoloDB SOLR docker repository and reload SOLR (as solr user). Make sure you have set the SSH key as deploy key on the repository
Install source code
Clone the Source code in /home/azureuser/solodb
as azureuser
Create a config file /home/azureuser/solodb/config/autoload/production.local.php
with the following content
Setup daily backup using file in backup script
Mysql
Choose Azure Database for MySQL Flexible Server and let Azure choose the default settings. The name can be solodb-prod
Connect the Database as extra service to the VLAN