Databases 1 service 3 GiB RAM 20 GB disk

Oracle Database Free

The actual Oracle Database, free for production under the FUTC license - 2 cores, 2 GB RAM, 12 GB data, zero invoices.

One-click deploy, from $25/mo on a Miget plan.

Sometimes the requirement is simply "Oracle": a vendor app certified against it, a team fluent in PL/SQL, an integration test suite that needs the real thing. Oracle Database Free is Oracle’s answer - the genuine database engine (the 26ai line), licensed under the Free Use Terms and Conditions, which explicitly allow internal production use, not just dev and test.

The catch is enforced by the software, not a sales call: 2 CPU cores, 2 GB of memory, 12 GB of user data, one instance per host. Within that envelope it is a full Oracle: PL/SQL, partitioning, JSON-relational duality, the works.

This template runs the gvenzl/oracle-free image (maintained by Oracle’s own database product manager, redistribution blessed by the FUTC): multi-arch, faster startup than the official build, and an app schema user bootstrapped in FREEPDB1 on first start. Internal-only, 20 GB volume, two passwords.

#what you get

  • Real Oracle Database (26ai line) - PL/SQL, JSON duality, partitioning
  • FUTC license: production use is explicitly permitted, free
  • Caps enforced in software: 2 cores, 2 GB RAM, 12 GB user data
  • Multi-arch image with app user bootstrap (FREEPDB1)
  • Faststart image variant available for quick cold starts
  • Internal-only single node + 20 GB volume

#topology

ServiceRolePublic
oracleOracle Database Free (:1521, service FREEPDB1)no (by design)

#miget sizing

// this stack needs

3 GiB RAM · 20 GB disk · 1 service

The database caps itself at 2 GB SGA+PGA; the third gigabyte covers listener, server processes, and OS overhead. First start initializes the database onto the volume and takes a few minutes - later starts are quick.

Hobby - recommended fit

$25/mo

2 vCPU · 4 GiB · 80 GiB disk

Headroom for your own apps: 8 GiB at $49/mo

Professional - production

$43/mo

2 vCPU · 4 GiB · 25 GiB disk

Dedicated resources, production SLOs - plan details

One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.

#vs. the managed service

What the hosted equivalents charge, against the flat Miget plan this stack fits on. Prices as of June 2026, sources linked.

ServicePlanMonthlyWhat you get
Oracle Database Free on Miget 4 GiB plan$25this whole stack, flat - no usage meters, and room left for your own apps
AWS RDS for OracleSE2 (license incl.), db.t3.small~$572 vCPU / 2 GiB + 20 GiB storage, Single-AZ
OCI Base DatabaseStandard, ECPU~$172minimums: 4 ECPUs + 256 GB storage, license included
Oracle Autonomous DBServerless (always-on)~$4932-ECPU minimum with auto-stop off; serverless pays off only with real idle time

OCI also has an Always Free tier (the honest budget option) - but it lives on OCI. This template puts the same free engine next to your apps.

#vs. other PaaS

Estimated monthly cost of running this exact stack (3 GiB RAM, 20 GB disk, 1 container) elsewhere, from published June 2026 rates.

PlatformEst. monthlyNotes
Miget $25 flat compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan
Heroku ~$150 no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown
Render ~$43 per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service
DO App Platform ~$41 no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here)
Railway ~$33 usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top
Fly.io ~$21 cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra

Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.

#deploy it

On Miget

  1. Create a Compose Stack in app.miget.com pointing at the templates repository
  2. Set the stack path to oracle
  3. Set the required variables:
    • ORACLE_PASSWORD, SYS / SYSTEM / PDBADMIN password
    • APP_USER_PASSWORD, password for the bootstrapped app schema user in FREEPDB1
  4. Deploy. Miget layers compose.miget.yaml (RAM, privacy, volumes, managed services) automatically

Locally first?

Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:

git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/oracle
docker compose up -d

Same files, same behavior. The template README covers connection strings and scaling notes.

#faq

Is Oracle Database Free actually legal for production?

Yes - the Free Use Terms and Conditions permit "running the Programs for your own internal business operations" alongside dev, test, and demo use. No support contract, no fees, and the resource limits are enforced by the software itself rather than by audits.

What happens when I hit the 12 GB data limit?

The database raises ORA-12954 and stops accepting new data - it does not bill you, it just stops. If your data outgrows Free, that is the moment to discuss a real Oracle license (and a bigger plan), or to ask whether Postgres could take the workload.

Why the gvenzl image instead of Oracle’s official one?

It is maintained by Oracle’s database product management, the FUTC explicitly permits redistribution, and it is better operationally: amd64 + arm64, slimmer variants, faststart builds, and APP_USER bootstrap. The template works with the official container-registry.oracle.com/database/free image too - swap the image and use ORACLE_PWD.

How do applications connect?

From the same Miget project: oracle:1521/FREEPDB1 - e.g. jdbc:oracle:thin:@//oracle:1521/FREEPDB1 with the app user, or sqlplus app/<password>@//oracle:1521/FREEPDB1. The instance is private with no ingress route.

How does this compare to Oracle’s cloud database pricing?

OCI’s always-on managed Oracle offerings meter ECPUs and storage by the hour and land at multiples of this $25/month plan. Oracle even has an Always Free tier on OCI - the honest comparison - but it ties you to OCI; this template puts the same free engine next to your apps on your platform.

Ship Oracle Database Free today

One compose stack, 3 GiB of RAM, from $25/month flat, and it runs on your laptop with the same files.