345 lines
13 KiB
HTML
345 lines
13 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta
|
|
name="description"
|
|
content="Hightube is an open source, cross-platform live streaming platform built with Flutter and Go."
|
|
/>
|
|
<title>Hightube | Open Source Live Streaming Platform</title>
|
|
<link rel="icon" href="assets/hightube-icon.png" />
|
|
<link rel="stylesheet" href="styles.css" />
|
|
</head>
|
|
<body>
|
|
<header class="topbar">
|
|
<a class="brand" href="#home" aria-label="Hightube home">
|
|
<img src="assets/hightube-icon.png" alt="" />
|
|
<span>Hightube</span>
|
|
</a>
|
|
<nav class="nav" aria-label="Primary navigation">
|
|
<a href="#architecture">Architecture</a>
|
|
<a href="#features">Features</a>
|
|
<a href="#downloads">Downloads</a>
|
|
<a href="#source">Source</a>
|
|
<a class="nav-cta" href="https://stream.nudt.space" target="_blank" rel="noopener">Try Now</a>
|
|
</nav>
|
|
<div class="topbar-actions">
|
|
<button class="theme-toggle" data-state="auto" aria-label="Theme: Auto" title="Theme: Auto — click to force Light">
|
|
<svg class="icon-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="5"/><path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/></svg>
|
|
<svg class="icon-moon" viewBox="0 0 24 24"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
|
|
<svg class="icon-auto" viewBox="0 0 24 24"><rect x="2" y="3" width="20" height="14" rx="2"/><path d="M8 21h8M12 17v4"/></svg>
|
|
</button>
|
|
<button class="hamburger" aria-label="Toggle navigation" aria-expanded="false">
|
|
<span></span>
|
|
<span></span>
|
|
<span></span>
|
|
</button>
|
|
</div>
|
|
</header>
|
|
|
|
<main id="home">
|
|
<section class="hero">
|
|
<div class="hero-copy">
|
|
<p class="eyebrow">Flutter + Go live streaming stack</p>
|
|
<h1>Hightube</h1>
|
|
<p class="lead">
|
|
An open source live streaming platform designed for creators,
|
|
private communities, classrooms, labs, and self-hosted media
|
|
services.
|
|
</p>
|
|
<div class="actions">
|
|
<a class="button primary" href="#downloads">Download builds</a>
|
|
<a
|
|
class="button secondary"
|
|
href="https://git.nudt.space/Highground-Soft/Hightube.git"
|
|
rel="noopener"
|
|
>
|
|
View source
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="hero-panel" aria-label="Hightube platform overview">
|
|
<div class="device-window">
|
|
<div class="window-bar">
|
|
<span></span>
|
|
<span></span>
|
|
<span></span>
|
|
</div>
|
|
<div class="stream-preview">
|
|
<div class="live-badge">LIVE</div>
|
|
<div class="play-symbol"></div>
|
|
</div>
|
|
<div class="stats-grid">
|
|
<div>
|
|
<strong>Flutter</strong>
|
|
<span>Client UI</span>
|
|
</div>
|
|
<div>
|
|
<strong>Go</strong>
|
|
<span>Backend API</span>
|
|
</div>
|
|
<div>
|
|
<strong>RTMP</strong>
|
|
<span>Streaming</span>
|
|
</div>
|
|
<div>
|
|
<strong>Open</strong>
|
|
<span>Source</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="architecture" class="section">
|
|
<div class="section-heading">
|
|
<p class="eyebrow">Architecture</p>
|
|
<h2>Built with Flutter clients and a Go streaming backend</h2>
|
|
<p>
|
|
Hightube separates a portable client experience from a compact,
|
|
self-hostable backend, keeping deployment simple while leaving room
|
|
for native desktop, mobile, and web clients.
|
|
</p>
|
|
</div>
|
|
<div class="architecture-grid">
|
|
<article class="architecture-card">
|
|
<div class="icon">F</div>
|
|
<h3>Flutter frontends</h3>
|
|
<p>
|
|
One UI technology stack targets Linux, Android, Web, and future
|
|
desktop builds with consistent interaction patterns.
|
|
</p>
|
|
</article>
|
|
<article class="architecture-card">
|
|
<div class="icon">G</div>
|
|
<h3>Go backend</h3>
|
|
<p>
|
|
The server handles API requests, authentication, live room state,
|
|
RTMP publishing, HTTP-FLV playback, chat, and monitoring.
|
|
</p>
|
|
</article>
|
|
<article class="architecture-card">
|
|
<div class="icon">S</div>
|
|
<h3>Self-hosted streaming</h3>
|
|
<p>
|
|
Deploy the server on your own Linux host and connect compatible
|
|
broadcasters such as OBS through standard RTMP workflows.
|
|
</p>
|
|
</article>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="features" class="section feature-band">
|
|
<div class="section-heading">
|
|
<p class="eyebrow">Project highlights</p>
|
|
<h2>Open, free, and cross-platform by design</h2>
|
|
</div>
|
|
<div class="feature-list">
|
|
<div class="feature-item">
|
|
<h3>Open source freedom</h3>
|
|
<p>
|
|
Read, modify, build, and deploy the platform from source without
|
|
vendor lock-in.
|
|
</p>
|
|
</div>
|
|
<div class="feature-item">
|
|
<h3>Cross-platform clients</h3>
|
|
<p>
|
|
Current builds include Linux, Web, and Android client packages,
|
|
with Windows builds planned later.
|
|
</p>
|
|
</div>
|
|
<div class="feature-item">
|
|
<h3>Practical live features</h3>
|
|
<p>
|
|
Live rooms, RTMP publishing, HTTP-FLV playback, multi-quality
|
|
transcoding, chat, danmaku-style messages, and admin monitoring.
|
|
</p>
|
|
</div>
|
|
<div class="feature-item">
|
|
<h3>Small deployment surface</h3>
|
|
<p>
|
|
The Go server uses a lightweight runtime model and can be deployed
|
|
as a single Linux server component.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="downloads" class="section">
|
|
<div class="section-heading">
|
|
<p class="eyebrow">Downloads</p>
|
|
<h2>Get the current executable builds</h2>
|
|
<p>
|
|
All builds are distributed through the project release page. Apple
|
|
device builds are not provided at this time.
|
|
</p>
|
|
</div>
|
|
<div class="download-grid">
|
|
<article class="download-card available">
|
|
<span class="status">Available</span>
|
|
<h3>Linux server</h3>
|
|
<p>Backend service for self-hosted streaming deployments.</p>
|
|
<a
|
|
class="download-link"
|
|
href="https://git.nudt.space/Highground-Soft/Hightube/releases/download/v1.0.0/hightube-server_amd64_v1.0.0"
|
|
rel="noopener"
|
|
>
|
|
Download Linux server
|
|
</a>
|
|
</article>
|
|
<article class="download-card available">
|
|
<span class="status">Available</span>
|
|
<h3>Linux client</h3>
|
|
<p>Desktop Flutter client packaged as an AppImage.</p>
|
|
<a
|
|
class="download-link"
|
|
href="https://git.nudt.space/Highground-Soft/Hightube/releases/download/v1.0.0/hightube-linux-amd64-v1.0.0.AppImage"
|
|
rel="noopener"
|
|
>
|
|
Download Linux AppImage
|
|
</a>
|
|
</article>
|
|
<article class="download-card available">
|
|
<span class="status">Available</span>
|
|
<h3>Android client</h3>
|
|
<p>ARM64 Android APK build for mobile viewing and interaction.</p>
|
|
<a
|
|
class="download-link"
|
|
href="https://git.nudt.space/Highground-Soft/Hightube/releases/download/v1.0.0/hightube-android-arm64-v8a-v1.0.0.apk"
|
|
rel="noopener"
|
|
>
|
|
Download Android APK
|
|
</a>
|
|
</article>
|
|
<article class="download-card available">
|
|
<span class="status">Available</span>
|
|
<h3>Web client</h3>
|
|
<p>Static web build archive for hosting the Flutter web frontend.</p>
|
|
<a
|
|
class="download-link"
|
|
href="https://git.nudt.space/Highground-Soft/Hightube/releases/download/v1.0.0/hightube-web-v1.0.0.tar.gz"
|
|
rel="noopener"
|
|
>
|
|
Download Web archive
|
|
</a>
|
|
</article>
|
|
<article class="download-card available">
|
|
<span class="status">Available</span>
|
|
<h3>Windows server</h3>
|
|
<p>Server executable for Windows environments.</p>
|
|
<a
|
|
class="download-link"
|
|
href="https://git.nudt.space/Highground-Soft/Hightube/releases/download/v1.0.0/hightube-server_amd64_v1.0.0.exe"
|
|
rel="noopener"
|
|
>
|
|
Download Windows server
|
|
</a>
|
|
</article>
|
|
<article class="download-card available">
|
|
<span class="status">Available</span>
|
|
<h3>Windows client</h3>
|
|
<p>Desktop client build for Windows users.</p>
|
|
<a
|
|
class="download-link"
|
|
href="https://git.nudt.space/Highground-Soft/Hightube/releases/download/v1.0.0/hightube-win_amd64_v1.0.0.zip"
|
|
rel="noopener"
|
|
>
|
|
Download Windows client
|
|
</a>
|
|
</article>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="source" class="section source-section">
|
|
<div>
|
|
<p class="eyebrow">Source code</p>
|
|
<h2>Build it, audit it, host it your way</h2>
|
|
<p>
|
|
Hightube is developed as an open source project. Clone the source,
|
|
inspect the Flutter and Go code, build your own binaries, and adapt
|
|
it for your own live platform.
|
|
</p>
|
|
</div>
|
|
<a
|
|
class="button primary"
|
|
href="https://git.nudt.space/Highground-Soft/Hightube.git"
|
|
rel="noopener"
|
|
>
|
|
Open repository
|
|
</a>
|
|
</section>
|
|
</main>
|
|
|
|
<script>
|
|
(function () {
|
|
/* ---- hamburger menu ---- */
|
|
var btn = document.querySelector('.hamburger');
|
|
var nav = document.querySelector('.nav');
|
|
if (btn && nav) {
|
|
btn.addEventListener('click', function () {
|
|
var open = nav.classList.toggle('open');
|
|
btn.setAttribute('aria-expanded', open);
|
|
});
|
|
}
|
|
|
|
/* ---- theme toggle ---- */
|
|
var toggle = document.querySelector('.theme-toggle');
|
|
if (!toggle) return;
|
|
|
|
var STATES = ['auto', 'light', 'dark'];
|
|
var LABELS = {
|
|
auto: 'Theme: Auto — click to force Light',
|
|
light: 'Theme: Light — click to force Dark',
|
|
dark: 'Theme: Dark — click to return to Auto'
|
|
};
|
|
|
|
function getTheme() {
|
|
return localStorage.getItem('theme') || 'auto';
|
|
}
|
|
|
|
function applyTheme(state) {
|
|
if (state === 'light') {
|
|
document.documentElement.setAttribute('data-theme', 'light');
|
|
} else if (state === 'dark') {
|
|
document.documentElement.setAttribute('data-theme', 'dark');
|
|
} else {
|
|
document.documentElement.removeAttribute('data-theme');
|
|
}
|
|
toggle.setAttribute('data-state', state);
|
|
toggle.setAttribute('aria-label', 'Theme: ' + state.charAt(0).toUpperCase() + state.slice(1));
|
|
toggle.setAttribute('title', LABELS[state]);
|
|
localStorage.setItem('theme', state);
|
|
}
|
|
|
|
function nextTheme(current) {
|
|
var idx = STATES.indexOf(current);
|
|
return STATES[(idx + 1) % STATES.length];
|
|
}
|
|
|
|
// init
|
|
var current = getTheme();
|
|
applyTheme(current);
|
|
|
|
toggle.addEventListener('click', function () {
|
|
applyTheme(nextTheme(getTheme()));
|
|
});
|
|
|
|
// listen for system changes (only matters in auto mode)
|
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function () {
|
|
if (getTheme() === 'auto') {
|
|
// force a repaint by re-applying auto
|
|
applyTheme('auto');
|
|
}
|
|
});
|
|
})();
|
|
</script>
|
|
<footer class="footer">
|
|
<span class="footer-hide-mobile">Hightube</span>
|
|
<span>Built with ❤️ by HighGround-soft 2026</span>
|
|
<span class="footer-hide-mobile">Open Source Live Platform</span>
|
|
</footer>
|
|
</body>
|
|
</html>
|