Self-Hosting
Deploy ReleaseHub on your infrastructure
Run ReleaseHub on your own servers for complete control over your release management infrastructure.
Requirements
PHP 8.3+
With common extensions
Composer
PHP dependency manager
SQLite or MySQL
Database backend
Docker (Recommended)
The fastest way to get started. Pull the official Docker image and run with a single command.
Quick Start
Docker Compose
For production deployments, use Docker Compose:
services:
releasehub:
image: releasehubdev/server:latest
ports:
- "8080:80"
environment:
- APP_URL=https://releases.example.com
- JWT_SECRET=your-jwt-secret
- FILESYSTEM_DISK=local
volumes:
- ./storage:/var/www/html/storage
- ./database.sqlite:/var/www/html/database/database.sqlite
restart: unless-stopped
Run Setup
After starting the container, run the setup wizard to create your admin user:
Docker Hub: docker pull releasehubdev/server:latest
Manual Installation
Clone and Install Dependencies
Environment Setup
Edit .env with your configuration:
APP_NAME=ReleaseHub
APP_URL=http://localhost:8000
# Database - SQLite (default) or MySQL
DB_CONNECTION=sqlite
# JWT Authentication (generate a secure random key)
JWT_SECRET=your-jwt-secret-key-here
# File Storage: local or s3
FILESYSTEM_DISK=local
Run Migrations
Run Setup Command
This interactive wizard will:
- Ask for admin credentials (name, email, password)
- Set up default platforms (Android, iOS, Windows, macOS, Linux, Web)
- Create channel presets
Start Development Server
Storage Configuration
Local Storage (Default)
FILESYSTEM_DISK=local
Files stored in storage/app/releases/
S3-Compatible Storage
FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=your-key
AWS_SECRET_ACCESS_KEY=your-secret
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=your-bucket
AWS_ENDPOINT=https://s3.amazonaws.com
Core Features
Multi-Platform Support
APK, AAB, EXE, MSI, DMG, AppImage, DEB, ZIP, TAR.GZ
Chunked Uploads
Multipart uploads to bypass PHP limits for large files
Release Channels
Custom channels per project (Stable, Beta, Alpha, etc.)
Version Comparison
Configurable (build number first OR semver only)
Architecture Detection
Auto-detect from filename + manual override + universal builds
Changelogs
Full Markdown support for release notes
Force Updates
Per-version flag for critical updates
Draft Versions
Optional draft/publish workflow per project
Security & Access Control
JWT Authentication
Secure admin panel and API access
API Keys
Multiple keys per project with granular permissions
Download Auth Options
- • Public (no auth)
- • API Key required
- • Password protected
- • Access codes (single/multi-use)
- • Invite links with expiry
Rate Limiting
Tiered by auth type to prevent abuse
Audit Logging
All admin actions logged for compliance
Signed URLs
Time-limited download links for secure distribution
Console Commands
Database Migrations
Initial Setup
Creates admin user, platforms, channel presets
Cleanup Expired Uploads
Remove expired upload sessions and temp files
Cleanup Old Versions
Remove old versions based on project retention settings
Web Routes
| Route | Description |
|---|---|
/ | Public portal - project listings |
/project/{slug} | Public project detail page |
/project/{slug}/latest | Redirect to latest release APK |
/project/{slug}/{arch}/latest | Redirect to latest release APK for specific architecture (arm64-v8a, armeabi-v7a, x86_64) |
/invite/{token} | Invite link landing page |
/admin/login | Admin login page |
/admin | Admin dashboard |
/admin/projects | Project management |
/admin/platforms | Platform management |
/admin/users | User management |
/admin/audit-logs | Audit logs |
/admin/settings | Settings |
/health | Health check endpoint |
Directory Structure
releasehub/
├── app/
│ ├── Console/Commands/ # Artisan commands
│ │ ├── CleanupExpiredUploads.php
│ │ ├── CleanupOldVersions.php
│ │ └── SetupCommand.php
│ ├── Http/
│ │ ├── Controllers/
│ │ │ ├── Api/ # API controllers
│ │ │ ├── Admin/ # Admin API + page controllers
│ │ │ └── Public/ # Public portal controllers
│ │ └── Middleware/ # Auth, rate limiting, etc.
│ ├── Models/ # Eloquent models
│ └── Services/ # Business logic
├── config/ # Configuration files
├── database/
│ └── migrations/ # Database migrations
├── public/ # Web root
├── resources/views/
│ ├── layouts/
│ ├── admin/ # Admin panel views
│ └── public/ # Public portal views
├── routes/
│ └── web.php # All routes
└── storage/app/
└── releases/ # Uploaded files (local storage)