Introduction

Dalam era modern yang serba digital, perlindungan data pribadi menjadi prioritas utama, terutama untuk aplikasi yang menangani data sensitif seperti email, nomor telepon, hingga informasi identitas pengguna.

Untuk menjawab kebutuhan ini, saya mulai mengeksplorasi Databunker — sebuah solusi open-source yang berfungsi sebagai vault data pribadi (PII vault), mendukung regulasi seperti GDPR dan memberikan API sederhana untuk menyimpan, mengelola, dan menghapus data pengguna secara aman.

Di artikel ini, saya akan membahas bagaimana cara deploy Databunker menggunakan Docker, sesuai dengan praktik DevSecOps yang saya jalankan di beberapa proyek. Harapannya, kita bisa langsung mengimplementasikannya di environment staging atau production kita.

Kenapa Memilih Databunker?

  • ✅ Menyimpan data PII dengan aman (encrypted at rest).
  • ✅ Mendukung compliance seperti GDPR, HIPAA, dan CCPA.
  • ✅ Tersedia REST API untuk integrasi ke backend.
  • ✅ Mendukung audit trail dan user consent management.
  • ✅ Bisa berjalan ringan di Docker, cocok untuk microservices.

Preparation

  • Docker
  • Database with MySQL

Langkah-Langkah Deploy Databunker dengan Docker

Berikut adalah langkah yang biasa saya lakukan:

  1. Persiapkan Environment Docker
  • Pastikan Docker dan Docker Compose sudah terinstal.
  • Buat direktori khusus untuk Databunker.
  • Buat file name contoh : generate-file-mysql-env.sh
#!/bin/sh

echo 'creating ./data directory'
mkdir -p data
chmod 777 data
mkdir -p .env

echo 'generating .env/mysql-root.env'
MYSQLROOT=$(openssl rand -base64 24)  # Lebih aman untuk password
echo 'MYSQL_ROOT_PASSWORD='$MYSQLROOT > .env/mysql-root.env

echo 'generating .env/mysql.env'
MYSQLUSER=$(openssl rand -base64 24)
echo 'MYSQL_DATABASE=databunkerdb' > .env/mysql.env
echo 'MYSQL_USER=bunkeruser' >> .env/mysql.env
echo 'MYSQL_PASSWORD='$MYSQLUSER >> .env/mysql.env

echo 'generating .env/databunker.env'
KEY=$(openssl rand -hex 32)  # 64 karakter hex valid
echo 'DATABUNKER_MASTERKEY='$KEY > .env/databunker.env
echo 'MYSQL_USER=bunkeruser' >> .env/databunker.env
echo 'MYSQL_PASSWORD='$MYSQLUSER >> .env/databunker.env
echo 'MYSQL_HOST=mysql' >> .env/databunker.env
echo 'MYSQL_PORT=3306' >> .env/databunker.env

echo 'generating .env/databunker-root.env'
echo 'DATABUNKER_ROOTTOKEN=DEMO' > .env/databunker-root.env

echo '✅ Environment files generated successfully!'

Hasil generate akan menjadi folder seperti berikut

  • Gunakan image resmi securitybunker/databunker.
  • Atur environment variable seperti DATABUNKER_ADMIN_TOKEN, DATABUNKER_MASTER_KEY.

version: '3'
services:
  mysql:
    image: mysql/mysql-server
    env_file:
      - .env/mysql-root.env
      - .env/mysql.env
    restart: unless-stopped
    volumes:
      - ./data:/var/lib/mysql
    command: --max_connections=4096
    ports:
      - 3306:3306
  # this container's job is to initialize MySQL database. It should run just one time.
  databunker-init:
    #build: .
    image: securitybunker/databunker:latest
    env_file:
      - .env/databunker.env
      - .env/databunker-root.env
    depends_on:
      - mysql
    entrypoint: /bin/sh
    command: -c "/databunker/bin/databunker -init -db databunkerdb"
  databunker:
    #build: .
    image: securitybunker/databunker:latest
    restart: unless-stopped
    env_file:
      - .env/databunker.env
    entrypoint: /bin/sh
    command: -c "/databunker/bin/databunker -start -db databunkerdb -conf /databunker/conf/databunker.yaml"
    depends_on:
      - mysql
    ports:
      - 3000:3000

3. Akses Dashboard Databunker

  • Akses dashboard databuner http://localhost:3000
  • Input root token untuk login ke dashboard

  • Contoh tampilan dashboard databunker

Hasil store to with databunker

Reference : https://databunker.org/ , next kita akan membahas tentang Integrate Databunker with Golang App for PDP Compliance

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *