{"id":18554372,"url":"https://github.com/oracle/adb-free","last_synced_at":"2026-01-23T22:09:54.873Z","repository":{"id":195056166,"uuid":"692057136","full_name":"oracle/adb-free","owner":"oracle","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-19T18:51:57.000Z","size":40,"stargazers_count":60,"open_issues_count":14,"forks_count":8,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-01-21T16:02:31.911Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"upl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oracle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-15T13:16:37.000Z","updated_at":"2026-01-10T17:12:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"80a8fe79-fbd0-428c-b044-b741dd5b9d29","html_url":"https://github.com/oracle/adb-free","commit_stats":null,"previous_names":["oracle/adb-free"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/oracle/adb-free","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fadb-free","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fadb-free/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fadb-free/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fadb-free/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oracle","download_url":"https://codeload.github.com/oracle/adb-free/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fadb-free/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28701038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T17:25:48.045Z","status":"ssl_error","status_checked_at":"2026-01-23T17:25:47.153Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T21:21:37.244Z","updated_at":"2026-01-23T22:09:54.867Z","avatar_url":"https://github.com/oracle.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Oracle Autonomous Database Free Container Image Documentation\n\nOracle Autonomous Database Free Container image supports 2 types of database workload types; `ADW` and `ATP`. These are similar to Transaction Processing and Data Warehouse workload type databases in Autonomous Database Serverless Cloud service.\n\nFollowing key features are supported:\n\n- Oracle Rest Data Services (ORDS)\n- APEX\n- Database Actions\n- Mongo API\n- Oracle Estate Explorer (OEE)\n\nThe storage size is limited to 20 GB for each Database\n\n## Using this image\n\n### Database versions\n\nFrom the [released images](https://github.com/oracle/adb-free/pkgs/container/adb-free), choose the database version and corresponding image to work with.\n\nWe use the following naming convention:\n\n| Database version | Latest image tag | Specific release image tag | Supported Arch |\n|------------------|------------------|----------------------------|---------------------|\n| 26ai | latest-26ai | 25.11.2.2-26ai | linux/arm64 and linux/amd64 |\n| 23ai | latest-23ai      | 25.9.3.2-23ai              |  linux/arm64 and linux/amd64   |\n| 19c | latest           | 25.10.2.1                   |   linux/amd64                   |\n\n\u003e [!NOTE]\n\u003e ADBS-25.9.3.2-23ai was the last 23ai release version. We now publish only 26ai and 19c adb-free images.\n\n\u003e [!NOTE]\n\u003e Often, images will have an additional \"important feature\" tag alongside release version tags. \n\u003e For e.g. `adb-free:select_ai_agent`\n\n\n### Container CPU/memory requirements\n\nOracle Autonomous Database Free container needs 4 CPUs and 8 GiB memory\n\n### Install podman\n\nPlease refer the official documentation to install podman on [Linux](https://podman.io/docs/installation#installing-on-linux), [Windows](https://podman.io/docs/installation#windows) or [Mac](https://podman.io/docs/installation#macos)\n\n\n### Start podman machine on MacOS or Windows\n\nContainers need the Linux kernel. Run following commands to start a podman virtual machine\n\n```bash\npodman machine init\npodman machine set --cpus 4 --memory 8192\npodman machine start\n```\n\n\u003e [!NOTE]\n\u003e 26ai images are multi-arch i.e. images are natively built for ARM64 and AMD64 platforms.\n\u003e 19c image is natively built for linux/amd64 platform only. To run a 19c adb-free container on ARM machines you will need colima emulation\n\u003e Read [FAQ](#faq) for instructions on how to setup Colima VMs\n\n### Starting an ADB Free container\n\n\u003e Note: Although the instructions use `podman`, the image format is compliant with both Open Container Initiative (OCI) and Docker.\n\u003e ADB container works seamlessly with both OCI and Docker container runtimes. You can also use `docker` to start the container.\n\nTo start an Oracle Autonomous Database Free container for **ATP** workload, run the following command\n\n```bash\npodman run -d \\\n-p 1521:1522 \\\n-p 1522:1522 \\\n-p 8443:8443 \\\n-p 27017:27017 \\\n-e WORKLOAD_TYPE=ATP \\\n-e WALLET_PASSWORD=*** \\\n-e ADMIN_PASSWORD=*** \\\n--cap-add SYS_ADMIN \\\n--device /dev/fuse \\\n--name adb-free \\\nghcr.io/oracle/adb-free:latest-26ai\n```\n\n\u003e Note: Use `ghcr.io/oracle/adb-free:latest` for 19c\n\n#### On first startup of the container:\n\n- User mandatorily has to change the admin passwords. Please specify the password using the environment variable\n`ADMIN_PASSWORD`\n\n- Wallet is generated using the wallet password `WALLET_PASSWORD`\n\n\nFollowing table explains the environment variables passed to the container\n\n| Environment variable | Description                                                                                                                                                                               |\n|----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| WORKLOAD_TYPE       | Can be either `ATP` or `ADW`. Default value is `ATP`                                                                                                                                      |\n| DATABASE_NAME       | Database name should contain only alphanumeric characters. if not provided, the Database will be called either `MYATP` or `MYADW` depending on the passed workload type                   |\n| ADMIN_PASSWORD       | Admin user password must be between 12 and 30 characters long and must include at least one uppercase letter, one lowercase letter, and one numeric. The password cannot contain username |\n| WALLET_PASSWORD      | Wallet password must have a minimum length of eight characters and contain alphabetic characters combined with numbers or special characters.                                             |\n| ENABLE_ARCHIVE_LOG   | To enable archive logging in the database. Default value is True. To turn off archive logging set the value to False                                                                                                                         |\n\n\n\u003e **_Note_**: For OFS mount, container should start with `SYS_ADMIN` capability. Also, virtual device `/dev/fuse` should be accessible\n\n#### Ports\n\nNote the following ports which are forwarded to the container process\n\n| Port | Description                          |\n|------|--------------------------------------|\n| 1521 | TLS                                  |\n| 1522 | mTLS                                 |\n| 8443 | HTTPS port for ORDS / APEX and Database Actions |\n| 27017 | Mongo API                            |\n\n#### HTTP proxy\nIf you are behind a corporate proxy, there are 2 ways to configure the database\nto use the proxy settings\n\n1. Set the `HTTP_PROXY` database property. This is used by packages like `DBMS_CLOUD`\n\n```sql\nexec DBMS_CLOUD_CONTAINER_ADMIN.set_database_property('HTTP_PROXY', 'www-my-corp-proxy.com:80/');\n```\n\n2. Use `UTL_HTTP.set_proxy` to set proxy for HTTP requests sent using UTL_HTTP\n\n```sql\nexec UTL_HTTP.SET_PROXY('www-my-corp-proxy.com');\n```\n\n\n### adb-cli\n\n`adb-cli` can be used to perform database operations after container is up and running\n\nTo use adb-cli, you can define the following alias for convenience\n```bash\nalias adb-cli=\"podman exec \u003ccontainer_name\u003e adb-cli\"\n```\n\n#### Available commands\n\n```bash\n\u003e\u003e adb-cli --help\n\nUsage: adb-cli [OPTIONS] COMMAND [ARGS]...\n\n  ADB-S Command Line Interface (CLI) to perform container-runtime database\n  operations\n\nOptions:\n  -v, --version  Show the version and exit.\n  --help         Show this message and exit.\n\nCommands:\n  add-database\n  change-password\n```\n\n#### Add Database\n\nYou can add a database using the `add-database` command\n\n```bash\nadb-cli add-database --workload-type \"ADW\" --admin-password \"Welcome_1234\"\n```\n\n#### Change Password\n\nTo change password for Admin user, use the following command\n\n```bash\nadb-cli change-password --database-name \"MYADW\" --old-password \"Welcome_1234\" --new-password \"Welcome_12345\"\n```\n\n\n### Migrating data across containers\n\n#### Mount Volume\nTo persist data across container restarts and removals, you should mount a volume at `/u01/data` and follow the steps mentioned in the [documentation to migrate PDB data across containers](https://docs.oracle.com/en-us/iaas/autonomous-database-serverless/doc/autonomous-docker-container.html#GUID-03B5601E-E15B-4ECC-9929-D06ACF576857)\n\n```bash\npodman run -d \\\n-p 1521:1522 \\\n-p 1522:1522 \\\n-p 8443:8443 \\\n-p 27017:27017 \\\n-e WORKLOAD_TYPE=ATP \\\n-e WALLET_PASSWORD=*** \\\n-e ADMIN_PASSWORD=*** \\\n--cap-add SYS_ADMIN \\\n--device /dev/fuse \\\n--name adb-free \\\n--volume adb_container_volume:/u01/data \\\nghcr.io/oracle/adb-free:latest-26ai\n```\n\n\n### Connecting to Oracle Autonomous Database Free container\n\n#### ORDS/APEX/Database Actions\n\nContainer hostname is used to generate self-signed SSL certs to serve HTTPS traffic on port 8443. APEX and Database Actions can be accessed using the container host (or simply localhost)\n\n| Application      | URL                                                                           |\n|------------------|------------------------------------------------------------------------------|\n| APEX             | https://localhost:8443/ords/apex                           |\n| Database Actions | https://localhost:8443/ords/sql-developer  |\n\n\u003e **_Note:_**  For additional databases plugged in using `adb-cli add-database` command, please use the URL formats `https://localhost:8443/ords/{database_name}/apex` and `https://localhost:8443/ords/{database_name}/sql-developer` to access APEX and Database Actions respectively.\n\n#### Wallet Setup\n\nIn the container, TLS wallet is generated at location `/u01/app/oracle/wallets/tls_wallet`\n\nCopy wallet to your host.\n\n```bash\npodman cp adb-free:/u01/app/oracle/wallets/tls_wallet /scratch/tls_wallet\n```\nIn this example, wallet is copied to `/scratch/tls_wallet` folder\n\nPoint `TNS_ADMIN` environment variable to the wallet directory\n```bash\nexport TNS_ADMIN=/scratch/tls_wallet\n```\n\nIf you want to connect to a remote host where the ADB free container is running, replace `localhost` in `$TNS_ADMIN/tnsnames.ora` with the remote host FQDN\n\n```bash\nsed -i 's/localhost/my.host.com/g' $TNS_ADMIN/tnsnames.ora\n```\n\n#### Available TNS aliases\n\nSimilar to Autonomous Database Serverless Cloud service, use any one of the following aliases to connect to ADB free container.\n\n##### MYATP TNS aliases\n\nFor mTLS use the following\n- myatp_medium\n- myatp_high\n- myatp_low\n- myatp_tp\n- myatp_tpurgent\n\nFor TLS use the following\n\n- myatp_medium_tls\n- myatp_high_tls\n- myatp_low_tls\n- myatp_tp_tls\n- myatp_tpurgent_tls\n\n##### MYADW TNS aliases\n\nFor mTLS use the following\n- myadw_medium\n- myadw_high\n- myadw_low\n\nFor TLS use the following\n- myadw_medium_tls\n- myadw_high_tls\n- myadw_low_tls\n\nTNS alias mappings to their connect string can be found in` $TNS_ADMIN/tnsnames.ora` file.\n\n#### TLS walletless connection\n\nTo connect without a wallet, you need to update your client's truststore with the self-signed certificate generated at container start\n\n##### Linux system truststore\n\nCopy `/u01/app/oracle/wallets/tls_wallet/adb_container.cert` from container and update your system truststore\n\n```bash\npodman cp adb-free:/u01/app/oracle/wallets/tls_wallet/adb_container.cert adb_container.cert\nsudo cp adb_container.cert /etc/pki/ca-trust/source/anchors\nsudo update-ca-trust\n```\n\n##### MacOS system trustsore\n\nFor MacOS, please refer the [support guide](https://support.apple.com/guide/keychain-access/add-certificates-to-a-keychain-kyca2431/mac) to add certificate to keychain\n\n##### JDK truststore\n\nFor JDK truststore update, you can use `keytool`\n\nLinux example:\n\n```bash\nsudo keytool -import -alias adb_container_certificate -keystore $JAVA_HOME/lib/security/cacerts -file adb_container.cert\n```\n\nMacOS example:\n```bash\nsudo keytool -import -alias adb_container_certificate -file adb_container.cert -keystore  /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/lib/security/cacerts\n```\n\n#### SQL Developer Desktop application\n\nCopy the wallet from the container and zip it\n\n```bash\npodman cp adb-free:/u01/app/oracle/wallets/tls_wallet /scratch/tls_wallet\n\nzip -j /scratch/tls_wallet.zip /scratch/tls_wallet/*\n\n```\n\nOnce you zip the Wallet, open SQLDeveloper and follow the below steps:\n\n1. Click on File -\u003e New -\u003e Database Connection\n\n2. Enter username / password\n\n3. From \"Connection Type\" dropdown choose \"Cloud Wallet\"\n\n4. Under \"Configuration file\" browse path to your wallet.zip\n\n5. Select Service from the dropdown\n\n6. Click on Connect\n\n\n\n#### SQL*Plus\n\nIn this example, we connect using the alias `myatp_low`\n```text\nsqlplus admin/\u003cmyatp_admin_password\u003e@myatp_low\n\nSQL*Plus: Release 21.0.0.0.0 - Production on Wed Jul 26 22:38:27 2023\nVersion 21.9.0.0.0\n\nCopyright (c) 1982, 2022, Oracle.  All rights reserved.\n\nLast Successful login time: Wed Jul 26 2023 16:36:16 +00:00\n\nConnected to:\nOracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production\nVersion 19.20.0.1.0\n\nSQL\u003e\n```\n\n#### Python\n\nInstall the python-oracledb driver for Oracle Database\n```bash\npython3 -m pip install oracledb\n```\n\n```python\nimport oracledb\nconn = oracledb.connect(user=\"admin\", password=\"\u003cmyadw_admin_password\u003e\", dsn=\"myadw_medium\", config_dir=\"/scratch/tls_wallet\", wallet_location=\"/scratch/tls_wallet\", wallet_password=\"***\")\ncr = conn.cursor()\nr = cr.execute(\"SELECT 1 FROM DUAL\")\nprint(r.fetchall())\n\n\u003e\u003e [(1,)]\n\n```\n\n\n### Create an app user\n\nConnect as Admin\n```bash\nsqlplus admin/\u003cmyatp_admin_password\u003e@myatp_medium\n```\nCreate user as shown below:\n```sql\nCREATE USER APP_USER IDENTIFIED BY \"\u003cmy_app_user_password\u003e\" QUOTA UNLIMITED ON DATA;\n\n-- ADD ROLES\nGRANT CONNECT TO APP_USER;\nGRANT CONSOLE_DEVELOPER TO APP_USER;\nGRANT DWROLE TO APP_USER;\nGRANT RESOURCE TO APP_USER;  \n\n\n-- ENABLE REST\nBEGIN\n    ORDS.ENABLE_SCHEMA(\n        p_enabled =\u003e TRUE,\n        p_schema =\u003e 'APP_USER',\n        p_url_mapping_type =\u003e 'BASE_PATH',\n        p_url_mapping_pattern =\u003e 'app_user',\n        p_auto_rest_auth=\u003e TRUE\n    );\n    commit;\nEND;\n/\n\n-- QUOTA\nALTER USER APP_USER QUOTA UNLIMITED ON DATA;\n\n```\n\n### Oracle Estate Explorer (OEE)\n\n[Oracle Estate Explorer](https://www.oracle.com/database/cloud-migration/estate-explorer/) is a tool that enables customers to\nprogrammatically evaluate groups of Oracle databases for migration readiness to Oracle’s Autonomous Database (ADB). The output from OEE\nprovides a high-level estate overview of the tested group of databases, ranks them according to their alignment with ADB pre-requisites and\ndelivers a graded relative effort of any remediation required.\n\nThe OEE APEX app is installed in the adb-free images and is available to use out-of-the-box\n\nFollowing steps are required to launch the OEE app:\n\n1. Login as Database admin and set a password for the `MPACK_OEE` user\n\n```sql\nALTER USER MPACK_OEE IDENTIFIED BY \u003cPASSWORD\u003e\n```\n\n2. Visit the APEX URL using https://localhost:8443/ords/apex\n\n3. Login to the `MPACK_OEE` APEX workspace using the password set in Step 1\n\n4. Change the MPACK_OEE’s APEX account password. A warning page will be displayed after changing the MPACK_OEE’s APEX account password, please ignore it and click on Application Builder to launch the OEE application.\n\n5. On the application home page, click \"Run Application\" to open the OEE app in a new browser tab.\n\n## F.A.Q\n\n### How can I run 19c Oracle Autonomous Database Free container on ARM64 arch i.e. machines with M1/M2 chips ?\n\u003e [!IMPORTANT]\n\u003e 23ai images are multi-arch and natively built for both linux/arm64 and linux/amd64 CPU architectures\n\nUse colima + docker to emulate x86_64 arch. Replace podman with docker in all commands.\n\n### How can I install colima and docker on machines with M1/M2 chips ?\n```bash\nbrew install docker\nbrew install docker-compose\nbrew install colima\nbrew reinstall qemu\n```\n\n### How can I start Colima x86_64 Virtual Machine with minimum memory/cpu requirements for 19c ?\n\n\u003e [!IMPORTANT]\n\u003e Running x86_64 arch containers can have issues translating instructions for ARM. We give higher memory to the VM to avoid such issues\n\n```bash\ncolima start --cpu 4 --memory 10 --arch x86_64\n```\n\n### How can I start Colima x86_64 Virtual Machine using Apple's new virtualization framework - Rosetta for 19c ?\n\n\u003e [!IMPORTANT]\n\u003e Running x86_64 arch containers can have issues translating instructions for ARM. We give higher memory to the VM to avoid such issues\n\n\n```bash\nsoftwareupdate --install-rosetta\ncolima stop\ncolima delete\ncolima start --cpu 4 --memory 10 --arch x86_64 --vm-type vz --vz-rosetta\n\n# Verify if Colima is using the new profile\ndocker context ls\ncolima status\n```\n\n### How can I start podman VM on Mac with minimum memory/cpu requirements ?\n```bash\npodman machine init\npodman machine set --cpus 4 --memory 8192\npodman machine start\n```\n\n## Contributing\n\nThis project welcomes contributions from the community. Before submitting a pull request, please [review our contribution guide](./CONTRIBUTING.md)\n\n## Security\n\nPlease consult the [security guide](./SECURITY.md) for our responsible security vulnerability disclosure process\n\n## License\n\nCopyright (c) 2025 Oracle and/or its affiliates.\n\nReleased under the Universal Permissive License v1.0 as shown at\n\u003chttps://oss.oracle.com/licenses/upl/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle%2Fadb-free","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foracle%2Fadb-free","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle%2Fadb-free/lists"}