Files
nicotine-less/Dockerfile
Claude 7308092399
Some checks failed
Build and Push Docker Image / check-version (push) Failing after 2s
Build and Push Docker Image / build (linux/arm64, linux-arm64) (push) Has been skipped
Build and Push Docker Image / build (linux/amd64, linux-amd64) (push) Has been skipped
Build and Push Docker Image / create-manifest (push) Has been skipped
Initial commit: Nicotine-Less Docker container
Lightweight Docker container for Nicotine+ with noVNC web interface and Firefox ESR browser.

Features:
- noVNC web interface with dynamic resize support
- Firefox ESR for testing ports and browsing
- TigerVNC with AcceptSetDesktopSize enabled
- Supervisor for process management
- Configurable user/group permissions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-20 11:01:14 +02:00

90 lines
2.1 KiB
Docker

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"]