This commit is contained in:
parent
dcb8ec0f1e
commit
875b475295
@ -2,7 +2,7 @@ FROM alpine:3.21
|
|||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
apk -U upgrade && \
|
apk -U upgrade && \
|
||||||
apk add tini nginx openssh-server \
|
apk add tini nginx openssh-server nginx-mod-http-dav-ext \
|
||||||
php84 php84-fpm php84-mbstring php84-curl php84-ctype php84-dom php84-gd php84-json php84-openssl php84-session php84-simplexml php84-xml php84-zip \
|
php84 php84-fpm php84-mbstring php84-curl php84-ctype php84-dom php84-gd php84-json php84-openssl php84-session php84-simplexml php84-xml php84-zip \
|
||||||
php84-apcu php84-opcache php84-pecl-yaml php84-sqlite3 php84-mysqli \
|
php84-apcu php84-opcache php84-pecl-yaml php84-sqlite3 php84-mysqli \
|
||||||
php83 php83-fpm php83-mbstring php83-curl php83-ctype php83-dom php83-gd php83-json php83-openssl php83-session php83-simplexml php83-xml php83-zip \
|
php83 php83-fpm php83-mbstring php83-curl php83-ctype php83-dom php83-gd php83-json php83-openssl php83-session php83-simplexml php83-xml php83-zip \
|
||||||
@ -16,9 +16,11 @@ VOLUME [ "/data/www", "/ssh" ]
|
|||||||
|
|
||||||
ENV \
|
ENV \
|
||||||
USERNAME=theuser \
|
USERNAME=theuser \
|
||||||
|
GROUPNAME=thegroup \
|
||||||
PHP=none \
|
PHP=none \
|
||||||
PUID=1000 \
|
PUID=1000 \
|
||||||
PGID=1000 \
|
PGID=1000 \
|
||||||
|
WEBDAV_PORT=8080 \
|
||||||
TZ=Etc/UTC
|
TZ=Etc/UTC
|
||||||
|
|
||||||
ENTRYPOINT [ "/sbin/tini", "/app/entrypoint.sh" ]
|
ENTRYPOINT [ "/sbin/tini", "/app/entrypoint.sh" ]
|
||||||
|
@ -2,7 +2,7 @@ FROM alpine:3.15
|
|||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
apk -U upgrade && \
|
apk -U upgrade && \
|
||||||
apk add tini nginx openssh-server \
|
apk add tini nginx openssh-server nginx-mod-http-dav-ext \
|
||||||
php7 php7-fpm php7-mbstring php7-curl php7-ctype php7-dom php7-gd php7-json php7-openssl php7-session php7-simplexml php7-xml php7-zip \
|
php7 php7-fpm php7-mbstring php7-curl php7-ctype php7-dom php7-gd php7-json php7-openssl php7-session php7-simplexml php7-xml php7-zip \
|
||||||
php7-apcu php7-opcache php7-pecl-yaml php7-sqlite3 php7-mysqli
|
php7-apcu php7-opcache php7-pecl-yaml php7-sqlite3 php7-mysqli
|
||||||
|
|
||||||
@ -12,9 +12,11 @@ VOLUME [ "/data/www", "/ssh" ]
|
|||||||
|
|
||||||
ENV \
|
ENV \
|
||||||
USERNAME=theuser \
|
USERNAME=theuser \
|
||||||
|
GROUPNAME=thegroup \
|
||||||
PHP=none \
|
PHP=none \
|
||||||
PUID=1000 \
|
PUID=1000 \
|
||||||
PGID=1000 \
|
PGID=1000 \
|
||||||
|
WEBDAV_PORT=8080 \
|
||||||
TZ=Etc/UTC
|
TZ=Etc/UTC
|
||||||
|
|
||||||
ENTRYPOINT [ "/sbin/tini", "/app/entrypoint.sh" ]
|
ENTRYPOINT [ "/sbin/tini", "/app/entrypoint.sh" ]
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
WEBROOT=/data/www
|
WEBROOT=/data/www
|
||||||
|
WEBDAV_PORT=${WEBDAV_PORT:-8080}
|
||||||
PHP=${PHP:-none}
|
PHP=${PHP:-none}
|
||||||
USERNAME=${USERNAME:-theuser}
|
USERNAME=${USERNAME:-theuser}
|
||||||
PUID=${PUID:-1000}
|
PUID=${PUID:-1000}
|
||||||
@ -70,5 +71,32 @@ fi
|
|||||||
chmod 0700 "${WEBROOT}/.ssh"
|
chmod 0700 "${WEBROOT}/.ssh"
|
||||||
/usr/sbin/sshd -e
|
/usr/sbin/sshd -e
|
||||||
|
|
||||||
|
cat > /etc/nginx/conf.d/user.conf <<EOF
|
||||||
|
user ${USERNAME} ${GROUPNAME};
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > /etc/nginx/http.d/webdav.conf <<EOF
|
||||||
|
server {
|
||||||
|
listen ${WEBDAV_PORT} default_server;
|
||||||
|
listen [::]:${WEBDAV_PORT} default_server;
|
||||||
|
root ${WEBROOT};
|
||||||
|
|
||||||
|
location / {
|
||||||
|
autoindex on;
|
||||||
|
autoindex_exact_size off;
|
||||||
|
autoindex_localtime on;
|
||||||
|
dav_methods PUT DELETE MKCOL COPY MOVE;
|
||||||
|
dav_ext_methods PROPFIND OPTIONS;
|
||||||
|
create_full_put_path on;
|
||||||
|
dav_access user:rw;
|
||||||
|
}
|
||||||
|
|
||||||
|
auth_basic "Restricted area";
|
||||||
|
auth_basic_user_file /app/htpasswd;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
touch /app/htpasswd
|
||||||
|
|
||||||
# start nginx
|
# start nginx
|
||||||
nginx
|
nginx
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# /etc/nginx/nginx.conf
|
# /etc/nginx/nginx.conf
|
||||||
|
|
||||||
user nginx;
|
# user nginx;
|
||||||
|
|
||||||
# Set number of worker processes automatically based on number of CPU cores.
|
# Set number of worker processes automatically based on number of CPU cores.
|
||||||
worker_processes auto;
|
worker_processes auto;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
WEBROOT=/data/www
|
WEBROOT=/data/www
|
||||||
|
WEBDAV_PORT=${WEBDAV_PORT:-8080}
|
||||||
PHP=${PHP:-none}
|
PHP=${PHP:-none}
|
||||||
USERNAME=${USERNAME:-theuser}
|
USERNAME=${USERNAME:-theuser}
|
||||||
PUID=${PUID:-1000}
|
PUID=${PUID:-1000}
|
||||||
@ -80,5 +81,32 @@ fi
|
|||||||
chmod 0700 "${WEBROOT}/.ssh"
|
chmod 0700 "${WEBROOT}/.ssh"
|
||||||
/usr/sbin/sshd -e
|
/usr/sbin/sshd -e
|
||||||
|
|
||||||
|
cat > /etc/nginx/conf.d/user.conf <<EOF
|
||||||
|
user ${USERNAME} ${GROUPNAME};
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > /etc/nginx/http.d/webdav.conf <<EOF
|
||||||
|
server {
|
||||||
|
listen ${WEBDAV_PORT} default_server;
|
||||||
|
listen [::]:${WEBDAV_PORT} default_server;
|
||||||
|
root ${WEBROOT};
|
||||||
|
|
||||||
|
location / {
|
||||||
|
autoindex on;
|
||||||
|
autoindex_exact_size off;
|
||||||
|
autoindex_localtime on;
|
||||||
|
dav_methods PUT DELETE MKCOL COPY MOVE;
|
||||||
|
dav_ext_methods PROPFIND OPTIONS;
|
||||||
|
create_full_put_path on;
|
||||||
|
dav_access user:rw;
|
||||||
|
}
|
||||||
|
|
||||||
|
auth_basic "Restricted area";
|
||||||
|
auth_basic_user_file /app/htpasswd;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
touch /app/htpasswd
|
||||||
|
|
||||||
# start nginx
|
# start nginx
|
||||||
nginx
|
nginx
|
||||||
|
103
rootfs/etc/nginx/nginx.conf
Normal file
103
rootfs/etc/nginx/nginx.conf
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
# /etc/nginx/nginx.conf
|
||||||
|
|
||||||
|
# user nginx;
|
||||||
|
|
||||||
|
# Set number of worker processes automatically based on number of CPU cores.
|
||||||
|
worker_processes auto;
|
||||||
|
|
||||||
|
# Enables the use of JIT for regular expressions to speed-up their processing.
|
||||||
|
pcre_jit on;
|
||||||
|
|
||||||
|
# Configures default error logger.
|
||||||
|
error_log /var/log/nginx/error.log warn;
|
||||||
|
|
||||||
|
# Includes files with directives to load dynamic modules.
|
||||||
|
include /etc/nginx/modules/*.conf;
|
||||||
|
|
||||||
|
# Include files with config snippets into the root context.
|
||||||
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
|
||||||
|
events {
|
||||||
|
# The maximum number of simultaneous connections that can be opened by
|
||||||
|
# a worker process.
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
# Includes mapping of file name extensions to MIME types of responses
|
||||||
|
# and defines the default type.
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
# Name servers used to resolve names of upstream servers into addresses.
|
||||||
|
# It's also needed when using tcpsocket and udpsocket in Lua modules.
|
||||||
|
#resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001];
|
||||||
|
|
||||||
|
# Don't tell nginx version to the clients. Default is 'on'.
|
||||||
|
server_tokens off;
|
||||||
|
|
||||||
|
# Specifies the maximum accepted body size of a client request, as
|
||||||
|
# indicated by the request header Content-Length. If the stated content
|
||||||
|
# length is greater than this size, then the client receives the HTTP
|
||||||
|
# error code 413. Set to 0 to disable. Default is '1m'.
|
||||||
|
client_max_body_size 1m;
|
||||||
|
|
||||||
|
# Sendfile copies data between one FD and other from within the kernel,
|
||||||
|
# which is more efficient than read() + write(). Default is off.
|
||||||
|
sendfile on;
|
||||||
|
|
||||||
|
# Causes nginx to attempt to send its HTTP response head in one packet,
|
||||||
|
# instead of using partial frames. Default is 'off'.
|
||||||
|
tcp_nopush on;
|
||||||
|
|
||||||
|
|
||||||
|
# Enables the specified protocols. Default is TLSv1 TLSv1.1 TLSv1.2.
|
||||||
|
# TIP: If you're not obligated to support ancient clients, remove TLSv1.1.
|
||||||
|
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
|
||||||
|
|
||||||
|
# Path of the file with Diffie-Hellman parameters for EDH ciphers.
|
||||||
|
# TIP: Generate with: `openssl dhparam -out /etc/ssl/nginx/dh2048.pem 2048`
|
||||||
|
#ssl_dhparam /etc/ssl/nginx/dh2048.pem;
|
||||||
|
|
||||||
|
# Specifies that our cipher suits should be preferred over client ciphers.
|
||||||
|
# Default is 'off'.
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
|
||||||
|
# Enables a shared SSL cache with size that can hold around 8000 sessions.
|
||||||
|
# Default is 'none'.
|
||||||
|
ssl_session_cache shared:SSL:2m;
|
||||||
|
|
||||||
|
# Specifies a time during which a client may reuse the session parameters.
|
||||||
|
# Default is '5m'.
|
||||||
|
ssl_session_timeout 1h;
|
||||||
|
|
||||||
|
# Disable TLS session tickets (they are insecure). Default is 'on'.
|
||||||
|
ssl_session_tickets off;
|
||||||
|
|
||||||
|
|
||||||
|
# Enable gzipping of responses.
|
||||||
|
#gzip on;
|
||||||
|
|
||||||
|
# Set the Vary HTTP header as defined in the RFC 2616. Default is 'off'.
|
||||||
|
gzip_vary on;
|
||||||
|
|
||||||
|
|
||||||
|
# Helper variable for proxying websockets.
|
||||||
|
map $http_upgrade $connection_upgrade {
|
||||||
|
default upgrade;
|
||||||
|
'' close;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Specifies the main log format.
|
||||||
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
|
||||||
|
# Sets the path, format, and configuration for a buffered log write.
|
||||||
|
access_log /var/log/nginx/access.log main;
|
||||||
|
|
||||||
|
|
||||||
|
# Includes virtual hosts configs.
|
||||||
|
include /etc/nginx/http.d/*.conf;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user