docker is working onion site reachable from host

This commit is contained in:
whaffman 2025-07-05 13:05:19 +02:00
parent 46c925b0c5
commit fac528684f
5 changed files with 68 additions and 22 deletions

View File

@ -2,16 +2,40 @@ FROM alpine:3.20
RUN apk update && \ RUN apk update && \
apk upgrade && \ apk upgrade && \
apk add --no-cache nginx, openssh, tor \ apk add --no-cache nginx tor openssh && \
&& rm -rf /var/cache/apk/* rm -rf /var/cache/apk/*
# Setup SSH
RUN mkdir -p /var/run/sshd && \
ssh-keygen -A && \
echo "root:password" | chpasswd
COPY sshd_config /etc/ssh/sshd_config
# Setup Nginx
RUN mkdir -p /var/www/html && \
mkdir -p /var/log/nginx && \
mkdir -p /run/nginx && \
chown -R nginx:nginx /var/www/html && \
chown -R nginx:nginx /var/log/nginx && \
chown -R nginx:nginx /run/nginx
COPY nginx.conf /etc/nginx/nginx.conf COPY nginx.conf /etc/nginx/nginx.conf
COPY torrc /etc/tor/torrc
COPY sshd_config /etc/ssh/sshd_config
COPY index.html /var/www/html/index.html
COPY entrypoint.sh /entrypoint.sh
# Setup Tor
RUN mkdir -p /var/lib/tor && \
mkdir -p /var/log/tor
COPY torrc /etc/tor/torrc
# Copy the index.html and entrypoint script
COPY index.html /var/www/html/index.html
# Copy the entrypoint script and make it executable
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
EXPOSE 4242 EXPOSE 4242
CMD ["sh", "-c", "nginx && tor -f /etc/tor/torrc"] CMD ["/entrypoint.sh"]

View File

@ -1,10 +1,20 @@
server { events {
listen 80; worker_connections 1024;
server_name }
http
{
include mime.types;
default_type application/octet-stream;
location / { server {
listen 80;
root /var/www/html; root /var/www/html;
index index.html index.htm; index index.html;
try_files $uri $uri/ =404; server_name localhost;
location / {
try_files $uri $uri/ =404;
}
} }
} }

View File

@ -3,8 +3,5 @@
Port 4242 Port 4242
PermitRootLogin yes PermitRootLogin yes
PasswordAuthentication yes PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes UsePAM yes
X11Forwarding no
AllowTcpForwarding no
PermitEmptyPasswords no

20
start.sh Normal file → Executable file
View File

@ -3,8 +3,26 @@
IMAGE_NAME="ft_onion_image" IMAGE_NAME="ft_onion_image"
CONTAINER_NAME="ft_onion_container" CONTAINER_NAME="ft_onion_container"
#remove any existing container with the same name
if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
docker rm -f $CONTAINER_NAME
fi
# Build the Docker image # Build the Docker image
docker build -t $IMAGE_NAME -f Dockerfile . docker build -t $IMAGE_NAME -f Dockerfile .
# Run the Docker container # Run the Docker container
docker run --name $CONTAINER_NAME -d $IMAGE_NAME -p 4242:4242 --restart unless-stopped docker run --name $CONTAINER_NAME -d -p 4242:4242 --restart unless-stopped $IMAGE_NAME
# Wait for the container to start
echo "Waiting for the container to start..."
sleep 5
# Check if the container is running
if [ "$(docker ps -q -f name=$CONTAINER_NAME)" ]; then
echo "Container $CONTAINER_NAME is running."
docker exec $CONTAINER_NAME cat /var/lib/tor/hidden_service/hostname
else
echo "Failed to start container $CONTAINER_NAME."
exit 1
fi

3
torrc
View File

@ -1,6 +1,3 @@
# Basic torrc configuration # Basic torrc configuration
SocksPort 9050
HiddenServiceDir /var/lib/tor/hidden_service/ HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80 HiddenServicePort 80 127.0.0.1:80