Situs ini dikemudikan dua tombol, seperti mesin pemiliknya. Membaca: j dan k menggulir, d dan u setengah layar, gg ke atas, G ke bawah, H dan L pindah jendela, ? membuka panduan. Spasi adalah kunci leader Neovim dan mengurus isi: Spasi lalu h beranda, r riset, p proyek, g gear, a tentang, / tag, atau Spasi lalu angka untuk melompat ke jendela bernomor itu. Home adalah prefix tmux dan mengurus jendela: Home lalu c membuka terminal, Home lalu & menutup jendela, Home lalu spasi ke jendela berikutnya. Saat fokus ada di papan ketik, h j k l memindahkan pilihan antar tombol dan Enter membukanya.

RisetR TentangA Gear — G untuk gear — papan ketik, terminal, editor, homelab.G
    ProyekP Tag — / seperti di vim: cari./
    ×
    Menu

    Lemme

    Lemme adalah aplikasi kuis berbantuan AI. Pengguna mengunggah tangkapan layar kuis, OCR mengekstrak teks pertanyaan, dan beberapa penyedia LLM menghasilkan kandidat jawaban beserta penalarannya...

    Lemme adalah aplikasi kuis berbantuan AI. Pengguna mengunggah tangkapan layar kuis; OCR mengekstrak teks pertanyaan, lalu beberapa penyedia LLM menghasilkan kandidat jawaban beserta penalarannya.

    Stack

    LapisanTeknologi
    BackendGo 1.24, Fiber v2, MySQL, Redis, WebSocket, Google OAuth
    FrontendSolid.js, Vite, PandaCSS / Park UI, TypeScript
    Reverse proxy / TLSCaddy
    Target deploymentHomelab Debian di lemme.arisjirat.com

    Arsitektur

    Browser
      -> Caddy (80/443, TLS termination)
          -> UI container (Nginx, static Solid build)
          -> API container (Go Fiber)
               -> MySQL (quiz/user/session data)
               -> Redis (session + OCR cache + locks)
               -> OCR + LLM providers (OpenAI/Anthropic/Gemini)

    Caddy berada di depan seluruh stack dan menangani terminasi TLS. Di belakangnya:

    • UI — build Solid statis yang disajikan oleh Nginx.
    • API — layanan Go Fiber yang berkomunikasi dengan MySQL, Redis, serta penyedia OCR/LLM eksternal.

    Pengembangan Lokal

    Seluruh stack dijalankan dengan Docker Compose.

    1. Konfigurasi environment

    Salin template env root dan backend, lalu isi secret yang diperlukan:

    cp .env.example .env
    cp lemme_service/.env.production.example lemme_service/.env

    2. Jalankan service

    make dev

    3. Jalankan migrasi (jika diperlukan)

    make migrate

    4. Verifikasi

    EndpointURL
    UIhttp://localhost:3000
    API healthhttp://localhost:9090/healthz

    Deployment Production

    1. Siapkan host

    Pada server Debian, jalankan script setup:

    ./scripts/setup-server.sh

    2. Clone dan konfigurasi

    Clone repository ke /opt/lemme, lalu buat file env berikut:

    • /opt/lemme/.env
    • /opt/lemme/lemme_service/.env

    3. Deploy

    ./deploy.sh

    4. DNS dan jaringan

    Arahkan A record lemme.arisjirat.com ke IP publik host, lalu teruskan port 80 dan 443.

    5. TLS

    Caddy menyediakan dan memperbarui sertifikat secara otomatis — tidak ada langkah manual.

    Environment Variables

    Template tersedia di:

    • .env.example — env compose root
    • lemme_service/.env.production.example — env production backend

    Variabel inti

    GrupVariabel
    DatabaseMYSQL_ROOT_PASSWORD, MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD
    RedisREDIS_PASSWORD
    BackendDB_DSN, REDIS_ADDR, SESSION_COOKIE_SECRET, JWT_SECRET
    OAuthGOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REDIRECT_URL
    Build args frontendVITE_API_URL, VITE_WS_URL, VITE_FRONTEND_URL, VITE_FEEDBACK_GFORMS_URL

    Perintah Umum

    make dev       # build + up
    make up        # up without rebuild
    make down      # stop all services
    make build     # build all images
    make migrate   # run DB migrations
    make logs      # tail logs
    make backup    # run backup script
    id en
    rss gh in