openjutsu
영상에서 원클릭으로 인물 교체, ComfyUI·MiniMax H3 기반 오픈소스 로컬 힉스필드 겐주츠 대안, FLUX.3 Klein 재조명 지원
radinho.online에서 가입 없이 funk와 rap, pop, rock, MPB, sertanejo, trap을 브라우저에서 듣습니다
Ouça música online grátis no radinho.online: milhares de músicas de funk, rap, pop, rock, MPB, sertanejo e trap, rádios ao vivo e podcasts. Sem cadastro, direto no navegador.
미디어TypeScript · JavaScriptGitHub @Changzaoo온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Streaming de música profissional — minimal, glass, elegante, rápido.
O radinho.online (aura + aural) é uma plataforma de streaming de música completa e auto-hospedável: você envia seus arquivos de áudio, um pipeline FFmpeg transcodifica tudo para HLS adaptativo, e um player de nível profissional entrega a experiência — crossfade, gapless, equalizador e ReplayGain — em uma interface deep black + glass com um único verde exclusivo.
Web na edge (Vercel) + API em servidor próprio (Docker) = custo mínimo, controle total do áudio.
| Camada | Tecnologia |
|---|---|
| Web | React 19 · Vite · TypeScript · Tailwind · TanStack Query · Zustand · Framer Motion · Howler/Web Audio · vite-plugin-pwa |
| API | Node 22 · Express 5 · Prisma · Zod · socket.io · BullMQ · pino · OpenAPI 3.1 (Swagger em /api/docs) |
| Dados | PostgreSQL 16 · Redis 7 |
| Áudio | FFmpeg (HLS AAC 96/160/320, loudnorm, waveform) · sharp (capas WebP) |
| Auth | Firebase Auth (web SDK + firebase-admin) |
| Storage | Cloudflare R2 (S3) · Supabase Storage · disco local (dev) — via interface StorageProvider |
| Infra | Docker Compose · nginx · PM2 (alternativa bare-metal) · GitHub Actions · Vercel |
| Contrato | @radinho/shared — schemas Zod + DTOs compartilhados entre web e api |
flowchart LR
subgraph Edge
W["apps/web · SPA React<br/>(Vercel)"]
end
subgraph Servidor["Servidor Linux (Docker Compose)"]
N["nginx :80/:443<br/>rate limit · cache HLS"]
A["api :4000<br/>Express 5 · socket.io /ws"]
K["worker<br/>BullMQ · FFmpeg"]
P[("PostgreSQL 16")]
R[("Redis 7")]
end
S[("Storage<br/>R2 / S3 / Supabase")]
F["Firebase Auth"]
W -- "REST /api/v1 · WS /ws" --> N
N --> A
A --> P
A --> R
K --> P
R <--> K
A --> S
K --> S
W -.tokens.-> F
A -.verifica ID token.-> F
Decisões e regras completas em docs/ARCHITECTURE.md · design system em docs/DESIGN.md.
radinho/
├── apps/
│ ├── web/ # SPA React 19 + Vite (Vercel)
│ └── api/ # Node 22 + Express 5 + Prisma (Docker/PM2 no servidor)
├── packages/
│ └── shared/ # @radinho/shared — schemas Zod, DTOs, constantes
├── infra/
│ ├── docker/ # docker-compose.dev.yml (deps locais) · docker-compose.prod.yml (stack completa)
│ ├── nginx/ # reverse proxy de produção (rate limit, WS, cache HLS, TLS)
│ ├── pm2/ # ecosystem.config.cjs (deploy bare-metal alternativo)
│ └── scripts/ # setup-server.sh · deploy-api.sh · backup-db.sh · *.ps1 (Windows)
├── docs/ # ARCHITECTURE · DESIGN · DEPLOY · CONTRIBUTING
└── .github/ # CI + deploys (Actions), templates de PR/issue
.nvmrc) e pnpm 10 (corepack enable resolve)winget install ffmpeg / brew install ffmpeg)# 1. Dependências
pnpm install
# 2. Postgres + Redis locais (projeto docker: radinho-dev)
docker compose -f infra/docker/docker-compose.dev.yml up -d
# 3. Variáveis de ambiente (edite com suas credenciais Firebase)
cp .env.example apps/api/.env # bloco "API"
cp .env.example apps/web/.env.local # bloco "WEB" (VITE_*)
# 4. Banco: migrations + seed
pnpm db:migrate
pnpm db:seed
# 5. Sobe web + api em paralelo
pnpm dev
| Serviço | URL local |
|---|---|
| Web (SPA) | http://localhost:5173 |
| API | http://localhost:4000 |
| Swagger (OpenAPI) | http://localhost:4000/api/docs |
| Healthcheck | http://localhost:4000/healthz |
| PostgreSQL | postgresql://aurial:aurial@localhost:5432/aurial |
| Redis | redis://localhost:6379 |
Sem Docker? Suba Postgres/Redis nativos com o mesmo usuário/senha/banco (
aurial/aurial/aurial) e os mesmos ports — o.env.examplejá aponta para eles.
| Comando | Ação |
|---|---|
pnpm dev | web + api em modo dev (paralelo) |
pnpm dev:web / pnpm dev:api | apenas um dos apps |
pnpm build | build de todos os pacotes |
pnpm lint / pnpm lint:fix | ESLint |
pnpm format / pnpm format:check | Prettier |
pnpm typecheck | tsc --noEmit em todos os pacotes |
pnpm test / pnpm test:coverage | Vitest em todos os pacotes |
pnpm e2e | Playwright (web) |
pnpm --filter @radinho/web android:apk | build web + sync Capacitor + APK debug |
pnpm db:generate / db:migrate / db:seed | Prisma |
Pré-requisitos locais:
JAVA_HOME configurado)ANDROID_HOME ou local.properties em apps/web/android)pnpm --filter @radinho/web android:apk
APK gerado em apps/web/android/app/build/outputs/apk/debug/app-debug.apk.
pnpm testpnpm e2emain roda install → build shared → prisma generate → lint → typecheck → test → build (.github/workflows/ci.yml)Resumo (guia completo em docs/DEPLOY.md):
apps/web, config em apps/web/vercel.json); deploy automático via deploy-web.ymlinfra/docker/docker-compose.prod.yml): postgres + redis + api + worker + nginx; bootstrap com infra/scripts/setup-server.sh, deploy com infra/scripts/deploy-api.sh (ou deploy-from-windows.ps1 da máquina dev)infra/pm2/ecosystem.config.cjsProprietária — todos os direitos reservados. Uso, cópia ou distribuição apenas com autorização expressa. Este repositório não aceita contribuições externas sem convite (veja docs/CONTRIBUTING.md).