Skip to content

akbarr13/arcthogus

Repository files navigation

Arcthogus Logo

Arcthogus Esports

Born in the pandemic. Forged through competition.

Site

Next.js React TypeScript Supabase


Website resmi Arcthogus — tim esports Valorant asal Indonesia yang berdiri sejak 2021. Dibangun dengan Next.js 16 dan Supabase, dilengkapi sistem toko jersey online, panel admin, dan halaman profil tim yang interaktif.

Fitur

  • Homepage interaktif — particle canvas, custom cursor, parallax, scroll reveal, glitch effect, dan typing animation
  • Toko jersey — order online, redirect ke Bayaraja untuk pembayaran QRIS, dan cek status order via Order ID
  • Panel admin — kelola pesanan, update status fulfillment, atur harga dan stok toko, ganti password
  • Bayaraja integration — payment link dibuat otomatis per order, status diupdate via webhook (pending → waiting → confirmed)
  • Keamanan — rate limiting per IP (Supabase RPC), harga dihitung di server, HMAC-SHA256 webhook verification, CSP headers, HSTS, dan CORS

Stack

Layer Teknologi
Framework Next.js 16.1.6 (App Router)
UI React 19, TypeScript 5
Backend / Auth Supabase (PostgreSQL, Auth, Storage)
Deploy cPanel + Phusion Passenger

Struktur Proyek

app/
├── page.tsx              # Homepage
├── store/page.tsx        # Toko jersey
├── login/page.tsx        # Login admin
├── dashboard/page.tsx    # Panel admin
└── api/
    ├── submit-order/     # Terima order, buat Bayaraja payment link
    ├── check-order/      # Cek status order (publik)
    ├── webhooks/bayaraja/ # Terima webhook dari Bayaraja
    └── auth/callback/    # OAuth callback Supabase
lib/
└── supabase/
    ├── server.ts         # Service role client (server-only)
    └── browser.ts        # Anon key client (browser)
proxy.ts                  # Middleware auth

Setup Lokal

1. Clone & install

git clone https://github.com/akbarr13/arcthogus.git
cd arcthogus
npm install

2. Environment variables

cp .env.local.example .env.local

Isi .env.local:

NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
ALLOWED_ORIGIN=http://localhost:3000
BAYARAJA_API_URL=https://bayaraja.arwebs.my.id
BAYARAJA_API_KEY=byr_...
BAYARAJA_QRIS_ACCOUNT_ID=uuid-qris-account
BAYARAJA_WEBHOOK_SECRET=whsec_...

3. Supabase — buat tabel & fungsi

Buat dua tabel di Supabase:

  • orders — kolom: id, name, phone, address, size, qty, price, total, status, notes, bayaraja_link_id, payment_url, created_at
  • settings — wajib ada row dengan id = 1

Buat dua RPC functions:

check_rate_limit(p_ip, p_endpoint, p_max, p_window_seconds) → boolean
check_order_status(p_order_id) → row (tanpa PII)

Buat storage bucket:

  • store-assetspublic

Aktifkan RLS di tabel orders dan settings dengan SELECT policy untuk anon.

4. Jalankan dev server

npm run dev

Buka http://localhost:3000

Deploy ke cPanel

Lihat DEPLOY.md untuk panduan lengkap.

npm run build
bash deploy.sh
# Upload isi deploy_cpanel/ ke server, lalu restart Node.js App di cPanel

Sosial Media

Instagram Discord


© 2021 Arcthogus™ — All Rights Reserved.

About

Official website for Arcthogus Esports. Built with Next.js 16, React 19, TypeScript, and Supabase.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages