Skip to content

Getting Started

Get your Oracle 26ai database with APEX and ORDS running locally in just a few minutes. This guide will walk you through the complete setup process.

Before you begin, make sure you have the following installed:

  • Docker or Podman (or any docker-compatible container runtime)
  • docker-compose / podman-compose
  • SQLcl with “sql” command in PATH
  • Bash-compatible shell

If you’re using macOS, read the Podman setup guide for additional configuration steps.

We recommend using WSL2 (Windows Subsystem for Linux) for the best experience. Follow these guides:

Terminal window
git clone https://github.com/United-Codes/uc-local-apex-dev.git
cd uc-local-apex-dev
Terminal window
chmod +x ./local-26ai.sh ./setup.sh ./scripts/*.sh
Terminal window
# Setup the environment
./setup.sh
# Start the containers (use podman-compose if using Podman)
docker-compose up -d

First wait until the docker containers are running:

Terminal window
docker-compose up -d
[+] Running 4/4
Network uc-local-apex-dev_default Created
Volume "oradata-26ai" Created
Container local-26ai Healthy
Container local-26ai-ords Started

Then run this command to change the ORDS to use the proxied PL/SQL gateway mode:

Terminal window
docker exec -it local-26ai-ords bash -c \
"ords --config /etc/ords/config config --db-pool default set plsql.gateway.mode proxied"

Wait till http://localhost:8181/ords loads successfully in your browser. You should see the ORDS landing page. This can take 1 to 2 minutes depending on your system performance. You can follow the logs via docker-compose logs --follow.

Terminal window
./scripts/after-first-db-start.sh

Optionally set up local SSL/HTTPS for ORDS.

If you want to save disk space you can remove the apex directory:

Terminal window
rm -rf ./apex
Terminal window
docker-compose restart ords-26ai

If you wait until http://localhost:8181/ords loads successfully, you should now see the APEX module loaded. Click go or go to http://localhost:8181/ords/apex to login.

If you get an error message saying “Account Is Locked” run the following:

Terminal window
./scripts/unexpire-accounts.sh

You can now reload the APEX page at http://localhost:8181/ords/apex and should see no more error messages.

If you don’t want APEX to force you to change passwords, you can also run the disable password expiration script:

Terminal window
./scripts/disable-password-expiration.sh

For easier script access, add the repository to your PATH:

Terminal window
# Add to ~/.zshrc or ~/.bashrc
export PATH="/Users/username/path/to/uc-local-apex-dev:$PATH"

Then use scripts from anywhere:

Terminal window
local-26ai.sh create-user newproject
local-26ai.sh backup-all
local-26ai.sh stop

Now that your environment is running:

  1. Create your first workspace: local-26ai.sh create-user myproject
  2. Explore the available scripts: local-26ai.sh --help
  3. Start developing your APEX applications

Once setup is complete, you can access:

  • Username: admin or the schema/workspace name you created
  • Password: Welcome_1