Add Pi-hole with AdGuard DOH/DOT integration, reorganize swarm stacks, add DNS/n8n docs

This commit is contained in:
2025-12-18 15:38:57 +00:00
parent 827f8bbf9d
commit f0c525d0df
44 changed files with 3013 additions and 486 deletions

View File

@@ -0,0 +1,75 @@
FROM ubuntu:22.04
# Avoid prompts during package installation
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=UTC
# Set ZSH as default shell
ENV SHELL=/usr/bin/zsh
# Install essential packages
RUN apt update && apt install -y \
# DNS and networking
unbound \
dnsutils \
bind9-utils \
net-tools \
iputils-ping \
traceroute \
curl \
wget \
# SSH server
openssh-server \
# Shell and utilities
zsh \
git \
vim \
nano \
htop \
tmux \
tree \
ncdu \
# System tools
sudo \
ca-certificates \
gnupg \
lsb-release \
software-properties-common \
# Build tools (useful for compiling)
build-essential \
# Process management
supervisor \
&& rm -rf /var/lib/apt/lists/*
# Install Oh My Zsh (for root)
RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
# Set ZSH as default shell for root
RUN chsh -s /usr/bin/zsh root
# Configure SSH
RUN mkdir /var/run/sshd && \
# Change SSH port to 2222
sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config && \
# Enable root login (change to 'no' if you want to create a separate user)
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
# SSH login fix for container
sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
# Set a default root password (CHANGE THIS!)
RUN echo 'root:changeme123' | chpasswd
# Create necessary directories
RUN mkdir -p /var/log/supervisor /config/unbound /config/supervisor
# Copy supervisor configuration
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# Expose ports
EXPOSE 2222 5335
# Working directory
WORKDIR /config
# Start supervisor
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]