A simple, persistent webhook listener for your CTF journey and development needs.
Pernah kesel pas lagi ikut CTF atau ngoprek sesuatu, terus butuh cara cepet buat nangkep dan nginspeksi payload dari webhook? Webhook Bin adalah solusinya. Ini adalah server Express.js sederhana yang siap menampung semua data webhook yang dikirim, menyimpannya secara persisten di database, dan memungkinkan kamu untuk mengaksesnya kembali kapan pun lewat API.
Gak perlu lagi ngandelin servis online yang datanya ilang atau terbatas. Dengan ini, kamu punya "tong sampah" webhook pribadi yang bisa di-host di mana aja.
- 🗄️ Persistent Storage: Semua data yang masuk disimpan di database (SQLite, MySQL, PostgreSQL, dll) menggunakan Knex.js. Gak ada lagi data yang hilang pas server di-restart.
- 🔌 Flexible Data Ingestion: Bisa nangkep data dari
BodyataupunQuery Parameter, bahkan bisa nge-merge keduanya secara otomatis. - 🔑 RESTful API: Sedia API endpoint yang jelas untuk menyimpan, melihat semua data, dan melihat data spesifik berdasarkan ID.
- 🚀 Easy to Setup: Cukup clone, install dependensi, setup file
.env, jalankan migrasi, dan server siap tempur. - 🔷 Built with TypeScript: Kode lebih terstruktur, aman, dan gampang di-maintain.
Proyek ini dibangun menggunakan teknologi modern dan handal:
- Backend: Node.js, Express.js
- Language: TypeScript
- Database: Knex.js (Query Builder) dengan driver
mysql,sqlite3, ataupg. - Development: Nodemon, ts-node, dotenv
Ikuti langkah-langkah ini untuk menjalankan server Webhook Bin di lokal.
Pastikan kamu sudah menginstall:
- Node.js (v18 atau lebih tinggi)
- NPM / Yarn / PNPM
-
Clone the repository:
git clone https://github.com/MowlandCodes/webhook_bin.git cd webhook_bin -
Install dependencies:
npm install
-
Setup environment variables: Buat file
.envdi root proyek dengan meniru dari.env.example.cp .env.example .env
Kemudian, buka file
.envdan sesuaikan dengan konfigurasi database kamu. -
Run database migrations: Perintah ini akan membuat tabel yang dibutuhkan di database sesuai konfigurasi di
knexfile.ts.npx knex migrate:latest
-
Run the development server:
npm run dev
Server akan berjalan di
http://localhost:3000(atau port yang kamu set di.env).
Berikut adalah daftar endpoint yang tersedia.
| Method | Endpoint | Deskripsi | Contoh curl Command |
|---|---|---|---|
POST |
/webhook |
Menyimpan data dari body dan/atau query. |
curl -X POST -H "Content-Type: application/json" -d '{"user":"naufal"}' "http://localhost:3000/webhook?from=query" |
GET |
/webhook |
Mengambil semua data webhook yang tersimpan. | curl http://localhost:3000/webhook |
GET |
/webhook/:id |
Mengambil data webhook spesifik berdasarkan ID. | curl http://localhost:3000/webhook/a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d |
Aplikasi ini dikonfigurasi menggunakan environment variables.
| Variable | Deskripsi | Contoh Default |
|---|---|---|
PORT |
Port untuk server Express. | 3000 |
ENVIRONMENT |
Environment aplikasi (development atau production). |
development |
DB_DRIVER |
Driver database Knex (sqlite3, mysql, pg). |
sqlite3 |
DB_HOST |
Host database. | 127.0.0.1 |
DB_PORT |
Port database. | 3306 |
DB_USER |
Username database. | root |
DB_PASSWORD |
Password database. | password |
DB_NAME |
Nama database. | webhook_bin |
Proyek ini berada di bawah lisensi UNLICENSED. Silakan gunakan, modifikasi, dan distribusikan sesuai kebutuhan. Jika kamu ingin menggunakannya sebagai proyek open-source, pertimbangkan untuk menambahkan lisensi seperti MIT.
Made with ❤️ by MowlandCodes
