Skip to content

Containerized Oracle Database 26ai (Free) with APEX, ORDS, and SQLcl ready for PL/SQL development, APEX application building, REST API creation, and AI experimentation using Docker.

License

Notifications You must be signed in to change notification settings

demasy/oracle-database

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Oracle AI Database 26ai Free – Developer Environment

License Oracle Database Docker Node.js APEX ORDS SQLcl Made with Love


Overview

The Oracle AI Database 26ai Free - Developer Environment offers a clean, fully containerized development stack designed for modern application development, in-depth technical learning, and hands-on exploration of Oracle's latest AI-powered capabilities. By combining Oracle Database 26ai Free, APEX 24.2, ORDS 25.3, and SQLcl into a unified Docker-based environment, this setup simplifies installation. It provides a consistent, reproducible workspace across macOS, Linux, and Windows WSL2 environments.

This environment is specifically tailored for PL/SQL developers, APEX builders, database administrators (DBAs), architects, instructors, and the broader Oracle community. It serves as a reliable and portable foundation for rapid prototyping, REST API development, workshops, and classroom training. Users can discover and test the latest features of Oracle Database 26ai, experiment with AI-enhanced SQL and application patterns, and build full-stack solutions all without requiring production-scale infrastructure.

Designed to facilitate learning through practical experience, this setup allows users to start instantly, iterate quickly, reset easily, and explore safely. With its isolated, predictable, and developer-friendly design, this environment accelerates experimentation, promotes community adoption, and helps professionals stay current with Oracle's evolving innovations. Whether you're showcasing new features, teaching future Oracle developers, contributing to community knowledge, or building internal tools, this environment provides a fast, modern, and reliable foundation for your projects.


⚠️ DEVELOPMENT AND TRAINING ENVIRONMENT ONLY

This environment is intended solely for development, testing, evaluation, and educational purposes. It is not secured, hardened, or optimized for production workloads. For production-grade deployments, organizations should consult Oracle's official deployment guidelines and work with Oracle Support or certified Oracle partners to ensure appropriate architecture, security, and compliance.


📑 Table of Contents


Key Features

  • Oracle Database 26ai Free, preconfigured for local development
  • APEX 24.2 + ORDS 25.3 fully integrated and ready to use
  • SQLcl & SQL*Plus included for scripting, labs, and automation
  • Clean Docker Compose setup (Database + Management Server)
  • Compatible with Linux, macOS (Intel/ARM), and Windows WSL2
  • Simple environment variables and port mapping for easy configuration
  • Built-in scripts for APEX installation, health checks, and utilities
  • Developer-friendly structure ideal for training, demos, and workshops

Use Cases


Use Case Description
Isolated Development and Testing Environment Reproducible, containerized Oracle instances that enable developers to test changes, isolate work streams, and keep clean project environments without impacting the local system.
Technology Exploration and Feature Discovery A secure, isolated sandbox for exploring Oracle AI Database’s newest features, enhancements, and modern development workflows, enabling developers to learn through experimentation.
Proof of Concept (POC) A flexible, temporary environment for creating prototypes, validating technical approaches, and showcasing Oracle AI Database capabilities without the complexity of a complete production infrastructure.
APEX Application Development An all-in-one, low-code development platform featuring APEX 24.2, ORDS 25.3, and database services. Ideal for designing, testing, and deploying enterprise-level applications.
Community, Collaboration, and Open Source A shared workspace that supports testing, collaborative projects, hackathons, knowledge exchange, and community-driven innovation within the Oracle ecosystem.
Professional Training and Education A comprehensive, hands-on learning platform focusing on Oracle Database, SQL, PL/SQL, APEX, and Oracle REST Data Services (ORDS). Perfect for instructors, workshops, bootcamps, certification preparation, and Oracle community training projects.

Prerequisites


🖥️ Host System Requirements

Resource Minimum Recommended
Operating System - Linux, macOS, or Windows with WSL2
CPU 2 cores (x86_64 or ARM64) 2+ cores (x86_64 or ARM64)
RAM 4 GB 8 GB or more
Disk Space 12 GB free 20+ GB available disk space
Swap Space - 2 GB (or twice RAM)
Docker Engine - 24.0.0 or later
Docker Compose - v2.20.0 or later

Software Requirements

  • Docker Desktop (or Docker Engine + Docker Compose): Required for running and managing all containers.
  • Git: Used for cloning the repository and pulling updates.
  • Visual Studio Code: Ideal for editing configuration files, environment variables, and scripts. It also offers excellent support through Docker and SQL/PLSQL extensions.
  • Modern Web Browser: Necessary for accessing APEX and ORDS. Supported browsers include Chrome, Firefox, Edge, and Safari.

Network and Port Requirements

  • Internet Connection: Required to download Docker images during the initial setup.
  • Docker Network: The default subnet is 192.168.1.0/24 (this is customizable in the docker-compose.yml file).
  • Firewall Permissions: Docker must be granted permission to create and manage local container networks.
  • Open Host Ports: Ensure that the following ports are not in use by other services:
Port Service Protocol
3000 Demasy Labs Management Server HTTP
8080 / 8443 ORDS and APEX web access HTTP
1521 Oracle Database Listener TCP
5500 Enterprise Manager (optional) HTTP
3000 Management API HTTP
8080 Oracle ORDS/APEX HTTP

📌 Notes

  • Oracle Database, SQLcl, and SQL*Plus are pre-installed in the container - no separate installation required.
  • Oracle APEX and ORDS must be installed manually using the provided script inside the container. bash /usr/demasy/scripts/apex/install-apex.sh

🚀 Getting Started


Setup Guide


Step 1: Clone Repository

git clone https://github.com/demasy/oracle-database.git
cd oracle-database

Step 2: Environment Configuration

Create Environment File
cp .env.example .env
chmod 600 .env
Configure Required Variables

Edit .env and set the following required parameters:

# Absolutely Required - Container Won't Start Without These
ENV_DB_PASSWORD=YourSecurePassword123!
ENV_DB_SID=FREE
ENV_DB_SERVICE=FREEPDB1
ENV_DB_CHARACTERSET=AL32UTF8
ENV_NETWORK_SUBNET=192.168.1.0/24
ENV_NETWORK_GATEWAY=192.168.1.1
ENV_IP_DB_SERVER=192.168.1.110
ENV_IP_APP_SERVER=192.168.1.120
ENV_DB_PORT_LISTENER=1521
ENV_SERVER_PORT=3000
ENV_DB_POOL_MIN=1
ENV_DB_POOL_MAX=5
ENV_DB_POOL_INCREMENT=1
ENV_DB_USER=system
ENV_DB_CLIENT=/opt/oracle/instantclient
ENV_DB_CPU_LIMIT=2
ENV_DB_MEMORY_LIMIT=4g
ENV_SERVER_CPU_LIMIT=3.0
ENV_SERVER_MEMORY_LIMIT=3g
ENV_SRC_ORACLE_SQLCL=https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip
ENV_SRC_ORACLE_SQLPLUS=https://download.oracle.com/otn_software/linux/instantclient/2390000/instantclient-sqlplus-linux.arm64-23.9.0.25.07.zip
ENV_SRC_ORACLE_APEX=https://download.oracle.com/otn_software/apex/apex-latest.zip
ENV_SRC_ORACLE_ORDS=https://download.oracle.com/otn_software/java/ords/ords-latest.zip

# Required Only If Using APEX
ENV_APEX_ADMIN_PASSWORD=YourAPEXPassword123
ENV_APEX_ADMIN_USERNAME=ADMIN
ENV_APEX_EMAIL=your-email@example.com
ENV_APEX_DEFAULT_WORKSPACE=INTERNAL

Security Best Practices:

  • Use strong passwords with mixed case, numbers, and symbols
  • Never commit .env files to version control
  • Restrict file permissions to owner only (chmod 600)
  • Rotate passwords regularly in production environments
  • Use different credentials for each environment

Step 3: Build Services

Build the Docker images with a clean build:

docker-compose build --no-cache

Step 4: Start Services

Option A: Production Mode (Recommended)

Start all services in detached mode:

docker-compose up -d
Option B: Development Mode

Start with real-time logs for debugging:

docker-compose up

To stop, press Ctrl+C and run:

docker-compose down
Option C: Selective Services

Start only specific services:

# Database only
docker-compose up -d demasylabs-oracle-database

# Management server only
docker-compose up -d demasylabs-oracle-server

Step 5: Verify Installation

1. Check Container Status
docker ps --filter "name=oracle-al-database-26ai" --filter "name=demasy-server"

Expected output:

CONTAINER ID   IMAGE                    STATUS                    PORTS
abc123def456   oracle-database:26ai     Up 2 minutes (healthy)    0.0.0.0:1521->1521/tcp
def456ghi789   demasy-server:latest     Up 2 minutes (healthy)    0.0.0.0:3000->3000/tcp
2. Wait for Database Initialization

Monitor database startup (takes 5-10 minutes on first run):

docker logs -f oracle-al-database-26ai

Look for: DATABASE IS READY TO USE!

3. Verify Health Endpoints

Test the management server:

curl http://localhost:3000/health

Expected response:

{
  "status": "healthy",
  "timestamp": "2025-11-25T12:00:00.000Z"
}
4. Test Database Connection

Access the management container:

docker exec -it demasy-server bash

Connect to the database:

sqlcl

Expected output:

Connected to:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0
SQL>

Quick Start

# 1. Clone and setup
git clone https://github.com/demasy/oracle-database.git
cd oracle-database
cp .env.example .env
# Edit .env with your configuration

# 2. Build and start
docker-compose build --no-cache
docker-compose up -d

# 3. Verify
docker ps
docker logs -f oracle-al-database-26ai  # Wait for "READY TO USE"
curl http://localhost:3000/health

# 4. (Optional) Run the APEX & ORDS installer inside the database container
docker exec -it oracle-db-container bash
/usr/demasy/scripts/apex/install-apex.sh
exit

# APEX / ORDS Web UI: open http://localhost:8080 (or your configured port) in a browser


# 5. Connect
docker exec -it demasy-server sqlcl

Architecture

The environment consists of two primary containerized services:


Docker Architecture Diagram

┌───────────────────────────────────────────────────────┐
│                   Docker Environment                  │
│                                                       │
│  ┌──────────────────┐         ┌──────────────────┐    │
│  │  Management      │         │  Oracle AI       │    │
│  │  Server          │◄────────┤  Database 26ai   │    │
│  │  (Node.js)       │         │  + APEX 24.2     │    │
│  │                  │         │  + ORDS 25.3     │    │
│  │  - Health Check  │         │                  │    │
│  │  - API Endpoints │         │  Ports:          │    │
│  │  - SQLcl Client  │         │  - 1521 (DB)     │    │
│  │                  │         │  - 5500 (EM)     │    │
│  │  Port: 3000      │         │  - 8080 (ORDS)   │    │
│  └──────────────────┘         └──────────────────┘    │
│      192.168.1.20                192.168.1.10         │
└───────────────────────────────────────────────────────┘

Database Service (demasylabs-oracle-database)

Component Details
Base Image Oracle AI Database 26ai Free Edition
Container Name oracle-al-database-26ai
Database Name DEMASY
Exposed Ports • 1521 (Database Listener)
• 5500 (Enterprise Manager Express)
Network 192.168.1.10
Resources • CPU: 1 core
• Memory: 3GB
Health Check Every 30s via SQL connectivity test

Management Server (demasylabs-oracle-server)

Component Details
Base Image Node.js 20.19.4
Container Name demasy-server
Exposed Port 3000 (API & Health Check)
Network 192.168.1.20
Resources • CPU: 1 core
• Memory: 512MB
Integrations • Oracle SQLcl
• Oracle APEX
• Oracle Instant Client 23.7
Connection Pool • Min: 1
• Max: 5
• Increment: 1

📋 Version Information

Component Version Release Date Status
Oracle AI Database 26ai Free 2025 ✅ Production-Ready
Oracle APEX 24.2.0 October 2024 ✅ Current Release
Oracle ORDS 25.3.1 November 2024 ✅ Current Release
Oracle SQLcl 25.3 November 2024 ✅ Current Release
Oracle Instant Client 23.7 2024 ✅ Stable
Node.js 20.19.4 LTS 2024 ✅ Long-Term Support
Docker Engine 24.0.0+ - ✅ Required
Docker Compose v2.20.0+ - ✅ Required

🖥️ Platform Compatibility

Platform Architecture SQL*Plus SQLcl APEX Status
Linux (Ubuntu/Debian) AMD64 (x86_64) Fully Supported
Linux (Ubuntu/Debian) ARM64 (aarch64) ⚠️ Fallback Supported
macOS (Intel) AMD64 (x86_64) Fully Supported
macOS (Apple Silicon) ARM64 (M1/M2/M3) ⚠️ Fallback Supported
Windows (WSL2) AMD64 (x86_64) Supported

⚠️ Note: SQL*Plus is not natively available on ARM64. SQLcl is automatically used as a fallback.


Built-in Tools & Scripts

All scripts are organized in a structured directory layout for better maintainability:

Container Path Structure:

/usr/demasy/scripts/
├── cli/                    # User-facing CLI tools
│   ├── sqlcl-connect.sh   # SQLcl database connection
│   └── sqlplus-connect.sh # SQL*Plus connection
│
├── oracle/
│   ├── admin/             # Administrative tools
│   │   └── healthcheck.sh # System health monitoring
│   │
│   ├── apex/              # APEX management
│   │   ├── install.sh    # APEX + ORDS installation
│   │   ├── uninstall.sh  # APEX removal
│   │   ├── start.sh      # Start ORDS
│   │   └── stop.sh       # Stop ORDS


Command Aliases:

Command Alias Target Script Purpose
sqlcl /usr/demasy/scripts/cli/sqlcl-connect.sh Connect via SQLcl
sqlplus /usr/demasy/scripts/cli/sqlplus-connect.sh Connect via SQL*Plus
oracle /usr/demasy/scripts/cli/sqlcl-connect.sh Alias for SQLcl
healthcheck /usr/demasy/scripts/oracle/admin/healthcheck.sh Run health check
install-apex /usr/demasy/scripts/oracle/apex/install.sh Install APEX
uninstall-apex /usr/demasy/scripts/oracle/apex/uninstall.sh Remove APEX
start-apex /usr/demasy/scripts/oracle/apex/start.sh Start ORDS
stop-apex /usr/demasy/scripts/oracle/apex/stop.sh Stop ORDS

📝 Note: All scripts are organized using best practices with a flat structure (max three levels). For detailed documentation, see src/scripts/README.md.


📚 Documentation

For comprehensive guides, see the src/docs directory:


Change Log / Release History


Version Date Type Description
v1.0.0 2025-12-01 Release Foundation Release initial public release including Oracle 26ai Free, APEX 24.2, ORDS 25.3, SQLcl, Docker Compose setup, core scripts, and full documentation.

[v1.0.0] – 2025-12-01

Added

  • Oracle Database 26ai Free container image
  • APEX 24.2, ORDS 25.3, SQLcl integration
  • Docker Compose setup (DB + Management Server)
  • Core shell scripts (healthcheck, install-apex, SQLcl / SQL*Plus helpers)
  • Complete documentation, including architecture diagram, environment variable descriptions, usage instructions, and directory structure

Contributors

Author GitHub & LinkedIn account
Ahmed El-Demasy
Ahmed El-Demasy (Creator & Maintainer)
Oracle Solutions Architect
Oracle ACE

Contributing to the Oracle AI Database 26ai Free - Docker Development Environment.

We welcome you to join and contribute to the Oracle AI Database 26ai Free - Docker Development Environment. If you are interested in helping, please don’t hesitate to contact us at founder@demasy.io


Suggestions & Issues

If you find any issue or have a great idea in mind, please create an issue on GitHub.


License

This project is licensed under the MIT License - see the LICENSE file for details.



Code with love ❤️ in Egypt for the Oracle development community.

About

Containerized Oracle Database 26ai (Free) with APEX, ORDS, and SQLcl ready for PL/SQL development, APEX application building, REST API creation, and AI experimentation using Docker.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published