DataMorph is a secure, scalable application designed to automate and manage data transfers between various sources and destinations using configurable pipelines. The MorphusInstaller.sh simplifies deployment and management of DataMorph application using Docker and Docker Compose. It offers guided setup and CLI-based lifecycle control.
- Frontend: Angular
- Backend: Java-Springboot
- Workflow Orchestration: Apache Airflow
- Databases: MySQL (backend) & PostgreSQL (Airflow)
- Containerization: Docker + Docker Compose
- Operating System: Linux
- RAM: 8 GB
- Storage: 30 GB
| Tool | Install Commands (Ubuntu/Debian) | Confirm Installation |
|---|---|---|
| Docker | sudo apt install docker.io |
docker --version |
| Docker Compose V2 | sudo apt install docker-compose-plugin |
docker compose version |
| lsof | sudo apt install lsof |
|
| jq | sudo apt install jq |
|
| mysql-client | sudo apt install mysql-client |
Note: Script execution may prompt for password to run certain commands with sudo priveleges when necessary.
curl -o MorphusInstaller.sh https://raw.githubusercontent.com/infodatinc/morphus/main/MorphusInstaller.sh
cd <script_location>
chmod +x MorphusInstaller.shMac OS:
sh MorphusInstaller.sh
Linux OS:
./MorphusInstaller.shYou will be prompted for:
- Confirmation of Docker availability
- Port number (UI), Default port: 80
- MySQL database setup (New or Existing)
- Existing Database (Hostname, Port, Username, Password)
- Docker Compose validation
Note: When using an existing database, the application will connect using the provided details and automatically create a database named morphus if it does not already exist. The current version does not support SSL certificates for database authentication; this capability will be introduced in a future release.
morphus versionYou can check the current version of Morphus Data that is installed on the system using this command.
morphus startDuring the first launch, you'll be asked to:
- Enter your organization’s domain name
- Confirm it using 'y' for yes or 'n' for no
- Provide your first name, last name, and company email
- A user account is created with the above details and a default password:
Welcome@123
/var/morphus/
├── logs/
│ ├── ui/
│ └── backend/
│ ├── api-gateway/
│ ├── auth/
│ ├── user-access-management/
│ ├── metadata/
│ └── email-notification/
├── database/
│ └── mysql/ # MySQL data storage
├── docker-compose.yaml # Main docker-compose file
├── .env # Environment variables
├── .ver # Version tracking file
├── .org_created # Marker for org creation
├── .user_created # Marker for user creation
/var/airflow/
├── dags/ # DAGs for workflows
├── logs/ # Airflow logs
├── config/ # Configuration files
├── plugins/ # Custom plugins
├── test/ # Test files
├── scripts/ # Custom scripts
├── api/ # API-related files
├── dag_json_data/ # JSON data for DAGs
/var/morphus_backup/
├── v1.0/ # Backup for version v1.0 (Previous version) before moving to v2.0(Next version)
│ ├── morphus/ # Backup of /var/morphus
│ └── airflow/ # Backup of /var/airflow
# Additional version backups
After installation, a global CLI command morphus is registered with the following subcommands:
morphus version # Dislays the current version
morphus start # Launch containers
morphus stop # Stop containers
morphus update # Upgrade to another version
morphus rollback # Rollsback to the previous version
morphus uninstall # Remove all containers and filesmorphus update- Fetches laatest version from GitHub
- Updates
.env - Restarts containers with new version
morphus rollback- Rolls back the application to the most recent previously installed version.
- Rollback is limited to only one version back (cannot revert to older versions beyond the immediate last one).
- Automatically restarts all containers using the rolled-back version. ** Note: Any changes made before rollback will be lost after rollback
| Issue | Solution |
|---|---|
| Docker Not Installed | Install Docker |
| Docker Not Running | sudo systemctl start docker |
| Port Conflicts | Script prompts for alternate ports if in use |
| DB Connection Fails | Ensure MySQL credentials and host/port are correct |
| Permissions Issues | Run with sudo where prompted |
| Docker Compose Validation | YAML errors block deployment—check docker-compose.yaml structure |
morphus uninstall- Stops all containers
- Removes volumes, networks, and logs
- Deletes all installed files and CLI shortcut
Log files are stored in:
/var/morphus/logs/ui//var/morphus/logs/backend//var/airflow/logs
- Supports Linux and macOS
- Docker images must be compatible with version mappings set in
.env - First-time start performs DB insertions for organization and user creation
For questions or access to the repository, contact Saloni Shah: saloni.shah@infodatinc.com