On-Premise Server
Edge Conductor can be installed on Ubuntu-based operating systems.
Before you begin
To install Edge Conductor on-premise, the following specifications must be met.
Operating System
- Ubuntu 20.04 LTS or later
Hardware Specifications
- CPU : 64-bit architecture, minimum 2GHz or higher, multi-core processor recommended
- RAM : Minimum 8GB (16GB or more recommended)
- Storage : At least 10GB of free space including tools like Docker and awscli (Edge Conductor Docker Image size: approximately 2GB)
The exact specifications depend on the frequency of inference data transmission and the size of the transmitted files in the Edge App as well as the number of concurrent web users, based on the recommended specifications for web services running in a Docker environment.
Install
The installation and execution consist of the following three steps:
- Download Installer
- Configure
- Run & Stop
- Clear
The detailed guide for each step is as follows:
Download Installer
git clone https://github.com/mellerikat/Edge-Conductor.git
Download the Edge Conductor installation files for different versions from the Mellerkikat GitHub repository.
$ git clone https://github.com/mellerikat/Edge-Conductor.git
Cloning into 'Edge-Conductor'...
remote: Enumerating objects: 113, done.
remote: Counting objects: 100% (113/113), done.
remote: Compressing objects: 100% (94/94), done.
remote: Total 113 (delta 11), reused 46 (delta 5), pack-reused 0
Receiving objects: 100% (113/113), 88.51 KiB | 3.69 MiB/s, done.
Resolving deltas: 100% (11/11), done.
$ cd Edge-Conductor/deploy/sh-script/
$ tree .
.
├── sh-script-2.2.0-build2_linux.tar.gz
└── sh-script-2.2.1_linux.tar.gz
Extract the compressed file of the Edge Conductor version you want to install (or update).
$ tar xvf sh-script-2.2.1_linux.tar.gz
$ tree .
.
└── deploy
│ └── sh-script
│ ├── config
│ ├── docker-compose.yml
│ ├── edgecond.sh
│ ├── env
│ ├── README.md
│ ├── scripts
│ │ ├── clear.sh
│ │ ├── common.sh
│ │ ├── configure.sh
│ │ ├── envsetup.sh
│ │ ├── run-advanced.sh
│ │ ├── run-basic.sh
│ │ ├── run-standard.sh
│ │ └── update.sh
│ └── tag
Use the edgecond.sh file included in the installation package to execute the configure, run, stop, and clear commands.
Configure
sudo ./edgecond.sh configure --registry {{registry}} --access_key {{access-key}} --secret_key {{secret-key}}
Through the configure step, set up the execution environment for Edge Conductor on the installation server.
Download the necessary Docker images for Edge Conductor from the Mellerikat Cloud ECR, and the user must input the required configuration values for execution.
The parameters required for executing the configure command include information about the Mellerikat ECR where the Docker images are stored and the access credentials.
registry
: Information about the Mellerikat Cloud ECR where the Edge Conductor Docker images are stored (856124245140.dkr.ecr.ap-northeast-2.amazonaws.com)access-key
: AWS Credentials Access Key information for accessing the ECRsecret-key
: AWS Credentials Secret Key information for accessing the ECR
When entering the configure stage, the necessary programs for running Edge Conductor will be installed, and a service account will be created.
In the final step, must input the following setup values, and the input interface is as follow:
Configuration-Key [Default-Value] User-Input-Value
If you want to use the default value without entering a user input value, press Enter.
Ensure that the user is required to input values for essential items needed to run the service (indicated by *).
# A name is assigned to the service being installed
# The Docker container name will be generated based on the assigned name
COMPOSE_PROJECT_NAME [(id -nu)]
# Enter the MYSQL information
MYSQL_HOST [10.158.2.243]
*MYSQL_PSWD []
SQLALCHEMY_POOL_MAX_OVERFLOW [10]
SQLALCHEMY_POOL_SIZE [5]
# Enter the backend server configuration values
SERVER_PROTOCOL [http]
LDAP_HOST []
# Set the JWT key value to encrypt sensitive data stored in MYSQL
JWT_SECRET [99434768691b08cfdf9ddf46856a60687f4b7fe4e4346376090a0bd0ac439bdc]
LOGGING_LEVEL [INFO]
LOGGING_ROTATE [0:00]
LOGGING_COUNT [90]
WEBHOOK_TEAMS []
# Send system statistical data to the summary server
# Assign a name to the Conductor installed in the WORKSPACE(a unique name value for the summary server) and set the URL of the summary server to which data will be sent
WORKSPACE [(id -nu)]
DAILY_SUMMARY_SERVER_URL [https://0.0.0.0]
# Define the credentials values for integrating with AWS Cloud
# Instead of using Access/Secret keys, you can utilize Vault, and you can set the Private Interface Endpoint URL (LG Magna)
VAULT_TOKEN []
VAULT_CATOZ []
VAULT_NAMESPACE []
*AWS_ACCESS_KEY []
*AWS_SECRET_KEY []
AWS_INTERFACE_ENDPOINT_STS []
AWS_INTERFACE_ENDPOINT_S3 []
AWS_INTERFACE_ENDPOINT_ECR_API []
# By defining the repositories for the Edge App Docker, you can utilize the Edge App update feature (planned for removal)
APP_DOCKER_REPOSITORIES [[]]
UPDATE_CENTER_URL []
BACKEND_CORS_ORIGINS ["http://localhost:38091", "http://10.158.2.243:38091"]
Note:
The types of container services running internally within Edge Conductor and the open port information (default values) are as follows.
MYSQL_PORT
:39000
FRONTEND_PORT
:39002
BACKEND_PORT
:39003
PRIVATE_DOCKER_REGISTRY_PORT
:39004
CELERY_FLOWER_PORT
:39005
Run
sudo ./edgecond.sh run
In the configure stage, containers are run using the configured environment variables and Docker images.
$ sudo ./edgecond.sh run
[+] Running 6/8
[+] Running 7/8-edge-conductor_default Created 0.1s
[+] Running 8/8-edge-conductor_default Created 0.1s
✔ Network edge-conductor_default Created 0.1s
✔ Container aiadvisor-edge_conductor-mysql-1121-edge-conductor Started 0.7s
✔ Container aiadvisor-edge_conductor-redis-1121-edge-conductor Started 0.4s
✔ Container aiadvisor-edge_conductor-registry-1121-edge-conductor Started 0.7s
✔ Container aiadvisor-edge_conductor-celery-1121-edge-conductor Started 0.9s
✔ Container aiadvisor-edge_conductor-flower-1121-edge-conductor Started 1.3s
✔ Container aiadvisor-edge_conductor-backend-1121-edge-conductor Started 1.3s
✔ Container aiadvisor-edge_conductor-frontend-1121-edge-conductor Started
Stop
sudo ./edgecond.sh stop
Stop the Docker containers using the stop command.
$ sudo ./edgecond.sh stop
stop...
[+] Running 8/8
✔ Container aiadvisor-edge_conductor-mysql-1121-edge-conductor Removed 0.7s
✔ Container aiadvisor-edge_conductor-redis-1121-edge-conductor Removed 0.4s
✔ Container aiadvisor-edge_conductor-registry-1121-edge-conductor Removed 0.7s
✔ Container aiadvisor-edge_conductor-celery-1121-edge-conductor Removed 0.9s
✔ Container aiadvisor-edge_conductor-flower-1121-edge-conductor Removed 1.3s
✔ Container aiadvisor-edge_conductor-backend-1121-edge-conductor Removed 1.3s
✔ Container aiadvisor-edge_conductor-frontend-1121-edge-conductor Removed
✔ Network edge-conductor_default Removed 0.1s
Note:
The service containers stopped using edgecond stop can be restarted using edgecond run.
Clear
sudo ./edgecond.sh clear
The clear command initializes the Edge Conductor execution environment installed on-premise.
It deletes the Edge Conductor Docker images, service accounts, and the file system and database contents used by the service.
It is recommended to properly stop the service containers using the edgecond stop command before executing the edgecond clear command
$ sudo ./edgecond.sh clear
Clear...
All saved data will be deleted. Do you want to continue? (y/n) y
wait...
Warning: No resource found to remove for project "edgecond".
...
Done.