Initial commit: Nicotine-Less Docker container
Some checks failed
Build and Push Docker Image / check-version (push) Successful in 15s
Build and Push Docker Image / build (linux/arm64, linux-arm64) (push) Failing after 1s
Build and Push Docker Image / build (linux/amd64, linux-amd64) (push) Failing after 1s
Build and Push Docker Image / create-manifest (push) Has been skipped
Some checks failed
Build and Push Docker Image / check-version (push) Successful in 15s
Build and Push Docker Image / build (linux/arm64, linux-arm64) (push) Failing after 1s
Build and Push Docker Image / build (linux/amd64, linux-amd64) (push) Failing after 1s
Build and Push Docker Image / create-manifest (push) Has been skipped
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>
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