Merge branch 'main' of github.com:monochrome-music/monochrome

This commit is contained in:
Samidy 2026-03-10 04:58:21 +03:00
commit ce4979bdb2
3 changed files with 50 additions and 16 deletions

View file

@ -1,26 +1,52 @@
# ------------------------------------------------------------ # ------------------------------------------------------------
# Base Image # Base Image
# ------------------------------------------------------------ # ------------------------------------------------------------
FROM mcr.microsoft.com/devcontainers/base:debian FROM debian:unstable-slim
ENV DEBIAN_FRONTEND=noninteractive
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
# ------------------------------------------------------------ # ------------------------------------------------------------
# System Dependencies # System Dependencies
# ------------------------------------------------------------ # ------------------------------------------------------------
RUN apt update && apt upgrade -y && \ RUN apt-get update && apt-get upgrade -y && \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
curl \
ca-certificates \
git \ git \
git-lfs \ build-essential \
sudo \
fish \ fish \
unzip \
xz-utils \
libatomic1 \
libc6 \
wget \
nodejs \ nodejs \
npm \ npm && \
curl rm -rf /var/lib/apt/lists/*
# ------------------------------------------------------------
# Create Non-Root User
# ------------------------------------------------------------
ARG USERNAME=devuser
ARG UID=1000
ARG GID=1000
RUN groupadd --gid ${GID} ${USERNAME} && \
useradd --uid ${UID} --gid ${GID} -m -s /usr/bin/fish ${USERNAME} && \
echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
USER ${USERNAME}
WORKDIR /home/${USERNAME}
# ------------------------------------------------------------ # ------------------------------------------------------------
# Install Bun (Non-Root) # Install Bun (Non-Root)
# ------------------------------------------------------------ # ------------------------------------------------------------
ENV BUN_INSTALL="$HOME/.bun" ENV BUN_INSTALL=/home/${USERNAME}/.bun
ENV PATH="$BUN_INSTALL/bin:$PATH" ENV PATH="${BUN_INSTALL}/bin:${PATH}"
RUN curl -fsSL https://bun.sh/install | bash RUN curl -fsSL https://bun.sh/install | bash
# ------------------------------------------------------------ # ------------------------------------------------------------
@ -32,11 +58,11 @@ RUN curl -fsSL https://opencode.ai/install -o opencode-install && \
rm opencode-install rm opencode-install
# Add OpenCode to PATH permanently # Add OpenCode to PATH permanently
ENV PATH="$HOME/.opencode/bin:$PATH" ENV PATH="/home/${USERNAME}/.opencode/bin:${PATH}"
# ------------------------------------------------------------ # ------------------------------------------------------------
# Ensure fish is Default Shell # Ensure fish is Default Shell
# ------------------------------------------------------------ # ------------------------------------------------------------
ENV SHELL=/usr/bin/fish ENV SHELL=/usr/bin/fish
CMD ["fish"] CMD ["fish"]

View file

@ -1,14 +1,22 @@
{ {
"name": "Monochrome Dev Container", "name": "debian-npm-fish-devcontainer",
"build": { "build": {
"context": "..", "dockerfile": "Dockerfile"
"dockerfile": "./Dockerfile"
}, },
"postCreateCommand": "git config --local core.editor \"code --wait\" && git config --local commit.gpgsign false && npm install && bun install",
"remoteUser": "devuser",
"features": {},
"customizations": { "customizations": {
"vscode": { "vscode": {
"extensions": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] "extensions": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"]
} }
}, },
"mounts": ["source=${env:HOME}/.gitconfig,target=/home/vscode/.gitconfig,type=bind,consistency=cached"]
"postCreateCommand": "npm install",
"remoteEnv": {
"SHELL": "/usr/bin/fish"
}
} }

View file

@ -2604,7 +2604,7 @@ export class UIRenderer {
setupHlsVideo(video, result, fallbackImg) { setupHlsVideo(video, result, fallbackImg) {
if (!result) return; if (!result) return;
const url = typeof result === 'string' ? result : (result.videoUrl || result.hlsUrl); const url = typeof result === 'string' ? result : result.videoUrl || result.hlsUrl;
if (!url) return; if (!url) return;
if (url.endsWith('.m3u8')) { if (url.endsWith('.m3u8')) {