add caddyserver with php-fpm.

This commit is contained in:
luming 2024-01-15 14:17:20 +08:00
parent 0b26137b1d
commit bd1994a61f
12 changed files with 499 additions and 48 deletions

View File

@ -3,6 +3,9 @@ FROM caddy:alpine as caddy-build
FROM php:8.3-fpm-alpine3.19
LABEL maintainer="rainerosion <admin@rainss.cn>"
ENV XDG_CONFIG_HOME /config
ENV XDG_DATA_HOME /data
# build dependencies
ENV BUILD_DEPS \
libzip-dev \
@ -61,22 +64,22 @@ ARG UID=1000
ARG GUID=1000
# fpm user
ARG USER=www-data
RUN set -eux && \
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \
apk update && \
apk add --no-cache $RUN_DEPS && \
usermod -u $UID -o $USER && \
groupmod -g $GUID -o $USER && \
apk add --no-cache --virtual .build-deps $BUILD_DEPS && \
docker-php-ext-configure gd --enable-gd --with-jpeg --with-webp --with-freetype && \
docker-php-ext-install -j $(nproc) $PHP_EXTENSIONS && \
pecl install -o -f redis && \
pecl install memcached imagick && \
docker-php-ext-enable redis memcached imagick && \
apk del .build-deps \
# web server
# web server and php-fpm
RUN set -eux; \
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories; \
apk update; \
apk add --no-cache $RUN_DEPS; \
usermod -u $UID -o $USER; \
groupmod -g $GUID -o $USER; \
apk add --no-cache --virtual .build-deps $BUILD_DEPS; \
mkdir -p \
/config/caddy \
/data/caddy \
/etc/caddy \
/usr/share/caddy ; \
wget -O /etc/caddy/Caddyfile "https://p.iblog.site/https://github.com/caddyserver/dist/raw/cd39178d252a610fee6aa8465c787d9c780007a2/config/Caddyfile"; \
wget -O /usr/share/caddy/index.html "https://p.iblog.site/https://github.com/caddyserver/dist/raw/cd39178d252a610fee6aa8465c787d9c780007a2/welcome/index.html"; \
echo "<?php phpinfo();" > /usr/share/caddy/info.php; \
apkArch="$(apk --print-arch)"; \
case "$apkArch" in \
x86_64) binArch='amd64'; checksum='b74311ec8263f30f6d36e5c8be151e8bc092b377789a55300d5671238b9043de5bd6db2bcefae32aa1e6fe94c47bbf02982c44a7871e5777b2596fdb20907cbf' ;; \
@ -93,9 +96,24 @@ RUN set -eux; \
rm -f /tmp/caddy.tar.gz; \
setcap cap_net_bind_service=+ep /usr/bin/caddy; \
chmod +x /usr/bin/caddy; \
caddy version \
ENV XDG_CONFIG_HOME /config
ENV XDG_DATA_HOME /data
EXPOSE 80 443 2019
caddy version; \
# docker-php-ext-configure gd --enable-gd --with-jpeg --with-webp --with-freetype; \
# docker-php-ext-install -j $(nproc) $PHP_EXTENSIONS; \
# pecl install -o -f redis; \
# pecl install memcached imagick; \
# docker-php-ext-enable redis memcached imagick; \
apk del .build-deps; \
curl --tlsv1 -v -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer;
EXPOSE 80
EXPOSE 443
EXPOSE 2019
EXPOSE 443/udp
COPY entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/entrypoint.sh
WORKDIR /srv
ENTRYPOINT ["entrypoint.sh"]
CMD ["caddy","run","--config","/etc/caddy/Caddyfile","--adapter","caddyfile"]

View File

@ -1,6 +1,26 @@
# The Caddyfile is an easy way to configure your Caddy web server.
#
# Unless the file starts with a global options block, the first
# uncommented line is always the address of your site.
#
# To use your own domain name (with automatic HTTPS), first make
# sure your domain's A/AAAA DNS records are properly pointed to
# this machine's public IP, then replace ":80" below with your
# domain name.
:80 {
encode gzip
root * /www/websites/public
php_fastcgi php-fpm:9000
# Set this path to your site's directory.
root * /usr/share/caddy
# Enable the static file server.
file_server
# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}
# Refer to the Caddy docs for more information:
# https://caddyserver.com/docs/caddyfile

View File

@ -0,0 +1,6 @@
:80 {
encode gzip
root * /www/websites/public
php_fastcgi 127.0.0.1:9000
file_server
}

View File

@ -0,0 +1,394 @@
<!DOCTYPE html>
<html>
<head>
<title>Caddy works!</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="data:,">
<style>
* {
box-sizing: border-box;
padding: 0;
margin: 0;
}
body {
background: #f1f4f5;
font-family: Inter, sans-serif;
font-size: 20px;
-webkit-font-smoothing: antialiased;
}
a {
color: #2f79ff;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.stack {
width: 70%;
max-width: 1150px;
margin: 25px 0 150px 25px;
display: flex;
align-content: flex-start;
}
.paper {
position: relative;
flex-shrink: 0;
width: 100%;
background: white;
border-radius: 3px;
box-shadow: 1px 2px 4px 1px rgba(0, 0, 0, .15);
padding: 100px;
}
#paper1 {
top: 45px;
left: 50px;
}
#paper2 {
top: 20px;
left: -100%;
}
#paper3 {
top: 25px;
transform: rotate(-4deg);
left: -200%;
}
#caddy {
max-width: 300px;
margin-bottom: 50px;
}
#caddy .caddy-color {
fill: #005e7e;
}
h1 {
font-size: 20px;
margin-bottom: 50px;
}
h1 .emoji {
font-size: 150%;
vertical-align: middle;
}
h1 .lang {
margin-right: 1.25em;
}
h2 {
font-size: 28px;
margin-top: 1.5em;
}
p,
ol,
ul {
color: #333;
line-height: 1.5em;
}
p {
margin: 1.5em 0;
}
ol,
ul {
margin: .5em 0 .5em 2em;
}
ol li,
ul li {
margin-left: 1em;
margin-bottom: .5em;
}
li ol {
list-style-type: lower-alpha;
}
code {
color: #000;
font-family: Menlo, monospace;
background: #f0f0f0;
border-radius: 2px;
padding: 4px 8px;
font-size: 90%;
}
.warn {
color: #dd0000;
}
footer {
color: #777;
font-size: 16px;
text-align: center;
max-width: 600px;
margin: 0 auto 50px;
}
#disclaimer {
font-size: 14px;
margin-top: 20px;
display: inline-block;
border-top: 1px solid #ccc;
padding: 20px;
}
@media (max-width: 1100px) {
.stack {
width: 85%;
}
}
@media (max-width: 800px) {
.stack {
margin: 0 0 50px 0;
width: 100%;
}
.paper {
padding: 50px;
}
#paper1,
#paper2 {
display: none;
}
#paper3 {
left: 0;
transform: none;
top: 0;
}
#caddy {
max-width: 300px;
margin-bottom: 45px;
display: block;
}
}
</style>
</head>
<body>
<div class="stack">
<div class="paper" id="paper1"></div>
<div class="paper" id="paper2"></div>
<div class="paper" id="paper3">
<a href="https://caddyserver.com/" title="Caddy Web Server">
<svg id="caddy" viewBox="0 0 379 114" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;">
<g transform="matrix(1,0,0,1,-35.5985,-67.948)">
<g transform="matrix(1.16548,0,0,1.10195,-124,-68.27)">
<g id="Light-Logo" serif:id="Light Logo"
transform="matrix(0.858013,0,0,0.907485,-3243.42,-1469.17)">
<g id="Logo" transform="matrix(1,0,0,1,21.4759,36.7359)">
<g id="Icon">
<g>
<g
transform="matrix(-0.191794,-0.715786,0.715786,-0.191794,4329.14,4673.64)">
<path
d="M3901.56,610.734C3893.53,610.261 3886.06,608.1 3879.2,604.877C3872.24,601.608 3866.04,597.093 3860.8,591.633C3858.71,589.457 3856.76,587.149 3854.97,584.709C3853.2,582.281 3851.57,579.733 3850.13,577.066C3845.89,569.224 3843.21,560.381 3842.89,550.868C3842.57,543.321 3843.64,536.055 3845.94,529.307C3848.37,522.203 3852.08,515.696 3856.83,510.049L3855.79,509.095C3850.39,514.54 3846.02,520.981 3842.9,528.125C3839.84,535.125 3838.03,542.781 3837.68,550.868C3837.34,561.391 3839.51,571.425 3843.79,580.306C3845.27,583.38 3847.03,586.304 3849.01,589.049C3851.01,591.806 3853.24,594.39 3855.69,596.742C3861.75,602.568 3869,607.19 3877.03,610.1C3884.66,612.867 3892.96,614.059 3901.56,613.552L3901.56,610.734Z"
style="fill:rgb(31,136,192);" />
</g>
<g
transform="matrix(-0.191794,-0.715786,0.715786,-0.191794,4329.14,4673.64)">
<path
d="M3875.69,496.573C3879.62,494.538 3883.8,492.897 3888.2,491.786C3892.49,490.704 3896.96,490.124 3901.56,490.032C3903.82,490.13 3906.03,490.332 3908.21,490.688C3917.13,492.147 3925.19,495.814 3932.31,500.683C3936.13,503.294 3939.59,506.335 3942.81,509.619C3947.09,513.98 3950.89,518.816 3953.85,524.232C3958.2,532.197 3960.96,541.186 3961.32,550.868C3961.61,558.748 3960.46,566.345 3957.88,573.322C3956.09,578.169 3953.7,582.753 3950.66,586.838C3947.22,591.461 3942.96,595.427 3938.27,598.769C3933.66,602.055 3928.53,604.619 3923.09,606.478C3922.37,606.721 3921.6,606.805 3920.93,607.167C3920.42,607.448 3920.14,607.854 3919.69,608.224L3920.37,610.389C3920.98,610.432 3921.47,610.573 3922.07,610.474C3922.86,610.344 3923.55,609.883 3924.28,609.566C3931.99,606.216 3938.82,601.355 3944.57,595.428C3947.02,592.903 3949.25,590.174 3951.31,587.319C3953.59,584.168 3955.66,580.853 3957.43,577.348C3961.47,569.34 3964.01,560.422 3964.36,550.868C3964.74,540.511 3962.66,530.628 3958.48,521.868C3955.57,515.775 3951.72,510.163 3946.95,505.478C3943.37,501.962 3939.26,498.99 3934.84,496.562C3926.88,492.192 3917.87,489.76 3908.37,489.229C3906.12,489.104 3903.86,489.054 3901.56,489.154C3896.87,489.06 3892.3,489.519 3887.89,490.397C3883.3,491.309 3878.89,492.683 3874.71,494.525L3875.69,496.573Z"
style="fill:rgb(31,136,192);" />
</g>
</g>
<g>
<g transform="matrix(-3.37109,-0.514565,0.514565,-3.37109,4078.07,1806.88)">
<path
d="M22,12C22,10.903 21.097,10 20,10C19.421,10 18.897,10.251 18.53,10.649C18.202,11.006 18,11.481 18,12C18,13.097 18.903,14 20,14C21.097,14 22,13.097 22,12Z"
style="fill:none;fill-rule:nonzero;stroke:rgb(31,136,192);stroke-width:1.05px;" />
</g>
<g transform="matrix(-5.33921,-5.26159,-3.12106,-6.96393,4073.87,1861.55)">
<path
d="M10.315,5.333C10.315,5.333 9.748,5.921 9.03,6.673C7.768,7.995 6.054,9.805 6.054,9.805L6.237,9.86C6.237,9.86 8.045,8.077 9.36,6.771C10.107,6.028 10.689,5.444 10.689,5.444L10.315,5.333Z"
style="fill:rgb(31,136,192);" />
</g>
</g>
<g id="Padlock" transform="matrix(3.11426,0,0,3.11426,3938.31,1737.25)">
<g>
<path
d="M9.876,21L18.162,21C18.625,21 19,20.625 19,20.162L19,11.838C19,11.375 18.625,11 18.162,11L5.838,11C5.375,11 5,11.375 5,11.838L5,16.758"
style="fill:none;stroke:rgb(34,182,56);stroke-width:1.89px;stroke-linecap:butt;stroke-linejoin:miter;" />
<path d="M8,11L8,7C8,4.806 9.806,3 12,3C14.194,3 16,4.806 16,7L16,11"
style="fill:none;fill-rule:nonzero;stroke:rgb(34,182,56);stroke-width:1.89px;" />
</g>
</g>
<g>
<g transform="matrix(5.30977,0.697415,-0.697415,5.30977,3852.72,1727.97)">
<path
d="M22,12C22,11.659 21.913,11.337 21.76,11.055C21.421,10.429 20.756,10 20,10C18.903,10 18,10.903 18,12C18,13.097 18.903,14 20,14C21.097,14 22,13.097 22,12Z"
style="fill:none;fill-rule:nonzero;stroke:rgb(31,136,192);stroke-width:0.98px;" />
</g>
<g transform="matrix(4.93114,2.49604,1.11018,5.44847,3921.41,1726.72)">
<path
d="M8.902,6.77C8.902,6.77 7.235,8.253 6.027,9.366C5.343,9.996 4.819,10.502 4.819,10.502L5.52,11.164C5.52,11.164 6.021,10.637 6.646,9.951C7.749,8.739 9.219,7.068 9.219,7.068L8.902,6.77Z"
style="fill:rgb(31,136,192);" />
</g>
</g>
</g>
<g id="Wordmark" transform="matrix(1.54159,0,0,2.8744,2710.6,709.804)">
<g id="y" transform="matrix(0.50291,0,0,0.281607,905.533,304.987)">
<path
d="M192.152,286.875L202.629,268.64C187.804,270.106 183.397,265.779 180.143,263.391C176.888,261.004 174.362,257.99 172.563,254.347C170.765,250.705 169.866,246.691 169.866,242.305L169.866,208.107L183.21,208.107L183.21,242.213C183.21,245.188 183.896,247.822 185.268,250.116C186.64,252.41 188.465,254.197 190.743,255.475C193.022,256.754 195.501,257.393 198.182,257.393C200.894,257.393 203.393,256.75 205.68,255.463C207.966,254.177 209.799,252.391 211.178,250.105C212.558,247.818 213.248,245.188 213.248,242.213L213.248,208.107L226.545,208.107L226.545,242.305C226.545,246.707 225.378,258.46 218.079,268.64C215.735,271.909 207.835,286.875 207.835,286.875L192.152,286.875Z"
style="fill:rgb(47,47,47);fill-rule:nonzero;" />
</g>
<g id="add" transform="matrix(0.525075,0,0,0.281607,801.871,304.987)">
<g transform="matrix(116.242,0,0,116.242,161.846,267.39)">
<path
d="M0.276,0.012C0.227,0.012 0.186,0 0.15,-0.024C0.115,-0.048 0.088,-0.08 0.069,-0.12C0.05,-0.161 0.04,-0.205 0.04,-0.254C0.04,-0.305 0.051,-0.35 0.072,-0.39C0.094,-0.431 0.125,-0.463 0.165,-0.487C0.205,-0.51 0.254,-0.522 0.31,-0.522C0.366,-0.522 0.413,-0.51 0.452,-0.486C0.491,-0.463 0.521,-0.431 0.542,-0.39C0.562,-0.35 0.573,-0.305 0.573,-0.256L0.573,-0L0.458,-0L0.458,-0.095L0.456,-0.095C0.446,-0.076 0.433,-0.058 0.417,-0.042C0.401,-0.026 0.381,-0.013 0.358,-0.003C0.335,0.007 0.307,0.012 0.276,0.012ZM0.307,-0.086C0.337,-0.086 0.363,-0.093 0.386,-0.108C0.408,-0.123 0.426,-0.144 0.438,-0.17C0.45,-0.195 0.456,-0.224 0.456,-0.256C0.456,-0.288 0.45,-0.317 0.438,-0.342C0.426,-0.367 0.409,-0.387 0.387,-0.402C0.365,-0.417 0.338,-0.424 0.308,-0.424C0.276,-0.424 0.249,-0.417 0.226,-0.402C0.204,-0.387 0.186,-0.366 0.174,-0.341C0.162,-0.315 0.156,-0.287 0.156,-0.255C0.156,-0.224 0.162,-0.195 0.174,-0.169C0.186,-0.144 0.203,-0.123 0.226,-0.108C0.248,-0.093 0.275,-0.086 0.307,-0.086Z"
style="fill:rgb(47,47,47);fill-rule:nonzero;" />
</g>
<g transform="matrix(116.242,0,0,116.242,226.592,267.39)">
<path
d="M0.306,0.012C0.265,0.012 0.229,0.006 0.196,-0.008C0.163,-0.021 0.135,-0.039 0.112,-0.064C0.089,-0.088 0.071,-0.117 0.059,-0.151C0.046,-0.185 0.04,-0.222 0.04,-0.263C0.04,-0.315 0.051,-0.36 0.072,-0.399C0.093,-0.437 0.122,-0.468 0.159,-0.489C0.196,-0.511 0.239,-0.522 0.287,-0.522C0.311,-0.522 0.333,-0.518 0.355,-0.511C0.377,-0.504 0.396,-0.493 0.413,-0.48C0.431,-0.466 0.445,-0.451 0.455,-0.433L0.456,-0.433L0.456,-0.73L0.571,-0.73L0.571,-0.261C0.571,-0.205 0.56,-0.156 0.537,-0.115C0.515,-0.074 0.484,-0.043 0.444,-0.021C0.405,0.001 0.358,0.012 0.306,0.012ZM0.306,-0.086C0.335,-0.086 0.361,-0.093 0.384,-0.107C0.406,-0.122 0.423,-0.141 0.436,-0.167C0.448,-0.192 0.455,-0.221 0.455,-0.255C0.455,-0.288 0.448,-0.317 0.436,-0.343C0.423,-0.368 0.406,-0.388 0.383,-0.402C0.361,-0.417 0.335,-0.424 0.305,-0.424C0.276,-0.424 0.251,-0.417 0.228,-0.402C0.206,-0.387 0.188,-0.368 0.175,-0.342C0.163,-0.317 0.156,-0.288 0.156,-0.255C0.156,-0.222 0.163,-0.193 0.175,-0.167C0.188,-0.142 0.206,-0.122 0.229,-0.108C0.251,-0.093 0.277,-0.086 0.306,-0.086Z"
style="fill:rgb(47,47,47);fill-rule:nonzero;" />
</g>
<g transform="matrix(116.242,0,0,116.242,290.293,267.39)">
<path
d="M0.306,0.012C0.265,0.012 0.229,0.006 0.196,-0.008C0.163,-0.021 0.135,-0.039 0.112,-0.064C0.089,-0.088 0.071,-0.117 0.059,-0.151C0.046,-0.185 0.04,-0.222 0.04,-0.263C0.04,-0.315 0.051,-0.36 0.072,-0.399C0.093,-0.437 0.122,-0.468 0.159,-0.489C0.196,-0.511 0.239,-0.522 0.287,-0.522C0.311,-0.522 0.333,-0.518 0.355,-0.511C0.377,-0.504 0.396,-0.493 0.413,-0.48C0.431,-0.466 0.445,-0.451 0.455,-0.433L0.456,-0.433L0.456,-0.73L0.571,-0.73L0.571,-0.261C0.571,-0.205 0.56,-0.156 0.537,-0.115C0.515,-0.074 0.484,-0.043 0.444,-0.021C0.405,0.001 0.358,0.012 0.306,0.012ZM0.306,-0.086C0.335,-0.086 0.361,-0.093 0.384,-0.107C0.406,-0.122 0.423,-0.141 0.436,-0.167C0.448,-0.192 0.455,-0.221 0.455,-0.255C0.455,-0.288 0.448,-0.317 0.436,-0.343C0.423,-0.368 0.406,-0.388 0.383,-0.402C0.361,-0.417 0.335,-0.424 0.305,-0.424C0.276,-0.424 0.251,-0.417 0.228,-0.402C0.206,-0.387 0.188,-0.368 0.175,-0.342C0.163,-0.317 0.156,-0.288 0.156,-0.255C0.156,-0.222 0.163,-0.193 0.175,-0.167C0.188,-0.142 0.206,-0.122 0.229,-0.108C0.251,-0.093 0.277,-0.086 0.306,-0.086Z"
style="fill:rgb(47,47,47);fill-rule:nonzero;" />
</g>
</g>
<g id="c"
transform="matrix(-0.0716462,0.31304,-0.583685,-0.0384251,1489.76,-444.051)">
<path
d="M2668.11,700.4C2666.79,703.699 2666.12,707.216 2666.12,710.766C2666.12,726.268 2678.71,738.854 2694.21,738.854C2709.71,738.854 2722.3,726.268 2722.3,710.766C2722.3,704.111 2719.93,697.672 2715.63,692.597L2707.63,699.378C2710.33,702.559 2711.57,706.602 2711.81,710.766C2712.2,717.38 2706.61,724.52 2697.27,726.637C2683.9,728.581 2676.61,720.482 2676.61,710.766C2676.61,708.541 2677.03,706.336 2677.85,704.269L2668.11,700.4Z"
style="fill:rgb(46,46,46);" />
</g>
</g>
</g>
<g id="R" transform="matrix(0.497016,0,0,0.497016,2390.38,823.152)">
<g transform="matrix(1,0,0,1,-0.10786,0.450801)">
<g transform="matrix(12.1247,0,0,12.1247,3862.61,1929.9)">
<path
d="M0.073,-0L0.073,-0.7L0.383,-0.7C0.428,-0.7 0.469,-0.69 0.506,-0.67C0.543,-0.651 0.572,-0.623 0.594,-0.588C0.616,-0.553 0.627,-0.512 0.627,-0.465C0.627,-0.418 0.615,-0.377 0.592,-0.342C0.569,-0.306 0.539,-0.279 0.501,-0.259L0.57,-0.128C0.574,-0.12 0.579,-0.115 0.584,-0.111C0.59,-0.107 0.596,-0.106 0.605,-0.106L0.664,-0.106L0.664,-0L0.587,-0C0.56,-0 0.535,-0.007 0.514,-0.02C0.493,-0.034 0.476,-0.052 0.463,-0.075L0.381,-0.232C0.375,-0.231 0.368,-0.231 0.361,-0.231C0.354,-0.231 0.347,-0.231 0.34,-0.231L0.192,-0.231L0.192,-0L0.073,-0ZM0.192,-0.336L0.368,-0.336C0.394,-0.336 0.417,-0.341 0.438,-0.351C0.459,-0.361 0.476,-0.376 0.489,-0.396C0.501,-0.415 0.507,-0.438 0.507,-0.465C0.507,-0.492 0.501,-0.516 0.488,-0.535C0.475,-0.554 0.459,-0.569 0.438,-0.579C0.417,-0.59 0.394,-0.595 0.369,-0.595L0.192,-0.595L0.192,-0.336Z"
style="fill:rgb(46,46,46);fill-rule:nonzero;" />
</g>
</g>
<g transform="matrix(1,0,0,1,0.278569,0.101881)">
<circle cx="3866.43" cy="1926.14" r="8.923"
style="fill:none;stroke:rgb(46,46,46);stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;" />
</g>
</g>
</g>
</g>
</g>
</svg>
</a>
<h1>
<!-- English --> <span class="lang">Congratulations!</span>
<!-- Japanese --> <span class="lang">おめでとう!</span>
<!-- Spanish --> <span class="lang">Felicidades!</span>
<!-- Chinese --> <span class="lang">恭喜!</span>
<!-- Hindi --> <span class="lang">बधाई हो!</span>
<!-- Russian --> <span class="lang">Поздравляю!</span>
<!-- Ukrainian --> <span class="lang">Вітаю!</span>
<span class="emoji">🎊</span>
</h1>
<p>
Your web server is working. Now make it work for you. 💪
</p>
<p>
Caddy is ready to serve your site over HTTPS:
</p>
<ol>
<li>Point your domain's A/AAAA DNS records at this machine.</li>
<li>Upload your site's files to <code>/var/www/html</code>.
<li>
Edit your Caddyfile at <code>/etc/caddy/Caddyfile</code>:
<ol>
<li>Replace <code>:80</code> with your domain name</li>
<li>Change the site root to <code>/var/www/html</code></li>
</ol>
</li>
<li>Reload the configuration: <code>systemctl reload caddy</code></li>
<li>Visit your site!</li>
</ol>
<h2>If that worked 🥳</h2>
<p>
Awesome! You won't have to look at this slanted page anymore.
</p>
<p>
Remember, Caddy can do a lot more than serve static files. It's also a powerful reverse proxy and
application platform. You can use the Caddyfile to enable any other features you need. Or you could use
Caddy's API to configure it programmatically.
</p>
<p>
Everything you need to know is either in the <a href="https://caddyserver.com/docs/">📖 Caddy
documentation</a> or the manual for your OS/platform. Have fun!
</p>
<h2>If that didn't work 😶</h2>
<p>
It's okay, you can fix it! First check the following things:
</p>
<ul>
<li>Service status: <code>systemctl status caddy</code></li>
<li>Logs: <code>journalctl --no-pager -u caddy</code></li>
<li>Are your site's files readable by the caddy user and group? <code>ls -la /var/www/html</code></li>
<li>Is the caddy home directory writeable? <code>ls -la /var/lib/caddy</code></li>
<li>Ensure your domain's A and/or AAAA records point to your machine's public IP address:
<code>dig example.com</code></li>
<li>Are your ports 80 and 443 externally reachable, and is Caddy able to bind to them? Check your
firewalls, port forwarding, and other network configuration.</li>
</ul>
<p>
<b class="warn">WAIT!</b> Before trying again, switch to <a
href="https://letsencrypt.org/docs/staging-environment/">Let's Encrypt's staging environment</a> to
avoid being accidentally <a href="https://letsencrypt.org/docs/rate-limits/">rate limited</a>. Once you
get everything else working, it's safe to switch back.
</p>
<p>
Depending on your DNS provider, it may take a while for the DNS records to propagate. Even when
everything is configured properly, automated challenges to obtain TLS certificates usually take several
seconds, but may take up to several minutes or hours.
<p>
If you still need help, we have a <a href="https://caddy.community/">great community</a>! First <a
href="https://caddy.community/search">try a search</a>, and if your question is original, go ahead
and ask it! Remember to pay it forward and help others too. 😁
</p>
<p>
Visit Caddy on:
<b><a href="https://github.com/caddyserver/caddy" title="Caddy on GitHub">GitHub</a></b>
or
<b><a href="https://twitter.com/caddyserver" title="@caddyserver on Twitter">Twitter</a></b>
or
<b><a href="https://caddy.community/" title="Caddy forums">Our Forum</a></b>
</p>
</div>
</div>
<footer>
&copy; Copyright The Caddy Authors
<div id="disclaimer">
The Caddy project is not responsible for the content, disposition, or behavior of this Web
property, which is independently owned and maintained. For inquiries, please contact the site owner or
hosting provider.
</div>
</footer>
</body>
</html>

View File

@ -4,3 +4,10 @@ if [ "${1}" = "-D" ]; then
else
exec "$@"
fi
# first arg is `-f` or `--some-option`
#if [ "${1#-}" != "$1" ]; then
# set -- php-fpm "$@"
#fi
#
#exec "$@"

View File

@ -0,0 +1,6 @@
#!/bin/sh
set -e
# php-fpm daemonize
php-fpm -D
# start caddy
exec "$@"

View File

@ -1,7 +1,7 @@
FROM composer:latest as composer-build
FROM php:8.1-fpm-alpine3.17
MAINTAINER rainerosion "admin@rainss.cn"
LABEL maintainer="rainerosion <admin@rainss.cn>"
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
# build dependencies

View File

@ -1,7 +1,7 @@
FROM --platform=$TARGETPLATFORM composer:latest as composer-build
FROM --platform=$TARGETPLATFORM php:8.1-fpm-alpine3.17
MAINTAINER rainerosion "admin@rainss.cn"
LABEL maintainer="rainerosion <admin@rainss.cn>"
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
# build dependencies

View File

@ -1,7 +1,7 @@
FROM composer:latest as composer-build
FROM php:8.2-fpm-alpine3.19
MAINTAINER rainerosion "admin@rainss.cn"
LABEL maintainer="rainerosion <admin@rainss.cn>"
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
# build dependencies

View File

@ -1,7 +1,7 @@
FROM --platform=$TARGETPLATFORM composer:latest as composer-build
FROM --platform=$TARGETPLATFORM php:8.2-fpm-alpine3.19
MAINTAINER rainerosion "admin@rainss.cn"
LABEL maintainer="rainerosion <admin@rainss.cn>"
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
# build dependencies

View File

@ -1,7 +1,7 @@
FROM composer:latest as composer-build
FROM php:8.3-fpm-alpine3.19
MAINTAINER rainerosion "admin@rainss.cn"
LABEL maintainer="rainerosion <admin@rainss.cn>"
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
# build dependencies

View File

@ -1,7 +1,7 @@
FROM --platform=$TARGETPLATFORM composer:latest as composer-build
FROM --platform=$TARGETPLATFORM php:8.3-fpm-alpine3.19
MAINTAINER rainerosion "admin@rainss.cn"
LABEL maintainer="rainerosion <admin@rainss.cn>"
COPY --from=composer-build /usr/bin/composer /usr/bin/composer
# build dependencies