From 054b9b991936cea86ce053339e109897445f329c Mon Sep 17 00:00:00 2001 From: casjay Date: Mon, 10 Oct 2022 22:49:31 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20Committing=20everything?= =?UTF-8?q?=20that=20changed=20=F0=9F=97=83=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 89 +++-- bin/entrypoint-lighttpd.sh | 4 +- config/lighttpd.conf | 0 config/lighttpd/lighttpd.conf | 321 ++++++++++++++++++ data/htdocs/{ => www}/404.html | 0 data/htdocs/{ => www}/css/bootstrap.min.css | 0 data/htdocs/{ => www}/css/errorpages.css | 0 data/htdocs/{ => www}/css/index.css | 0 data/htdocs/{ => www}/favicon.ico | 0 data/htdocs/{ => www}/images/403.png | Bin data/htdocs/{ => www}/images/404.gif | Bin data/htdocs/{ => www}/images/bg.png | Bin data/htdocs/{ => www}/images/favicon.ico | Bin data/htdocs/{ => www}/images/icon.png | Bin data/htdocs/{ => www}/images/icon.svg | 0 data/htdocs/{ => www}/index.html | 0 data/htdocs/{ => www}/info.php | 0 data/htdocs/{ => www}/js/app.js | 0 data/htdocs/{ => www}/js/bootstrap.min.js | 0 .../{ => www}/js/errorpages/homepage.js | 0 data/htdocs/{ => www}/js/errorpages/isup.js | 0 .../{ => www}/js/errorpages/loaddomain.js | 0 .../{ => www}/js/errorpages/scale.fix.js | 0 data/htdocs/{ => www}/js/jquery/default.js | 0 data/htdocs/{ => www}/js/passprotect.min.js | 0 data/htdocs/{ => www}/server-health | 0 data/htdocs/{ => www}/server-health.json | 0 data/htdocs/{ => www}/site.webmanifest | 0 28 files changed, 381 insertions(+), 33 deletions(-) delete mode 100644 config/lighttpd.conf create mode 100644 config/lighttpd/lighttpd.conf rename data/htdocs/{ => www}/404.html (100%) rename data/htdocs/{ => www}/css/bootstrap.min.css (100%) rename data/htdocs/{ => www}/css/errorpages.css (100%) rename data/htdocs/{ => www}/css/index.css (100%) rename data/htdocs/{ => www}/favicon.ico (100%) rename data/htdocs/{ => www}/images/403.png (100%) rename data/htdocs/{ => www}/images/404.gif (100%) rename data/htdocs/{ => www}/images/bg.png (100%) rename data/htdocs/{ => www}/images/favicon.ico (100%) rename data/htdocs/{ => www}/images/icon.png (100%) rename data/htdocs/{ => www}/images/icon.svg (100%) rename data/htdocs/{ => www}/index.html (100%) rename data/htdocs/{ => www}/info.php (100%) rename data/htdocs/{ => www}/js/app.js (100%) rename data/htdocs/{ => www}/js/bootstrap.min.js (100%) rename data/htdocs/{ => www}/js/errorpages/homepage.js (100%) rename data/htdocs/{ => www}/js/errorpages/isup.js (100%) rename data/htdocs/{ => www}/js/errorpages/loaddomain.js (100%) rename data/htdocs/{ => www}/js/errorpages/scale.fix.js (100%) rename data/htdocs/{ => www}/js/jquery/default.js (100%) rename data/htdocs/{ => www}/js/passprotect.min.js (100%) rename data/htdocs/{ => www}/server-health (100%) rename data/htdocs/{ => www}/server-health.json (100%) rename data/htdocs/{ => www}/site.webmanifest (100%) diff --git a/Dockerfile b/Dockerfile index 42a5c6a..e294f26 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,44 +1,71 @@ -FROM casjaysdevdocker/php:latest as lighttpd +FROM casjaysdevdocker/php:latest AS build -# Setup apache and php -RUN apk -U upgrade && \ - apk --no-cache \ - add \ +ARG alpine_version="v3.16" + +ARG TIMEZONE="America/New_York" \ + IMAGE_NAME="lighttpd" \ + LICENSE="MIT" \ + PORTS="80" + +ENV TZ="$TIMEZONE" \ + SHELL="/bin/bash" \ + TERM="xterm-256color" \ + HOSTNAME="${HOSTNAME:-casjaysdev-$IMAGE_NAME}" + +RUN set -ex; \ + rm -Rf "/etc/apk/repositories"; \ + echo "http://dl-cdn.alpinelinux.org/alpine/$alpine_version/main" >> "/etc/apk/repositories"; \ + echo "http://dl-cdn.alpinelinux.org/alpine/$alpine_version/community" >> "/etc/apk/repositories"; \ + if [ "$alpine_version" = "edge" ]; then echo "http://dl-cdn.alpinelinux.org/alpine/$alpine_version/testing" >> "/etc/apk/repositories" ; fi ; \ + apk update --update-cache && apk add \ lighttpd \ lighttpd-mod_auth \ - lighttpd-mod_webdav && \ - mkdir -p /htdocs /config + lighttpd-mod_webdav -COPY ./bin/entrypoint-lighttpd.sh /usr/local/bin/entrypoint-lighttpd.sh +COPY ./bin/. /usr/local/bin/ +COPY ./data/. /usr/local/share/template-files/data/ +COPY ./config/. /usr/local/share/template-files/config/ -FROM lighttpd -ARG BUILD_DATE="$(date +'%Y-%m-%d %H:%M')" - -LABEL \ - org.label-schema.name="lighttpd" \ - org.label-schema.description="lighttpd webserver with php8" \ - org.label-schema.url="https://hub.docker.com/r/casjaysdevdocker/lighttpd" \ - org.label-schema.vcs-url="https://github.com/casjaysdevdocker/lighttpd" \ - org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.version=$BUILD_DATE \ - org.label-schema.vcs-ref=$BUILD_DATE \ - org.label-schema.license="WTFPL" \ - org.label-schema.vcs-type="Git" \ - org.label-schema.schema-version="1.0" \ - org.label-schema.vendor="CasjaysDev" \ - maintainer="CasjaysDev " +RUN rm -Rf /bin/.gitkeep /config /data /var/cache/apk/* +FROM scratch +ARG BUILD_DATE="2022-10-10" \ + BUILD_VERSION="latest" LABEL maintainer="CasjaysDev " \ - description="Alpine based image with lighttpd and php8." + org.opencontainers.image.vcs-type="Git" \ + org.opencontainers.image.name="lighttpd" \ + org.opencontainers.image.base.name="lighttpd" \ + org.opencontainers.image.license="$LICENSE" \ + org.opencontainers.image.vcs-ref="$BUILD_VERSION" \ + org.opencontainers.image.build-date="$BUILD_DATE" \ + org.opencontainers.image.version="$BUILD_VERSION" \ + org.opencontainers.image.schema-version="$BUILD_VERSION" \ + org.opencontainers.image.url="https://hub.docker.com/r/casjaysdevdocker/lighttpd" \ + org.opencontainers.image.vcs-url="https://github.com/casjaysdevdocker/lighttpd" \ + org.opencontainers.image.url.source="https://github.com/casjaysdevdocker/lighttpd" \ + org.opencontainers.image.documentation="https://hub.docker.com/r/casjaysdevdocker/lighttpd" \ + org.opencontainers.image.vendor="CasjaysDev" \ + org.opencontainers.image.authors="CasjaysDev" \ + org.opencontainers.image.description="Containerized version of lighttpd" -ENV PHP_SERVER=lighttpd +ENV SHELL="/bin/bash" \ + TERM="xterm-256color" \ + HOSTNAME="casjaysdev-lighttpd" \ + TZ="${TZ:-America/New_York}" \ + TIMEZONE="$$TIMEZONE" \ + PHP_SERVER="none" \ + PORT="80" -EXPOSE 80 +COPY --from=build /. / -WORKDIR /htdocs -VOLUME [ "/htdocs", "/config" ] +WORKDIR /root -HEALTHCHECK --interval=15s --timeout=3s CMD ["/usr/local/bin/entrypoint-lighttpd.sh", "healthcheck"] +VOLUME [ "/config","/data" ] + +EXPOSE $PORTS + +ENTRYPOINT [ "tini", "-p", "SIGTERM", "--" ] +CMD [ "/usr/local/bin/entrypoint-lighttpd.sh" ] +HEALTHCHECK --start-period=1m --interval=2m --timeout=3s CMD [ "/usr/local/bin/entrypoint-lighttpd.sh", "healthcheck" ] -ENTRYPOINT ["/usr/local/bin/entrypoint-lighttpd.sh"] diff --git a/bin/entrypoint-lighttpd.sh b/bin/entrypoint-lighttpd.sh index 87e84f4..4a17a91 100755 --- a/bin/entrypoint-lighttpd.sh +++ b/bin/entrypoint-lighttpd.sh @@ -42,8 +42,8 @@ else cp -Rf "/etc/lighttpd/lighttpd.conf" "/config/lighttpd.conf" fi -if [ ! -f "/htdocs/www/index.html" ] || [ ! -f "/htdocs/www/index.php" ]; then - [ -f "/htdocs/.docker_complete" ] || cp -Rf "/var/www/localhost/htdocs/." "/htdocs/www" +if [ ! -d "/data/htdocs/www" ] || [ ! -f "/htdocs/.docker_complete" ]; then + [ -f "/htdocs/.docker_complete" ] || cp -Rf "/usr/local/share/template-files/data/htdocs/www/." "/data/htdocs/www/" touch "/htdocs/.docker_complete" fi diff --git a/config/lighttpd.conf b/config/lighttpd.conf deleted file mode 100644 index e69de29..0000000 diff --git a/config/lighttpd/lighttpd.conf b/config/lighttpd/lighttpd.conf new file mode 100644 index 0000000..8febfab --- /dev/null +++ b/config/lighttpd/lighttpd.conf @@ -0,0 +1,321 @@ +############################################################################### +# Default lighttpd.conf for Gentoo. +# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/lighttpd.conf,v 1.3 2005/09/01 14:22:35 ka0ttic Exp $ +############################################################################### + +# {{{ variables +var.basedir = "/data/htdocs/www" +var.logdir = "/dev/stdout" +var.statedir = "/var/lib/lighttpd" +# }}} + +# {{{ modules +# At the very least, mod_access and mod_accesslog should be enabled. +# All other modules should only be loaded if necessary. +# NOTE: the order of modules is important. +server.modules = ( +# "mod_rewrite", +# "mod_redirect", +# "mod_alias", + "mod_access", +# "mod_cml", +# "mod_trigger_b4_dl", +# "mod_auth", +# "mod_status", +# "mod_setenv", +# "mod_proxy", +# "mod_simple_vhost", +# "mod_evhost", +# "mod_userdir", +# "mod_deflate", +# "mod_ssi", +# "mod_usertrack", +# "mod_expire", +# "mod_secdownload", +# "mod_rrdtool", +# "mod_webdav", + "mod_accesslog" +) +# }}} + +# {{{ includes +include "mime-types.conf" +# uncomment for cgi support +# include "mod_cgi.conf" +# uncomment for php/fastcgi support +# include "mod_fastcgi.conf" +# uncomment for php/fastcgi fpm support +# include "mod_fastcgi_fpm.conf" +# }}} + +# {{{ server settings +server.username = "lighttpd" +server.groupname = "lighttpd" + +server.document-root = var.basedir + "/htdocs" +server.pid-file = "/tmp/lighttpd.pid" + +server.errorlog = var.logdir + "/error.log" +# log errors to syslog instead +# server.errorlog-use-syslog = "enable" + +server.indexfiles = ("index.php", "index.html","index.htm", "default.htm") + +# server.tag = "lighttpd" + +server.follow-symlink = "enable" + +# event handler (defaults to "poll") +# see performance.txt +# +# for >= linux-2.4 +# server.event-handler = "linux-rtsig" +# for >= linux-2.6 +# server.event-handler = "linux-sysepoll" +# for FreeBSD +# server.event-handler = "freebsd-kqueue" + +# chroot to directory (defaults to no chroot) +# server.chroot = "/" + +# bind to port (defaults to 80) +# server.port = 81 + +# bind to name (defaults to all interfaces) +# server.bind = "grisu.home.kneschke.de" + +# error-handler for status 404 +# server.error-handler-404 = "/error-handler.html" +# server.error-handler-404 = "/error-handler.php" + +# Format: .html +# -> ..../status-404.html for 'File not found' +# server.errorfile-prefix = var.basedir + "/error/status-" + +# FAM support for caching stat() calls +# requires that lighttpd be built with USE=fam +# server.stat-cache-engine = "fam" +# }}} + +# {{{ mod_staticfile + +# which extensions should not be handled via static-file transfer +# (extensions that are usually handled by mod_cgi, mod_fastcgi, etc). +static-file.exclude-extensions = (".php", ".pl", ".cgi", ".fcgi") +# }}} + +# {{{ mod_accesslog +accesslog.filename = var.logdir + "/tmp/access.log" +# }}} + +# {{{ mod_dirlisting +# enable directory listings +# dir-listing.activate = "enable" +# +# don't list hidden files/directories +# dir-listing.hide-dotfiles = "enable" +# +# use a different css for directory listings +# dir-listing.external-css = "/path/to/dir-listing.css" +# +# list of regular expressions. files that match any of the +# specified regular expressions will be excluded from directory +# listings. +# dir-listing.exclude = ("^\.", "~$") +# }}} + +# {{{ mod_access +# see access.txt + +url.access-deny = ("~", ".inc") +# }}} + +# {{{ mod_userdir +# see userdir.txt +# +# userdir.path = "public_html" +# userdir.exclude-user = ("root") +# }}} + +# {{{ mod_ssi +# see ssi.txt +# +# ssi.extension = (".shtml") +# }}} + +# {{{ mod_ssl +# see ssl.txt +# +# ssl.engine = "enable" +# ssl.pemfile = "server.pem" +# }}} + +# {{{ mod_status +# see status.txt +# +# status.status-url = "/server-status" +# status.config-url = "/server-config" +# }}} + +# {{{ mod_simple_vhost +# see simple-vhost.txt +# +# If you want name-based virtual hosting add the next three settings and load +# mod_simple_vhost +# +# document-root = +# virtual-server-root + virtual-server-default-host + virtual-server-docroot +# or +# virtual-server-root + http-host + virtual-server-docroot +# +# simple-vhost.server-root = "/home/weigon/wwwroot/servers/" +# simple-vhost.default-host = "grisu.home.kneschke.de" +# simple-vhost.document-root = "/pages/" +# }}} + +# {{{ mod_deflate +# see compress.txt +# +# deflate.cache-dir = var.statedir + "/cache/compress" +# deflate.mimetypes = ("text/plain", "text/html") +# }}} + +# {{{ mod_proxy +# see proxy.txt +# +proxy.server = ( ".php" => + ( "localhost" => + ( + "host" => "127.0.0.1", + "port" => 9000 + ) + ) + ) +# }}} + +# {{{ mod_auth +# see authentication.txt +# +# auth.backend = "plain" +# auth.backend.plain.userfile = "lighttpd.user" +# auth.backend.plain.groupfile = "lighttpd.group" + +# auth.backend.ldap.hostname = "localhost" +# auth.backend.ldap.base-dn = "dc=my-domain,dc=com" +# auth.backend.ldap.filter = "(uid=$)" + +# auth.require = ( "/server-status" => +# ( +# "method" => "digest", +# "realm" => "download archiv", +# "require" => "user=jan" +# ), +# "/server-info" => +# ( +# "method" => "digest", +# "realm" => "download archiv", +# "require" => "valid-user" +# ) +# ) +# }}} + +# {{{ mod_rewrite +# see rewrite.txt +# +# url.rewrite = ( +# "^/$" => "/server-status" +# ) +# }}} + +# {{{ mod_redirect +# see redirect.txt +# +# url.redirect = ( +# "^/wishlist/(.+)" => "http://www.123.org/$1" +# ) +# }}} + +# {{{ mod_evhost +# define a pattern for the host url finding +# %% => % sign +# %0 => domain name + tld +# %1 => tld +# %2 => domain name without tld +# %3 => subdomain 1 name +# %4 => subdomain 2 name +# +# evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/" +# }}} + +# {{{ mod_expire +# expire.url = ( +# "/buggy/" => "access 2 hours", +# "/asdhas/" => "access plus 1 seconds 2 minutes" +# ) +# }}} + +# {{{ mod_rrdtool +# see rrdtool.txt +# +# rrdtool.binary = "/usr/bin/rrdtool" +# rrdtool.db-name = var.statedir + "/lighttpd.rrd" +# }}} + +# {{{ mod_setenv +# see setenv.txt +# +# setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" ) +# setenv.add-response-header = ( "X-Secret-Message" => "42" ) +# }}} + +# {{{ mod_trigger_b4_dl +# see trigger_b4_dl.txt +# +# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db" +# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" ) +# trigger-before-download.trigger-url = "^/trigger/" +# trigger-before-download.download-url = "^/download/" +# trigger-before-download.deny-url = "http://127.0.0.1/index.html" +# trigger-before-download.trigger-timeout = 10 +# }}} + +# {{{ mod_cml +# see cml.txt +# +# don't forget to add index.cml to server.indexfiles +# cml.extension = ".cml" +# cml.memcache-hosts = ( "127.0.0.1:11211" ) +# }}} + +# {{{ mod_webdav +# see webdav.txt +# +# $HTTP["url"] =~ "^/dav($|/)" { +# webdav.activate = "enable" +# webdav.is-readonly = "enable" +# } +# }}} + +# {{{ extra rules +# +# set Content-Encoding and reset Content-Type for browsers that +# support decompressing on-thy-fly (requires mod_setenv) +# $HTTP["url"] =~ "\.gz$" { +# setenv.add-response-header = ("Content-Encoding" => "x-gzip") +# mimetype.assign = (".gz" => "text/plain") +# } + +# $HTTP["url"] =~ "\.bz2$" { +# } +# +# }}} + +# {{{ debug +# debug.log-request-header = "enable" +# debug.log-response-header = "enable" +# debug.log-request-handling = "enable" +# debug.log-file-not-found = "enable" +# }}} + +# vim: set ft=conf foldmethod=marker et : + diff --git a/data/htdocs/404.html b/data/htdocs/www/404.html similarity index 100% rename from data/htdocs/404.html rename to data/htdocs/www/404.html diff --git a/data/htdocs/css/bootstrap.min.css b/data/htdocs/www/css/bootstrap.min.css similarity index 100% rename from data/htdocs/css/bootstrap.min.css rename to data/htdocs/www/css/bootstrap.min.css diff --git a/data/htdocs/css/errorpages.css b/data/htdocs/www/css/errorpages.css similarity index 100% rename from data/htdocs/css/errorpages.css rename to data/htdocs/www/css/errorpages.css diff --git a/data/htdocs/css/index.css b/data/htdocs/www/css/index.css similarity index 100% rename from data/htdocs/css/index.css rename to data/htdocs/www/css/index.css diff --git a/data/htdocs/favicon.ico b/data/htdocs/www/favicon.ico similarity index 100% rename from data/htdocs/favicon.ico rename to data/htdocs/www/favicon.ico diff --git a/data/htdocs/images/403.png b/data/htdocs/www/images/403.png similarity index 100% rename from data/htdocs/images/403.png rename to data/htdocs/www/images/403.png diff --git a/data/htdocs/images/404.gif b/data/htdocs/www/images/404.gif similarity index 100% rename from data/htdocs/images/404.gif rename to data/htdocs/www/images/404.gif diff --git a/data/htdocs/images/bg.png b/data/htdocs/www/images/bg.png similarity index 100% rename from data/htdocs/images/bg.png rename to data/htdocs/www/images/bg.png diff --git a/data/htdocs/images/favicon.ico b/data/htdocs/www/images/favicon.ico similarity index 100% rename from data/htdocs/images/favicon.ico rename to data/htdocs/www/images/favicon.ico diff --git a/data/htdocs/images/icon.png b/data/htdocs/www/images/icon.png similarity index 100% rename from data/htdocs/images/icon.png rename to data/htdocs/www/images/icon.png diff --git a/data/htdocs/images/icon.svg b/data/htdocs/www/images/icon.svg similarity index 100% rename from data/htdocs/images/icon.svg rename to data/htdocs/www/images/icon.svg diff --git a/data/htdocs/index.html b/data/htdocs/www/index.html similarity index 100% rename from data/htdocs/index.html rename to data/htdocs/www/index.html diff --git a/data/htdocs/info.php b/data/htdocs/www/info.php similarity index 100% rename from data/htdocs/info.php rename to data/htdocs/www/info.php diff --git a/data/htdocs/js/app.js b/data/htdocs/www/js/app.js similarity index 100% rename from data/htdocs/js/app.js rename to data/htdocs/www/js/app.js diff --git a/data/htdocs/js/bootstrap.min.js b/data/htdocs/www/js/bootstrap.min.js similarity index 100% rename from data/htdocs/js/bootstrap.min.js rename to data/htdocs/www/js/bootstrap.min.js diff --git a/data/htdocs/js/errorpages/homepage.js b/data/htdocs/www/js/errorpages/homepage.js similarity index 100% rename from data/htdocs/js/errorpages/homepage.js rename to data/htdocs/www/js/errorpages/homepage.js diff --git a/data/htdocs/js/errorpages/isup.js b/data/htdocs/www/js/errorpages/isup.js similarity index 100% rename from data/htdocs/js/errorpages/isup.js rename to data/htdocs/www/js/errorpages/isup.js diff --git a/data/htdocs/js/errorpages/loaddomain.js b/data/htdocs/www/js/errorpages/loaddomain.js similarity index 100% rename from data/htdocs/js/errorpages/loaddomain.js rename to data/htdocs/www/js/errorpages/loaddomain.js diff --git a/data/htdocs/js/errorpages/scale.fix.js b/data/htdocs/www/js/errorpages/scale.fix.js similarity index 100% rename from data/htdocs/js/errorpages/scale.fix.js rename to data/htdocs/www/js/errorpages/scale.fix.js diff --git a/data/htdocs/js/jquery/default.js b/data/htdocs/www/js/jquery/default.js similarity index 100% rename from data/htdocs/js/jquery/default.js rename to data/htdocs/www/js/jquery/default.js diff --git a/data/htdocs/js/passprotect.min.js b/data/htdocs/www/js/passprotect.min.js similarity index 100% rename from data/htdocs/js/passprotect.min.js rename to data/htdocs/www/js/passprotect.min.js diff --git a/data/htdocs/server-health b/data/htdocs/www/server-health similarity index 100% rename from data/htdocs/server-health rename to data/htdocs/www/server-health diff --git a/data/htdocs/server-health.json b/data/htdocs/www/server-health.json similarity index 100% rename from data/htdocs/server-health.json rename to data/htdocs/www/server-health.json diff --git a/data/htdocs/site.webmanifest b/data/htdocs/www/site.webmanifest similarity index 100% rename from data/htdocs/site.webmanifest rename to data/htdocs/www/site.webmanifest