---
title: "Deploy MariaDB di Helipod dan Hubungkan ke Aplikasi"
url: "https://helipod.io/blog/cara-deploy-mariadb-di-helipod"
date: "2026-05-06"
updated: "2026-05-06"
author: "Tim Helipod"
tags: ["mariadb", "database", "tutorial", "internal-network"]
excerpt: "Cara deploy MariaDB di Helipod. Database berjalan di internal network, hanya bisa diakses service lain di project yang sama via internal DNS."
---

# Deploy MariaDB di Helipod dan Hubungkan ke Aplikasi

MariaDB adalah database relasional yang kompatibel dengan MySQL, ringan, cepat, dan cocok untuk aplikasi web seperti WordPress, Laravel, atau backend Node.js. Di Helipod, MariaDB berjalan di **internal network only**: tidak bisa diakses dari luar cluster, hanya bisa dihubungkan dari service lain di project yang sama via internal DNS.

Di artikel ini kita akan deploy MariaDB, catat internal DNS-nya, lalu hubungkan ke aplikasi lain di project yang sama.

## Yang Kamu Butuhkan

- Akun Helipod (daftar gratis di [helipod.io](https://helipod.io))
- Project yang sudah dibuat di Helipod

## Langkah 1: Tambah Service Database

Buka project kamu di dashboard Helipod, lalu klik **+ Add Service** di pojok kanan atas canvas.

Di dialog **New deployment**, pilih **Database**.

## Langkah 2: Pilih MariaDB

Setelah memilih Database, kamu akan melihat daftar engine yang tersedia: Redis, Postgres, MySQL, MongoDB, WsProxy, PostgreSQL 16 + WsProxy, dan **MariaDB**.

Pilih **MariaDB**: deskripsinya: *MariaDB (Internal Network Only)*.

> **Penting:** MariaDB di Helipod hanya bisa diakses dari dalam cluster. Tidak ada public endpoint, ini by design untuk keamanan. Untuk terhubung ke MariaDB, service kamu harus berada di **project yang sama**.

## Langkah 3: Konfigurasi Environment Variables

Klik service MariaDB yang baru dibuat, lalu buka tab **Variables**. Set variabel berikut:

| Variabel | Contoh Nilai | Keterangan |
|----------|-------------|------------|
| `MARIADB_ROOT_PASSWORD` | `password-root-kuat` | **Wajib.** Password untuk user `root` |
| `MARIADB_ROOT_HOST` | `%` | **Wajib.** Host yang diizinkan untuk root. Gunakan `%` untuk semua host internal |
| `MARIADB_DATABASE` | `myapp_db` | Nama database yang akan dibuat otomatis |
| `MARIADB_USER` | `myapp_user` | User tambahan selain root |
| `MARIADB_PASSWORD` | `password-user-kuat` | Password untuk `MARIADB_USER` |

> **Tips keamanan:** Gunakan password yang berbeda untuk `MARIADB_ROOT_PASSWORD` dan `MARIADB_PASSWORD`. Nilai-nilai ini dienkripsi at rest oleh Helipod dan tidak pernah muncul di logs.

Klik **Deploy** setelah semua variabel terisi.

## Langkah 4: Catat Internal DNS

Setelah status berubah menjadi **Running**, buka tab **Settings** pada service MariaDB, lalu scroll ke bagian **Networking & Domains**.

Kamu akan melihat satu entry bertanda **Internal only**:

```
heli-xxxxxxxx.env-xxxx.svc.cluster.local
```

**Salin hostname ini**: ini adalah alamat yang digunakan service lain di project kamu untuk terhubung ke MariaDB. Tidak ada magic domain atau public endpoint untuk MariaDB.

> MariaDB berjalan di port **3306** secara default. Saat menghubungkan dari aplikasi, gunakan hostname internal di atas dengan port `3306`.

## Langkah 5: Hubungkan ke Aplikasi Lain

Dari service lain di project yang sama (misalnya WordPress, Laravel, atau Node.js), gunakan internal DNS sebagai database host.

### Contoh untuk WordPress

```env
WORDPRESS_DB_HOST=heli-xxxxxxxx.env-xxxx.svc.cluster.local
WORDPRESS_DB_USER=myapp_user
WORDPRESS_DB_PASSWORD=password-user-kuat
WORDPRESS_DB_NAME=myapp_db
```

Baca panduan lengkapnya di [Cara Deploy WordPress di Helipod](https://helipod.io/blog/cara-deploy-wordpress-di-helipod).

### Contoh untuk Laravel

```env
DB_CONNECTION=mysql
DB_HOST=heli-xxxxxxxx.env-xxxx.svc.cluster.local
DB_PORT=3306
DB_DATABASE=myapp_db
DB_USERNAME=myapp_user
DB_PASSWORD=password-user-kuat
```

### Contoh untuk Node.js (mysql2)

```javascript
const connection = mysql.createConnection({
  host: 'heli-xxxxxxxx.env-xxxx.svc.cluster.local',
  port: 3306,
  user: 'myapp_user',
  password: 'password-user-kuat',
  database: 'myapp_db',
});
```

## Troubleshooting Umum

**Error "Connection refused" atau timeout dari aplikasi**
Pastikan service MariaDB sudah berstatus *Running* sebelum service aplikasi mencoba konek. Juga pastikan kamu menggunakan internal DNS (bukan IP atau domain publik) dan port `3306`.

**Error "Access denied for user"**
Periksa nilai `MARIADB_USER` dan `MARIADB_PASSWORD` di tab Variables MariaDB, pastikan sama persis dengan yang digunakan di aplikasi. Jika menggunakan user `root`, gunakan `MARIADB_ROOT_PASSWORD` sebagai password.

**Aplikasi tidak bisa menemukan hostname**
Pastikan service aplikasi berada di **project yang sama** dengan MariaDB. Internal DNS hanya bisa di-resolve dari dalam cluster yang sama. Jika project berbeda, koneksi tidak akan bisa dibuat.

**Ingin akses MariaDB dari lokal untuk debugging?**
MariaDB tidak punya public endpoint, tapi kamu bisa menggunakan service **WsProxy** (tersedia di menu Database) sebagai jembatan WebSocket-to-TCP untuk koneksi dari luar cluster.

## Kesimpulan

Deploy MariaDB di Helipod cukup pilih service, set variabel, deploy, lalu catat internal DNS-nya. Karena MariaDB hanya bisa diakses dari internal network, koneksi dari aplikasi lain di project yang sama menggunakan hostname internal, lebih aman karena database tidak terekspos ke internet publik.

Punya pertanyaan? Hubungi kami di [support@helipod.io](mailto:support@helipod.io) atau bergabung ke komunitas di [hangar.helipod.io](https://hangar.helipod.io).
