iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Khám phá phim lẻ, phim bộ, TV Shows và hoạt hình trên Blueflare.
Translation pending
MediaJavaScript · TypeScriptGitHub @O365ServeronMSOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
✨ Next.js PostgreSQL Valkey 🏃 Run fast 🚀
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Vietnamese movie streaming, done fast 🚀 — browse, search, and watch at phim.bluesia.net.
• 🔍 Browse & search a canonical VN catalog merged by the Blueflare backend
• 📱 Stream via device-aware embeds or native HLS — mobile-first, always
• ⭐ Remember favorites & watch history right in localStorage
• ⚡ Server-rendered on our own VPS, Cloudflare just does TLS/CDN duty
Next.js 16 App Router, self-hosted — no Astro, no Workers, no edge magic. Runs in the frontend Docker service on 127.0.0.1:3100, Caddy proxies it to the world.Read the full README ↗Vietnamese movie streaming, done fast 🚀 — browse, search, and watch at phim.bluesia.net.
localStorageNext.js 16 App Router, self-hosted — no Astro, no Workers, no edge magic. Runs in the frontend Docker service on 127.0.0.1:3100, Caddy proxies it to the world.
Same repo, same house: backend/ owns provider sync, PostgreSQL, Valkey caching, and the image cache at img.bluesia.net. Server Components talk to the API over the Docker network; browsers own playback + local state.
| What | How |
|---|---|
| 🖥️ Pages | Next.js 16 App Router + React Server Components |
| ⚛️ Interactivity | React 19, client components only where needed |
| 🎨 Styling | Tailwind CSS 4 |
| 🐳 Runtime | Node 26 standalone container |
| 🌐 Edge | Caddy + Cloudflare (plain proxy/CDN, no Worker) |
| 🎞️ Catalog/images | Blueflare API + img.bluesia.net |
| 📡 Providers | NguonC primary, KKPhim fills the gaps |
| 🗄️ Data/cache | PostgreSQL + Valkey + Next render cache |
| 🖼️ Images | Two variants only: /i/m/ portrait, /i/d/ landscape |
| 💾 Backup | Optional nightly dump to R2 (any S3-compatible store), on when BACKUP_ENABLED=true |
| ▶️ Video | hls.js light (lazy) + provider embeds |
cd frontend
npm install
npm run dev # http://localhost:3000
npm run build # production build (in frontend/)
npm run start # serve the standalone build
Want the full stack? 🐳
cp backend/.env.example /opt/stacks/blueflare/.env # rồi điền secret
cd /opt/stacks/blueflare && docker compose up -d --build
Codebase và runtime nằm ở hai chỗ (xem mục "Runtime/codebase split" trong backend/README.md):
| Đường dẫn | Nội dung | |
|---|---|---|
| Codebase | /home/ubuntu/blueflare | repo này — nguồn duy nhất của mọi thứ trong git |
| Runtime | /opt/stacks/blueflare | compose.yml, .env, deploy/, data/images/ (path để dockhand quét thấy) |
Một VPS trắng (Ubuntu 24.04/26.04) dựng bằng một lệnh — cài Docker + Caddy, clone
codebase qua SSH, dựng thư mục runtime, sinh .env với secret ngẫu nhiên, đặt Caddy
edge cho phim/img. Script không tự deploy container để bạn xem lại .env
(nhất là TMDB_API_KEY) rồi bấm deploy trong dockhand:
git clone [email protected]:O365ServeronMS/blueflare.git /home/ubuntu/blueflare
/home/ubuntu/blueflare/infra/scripts/bootstrap-vps.sh # thêm --deploy để build+up luôn
Mặc định script đặt runtime ở /opt/stacks/blueflare (để dockhand quét thấy) và bật
SYNC_ENABLED=true, BACKFILL_ENABLED=false — bạn bật backfill sau bằng cách sửa
.env qua dockhand rồi redeploy. Đổi path bằng biến STACK_DIR=… khi chạy script.
Compose build thẳng từ codebase qua BLUEFLARE_SRC (mặc định /home/ubuntu/blueflare),
nên deploy code mới là hai bước:
git pull
cd /opt/stacks/blueflare && docker compose up -d --build frontend
curl -fsS http://127.0.0.1:3100/healthz
Nếu sửa compose.yml hay script trong infra/, bản chuẩn nằm trong repo — đồng bộ sang
stack rồi mới áp dụng:
/home/ubuntu/blueflare/infra/scripts/sync-stack.sh --dry-run # xem trước
/home/ubuntu/blueflare/infra/scripts/sync-stack.sh
Đổi cấu hình mà không rebuild: cd /opt/stacks/blueflare && ./deploy/apply-env.sh
(script validate .env theo .env.example rồi tạo lại container từ image sẵn có).
⚠️ Đừng bao giờ chạy docker compose down -v — cờ -v xóa named volume, tức là mất
toàn bộ Postgres. Backup: ./deploy/backup-postgres.sh.
Caddy: bootstrap-vps.sh tự chèn hai khối phim.bluesia.net/img.bluesia.net vào
/etc/caddy/Caddyfile (idempotent, có marker) rồi caddy fmt/validate/reload — không
cần reload tay lần đầu. Chỉ khi sửa một Caddyfile đã triển khai (script bỏ qua khối đã có)
mới phải sửa tay rồi reload, xem backend/README.md. ✅
frontend/ # Next.js app: src/app, components, lib, public, Dockerfile
backend/ # VPS origin: API, worker, migrations, tests, Dockerfile
infra/ # compose.yml, scripts/ (bootstrap, sync), cloudflare/, backup/
scripts/ # deploy, rollback, verify
🧭 Category context rides in returnTo=<encoded path+search> — page 2/3/etc. stays addressable and reload-safe.
(cd frontend && npm run build) # frontend build
(cd frontend && npm test) # vitest
cd backend && node --test # backend suite