Skip to content

Repository files navigation

🎬 FarmYouTube

Dashboard monitoring & manajemen multi-akun YouTube channel — pantau subscriber, jam tayang, status monetisasi, dan sinkronisasi data langsung dari YouTube Studio.


✨ Fitur

  • Multi-channel monitoring — tambah dan pantau banyak channel YouTube sekaligus
  • Sinkronisasi otomatis — scrape data langsung dari YouTube Studio (subscriber, view, jam tayang)
  • Status monetisasi — deteksi otomatis channel yang sudah lolos YPP (1000 sub + 4000 jam)
  • Filter & pencarian — filter berdasarkan status (Connected, Auth Pending, Lolos Monet, Kejar Target)
  • Tampilan tabel & grid — switch antara tabel rapi dan kartu grid
  • Session browser — buka YouTube Studio lewat browser Chromium yang bisa dikontrol
  • Dark / Light mode — tema gelap dan terang
  • Snapshot history — simpan snapshot data channel setiap saat
  • Multi-login Google — kelola banyak akun Google/YouTube dalam satu dashboard
  • Stack modern — Express + TypeScript backend, React + Vite + Tailwind CSS frontend

🗂️ Struktur Project

FarmYouTube/
├── backend/         # Express API, Prisma, MySQL, browser automation
├── frontend/        # Vite React app (dashboard UI)
├── docker-compose.yml
├── setup.ps1        # Script setup otomatis (Windows)
├── run-app.bat      # Jalankan app sekaligus
└── update.sh        # Auto-update script

⚙️ Requirements

  • Node.js 20+
  • npm
  • MySQL 8+
  • Google Chrome / Chromium (untuk browser automation)

🚀 Quick Start (Windows)

1. Clone repository

git clone https://github.com/effands/FarmYouTube.git
cd FarmYouTube

2. Jalankan setup otomatis

powershell -ExecutionPolicy Bypass -File .\setup.ps1

Setup script akan:

  • Generate .env dengan secret key yang aman
  • Install semua dependencies
  • Jalankan Prisma migration
  • Buat database MySQL

3. Jalankan aplikasi

.\run-app.bat

Atau jalankan manual:

# Terminal 1 — Backend
cd backend
npm run dev

# Terminal 2 — Frontend
cd frontend
npm run dev
  • Frontend: http://localhost:5173
  • Backend API: http://localhost:4000

🔧 Manual Setup

Backend Environment

Buat file backend/.env:

DATABASE_URL="mysql://root@localhost:3306/farmyoutube"
APP_PORT=4000
FRONTEND_URL="http://localhost:5173"
JWT_ACCESS_SECRET="ganti-dengan-secret-panjang-minimal-32-karakter"
TOKEN_ENCRYPTION_KEY="ganti-dengan-key-32-karakter-tepat"
ACCESS_TOKEN_TTL_SECONDS=900
REFRESH_TOKEN_TTL_DAYS=30
MAX_UPLOAD_BYTES=5368709120

Frontend Environment

Buat file frontend/.env:

VITE_API_URL=http://localhost:4000

Database

Buat database MySQL:

CREATE DATABASE farmyoutube;

Prisma Migration

cd backend
npm run prisma:migrate
npm run prisma:generate

🐳 Docker

# Build dan jalankan semua service
docker compose up -d --build

# Lihat log backend
docker compose logs -f backend

# Stop
docker compose down

Services:

Service Port
Frontend 5173
Backend 4000
MySQL 3306

📡 API Endpoints

Auth

POST /auth/register
POST /auth/login
POST /auth/refresh
POST /auth/logout
GET  /auth/me

YouTube Monitor

GET    /youtube-monitor/channels         # List semua channel
POST   /youtube-monitor/channels         # Tambah channel manual
PATCH  /youtube-monitor/channels/:id     # Update channel
DELETE /youtube-monitor/channels/:id     # Hapus channel
POST   /youtube-monitor/channels/:id/snapshot  # Simpan snapshot
GET    /youtube-monitor/session/status   # Status session browser
POST   /youtube-monitor/session/start    # Buka session baru
POST   /youtube-monitor/refresh-metrics  # Sync data dari YouTube Studio

🛠️ Commands

# Backend
cd backend
npm run dev              # Dev server
npm run build            # Build production
npm run start            # Jalankan production build
npm run prisma:migrate   # Jalankan migration
npm run prisma:generate  # Generate Prisma client

# Frontend
cd frontend
npm run dev              # Dev server
npm run build            # Build production
npm run preview          # Preview production build

🔐 Security Notes

  • Jangan commit file .env
  • Gunakan JWT_ACCESS_SECRET dan TOKEN_ENCRYPTION_KEY yang panjang dan acak
  • TOKEN_ENCRYPTION_KEY harus tepat 32 karakter

📦 Tech Stack

Layer Stack
Backend Express 5, TypeScript, Prisma 6, MySQL, Zod, JWT, Argon2
Frontend React 19, Vite 8, TypeScript, Tailwind CSS 4, React Router 7
Browser Playwright / Chromium (YouTube Studio automation)
Database MySQL 8

📝 License

Private — All rights reserved.


Made by @effands  |  asistenq.com  |  ziqva.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages