kentangtech-api 1.1.0
KENTANG TECH STORE - MyXL API & Telegram Bot Infrastructure
Requires Python: >=3.9
Keywords: myxl api telegram bot fastapi payment qris


# KENTANG TECH STORE - MyXL API & Bot

Repository ini berisi infrastruktur lengkap untuk layanan MyXL, terdiri dari API backend, bot Telegram, library inti, serta berbagai fitur manajemen, dokumentasi, dan deployment.

## Struktur Folder

- **Contract API:** `src/`  
    Implementasi API utama (FastAPI) untuk MyXL.

- **Library External:** `app/` (me-cli)  
    Library inti untuk logika bisnis, enkripsi, dan signature.

- **Client:**  
    - `telebot/` — Bot Telegram berbasis python-telegram-bot (PTB).  
    - `client/` — Client tambahan, termasuk bot, helper, dan service.

- **Manage API KEY:** `managements/`  
    Fitur manajemen API key, generate, renew, dan log aktivitas.

- **Dokumentasi:** `docs/`  
    Dokumentasi API, router, dan panduan teknis.

- **Deploy Server:** `deploy/`  
    Script deployment, konfigurasi Nginx, Docker, dan panduan server.

- **Data:** `data/`  
    Katalog paket, data transaksi, dan backup.

- **Backups:** `backups/`  
    File backup database dan konfigurasi.

## Fitur Utama

- API backend (FastAPI) dengan otentikasi JWT, rate limiting, caching Redis, dan database PostgreSQL.
- Bot Telegram (PTB) untuk interaksi end-user, login OTP, order, admin menu, statistik, dan broadcast.
- Library eksternal (me-cli) untuk enkripsi, dekripsi, signature, dan interaksi API internal MyXL.
- Manajemen API key: generate, renew, delete, log aktivitas.
- Dokumentasi API dan router.
- Script deployment server (Ubuntu 22.04), Nginx, Docker, dan systemd.
- Backup database otomatis (APScheduler).
- Integrasi pembayaran Midtrans (QRIS Core API).

## Tech Stack

- **Backend:** FastAPI, Uvicorn, SQLAlchemy
- **Bot:** python-telegram-bot (PTB)
- **Database:** PostgreSQL
- **Cache/Session:** Redis
- **Core Logic:** me-cli (app/)
- **Payments:** Midtrans (Payment Gateway)
- **Scheduler:** APScheduler
- **Server:** Ubuntu 22.04, Nginx, Systemd, Docker

## Instalasi & Deployment

1. **Clone repository:**
    ```bash
    # Pilihan 1: HTTPS
    git clone https://github.com/rusmanadodi2598/kentangtech-api.git
    cd kentangtech-api

    # Pilihan 2: SSH
    git clone git@github.com:rusmanadodi2598/kentangtech-api.git
    cd kentangtech-api
    ```

2. **Install dependencies:**
     ```bash
     pip install -r requirements.txt
     # Untuk client dan me-cli, install juga requirements di masing-masing folder
     pip install -r client/requirements.txt
     pip install -r me-cli/requirements.txt
     ```

3. **Konfigurasi environment:**
     - Edit file konfigurasi di `backups/config.yaml`, `managements/config_vpn.json`, dan file environment di `deploy/env/`.
     - Pastikan variabel DB, Redis, API key, dan Midtrans sudah diisi.

4. **Migrasi database:**
     ```bash
     alembic upgrade head
     ```

5. **Jalankan server API:**
     ```bash
     uvicorn src.main:app --host 0.0.0.0 --port 8000
     ```

6. **Jalankan bot Telegram:**
     ```bash
     python client/main.py
     # atau
     python telebot/main.py
     ```

7. **Deployment server:**
     - Ikuti panduan di `deploy/DEPLOYMENT_GUIDE.md` untuk setup Nginx, Docker, dan systemd.

## Dokumentasi

- Lihat folder `docs/` untuk dokumentasi API, router, dan panduan teknis.
- Panduan deployment tersedia di `deploy/DEPLOYMENT_GUIDE.md`.