Skip to content
This repository was archived by the owner on Sep 21, 2025. It is now read-only.

elliottback/thttpd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

thttpd

A fork of thttpd v2.29 that compiles under GCC 14.

Sample Usage

Here is a sample dockerfile that runs a static site (index.html, etc, in the same folder) on port 81:

# Please specify the appropriate version of alpine!
FROM alpine:latest AS builder

# Install all dependencies required for compiling thttpd
RUN apk add gcc musl-dev make git

# Download thttpd sources
RUN git init && git clone https://github.com/elliottback/thttpd.git thttpd

# Compile thttpd to a static binary which we can copy around
RUN cd /thttpd/src \
  && ./configure || cat config.log \
  && make CCOPT='-O2 -s -static -fpermissive' thttpd

# Create a non-root user to own the files and run our server
RUN adduser -D static

# Switch to the scratch image
FROM scratch

EXPOSE 81

# Copy over the user
COPY --from=builder /etc/passwd /etc/passwd

# Copy the thttpd static binary
COPY --from=builder /thttpd/src/thttpd /

# Use our non-root user
USER static
WORKDIR /home/static

# Copy the static website
# Use the .dockerignore file to control what ends up inside the image!
COPY . .

# Run thttpd
CMD ["/thttpd", "-D", "-h", "0.0.0.0", "-p", "81", "-d", "/home/static", "-u", "static", "-l", "-", "-M", "60"]

About

A fork of thttpd v2.29 that compiles under GCC 14

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •