FluxAudioは、ReactとViteで構築されたモダンなWebベースの音楽ストリーミングアプリケーションです。Cloudflare R2 に保存された個人の音楽ライブラリを、Cloudflare Workers を介してストリーミング再生し、Webアプリは Firebase Hosting 上で動作します。
- ☁️ クラウドストリーミング: Cloudflare R2からサーバーレスで楽曲を直接ストリーミング再生。
- 📱 PWA対応: Android、iOS、PCにアプリとしてインストール可能。
- 📥 オフラインモード: 楽曲をローカルにキャッシュし、オフラインでも再生可能。
- 🎨 モダンUI: ダークモードに対応した、美しくレスポンシブなインターフェース。
- 🔥 Firebase連携: ユーザー認証、プレイリストや「お気に入り」のクラウド同期。
このプロジェクトは、低コストかつ高性能なサーバーレスアーキテクチャを採用しています。
- ストレージ: Cloudflare R2 (MP3, LRC歌詞ファイル, 画像などを保存)
- API: Cloudflare Workers (ファイルリストの取得とセキュアなアクセス制御)
- フロントエンド: React + Vite (Firebase Hostingでホスティング)
- データベース: Firebase Firestore (ユーザーデータ、プレイリスト管理)
- Node.js (v18以上)
- Cloudflare アカウント (R2 & Workers)
- Firebase アカウント
git clone https://github.com/TatsuyaM2667/FluxAudio-MusicApp.git
cd FluxAudio-MusicApp
npm install.env.example をコピーして .env ファイルを作成します:
cp .env.example .envご自身のAPIキーなどを記入してください:
# Cloudflare Workers URL (APIエンドポイント)
VITE_API_BASE=https://your-worker.your-subdomain.workers.dev
# Firebase 設定
VITE_FIREBASE_API_KEY=your-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
# ... その他必要なキーnpm run devnpm run build
firebase deploy --only hostingR2バケット内のファイルリストをJSON形式で返すWorkerをデプロイする必要があります。 (セキュリティの観点から、このパブリックリポジトリにはWorkerのコードやR2アップロード用スクリプトは含まれていません。ご自身の環境に合わせて実装してください。)
Capacitorを使用して、簡単にモバイルアプリ(APK/IPA)をビルドできます。
# ビルドとアセット同期
npm run build
npx cap sync
# Android Studioを開く
npx cap open androidこの公開リポジトリには、以下の機密情報は含まれていません:
- ハードコードされたAPIキーやシークレット
- SSL証明書や秘密鍵
- 管理用Pythonスクリプト(R2へのアップロードツールなど)
クローンして利用する際は、ご自身の所有するキーを .env で管理し、機密情報をコミットしないようご注意ください。
このプロジェクトは、クレジット表記を必須とする MIT License (Modified) の下で公開されています。 本ソフトウェアを使用または改変して利用する場合は、以下のクレジット表記を含めてください:
"This project includes software originally created by GitHub user: TatsuyaM2667."
