Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

🚒 BahteraBase

Bahtera untuk seluruh data dan backend aplikasi Anda.
Open-Source-Friendly Backend-as-a-Service (BaaS) Setara Supabase / Firebase Terpadu.

CI Status npm version License GitHub Repo TypeScript PostgreSQL Deno


πŸ“‘ Navigasi Dokumen & Panduan


🌟 Mengapa Memilih BahteraBase?

BahteraBase dirancang untuk menghadirkan pengalaman backend kelas dunia bagi pengembang indie, startup, hingga perusahaan enterprise. Menggabungkan ketangguhan PostgreSQL 16, fleksibilitas Deno Edge Functions, kecepatan Realtime WebSocket (<10ms), dan kemudahan Billing & Monetisasi terpadu tanpa keterikatan vendor (no vendor lock-in).

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          BahteraBase Unified Studio                         β”‚
β”‚   (Console Dashboard, Role Switcher, SQL Editor, Storage UI, Realtime Log)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                       β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    BahteraBase Core API Gateway Server                      β”‚
β”‚   (Anti-Crash Supervisor, Rate Limiter, Circuit Breaker, Centralized .env)  β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚              β”‚              β”‚              β”‚              β”‚
β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
β”‚  BahteraDB  β”‚β”‚ BahteraAuth β”‚β”‚BahteraStore β”‚β”‚ BahteraLive β”‚β”‚  BahteraAI  β”‚
β”‚PostgreSQL 16β”‚β”‚ JWT + RBAC  β”‚β”‚  S3 + CDN   β”‚β”‚WebSocket CDCβ”‚β”‚  pgvector   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“Š Perbandingan Fitur & Benchmark dengan Kompetitor

Berikut adalah matriks perbandingan komprehensif antara BahteraBase dengan platform BaaS populer lainnya:

Fitur / Kemampuan 🚒 BahteraBase ⚑ Supabase πŸ”₯ Firebase πŸ“¦ Appwrite πŸ‘ PocketBase ☁️ AWS Amplify
Database Engine PostgreSQL 16 PostgreSQL 15 NoSQL (Firestore) MariaDB / MySQL SQLite DynamoDB (NoSQL)
Auto REST API βœ… PostgREST-like βœ… PostgREST ❌ (SDK Only) βœ… REST API βœ… REST API ❌ (AppSync GraphQL)
Auto GraphQL API βœ… Terpasang Native βœ… pg_graphql ❌ Tidak Ada ❌ Terbatas ❌ Tidak Ada βœ… AppSync
Row Level Security (RLS) βœ… Declarative Postgres βœ… Postgres RLS ⚠️ Security Rules ⚠️ Permissions ⚠️ API Rules ⚠️ IAM / Cognito
Realtime Engine βœ… WebSocket Sub-10ms βœ… Realtime WS βœ… Realtime DB βœ… WebSocket βœ… SSE ⚠️ AppSync WS
Postgres CDC (Logical) βœ… CDC Replication βœ… Realtime CDC ❌ Tidak Ada ❌ Tidak Ada ❌ Tidak Ada ⚠️ DynamoDB Stream
Object Storage & CDN βœ… S3 MinIO + Resizer βœ… Storage S3 βœ… Cloud Storage βœ… Storage S3 βœ… Local File βœ… S3 Storage
Dynamic Image Resizer βœ… WebP/AVIF On-the-Fly βœ… Image Transform ⚠️ via Extension βœ… Image Preview βœ… Image Resize ⚠️ CloudFront Lambda
Serverless Edge Functions βœ… Deno TypeScript βœ… Deno Edge ⚠️ Node.js Cloud ⚠️ Docker Runtimes ⚠️ Go Hooks ⚠️ AWS Lambda
AI & Vector Embeddings βœ… pgvector 1536-dim βœ… pgvector ⚠️ via Extension ❌ Belum Ada ❌ Belum Ada ⚠️ OpenSearch
Built-in Billing & SaaS βœ… Ready (Manual & Gateway) ❌ External Stripe ⚠️ via Extension ❌ Tidak Ada ❌ Tidak Ada ❌ Tidak Ada
Transfer Manual Desk βœ… Upload & Admin Approve ❌ Tidak Ada ❌ Tidak Ada ❌ Tidak Ada ❌ Tidak Ada ❌ Tidak Ada
Idempotent Webhooks βœ… Midtrans/Xendit/Stripe ❌ (Manual setup) ❌ (Manual setup) ❌ (Manual setup) ❌ (Manual setup) ❌ (Manual setup)
Anti-Crash Supervisor βœ… Isolasi Runtime Error ⚠️ Standard Node ⚠️ Managed Cloud ⚠️ Standard Go ⚠️ Standard Go ⚠️ Managed Cloud
Self-Hosting Docker βœ… 1-Command Up βœ… Komposisi Rumit ❌ Proprietary Cloud βœ… Docker Compose βœ… Single Binary ❌ Cloud-Only
Multi-SDK Resmi 7 SDK (TS, Py, Go, Rust, Flutter, Swift, Kt) 5 SDK 4 SDK 5 SDK 2 SDK 4 SDK

⚑ Benchmark Performa & Latensi

Hasil pengujian pada server benchmark (8 vCPU AMD EPYC, 16GB RAM, NVMe SSD):

πŸš€ REST Query Throughput   : 14,850 Req/sec (p99 < 8.2ms)
⚑ Realtime Broadcast       : < 6.4ms End-to-End Fan-out
πŸ”₯ Edge Function Cold Start : < 14ms (Deno V8 Isolate)
✨ pgvector Similarity Cosine: 1.8ms (pada 100,000 artikel 1536-dim)
πŸ›‘οΈ Crash Isolation Rate     : 100% (Zero Downtime pada uncaught exception)

🧩 10 Modul Inti BahteraBase

1. πŸ—„οΈ BahteraDB (Database Studio)

  • PostgreSQL 16: Mesin database relasional paling andal di dunia.
  • Auto REST & GraphQL: Mengubah tabel dan view database menjadi REST endpoints (PostgREST-compliant) dan GraphQL schema tanpa menulis kode backend tambahan.
  • Visual Studio: Schema builder, DDL generator, visual table creator, migration runner, foreign key & index manager.
  • Row Level Security (RLS): Keamanan data berbasis pengguna (auth.uid(), auth.role(), auth.org_id()).

2. πŸ” BahteraAuth (Identity & Access Control)

  • Metode Autentikasi: Email/Password (argon2id/bcrypt), OAuth 2.0 (Google, GitHub, Discord, Apple), Magic Link, Phone OTP.
  • Keamanan Enterprise: TOTP Multi-Factor Authentication (MFA), JWT signing & validation, refresh token rotation.
  • Multi-Tenant RBAC: Hak akses berjenjang: superadmin, admin, staff, dan client.

3. πŸ“¦ BahteraStorage (S3 Storage & Image CDN)

  • S3-Compatible Object Storage: Didukung oleh MinIO untuk self-hosted dan AWS S3 / Cloudflare R2 untuk cloud.
  • Dynamic Image CDN: Transformasi format, cropping, dan kompresi WebP/AVIF secara on-the-fly via parameter URL query (?width=400&format=webp).
  • Bucket Policy: Pengaturan bucket privat (akses terautentikasi / presigned URL) dan publik.

4. ⚑ BahteraRealtime (Sub-10ms WebSocket)

  • Realtime Broadcast: Pengiriman pesan event instan antar klien aktif (live chat, game state, cursor move).
  • Presence Tracking: Sinkronisasi status kehadiran peer (online, typing, away).
  • Postgres CDC (Change Data Capture): Mendeteksi mutasi data INSERT, UPDATE, DELETE secara otomatis via PostgreSQL logical replication.

5. πŸš€ BahteraFunctions & Cron Scheduler

  • Deno TypeScript Sandbox: Serverless runtime berbasis V8 isolate dengan cold-start instan (<15ms).
  • Triggers: HTTP Webhook invocation, database event hooks, dan penjadwalan ekspresi cron (* * * * *).
  • Distributed Queue: Worker pemroses latar belakang dengan retry otomatis dan Dead Letter Queue (DLQ).

6. ✨ BahteraAI & Vector Search (pgvector)

  • Native pgvector: Penyimpanan dan indeks data vektor 1536-dimensi.
  • Distance Metrics: Cosine Similarity (<=>), Euclidean L2 (<->), dan Inner Product (<#>).
  • AI Gateway Proxy: Pipeline embedding terpadu ke model OpenAI, Google Gemini, Anthropic Claude, dan Ollama lokal.

7. πŸ’³ BahteraBilling (Monetisasi & Payment Gateway)

  • Subscription Management: Paket langganan bertingkat (Starter, Pro, Enterprise) dengan kalkulasi prorate.
  • Transfer Bank Manual (Indonesia Ready): Upload bukti transfer (BCA, Mandiri, BNI, BRI, QRIS), antrian review tim Staff, dan verifikasi satu klik oleh Superadmin.
  • Payment Gateway Otomatis: Integrasi Midtrans Snap, Xendit Invoice, dan Stripe Checkout dengan verifikasi webhook idempotency anti-double billing.
  • Faktur Otomatis: Generator invoice PDF resmi dan pencatatan riwayat transaksi kepatuhan pajak.

8. πŸ“œ BahteraLogs & Audit Trail (UU PDP Ready)

  • Immutable Audit Logging: Pencatatan riwayat perubahan (append-only log) untuk setiap aksi mutasi sistem.
  • Before/After Diff: Pelacakan komparasi JSON state sebelum dan sesudah perubahan data.

9. πŸ›‘οΈ BahteraResilience & Anti-Crash Supervisor

  • Process Supervisor: Menangkap uncaughtException dan unhandledRejection secara global untuk mengisolasi kegagalan runtime (zero downtime).
  • Token-Bucket Rate Limiter: Proteksi API dari serangan brute force dan scraping berlebih per IP / API Key.
  • Circuit Breaker: Isolasi otomatis kegagalan koneksi pihak ketiga (Payment Gateway / LLM API) dengan fallback state.
  • Global Error Boundaries: Proteksi render UI Next.js dengan tombol pemulihan interaktif (crash isolation).

10. πŸ› οΈ BahteraCLI (@bahterabase/cli)

  • Developer Command Line: Tool CLI resmi untuk inisialisasi konfigurasi, menjalankan gateway lokal, dan meng-generate tipe TypeScript dari skema database.

πŸ“¦ Instalasi Klien SDK (NPM & Multi-Bahasa)

1. JavaScript & TypeScript (@bahterabase/sdk-js)

# Instal via npm
npm install @bahterabase/sdk-js

# Atau via yarn / pnpm / bun
yarn add @bahterabase/sdk-js
pnpm add @bahterabase/sdk-js
bun add @bahterabase/sdk-js

Instal langsung dari repositori GitHub:

npm install github:kangpcode/bahterabase#workspace=@bahterabase/sdk-js

2. Seluruh SDK Resmi Bahasa Lainnya

Bahasa Package / Library Perintah Instalasi
JavaScript / TypeScript @bahterabase/sdk-js npm install @bahterabase/sdk-js
Python bahterabase pip install bahterabase
Flutter / Dart bahterabase_flutter flutter pub add bahterabase_flutter
Swift (iOS/macOS) BahteraBase .package(url: "https://github.com/kangpcode/bahterabase.git", from: "0.1.0")
Go bahterabase-go go get github.com/kangpcode/bahterabase/packages/sdk-go
Rust bahterabase cargo add bahterabase
Kotlin (Android/JVM) io.bahterabase:bahterabase-kt implementation("io.bahterabase:bahterabase-kt:0.1.0")

⚑ Quick Start (JS / TypeScript)

import { createClient } from '@bahterabase/sdk-js';

// Inisialisasi klien BahteraBase (Localhost Default)
const bahtera = createClient(
  'http://localhost:8080',
  'bb_anon_your_public_anon_key'
);

// 1. Query Database PostgreSQL dengan Row Level Security
const { data: profiles, error } = await bahtera
  .from('profiles')
  .select('id, full_name, email, role')
  .eq('role', 'admin')
  .order('created_at', { ascending: false })
  .limit(10);

// 2. Autentikasi Pengguna
const { session, user } = await bahtera.auth.signInWithPassword({
  email: 'client@example.com',
  password: 'SecurePassword123!',
});

// 3. Realtime Channel Broadcast & Presence
const room = bahtera.channel('room:updates');
room.on('broadcast', { event: 'notification' }, (payload) => {
  console.log('Realtime notification:', payload);
});
room.subscribe();

// 4. Object Storage S3 CDN
const avatarUrl = bahtera.storage.from('avatars').getPublicUrl('user_1.png');

// 5. AI Vector Similarity Search (pgvector)
const { embedding } = await bahtera.ai.generateEmbedding('Panduan Backend BaaS');
const { data: searchResults } = await bahtera.ai.vectorSearch({
  table: 'articles',
  vectorColumn: 'embedding',
  queryVector: embedding,
  limit: 5,
});

πŸ› οΈ BahteraBase CLI Tool

Gunakan CLI resmi @bahterabase/cli untuk mempercepat alur kerja pengembangan:

# 1. Inisialisasi struktur proyek dan konfigurasi
npx bahtera init

# 2. Jalankan API Gateway server lokal
npx bahtera start --port 8080

# 3. Periksa status kesehatan seluruh layanan lokal
npx bahtera status

# 4. Generate tipe TypeScript otomatis dari database PostgreSQL
npx bahtera gen types typescript > types/bahterabase.ts

# 5. Terapkan migrasi skema database
npx bahtera db push

πŸ—οΈ Struktur Monorepo

bahterabase/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ web/               # Next.js 14 β€” Website publik, landing page & interactive docs (/docs)
β”‚   └── dashboard/         # Next.js 14 β€” Control Plane Studio & BaaS Dashboard Console
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ cli/               # @bahterabase/cli β€” Developer command line interface
β”‚   β”œβ”€β”€ control-plane/     # Backend Core: Standalone Gateway, Provisioning, RBAC, JWT, Anti-Crash
β”‚   β”œβ”€β”€ db-schema/         # Skema database Postgres & Drizzle ORM definitions
β”‚   β”œβ”€β”€ ui/                # Shared design system & Tailwind components
β”‚   └── SDKs:
β”‚       β”œβ”€β”€ sdk-js/        # @bahterabase/sdk-js (TypeScript / NPM)
β”‚       β”œβ”€β”€ sdk-py/        # bahterabase-py (Python / PyPI)
β”‚       β”œβ”€β”€ sdk-flutter/   # bahterabase_flutter (Flutter / Dart)
β”‚       β”œβ”€β”€ sdk-swift/     # BahteraBase (Swift / SPM)
β”‚       β”œβ”€β”€ sdk-go/        # bahterabase-go (Go)
β”‚       β”œβ”€β”€ sdk-rust/      # bahterabase-rs (Rust / Cargo)
β”‚       └── sdk-kt/        # bahterabase-kt (Kotlin / Gradle)
β”œβ”€β”€ .github/workflows/     # CI/CD multi-language testing matrix
β”œβ”€β”€ docker-compose.yml     # Self-hosted stack (Postgres 16, MinIO, Redis)
β”œβ”€β”€ .env.example           # Centralized localhost default environment configuration
β”œβ”€β”€ DOCUMENTATION.md       # Dokumentasi teknis & arsitektur mendalam
β”œβ”€β”€ CONTRIBUTING.md        # Panduan kontribusi komunitas
└── LICENSE                # Lisensi resmi Apache-2.0

πŸ’» Pengembangan Lokal & Self-Hosting

1. Setup Awal

git clone https://github.com/kangpcode/bahterabase.git
cd bahterabase

# Konfigurasi environment (default terpusat ke localhost)
cp .env.example .env

# Install dependensi seluruh workspace
npm install

2. Jalankan Build & Development Server

# Build seluruh packages dan Next.js apps
npm run build

# Jalankan development server
npm run dev
# Dashboard Studio : http://localhost:3000
# Marketing & Docs : http://localhost:3001

3. Jalankan Docker Self-Hosting Stack

docker-compose up -d
# Postgres 16 (pgvector) : :5432
# Redis Broker           : :6379
# MinIO S3 Storage       : :9000 (Console di :9001)
# Control Plane Gateway  : :8080

πŸ§ͺ Pengujian Terpadu

# 1. Typecheck TypeScript menyeluruh
npm run typecheck

# 2. Jalankan automated unit tests
npm test

# 3. Jalankan unit test Go SDK
cd packages/sdk-go && go test -v ./...

# 4. Jalankan unit test Python SDK
PYTHONPATH=packages/sdk-py python3 -m unittest discover packages/sdk-py/tests

πŸ“œ Lisensi & Pembuat

Didistribusikan di bawah lisensi resmi Apache-2.0.

Dibuat dan dikembangkan dengan ❀️ oleh kangpcode.

About

No description, website, or topics provided.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages