Platform CTF Web_ARIA adalah aplikasi latihan dan kompetisi Capture The Flag (CTF) berbasis Vue.js, Next.js, dan Supabase, lengkap dengan fitur manajemen challenge, leaderboard, serta autentikasi user.
- π Supabase β untuk database dan autentikasi
- π Vercel β untuk hosting frontend & backend
supabase login
supabase link --project-ref <PROJECT_REF>
supabase db push
π‘ Dapatkan
<PROJECT_REF>
dari Supabase Dashboard > Settings > General
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
π Simpan ke
.env
backend
SUPABASE_SERVICE_ROLE_KEY=<your-service-role-key>
NEXT_PUBLIC_SUPABASE_URL=<your-supabase-url>
NEXT_PUBLIC_SUPABASE_ANON_KEY=<your-supabase-anon-key>
ENCRYPTION_KEY=<generated-random-key>
BASE_URL=<url-frontend-anda>
VITE_API_BASE_URL=<url-backend-anda>
VITE_FLAG_FORMAT=CWA{FLAG}
VITE_PASSWORD_REMEMBER_ME_LOGIN=<secret-key-login>
Tersedia konfigurasi seperti:
- Nama & Deskripsi App
- Gambar Halaman (icon)
- Format & Regex Flag
- Konfigurasi theme, caching, dsb
// src/config.ts
// ==============================
// π Secrets / Environment Variables
// ==============================
const BASE_URL = import.meta.env.VITE_API_BASE_URL || "http://localhost:3000";
const PASSWORD_REMEMBER_ME_LOGIN = import.meta.env.VITE_PASSWORD_REMEMBER_ME_LOGIN || "secret123";
// ==============================
// βοΈ App Configuration
// ==============================
const APP_NAME = "CTF WEB_ARIA"
const DEFAULT_THEME = "dark";
const VERIV_EMAIL = false;
const UPLOAD_CLIENT = true;
const CACHE_TTL = 5 * 60 * 1000; // 5 menit
const IMG_HOMEPAGE = "/icon.png" // frontend/public
const IMG_LOGINPAGE = "/icon_login.png"
const IMG_REGISPAGE = "/icon_regis.png"
const APP_DESCRIPTION = `
Platform latihan dan kompetisi <strong>Capture The Flag (CTF)</strong> untuk semua level.
Pelajari keamanan siber, uji kemampuanmu, dan raih peringkat tertinggi di leaderboard!<br/>
Cocok untuk pemula yang ingin belajar maupun pro yang ingin unjuk skill.
`;
const ABOUT_PAGE = `
<p class="text-lg mb-4 leading-relaxed">
<strong>CTF WEB_ARIA</strong> adalah platform latihan dan kompetisi <strong>Capture The Flag (CTF)</strong> berbasis <strong>Vue.js</strong>, <strong>Supabase</strong>, dan <strong>TailwindCSS</strong>. Dibuat untuk semua level: pemula hingga pro.
</p>
`;
// ==============================
// π Flag Settings
// ==============================
const FLAG_FORMAT = "CWA{FLAG}";
const FLAG_REGEX = /^CWA\{.*\}$/;
# Install dependencies
cd frontend && npm install
cd ../backend && npm install
# Jalankan
cd ../backend && npm run dev
cd ../frontend && npm run dev
# Di folder root
npm install
cd frontend && npm install
cd ../backend && npm run dev && cd ..
npm run dev
cd frontend
vercel --prod -t <VERCEL_TOKEN>
cd ../backend
vercel --prod -t <VERCEL_TOKEN>
π‘ Catatan: Token dapat dibuat di Vercel > Account Settings > Tokens
Setelah proses deployment selesai, buka aplikasi di browser dan akses endpoint berikut untuk melakukan setup awal:
https://<your-domain>/setup
Di halaman /setup
, Anda dapat membuat akun root/admin pertama untuk mengelola aplikasi.
β Selesai! Aplikasi Anda sudah siap digunakan di lingkungan production.
# Backup skema
supabase db dump --file backup/backup_v1.sql
# Restore skema
supabase db restore backup/backup_v1.sql
# Backup seluruh data dengan pg_dump
pg_dump -h db.<project-ref>.supabase.co -U postgres -d postgres -p 5432 -F c -f full_backup.dump
# Restore data dengan pg_restore
pg_restore -h db.<project-ref>.supabase.co -U postgres -d postgres -p 5432 -c full_backup.dump
β οΈ Gunakan Connection Pooler jika Anda menggunakan Supabase Free Tier untuk menghindari batas koneksi.
- travisvn/supabase-pause-prevention β Tambahkan cronjob untuk mencegah project tertidur
# Cek perbedaan skema lokal dengan cloud
supabase db diff --local --file v1.5
# Push perubahan ke Supabase
supabase db push
- Tambahkan semua
.env
ke Environment Variables di Vercel secara manual - Gunakan
https
di production ENCRYPTION_KEY
harus unik & rahasia- Backup database secara berkala
Platform latihan dan kompetisi Capture The Flag (CTF) untuk semua level. Belajar keamanan siber, uji kemampuanmu, dan capai posisi tertinggi di leaderboard!
Fitur Utama:
- π Login & manajemen user
- π§© CRUD challenge publik & admin
- π Submit flag + Leaderboard
- π€ Profil + Riwayat Submit
- π― Filter berdasarkan kategori
- π Dark & Light Mode
- β‘ Ringan & Responsif
Open-source, aktif dikembangkan bersama komunitas.
π GitHub Repo | π Blog | β¬οΈ Upload Challenge | π¬ Komunitas