You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Deardo Satria 119c55bf67 Add login page, logout, and dashboard home 2 weeks ago
app Add login page, logout, and dashboard home 2 weeks ago
components/ui Add shadcn/ui with base-nova preset 2 weeks ago
data Add login server action, getCurrentUser, and progress notes 2 weeks ago
db Add Better Auth with username login on Postgres 2 weeks ago
drizzle Add Better Auth with username login on Postgres 2 weeks ago
lib Add shadcn/ui with base-nova preset 2 weeks ago
old-source Add legacy PHP source as reference 2 weeks ago
public Initial commit from Create Next App 2 weeks ago
scripts Add docker compose Postgres, admin seed script, and setup guide 2 weeks ago
.env.example Add docker compose Postgres, admin seed script, and setup guide 2 weeks ago
.gitignore Add docker compose Postgres, admin seed script, and setup guide 2 weeks ago
AGENTS.md Initial commit from Create Next App 2 weeks ago
CLAUDE.md Add docker compose Postgres, admin seed script, and setup guide 2 weeks ago
README.md Add docker compose Postgres, admin seed script, and setup guide 2 weeks ago
components.json Add shadcn/ui with base-nova preset 2 weeks ago
docker-compose.yml Add docker compose Postgres, admin seed script, and setup guide 2 weeks ago
drizzle.config.ts initiate db (locally) 2 weeks ago
eslint.config.mjs Add Better Auth with username login on Postgres 2 weeks ago
next.config.ts Initial commit from Create Next App 2 weeks ago
package.json Add docker compose Postgres, admin seed script, and setup guide 2 weeks ago
pnpm-lock.yaml Add docker compose Postgres, admin seed script, and setup guide 2 weeks ago
pnpm-workspace.yaml initiate db (locally) 2 weeks ago
tsconfig.json Initial commit from Create Next App 2 weeks ago

README.md

Cleo Minimarket

Back-office minimarket berbasis Next.js 16, pengganti aplikasi PHP lama di old-source/.

Stack: Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS 4, shadcn/ui, Drizzle ORM, Better Auth, Postgres (data aplikasi dan login), MariaDB cleo (data bisnis lama).

Setup di laptop baru

Yang perlu terpasang

Langkah

  1. Clone repo dan install dependency

    git clone https://git.amigogroup.id/deardo/nextjs-cleo-minimarket.git
    cd nextjs-cleo-minimarket
    pnpm install
    
  2. Buat .env dari contoh

    cp .env.example .env
    

    Lalu isi nilainya:

    Variabel Isi
    POSTGRES_PASSWORD Password bebas untuk Postgres lokal.
    DATABASE_URL Ganti <POSTGRES_PASSWORD> dengan password yang sama seperti di atas.
    AMIGO_DATABASE_URL User dan password MariaDB cleo. Minta ke admin.
    BETTER_AUTH_SECRET String acak, buat dengan perintah di bawah.
    SEED_ADMIN_PASSWORD Password akun admin pertama (minimal 8 karakter).
    node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
    

    Buat BETTER_AUTH_SECRET baru di setiap laptop dan server, jangan disalin dari tempat lain.

  3. Nyalakan Postgres

    docker compose up -d
    

    Container cleo-postgres akan muncul di Docker Desktop. Data tersimpan di volume cleo-pgdata, jadi tidak hilang walaupun container dimatikan atau dibuat ulang.

  4. Buat tabel

    pnpm db:migrate
    
  5. Buat akun admin pertama

    pnpm db:seed
    

    Username dan password diambil dari SEED_ADMIN_* di .env. Aman dijalankan berulang kali: kalau akun sudah ada, seed dilewati.

  6. Jalankan aplikasi

    pnpm dev
    

    Buka http://localhost:3000. Untuk mengecek koneksi auth, buka http://localhost:3000/api/auth/get-session, hasilnya null kalau belum login.

Catatan

  • MariaDB cleo (192.168.3.3) hanya bisa diakses dari jaringan kantor. Fitur login tidak membutuhkannya.
  • Pendaftaran akun lewat web sengaja ditutup (disableSignUp di lib/auth.ts). Akun pertama dibuat lewat pnpm db:seed.
  • Kalau port 5432 sudah dipakai Postgres lain di laptop itu, matikan dulu Postgres tersebut, atau ganti port kiri di docker-compose.yml (mis. "5433:5432") beserta port di DATABASE_URL.

Perintah

Perintah Fungsi
pnpm dev Dev server di http://localhost:3000
pnpm build Build production
pnpm lint ESLint
pnpm exec tsc --noEmit Type-check
docker compose up -d Nyalakan Postgres lokal
pnpm db:generate Buat file migrasi dari db/schema.ts
pnpm db:migrate Jalankan migrasi ke Postgres
pnpm db:seed Buat akun admin pertama
pnpm db:studio Lihat isi Postgres di https://local.drizzle.studio