What you'll have at the end
A working NightOwl dashboard showing live Laravel telemetry, with all data stored in an Aiven-managed PostgreSQL service on the cloud and region you picked. Total monthly cost: from $5 for NightOwl Hobby, $0 for the database.
Why Aiven free works for NightOwl
Three properties differentiate Aiven from the more popular serverless options (Supabase, Neon, Vercel):
- Always-on compute, no cold starts. Unlike Neon/Vercel which autosuspend after idle, Aiven free runs continuously. The first dashboard load of the day feels the same as the hundredth.
- Multi-cloud and broad region selection. AWS, GCP, Azure regions all available on free tier. If your Laravel app runs in eu-west-3 specifically, Aiven probably has a Postgres in eu-west-3.
- 1 GB storage — comfortably more than Supabase (500 MB) or Neon (0.5 GB).
Three catches worth knowing up front:
- Free-plan compute is small and always small. No autoscaling. Aggregations over a few days of telemetry can take 1-3 seconds where dedicated paid compute would take 100-200 ms. This is Aiven's Free Plan, not NightOwl — verify by running the same query in Aiven's own web SQL console; it'll be just as slow.
- Provisioning takes a few minutes. Aiven actually spins up real cloud infrastructure; expect 2-5 minutes from "create" to "available."
- Free Plan terms can shift. Aiven has changed pricing/free-tier terms several times over the years. Verify current limits on the signup page before assuming this guide's specifics still hold; the setup flow is stable, the quotas are not.
Step 1 — Sign up and start a Free Plan project
Head to aiven.io and create an account. After signup, you'll be prompted to create your first project — name it (e.g. "nightowl-telemetry") and pick the Free Plan tier when offered.
Step 2 — Provision a PostgreSQL service
In the project, click Create service → PostgreSQL. Three things to configure:
- Service plan — pick Free Plan (sometimes labelled "Hobby" depending on Aiven's UI version)
- Cloud provider — AWS, GCP, or Azure. Pick whichever matches your Laravel host's cloud for lowest drain latency
- Region — same logic; pick the region your Laravel app runs in
Click Create service. Provisioning takes 2-5 minutes — Aiven is spinning up real cloud infrastructure on your behalf. You'll see the service status transition from Rebuilding → Running.
Step 3 — Copy the Service URI
Once the service status shows Running, open it. The service overview page shows a Service URI field — this is the ready-to-use connection string with credentials and SSL parameters baked in.
Format: postgres://avnadmin:[password]@[hostname].aivencloud.com:[port]/defaultdb?sslmode=require. Copy it as-is.
Notice the sslmode=require at the end — Aiven enforces TLS on every connection. Don't strip it.
Step 4 — Register the app in NightOwl
Sign in to the NightOwl dashboard. Click New application and name it. The form has five separate database fields — parse the Aiven Service URI by hand:
- db_host — Aiven hostname (e.g.
pg-xxx.aivencloud.com) - db_port — the high port from the URI (Aiven uses non-standard ports like
12345, not 5432) - db_database —
defaultdb(Aiven's default) - db_username —
avnadmin - db_password — the password embedded in the URI
Click Test connection. NightOwl runs SELECT 1 over TLS (libpq negotiates automatically against Aiven's TLS-only port). On success the form unlocks. Save, and NightOwl issues an agent token. Copy it.
Step 5 — Install the agent and verify telemetry
In your Laravel project root:
composer require nightowl/agent
Add the same five DB connection values plus the agent token to your Laravel .env:
NIGHTOWL_DB_HOST=pg-xxx.aivencloud.com
NIGHTOWL_DB_PORT=12345
NIGHTOWL_DB_DATABASE=defaultdb
NIGHTOWL_DB_USERNAME=avnadmin
NIGHTOWL_DB_PASSWORD=[password]
NIGHTOWL_TOKEN=[agent token from Step 4]
NIGHTOWL_APP_ID=[app id from Step 4]Then run the installer and start the agent:
php artisan nightowl:install
php artisan nightowl:agent nightowl:install publishes config/nightowl.php and runs schema migrations against your Aiven database. Hit any route in your Laravel app. Within a few seconds it appears in NightOwl's Requests tab. Aiven is always-on, so there's no first-request wake-up cost — the latency you see here is your steady-state experience.
Step 6 — Tune retention for the 1 GB Free Plan
Aiven's 1 GB is double Supabase/Neon's free quota — you can be slightly less aggressive. Drop retention to 5 days. In your Laravel .env:
NIGHTOWL_RETENTION_DAYS=5
Schedule the prune in routes/console.php:
use Illuminate\Support\Facades\Schedule;
Schedule::command('nightowl:prune')->daily(); nightowl:prune deletes rows older than the retention window across all 11 telemetry tables. Single retention value — no per-table tuning at the moment.
Lock the service down (optional)
Aiven supports IP allowlisting under Service → IP allowlist. If you allowlist, remember the NightOwl hosted dashboard also reads from the database — you'll need its egress IPs alongside your Laravel host's. Aiven also offers private networking (VPC peering) on paid tiers if you want to skip public-IP allowlisting entirely.
For getting-started, leave the allowlist open and rely on the strong credentials Aiven generates. Add IP restrictions before you put anything operationally meaningful in the database.
When to upgrade to Aiven Startup
Three signals it's time to leave the Free Plan:
- Dashboard pages take more than ~2 seconds to load. Hobby compute is the bottleneck; Startup tiers usually drop query times by 5-10×.
- Storage hits 80% of 1 GB even with 5-day retention. Startup gives you proportionally more storage and bigger compute.
- You need automated backups or a failover replica. Free Plan has neither; the smallest Startup tier adds both.
The smallest Startup PostgreSQL plan typically lands around $25-30/mo depending on cloud and region. Total stack: $15 NightOwl Team + ~$25-30 Aiven = ~$40-45/month, all-in, with always-on compute and real backups.
Aiven vs Supabase vs Neon vs Vercel for NightOwl
- Aiven — multi-cloud, always-on, biggest free storage (1 GB), pickable AWS/GCP/Azure regions. Best for ops/DevOps audiences and apps that need precise region pinning.
- Supabase — always-on free compute, 500 MB, broad ecosystem. Good middle ground.
- Neon — serverless billing, branching, 0.5 GB, cold starts after idle.
- Vercel Postgres — Neon under Vercel's UI. Best when you're already on Vercel.
THE QUICK PATH
Already have an Aiven Service URI? Skip to install.
Two commands plus the agent token. Aiven's TLS-required connection just works.
composer require nightowl/agent
php artisan nightowl:installFrom $5/month flat for NightOwl. 14-day free trial. Database stays $0 on Aiven Free Plan.