HYLS is a powerful, modern URL shortener with bio link pages, video embeds, OAuth integration, QR codes, and comprehensive analytics tracking.
- HypeChats OAuth - Sign in with HypeChats account
- Google OAuth 2.0 - Sign in with Google account
- Email/Password Login - Traditional authentication with bcrypt hashing
- Profile Management - Update profile pictures, names, and settings
- Session Security - Secure session handling and timeout
- SQL Injection Protection - All queries use prepared statements
- XSS Prevention - Input sanitization on all user data
- Custom Short URLs - Create memorable branded short links
- Random Short Codes - Auto-generate unique 6-character codes
- Link Editing - Update destination URLs without changing short code
- Link Deletion - Remove unwanted links instantly
- Link Banning - Admin can ban/block malicious links with reasons
- Bulk Operations - Manage multiple links at once
- Link Categories - Organize links (coming soon)
- Custom Bio Pages - Create personalized landing pages at
/bio.php?u=username - Profile & Cover Images - Upload and crop custom images (12MB max)
- Video Background - Set video as cover background
- 29+ Social Platform Links - Connect all your social media:
- Facebook, Instagram, Twitter/X, LinkedIn, YouTube
- TikTok, Snapchat, Pinterest, Reddit, Tumblr
- WhatsApp, Telegram, Discord, Skype, Slack
- GitHub, GitLab, Dribbble, Behance, Medium
- Spotify, SoundCloud, Apple Music, Twitch
- Steam, Xbox, PlayStation, Patreon, Ko-fi
- And 4 more custom platforms!
- Video Embeds - Embed videos from 6 platforms:
- ๐ YouTube - Full support with thumbnails
- ๐ Facebook Videos - Native embed support
- ๐ Instagram Reels/Videos - Direct integration
- ๐ TikTok - Embed TikTok videos
- ๐ Vimeo - Professional video hosting
- ๐ Dailymotion - Alternative video platform
- 6-Image Gallery - Showcase your portfolio or products
- Theme Customization - Choose custom brand colors (hex/rgb)
- Contact Information - Email and phone with show/hide toggle
- Bio Description - Rich text bio with line breaks
- View Counter - Track total page visits
- Link Toggle - Enable/disable individual social links
- Display Order - Reorder social links (drag & drop coming)
- Mobile Optimized - Perfect responsive design
- SEO Friendly - Meta tags and Open Graph support
- Real-time Click Tracking - Monitor link performance live
- Click Statistics - Total clicks per link
- IP Address Tracking - Log visitor IPs
- Referrer Tracking - See where traffic comes from
- User Agent Logging - Track browsers and devices
- Geolocation - Country/city tracking (with IP database)
- Time Series Data - View clicks over time
- Export Reports - Download analytics as CSV
- Link Performance - Top performing links dashboard
- Unique vs Total Clicks - Track unique visitors
- Multiple Platforms - Support for 6 major video platforms
- Auto Thumbnail - Automatic thumbnail extraction
- Responsive Embeds - Adapts to all screen sizes
- View Counter - Track video views on bio page
- Platform Icons - Display source platform badges
- Title & Description - Add context to embedded videos
- Display Order - Control video sequence
- Enable/Disable - Show/hide individual videos
- Advertisement System - Display ads on bio pages and redirects
- Ad Management Panel - Create and manage advertisements
- Ad Analytics - Track ad clicks and impressions
- Position Control - Set ad display order
- Image Ads - Upload custom ad banners
- CTA Buttons - Call-to-action button customization
- Enable/Disable Ads - Toggle ads on/off
- Ad Scheduling - Set start/end dates (coming soon)
- Revenue Tracking - Monitor monetization (coming soon)
- Comprehensive Dashboard - Statistics overview
- User Management - View, edit, delete users
- Link Management - Moderate all shortened URLs
- Ban System - Block problematic links with reasons
- User Roles - Admin and regular user roles
- System Settings - Configure site-wide options
- SMTP Configuration - Email server settings
- OAuth Settings - Configure Google & HypeChats OAuth
- Advertisement Manager - Create and manage ads
- Analytics Dashboard - View detailed statistics
- Database Backup - Manual backup functionality
- One-Click Updates - Auto-update from GitHub (requires Git)
- Database Migration System - Automatic schema updates
- Installation Wizard - Easy setup with step-by-step guide
- Mobile Responsive - Optimized for all devices
- Modern UI - Clean, gradient-based design with animations
- Dark Mode Ready - Prepare for dark theme (coming soon)
- REST API - API endpoints for link creation (coming soon)
- Webhooks - Event notifications (coming soon)
- Multi-language - i18n support (coming soon)
- Custom Domains - Use your own domains (coming soon)
- Team Collaboration - Share links in workspace (coming soon)
- Link Folders - Organize links in folders (coming soon)
- SMTP Integration - Full email sending capability
- Welcome Emails - Auto-send to new users
- Password Reset Emails - Secure reset links
- Notification Emails - Link expiration alerts
- HTML Templates - Beautiful email designs
- Test Email Function - Verify SMTP settings
- Popular SMTP Support - Gmail, SendGrid, Mailgun, etc.
- Bio Content Editor - Rich text editing
- Image Upload - Drag & drop image uploads
- Image Cropping - Built-in crop tool for profile pictures
- Gallery Management - Upload/delete gallery images
- Link Organization - Sort and manage social links
- Draft Mode - Save bio as draft before publishing
- Preview Mode - Preview bio page before going live
- โ 29+ Social Platforms supported
- โ 6 Video Embed Platforms integrated
- โ 2 OAuth Providers (Google + HypeChats)
- โ Unlimited Links - No restrictions
- โ Unlimited Bio Pages - One per user
- โ 12MB Image Upload - High quality support
- โ 6 Gallery Images - Perfect portfolio showcase
- โ 100% Responsive - Mobile-first design
- PHP 7.4 or higher (PHP 8.x recommended)
- MySQL 5.7 or higher (or MariaDB 10.2+)
- Apache/Nginx with mod_rewrite or equivalent
- Git (optional, for auto-updates)
- SSL Certificate (recommended for OAuth)
- PDO
- PDO_MySQL
- cURL
- JSON
- OpenSSL
- GD (for image processing)
- mbstring
- fileinfo
- RAM: 512MB minimum, 1GB+ recommended
- Storage: 1GB minimum (grows with uploads)
- Bandwidth: Unlimited or generous limit
git clone https://github.com/david0154/hyls.git
cd hylschmod 755 uploads/
chmod 755 uploads/bio/
chmod 755 uploads/bio/gallery/
chmod 755 uploads/qr/For Apache: Ensure .htaccess is enabled in your virtual host:
<Directory "/path/to/hyls">
AllowOverride All
Require all granted
</Directory>For Nginx: Add to your server block:
server {
listen 80;
server_name yourdomain.com;
root /path/to/hyls;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}Visit: https://yourdomain.com/install.php
The installer will:
- โ Check system requirements
- โ Test PHP extensions
- โ Create database configuration
- โ Set up all database tables
- โ Create admin account
- โ Configure initial settings
- โ Generate security keys
Edit config.php after installation:
<?php
// Database Configuration
define('DB_HOST', 'localhost');
define('DB_NAME', 'hyls_db');
define('DB_USER', 'your_username');
define('DB_PASS', 'your_password');
// Site Configuration
define('SITE_URL', 'https://yourdomain.com');
define('SITE_NAME', 'HYLS');
// Google OAuth
define('GOOGLE_CLIENT_ID', 'your_google_client_id.apps.googleusercontent.com');
define('GOOGLE_CLIENT_SECRET', 'your_google_client_secret');
define('GOOGLE_REDIRECT_URI', 'https://yourdomain.com/google-auth.php');
// HypeChats OAuth
define('APP_ID', 'your_hypechats_app_id');
define('APP_SECRET', 'your_hypechats_app_secret');
define('REDIRECT_URI', 'https://yourdomain.com/auth.php');
// Email Configuration (Optional)
define('SMTP_HOST', 'smtp.gmail.com');
define('SMTP_PORT', 587);
define('SMTP_USERNAME', '[email protected]');
define('SMTP_PASSWORD', 'your_app_password');
define('SMTP_FROM_EMAIL', '[email protected]');
define('SMTP_FROM_NAME', 'HYLS');
?>After successful installation:
# Delete or move the installer
rm install.php
# Or move to a secure location
mv install.php install.php.bak- Visit Google Cloud Console
- Create Project or select existing one
- Enable APIs:
- Google+ API
- Google People API
- Create Credentials:
- OAuth 2.0 Client ID
- Application Type: Web Application
- Add Authorized Redirect URIs:
https://yourdomain.com/google-auth.php - Copy Credentials to
config.php:- Client ID
- Client Secret
- Visit HypeChats Developer Portal
- Login/Sign up at HypeChats
- Create New Application
- Set Redirect URI:
https://yourdomain.com/auth.php - Copy to
config.php:- App ID
- App Secret
- Login as admin
- Go to Admin Panel โ Settings
- Enter SMTP details
- Click "Send Test Email" to verify
- Save settings
Edit config.php with your SMTP details.
Popular SMTP Providers:
Gmail:
define('SMTP_HOST', 'smtp.gmail.com');
define('SMTP_PORT', 587);
define('SMTP_USERNAME', '[email protected]');
define('SMTP_PASSWORD', 'your_app_password'); // Use App Password, not regular passwordSendGrid:
define('SMTP_HOST', 'smtp.sendgrid.net');
define('SMTP_PORT', 587);
define('SMTP_USERNAME', 'apikey');
define('SMTP_PASSWORD', 'your_sendgrid_api_key');Mailgun:
define('SMTP_HOST', 'smtp.mailgun.org');
define('SMTP_PORT', 587);
define('SMTP_USERNAME', '[email protected]');
define('SMTP_PASSWORD', 'your_mailgun_password');Microsoft 365:
define('SMTP_HOST', 'smtp.office365.com');
define('SMTP_PORT', 587);
define('SMTP_USERNAME', '[email protected]');
define('SMTP_PASSWORD', 'your_password');- Visit:
https://yourdomain.com/update.php - Click "Update Now"
- System will:
- โ Fetch latest changes from GitHub
- โ Run database migrations
- โ Update all files
- โ Clear cache
cd /path/to/hyls
git pull origin mainThen visit: https://yourdomain.com/install.php?mode=migrate
- Download latest release from GitHub
- Extract files
- Upload to server (overwrite existing)
- Visit:
https://yourdomain.com/install.php?mode=migrate
- Login to your dashboard
- Enter your long URL
- (Optional) Customize short code
- (Optional) Add password protection
- (Optional) Set expiration date
- Click "Shorten"
- Copy and share your short link!
Short link format: yourdomain.com/abc123
- Go to Dashboard โ Bio Link
- Basic Information:
- Display name
- Bio description (supports line breaks)
- Contact email
- Phone number
- Toggle contact visibility
- Images:
- Upload profile picture (crop to circle)
- Upload cover image (16:9 recommended)
- Or set video as background
- Social Links:
- Add links for 29+ platforms
- Enable/disable individual links
- Links appear with platform icons
- Gallery:
- Upload up to 6 images
- Perfect for portfolio showcase
- Images display in grid layout
- Videos:
- Add YouTube, Facebook, Instagram, TikTok, Vimeo, Dailymotion
- Videos embed with play buttons
- Thumbnails auto-generated
- Theme:
- Choose brand color (hex or RGB)
- Applies to buttons and links
- Click "Save Changes"
- View your bio:
yourdomain.com/bio.php?u=your_username
- Admin Panel โ Advertisements
- Click "Create New Ad"
- Fill in details:
- Ad title
- Description
- Target URL
- Upload ad image
- CTA button text
- Set display order
- Enable ad
- Ads appear on:
- Bio pages
- Redirect pages (optional)
- Dashboard โ Your Links
- Click "View Stats" on any link
- See:
- Total clicks
- Click timeline
- Referrer sources
- Browser/device breakdown
- Geographic data
- Go to any shortened link
- Click "Generate QR Code"
- QR code displays instantly
- Right-click to save
- Use for:
- Print materials
- Business cards
- Posters and flyers
- Product packaging
hyls/
โโโ ๐ admin/ # Admin Panel
โ โโโ index.php # Dashboard
โ โโโ users.php # User management
โ โโโ links.php # Link management
โ โโโ settings.php # Settings
โ โโโ advertisements.php # Ad management
โ โโโ analytics.php # Analytics
โ
โโโ ๐ assets/ # Static files
โ โโโ css/style.css # Stylesheets
โ โโโ js/main.js # JavaScript
โ โโโ images/ # Images
โ โโโ favicon.ico # Favicon
โ
โโโ ๐ docs/ # Documentation
โ โโโ API.md
โ โโโ INSTALLATION.md
โ โโโ FEATURES.md
โ
โโโ ๐ includes/ # Core classes
โ โโโ db.php # Database
โ โโโ functions.php # Helpers
โ โโโ image_processor.php # Images
โ โโโ mailer.php # Email
โ โโโ video_embed.php # Videos
โ
โโโ ๐ install/ # Installation
โ โโโ install.php
โ โโโ database.sql
โ
โโโ ๐ uploads/ # User uploads
โ โโโ bio/
โ โ โโโ gallery/
โ โโโ qr/
โ
โโโ ๐ .htaccess # Apache config
โโโ ๐ .gitignore # Git ignore
โโโ ๐ ad-page.php # Ad page
โโโ ๐ auth.php # HypeChats OAuth
โโโ ๐ bio.php # Public bio page
โโโ ๐ biolink.php # Bio management
โโโ ๐ config.sample.php # Config template
โโโ ๐ dashboard.php # User dashboard
โโโ ๐ delete_link.php # Delete handler
โโโ ๐ edit_bio.php # Bio editor
โโโ ๐ google-auth.php # Google OAuth
โโโ ๐ index.php # Landing page
โโโ ๐ login.php # Login page
โโโ ๐ logout.php # Logout
โโโ ๐ r.php # Redirect
โโโ ๐ shorten.php # Shorten API
โโโ ๐ update.php # Auto-update
โโโ ๐ LICENSE # MIT License
โโโ ๐ README.md # This file
โโโ ๐ UPGRADE_INSTRUCTIONS.md # Upgrade guide
- โ Password Hashing - bcrypt with salt for user passwords
- โ SQL Injection Protection - PDO prepared statements everywhere
- โ XSS Prevention - htmlspecialchars() on all outputs
- โ CSRF Protection - Token-based form validation
- โ Session Security - Secure session handling with timeout
- โ OAuth 2.0 - Industry-standard authentication
- โ Link Password Protection - Encrypted passwords for sensitive links
- โ File Upload Validation - Strict image type checking
- โ SQL Timeout Protection - Query timeout limits
- โ Brute Force Protection - Login attempt limiting
- โ HTTPS Enforcement - Redirect to secure connection
- โ Input Sanitization - Filter all user inputs
- โ Directory Protection - .htaccess security rules
Error: Database connection failed
Solution:
- Verify database credentials in
config.php - Ensure MySQL service is running
- Check if user has proper permissions
- Test connection:
mysql -u username -p database_nameError: Redirect URI mismatch
Solution: Ensure redirect URI in Google Console matches EXACTLY:
https://yourdomain.com/google-auth.php
Note: No trailing slash, must be HTTPS in production
Error: Invalid client
Solution:
- Check Client ID is correct
- Verify Client Secret has no extra spaces
- Ensure OAuth consent screen is published
Error: Failed to upload image
Solution: Check permissions:
chmod 755 uploads/
chmod 755 uploads/bio/
chmod 755 uploads/bio/gallery/
chmod 755 uploads/qr/Check ownership:
chown www-data:www-data uploads/ -R
# Or for Apache:
chown apache:apache uploads/ -RError: File too large
Solution:
Increase PHP limits in php.ini:
upload_max_filesize = 12M
post_max_size = 12M
memory_limit = 128MError: Git not found
Solution: Install Git:
# Ubuntu/Debian
sudo apt-get install git
# CentOS/RHEL
sudo yum install git
# Or use manual update methodError: Permission denied during update
Solution:
chown www-data:www-data /path/to/hyls -R
chmod 755 /path/to/hyls -RError: SMTP connection failed
Solution:
- Verify SMTP credentials
- Check firewall allows port 587 (or 465)
- For Gmail: Enable "Less secure app access" or use App Password
- Test with telnet:
telnet smtp.gmail.com 587Error: Video not displaying
Solution:
- Ensure video URL is public
- Check video platform allows embedding
- Verify video ID is extracted correctly
- Test embed code in standalone HTML
-- Add indexes for better performance
CREATE INDEX idx_short_code ON links(short_code);
CREATE INDEX idx_user_id ON links(user_id);
CREATE INDEX idx_created_at ON links(created_at);// Enable OPcache in php.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000Use CDN for static assets:
<!-- Replace local assets with CDN -->
<link rel="stylesheet" href="https://cdn.yourdomain.com/css/style.css">- Compress images before upload
- Use WebP format where possible
- Implement lazy loading
Contributions are welcome! Here's how:
- Check if bug already exists in Issues
- Create new issue with:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Your environment (PHP version, OS, etc.)
- Open a Feature Request
- Describe:
- Use case
- Expected behavior
- Mockups if available
- Fork the repository
- Create feature branch:
git checkout -b feature/AmazingFeature
- Commit your changes:
git commit -m 'Add AmazingFeature' - Push to branch:
git push origin feature/AmazingFeature
- Open Pull Request
- Follow PSR-12 coding standard
- Comment complex logic
- Write descriptive commit messages
- Test before submitting
- Update documentation if needed
This project is licensed under the MIT License - see the LICENSE file for details.
What this means:
- โ Commercial use allowed
- โ Modification allowed
- โ Distribution allowed
- โ Private use allowed
โ ๏ธ License and copyright notice required- โ No warranty provided
- โ No liability accepted
David Studioz
- ๐ GitHub: @david0154
- ๐ง Email: Contact via GitHub
- ๐ Website: David Studioz
- ๐ป Project: HYLS
- PHP - Server-side scripting
- MySQL - Database management
- JavaScript - Client-side interactivity
- Font Awesome - Icon library
- Google APIs - OAuth authentication
- HypeChats - Social OAuth platform
- Linktree - Bio link concept
- Bitly - URL shortening
- TinyURL - Simple short links
- All contributors and testers
- Open source community
- Users providing feedback
- ๐ Documentation: GitHub Wiki
- ๐ Report Bug: GitHub Issues
- โจ Request Feature: GitHub Issues
- ๐ฌ Discussions: GitHub Discussions
- ๐ Changelog: Releases
- ๐ก๏ธ Security: Report via GitHub Security tab
- REST API with authentication
- Webhooks for events
- Custom domains support
- Team collaboration features
- Link folders and categories
- Advanced analytics dashboard
- Dark mode
- Multi-language support
- Mobile apps (iOS & Android)
- Browser extensions
- A/B testing for links
- Link retargeting pixels
- Conversion tracking
- Branded short domains
- Link scheduling
- Bulk link import/export
- Two-factor authentication
- API rate limiting
Q: Is HYLS free?
A: Yes! HYLS is 100% free and open source under MIT License.
Q: Can I use HYLS commercially?
A: Absolutely! Use it for personal or commercial projects.
Q: Do you offer hosting?
A: No, but you can deploy on any PHP hosting (shared/VPS/cloud).
Q: What's the maximum file size for uploads?
A: Default is 12MB, configurable in PHP settings.
Q: How many links can I create?
A: Unlimited! No restrictions on link creation.
Q: Does it support custom domains?
A: Not yet, planned for version 2.0.
Q: Can I self-host?
A: Yes! That's the whole point. Full control on your server.
Q: How many social platforms are supported?
A: 29+ major social platforms plus custom links.
Q: Can I embed videos from any platform?
A: Currently supports 6 platforms: YouTube, Facebook, Instagram, TikTok, Vimeo, Dailymotion.
Q: Is there an API?
A: API is coming in version 2.0.
- โญ Star this repo to get notifications
- ๐๏ธ Watch for new releases
- ๐จโ๐ป Follow @david0154
If you find HYLS useful, consider:
- โญ Starring the repository
- ๐ Reporting bugs
- ๐ก Suggesting features
- ๐ฅ Sharing with others
- ๐ Writing tutorials
- ๐ Contributing code
Made with โค๏ธ by David
Last Updated: January 8, 2026 | Version 1.5