dc949bdeab
Build and Push Docker Image / build (push) Failing after 1m5s
Local push & file browser - File browser with breadcrumb nav, search, directory memory, .. row, and hidden/system folder filtering (./@/#) - Color-coded file extension tags; file sizes shown inline - Per-file push modal with random stream key generator and responsive width - Folder multi-file push modal: independent stream keys per file, batch start/stop, inline live-dot status with real-time duration - Push status inline in file rows replacing top push-jobs area; job detail modal with copy/stop/add-stream actions - /h/<slug> HLS proxy route registered automatically on push start - Folder push and publish-archive recurse subfolders via os.walk - "Add to existing stream" dropdown at file, folder, and job modal entries - Stream editor supports prefilling multiple source links via links array - list_folder_videos API returns playable files with signed URLs VOD / video serving - /video/<token>/<payload> endpoint with HMAC-signed URLs and HTTP Range support (206 Partial Content, seek-capable) - Publish-archive button on file rows and folder rows Admin UX - Replace all 18 native alert() with themed Toast notifications (success/error/info/warn, 3.5s auto-dismiss, dark mode aware) - Replace all 3 native confirm() with custom modal (showConfirm) - Custom overlay scrollbar for admin.html and index.html: no layout shift, theme-colored, auto-hides after 1.5s, drag-supported - background-attachment: fixed on admin and index body backgrounds - Drag handle for viewport config rows in stream editor - Pagination and real-time search for hidden push address mapping table - Pagination for stream analytics detail table with SSE-safe page state - Stream picker search placeholder i18n - Lang toggle button title/aria-label i18n - View URL hash renamed: push -> local, obs -> remote Index (public) page - Load more: viewport-aware initial batch calculated from .stream-switch bottom position; ghost-style button; card entrance animation with 50ms per-card stagger on load-more click only Infrastructure - Dockerfile: install ffmpeg; separate requirements COPY for layer cache - docker-compose.yml: add RTMP_HOST, VIDEOS_DIRS env vars, videos volume - README: document VIDEOS_DIRS mount methods, password reset procedure Fixes - action=add 500 error: psycopg3 dict_row does not support int subscript - Lang toggle button title/aria-label missing i18n keys - API Keys list not re-rendering on language switch - Admin stream count per tab showing combined LIVE+ARCHIVE total - Em dash in api.new_token_hint replaced with hyphen
55 lines
1.5 KiB
YAML
55 lines
1.5 KiB
YAML
services:
|
|
streamhall:
|
|
image: git.stdm.moe/stardream/streamhall:latest
|
|
# To build from source instead: comment out image above and uncomment below
|
|
# build: .
|
|
container_name: streamhall
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- postgres
|
|
ports:
|
|
- "8085:8080"
|
|
environment:
|
|
SECRET_KEY: "change-this-secret"
|
|
DATABASE_URL: "postgresql://streamhall:streamhall_pg_password@postgres:5432/streamhall"
|
|
TZ: "UTC"
|
|
RTMP_HOST: "srs"
|
|
# Comma-separated list of video directories (optional label:path format)
|
|
# Example for multiple dirs: "movies:/app/media/movies,anime:/app/media/anime"
|
|
VIDEOS_DIRS: "/app/videos"
|
|
volumes:
|
|
- ./videos:/app/videos
|
|
# Mount additional directories as needed:
|
|
# - /local/path:/app/media/label
|
|
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: streamhall-postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: "streamhall"
|
|
POSTGRES_USER: "streamhall"
|
|
POSTGRES_PASSWORD: "streamhall_pg_password"
|
|
TZ: "UTC"
|
|
volumes:
|
|
- ./postgres-data:/var/lib/postgresql/data
|
|
|
|
srs:
|
|
image: ossrs/srs:6
|
|
container_name: streamhall-srs
|
|
restart: unless-stopped
|
|
ports:
|
|
- "1935:1935"
|
|
- "18088:8080"
|
|
|
|
nginx-hls:
|
|
image: nginx:alpine
|
|
container_name: streamhall-nginx-hls
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- streamhall
|
|
ports:
|
|
- "8889:80"
|
|
volumes:
|
|
- ./nginx-hls.conf:/etc/nginx/conf.d/default.conf:ro
|