Skip to content

Repository files navigation

Vibebox

Self-hosted music streaming web application built with vanilla PHP and MySQL.

Features

  • User authentication (register, login, remember me, password reset via email)
  • Song browsing with search, mood filter, and sort
  • Audio playback with HTML5 player
  • Favorites management
  • Playlist creation and management
  • Listening history tracking
  • User profile management (change username, password, delete account)
  • Admin panel (manage songs, users, ban/unban, toggle roles)
  • Dark/light theme toggle
  • Responsive design

Requirements

  • PHP 8.0+
  • MySQL / MariaDB
  • Apache with mod_rewrite
  • Composer

Installation

  1. Clone the repository into your web root (e.g., htdocs/vibebox)
  2. Copy .env.example to .env and edit database/SMTP credentials:
    cp .env.example .env
    
  3. Create a MySQL database named vibebox (or your preferred name):
    mysql -u root -p < vibebox.sql
    
  4. Install Composer dependencies:
    composer install
    
  5. Make sure Apache has AllowOverride All for the project directory
  6. Access the app at http://localhost/vibebox

The app will auto-create missing tables/columns on first run.

Security

  • SMTP credentials are stored in .env (not committed to Git)
  • CSRF protection on all POST forms
  • Rate limiting on login, registration, and password reset
  • Session regeneration on login and password changes
  • Remember tokens are hashed before database storage
  • Passwords hashed with bcrypt

Default Setup

  • Register a new account through the web interface
  • The first registered user will have user role
  • Promote a user to admin via the database:
    UPDATE users SET role = 'admin' WHERE email = 'your@email.com';

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages