Initial commit: Nicotine-Less Docker container
Some checks failed
Build and Push Docker Image / check-version (push) Has been cancelled
Build and Push Docker Image / build (linux/amd64, linux-amd64:host) (push) Has been cancelled
Build and Push Docker Image / build (linux/arm64, linux-arm64:host) (push) Has been cancelled
Build and Push Docker Image / create-manifest (push) Has been cancelled
Some checks failed
Build and Push Docker Image / check-version (push) Has been cancelled
Build and Push Docker Image / build (linux/amd64, linux-amd64:host) (push) Has been cancelled
Build and Push Docker Image / build (linux/arm64, linux-arm64:host) (push) Has been cancelled
Build and Push Docker Image / create-manifest (push) Has been cancelled
A containerized Nicotine+ (Soulseek client) with noVNC web interface. Features: - Web-based VNC access with dynamic screen resizing - Firefox ESR browser included for port testing - Multi-architecture support (amd64, arm64) - Automated builds when Nicotine+ releases new versions - Mirrored Alpine base image to avoid Docker Hub rate limiting 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
89
Dockerfile
Normal file
89
Dockerfile
Normal file
@@ -0,0 +1,89 @@
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
# Metadata
|
||||
LABEL maintainer="Nicola"
|
||||
LABEL description="Nicotine+ with noVNC web interface and SSH X forwarding support"
|
||||
LABEL version="1.0"
|
||||
|
||||
# Avoid interactive prompts
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Environment variables
|
||||
ENV DISPLAY=:0 \
|
||||
VNC_PORT=5900 \
|
||||
NOVNC_PORT=6080 \
|
||||
VNC_RESOLUTION=1280x720 \
|
||||
VNC_DEPTH=24 \
|
||||
USER=nicotine \
|
||||
PUID=1000 \
|
||||
PGID=1000
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update && apt-get install -y \
|
||||
# Lightweight window manager
|
||||
openbox \
|
||||
xterm \
|
||||
dbus-x11 \
|
||||
# VNC server
|
||||
tigervnc-standalone-server \
|
||||
tigervnc-common \
|
||||
# noVNC for web interface
|
||||
novnc \
|
||||
python3-websockify \
|
||||
# Nicotine+ dependencies
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-gi \
|
||||
python3-gi-cairo \
|
||||
gir1.2-gtk-3.0 \
|
||||
# Lightweight browser
|
||||
firefox-esr \
|
||||
# For SSH X forwarding
|
||||
xauth \
|
||||
# Supervisord to manage processes
|
||||
supervisor \
|
||||
# Utilities
|
||||
wget \
|
||||
curl \
|
||||
procps \
|
||||
net-tools \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Nicotine+ latest version
|
||||
RUN pip3 install --no-cache-dir --break-system-packages nicotine-plus
|
||||
|
||||
# Create non-root user
|
||||
RUN groupadd -g ${PGID} ${USER} && \
|
||||
useradd -u ${PUID} -g ${PGID} -m -s /bin/bash ${USER}
|
||||
|
||||
# Create directories
|
||||
RUN mkdir -p \
|
||||
/config \
|
||||
/downloads \
|
||||
/incomplete \
|
||||
/home/${USER}/.config/openbox \
|
||||
/home/${USER}/.config/nicotine \
|
||||
/home/${USER}/.vnc \
|
||||
/var/log/supervisor
|
||||
|
||||
# Copy configurations
|
||||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||
COPY openbox-rc.xml /home/${USER}/.config/openbox/rc.xml
|
||||
COPY index.html /usr/share/novnc/index.html
|
||||
|
||||
# Set permissions
|
||||
RUN chmod +x /usr/local/bin/entrypoint.sh \
|
||||
&& chown -R ${USER}:${USER} /home/${USER} /config /downloads /incomplete
|
||||
|
||||
# Expose noVNC and Soulseek ports
|
||||
EXPOSE 6080 2234 2235/udp
|
||||
|
||||
# Volumes
|
||||
VOLUME ["/config", "/downloads", "/incomplete"]
|
||||
|
||||
WORKDIR /home/${USER}
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||
Reference in New Issue
Block a user