Skip to content

openlegacy/apps-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenLegacy Apps - Docker Compose

A Docker Compose setup for running OpenLegacy development tools locally.

πŸ“¦ What's Included

This setup includes:

Community Apps (Always Available)

  • Homepage (port 8080) - Landing page with links to all tools
  • OL Terminal (port 8081) - Web-based terminal for mainframe and AS/400 systems
  • OL Code (port 8082) - Web-based IDE for legacy code development
  • SQOL (port 8083) - Universal SQL console for databases

Enterprise Apps (Optional - requires --all flag)

  • Hub Integration (port 8084) - Enterprise platform for API management and legacy system integration
  • OL TermIQ (port 8085) - Terminal Intelligence for mainframe session recording, analysis, and automation
  • PostgreSQL (port 5432) - Database for Hub Enterprise and TermIQ data persistence

πŸš€ Quick Start

Prerequisites

  • Docker installed and running
  • Docker Compose installed

⚠️ Important: License Configuration

Before starting the services, you must configure your OpenLegacy license:

  1. Go to the OpenLegacy Community Site
  2. Log in to your account
  3. Navigate to your User Profile
  4. Copy your license token
  5. Open config.env in this directory
  6. Replace your-license-token-here with your actual license token:
OL_TOOL_LICENSE=your-actual-license-token-goes-here
OL_ADMIN=openlegacy
OL_PASSWORD=olpassword

OLCODE_ADMIN=openlegacy
OLCODE_PASSWORD=olpassword

πŸ’‘ Tip: You can also customize the admin username and password in the same file.

Starting the Services

Once you've configured your license, you can start services in two ways:

Option 1: Community Apps Only (Default)

Start the core free tools without Hub Enterprise:

./apps.sh start

Or using docker-compose directly:

docker-compose up -d

Option 2: All Apps Including Hub Enterprise

Start all services including Hub Integration and PostgreSQL:

./apps.sh start --all

Or using docker-compose directly:

docker-compose --profile all up -d

πŸ’‘ Note: Hub Enterprise requires additional resources. Use --all only if you need enterprise features.

Accessing the Applications

Open your browser and visit:

If you started with --all:

πŸ› οΈ Managing Services

Using the Helper Script

The apps.sh script provides convenient commands:

./apps.sh start           # Start community apps only
./apps.sh start --all     # Start all apps including Hub Enterprise
./apps.sh stop            # Stop all running services
./apps.sh stop --all      # Stop all services including Hub
./apps.sh restart         # Restart services
./apps.sh restart --all   # Restart all services including Hub
./apps.sh logs            # View logs (follow mode)
./apps.sh logs --all      # View logs including Hub
./apps.sh status          # Show service status
./apps.sh status --all    # Show all services including Hub
./apps.sh pull            # Pull latest images
./apps.sh pull --all      # Pull all images including Hub

πŸ’‘ Tip: Add --all to any command to include Hub Enterprise and PostgreSQL services.

Using Docker Compose Directly

# Community apps only
docker-compose up -d              # Start services in background
docker-compose down               # Stop and remove containers
docker-compose ps                 # List running services
docker-compose logs -f            # View logs
docker-compose restart            # Restart services

# All apps including Hub Enterprise
docker-compose --profile all up -d       # Start all services
docker-compose --profile all down        # Stop all services
docker-compose --profile all ps          # List all services
docker-compose --profile all logs -f     # View all logs

πŸ’Ύ Data Persistence

Application data is stored in two ways:

Community Apps - Local Directories (Version-Controllable)

Configuration files are stored in local directories that you can edit directly:

  • ./.ol-terminal/ - OL Terminal configurations and data
  • ./.olcode/ - OL Code projects and settings
  • ./.sqol/ - SQOL connections and queries

Enterprise Apps - Local Directories (when using --all)

  • ./.termiq/ - TermIQ session recordings, configurations, and analysis data

These directories are bind-mounted from your project folder, allowing you to:

  • Edit configuration files directly in your IDE
  • Version control your app configurations
  • Share configurations across team members
  • Backup configurations easily

Enterprise Apps - Docker Volumes (when using --all)

  • apps_hub-postgres-data - PostgreSQL database for Hub Enterprise

Your data persists across container restarts and system reboots.

To reset configuration:

# Stop services
./apps.sh stop

# Remove configuration directories
rm -rf .ol-terminal .olcode .sqol

# Restart - apps will create fresh configurations
./apps.sh start

To delete all data including Hub and TermIQ:

docker-compose --profile all down -v  # ⚠️ This deletes PostgreSQL data!
rm -rf .ol-terminal .olcode .sqol .termiq     # Remove local configurations

πŸ”§ Troubleshooting

License Error

If you see license-related errors, make sure you:

  1. Copied the correct license from your Community Profile
  2. Updated config.env with your license
  3. Restarted the services after updating the license

Permission Errors

All services run as root (user 0:0) to avoid permission issues with volumes. The configuration directories are automatically created with proper permissions when you first start the services.

If you still encounter permission errors:

./apps.sh stop
rm -rf .ol-terminal .olcode .sqol
./apps.sh start

Port Conflicts

If ports 8080-8085 or 5432 are already in use, you can modify the ports in docker-compose.yml:

ports:
  - "NEW_PORT:8080"  # Change NEW_PORT to your desired port

Container Already Exists

If you previously ran the services with docker run, remove the old containers:

docker rm -f ol-terminal ol-code sqol ol-homepage ol-hub ol-termiq hub-postgres

Then start with docker-compose:

./apps.sh start --all

Hub Enterprise and TermIQ Connection Issues

If Hub Enterprise or TermIQ fail to start or connect to the database:

  1. Check if PostgreSQL is running:
docker ps | grep hub-postgres
  1. Check the database initialization:
docker logs hub-postgres
  1. Verify databases were created:
docker exec -it hub-postgres psql -U postgres -c "\l"
# Should show: olhub and termiq databases
  1. Check Hub logs for errors:
docker logs ol-hub
  1. Check TermIQ logs for errors:
docker logs ol-termiq
  1. Restart Hub and TermIQ services:
./apps.sh restart --all

πŸ“ Configuration Files

  • docker-compose.yml - Service definitions and configuration
  • config.env - Environment variables (license, credentials)
  • apps.sh - Helper script for managing services
  • index.html - Homepage template
  • init-db.sql - PostgreSQL initialization script (creates olhub and termiq databases)
  • .ol-terminal/ - OL Terminal configuration directory (created on first run)
  • .olcode/ - OL Code configuration directory (created on first run)
  • .sqol/ - SQOL configuration directory (created on first run)
  • .termiq/ - TermIQ configuration directory (created on first run with --all)

Pre-configuring Apps

You can pre-configure apps by creating these directories before first run. For example, to pre-configure SQOL with database connections:

  1. Create .sqol directory
  2. Add connections.json with your database connections
  3. Add application.yaml with your settings
  4. Start the services with ./apps.sh start

SQOL will use your pre-configured connections immediately!

Connecting to PostgreSQL

When running with --all, PostgreSQL is available for direct connections:

Connection Details:

  • Host: localhost (from host machine) or hub-postgres (from containers)
  • Port: 5432
  • Username: postgres
  • Password: olhubpassword
  • Databases: olhub, termiq

Example connection strings:

# Using psql from host machine
psql -h localhost -p 5432 -U postgres -d olhub

# From within containers
psql -h hub-postgres -p 5432 -U postgres -d termiq

# JDBC URL
jdbc:postgresql://localhost:5432/olhub?user=postgres&password=olhubpassword

Inter-Container Communication

Containers in Docker Compose can communicate with each other using service names as hostnames. This is important when apps need to connect to each other.

Important: When referencing other containers from within a container, use:

  • Service name: Use the exact name from docker-compose.yml (e.g., ol-hub)
  • Internal port: 8080 (not the host-exposed ports like 8084, 8085)

For example, in .sqol/application.yaml:

generalSettings:
  hubUrl: http://ol-hub:8080   # βœ… Correct - uses service name and internal port
  # NOT: http://localhost:8084  # ❌ Wrong - localhost refers to the container itself

Port Mapping Summary:

From To URL
Your browser OL Terminal http://localhost:8081
Your browser OL Code http://localhost:8082
Your browser SQOL http://localhost:8083
Your browser Hub Integration http://localhost:8084
Your browser OL TermIQ http://localhost:8085
Your browser PostgreSQL postgresql://localhost:5432
SQOL container Hub container http://ol-hub:8080
OL Code container Hub container http://ol-hub:8080
OL Terminal container Hub container http://ol-hub:8080
TermIQ container Hub container http://ol-hub:8080
Hub container PostgreSQL postgresql://hub-postgres:5432/olhub
TermIQ container PostgreSQL postgresql://hub-postgres:5432/termiq

Other service names you can use:

  • ol-terminal or http://ol-terminal:8080
  • ol-code or http://ol-code:8080
  • sqol or http://sqol:8080
  • ol-hub or http://ol-hub:8080
  • ol-termiq or http://ol-termiq:8080
  • hub-postgres or postgresql://hub-postgres:5432

Troubleshooting DNS issues: If you get "UnknownHostException" or DNS resolution errors:

  1. Verify all containers are running: docker ps
  2. Check they're on the same network: docker network inspect apps_app-network
  3. Restart the container having issues: docker restart <container-name>
  4. If still failing, restart all services: ./apps.sh restart --all

πŸ”„ Updating Images

To pull the latest versions of the OpenLegacy tools:

# Update community apps only
./apps.sh pull
docker-compose up -d

# Update all apps including Hub
./apps.sh pull --all
docker-compose --profile all up -d

πŸ” Security Notes

  • The config.env file contains sensitive information (license and passwords)
  • Configuration directories (.ol-terminal/, .olcode/, .sqol/) may contain connection strings and credentials
  • Do not commit config.env to version control
  • Consider adding configuration directories to .gitignore if they contain sensitive data
  • Change default passwords for production use
  • Review configuration files before committing to ensure no secrets are exposed

πŸ“š Additional Resources

🏒 Hub Enterprise & TermIQ Features

When running with --all, you get access to enterprise features:

Hub Integration

  • Automatic API Generation - Transform legacy systems into modern REST APIs
  • Legacy System Analysis - Analyze and optimize mainframe processes
  • Modernization Planning - Create strategic modernization roadmaps with Hub Planner
  • Centralized Security - Enterprise-grade security and access control
  • ETL & CDC - Extract, Transform, Load and Change Data Capture workflows

OL TermIQ (Terminal Intelligence)

  • Session Recording - Capture and replay mainframe terminal sessions
  • Transaction Analysis - Analyze terminal workflows and identify optimization opportunities
  • Automated Testing - Create test scenarios from recorded sessions
  • Process Mining - Extract business process insights from terminal interactions
  • Integration Testing - Test API integrations against real terminal workflows

PostgreSQL Database

  • olhub database - Stores Hub Enterprise configuration, projects, and metadata
  • termiq database - Stores TermIQ session recordings, analysis data, and test scenarios
  • External Access - Available on port 5432 for direct database connections and backup/restore

Learn more at: https://community.openlegacy.com/hub

❓ Need Help?

If you encounter issues:

  1. Check the logs: ./apps.sh logs
  2. Verify your license is correctly configured in config.env
  3. Ensure Docker is running and up to date
  4. Visit the OpenLegacy Community for support

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published