mirror of
https://github.com/casjaysdevdocker/proftpd
synced 2025-01-18 06:34:24 -05:00
🦈🏠🐜❗ Initial Commit ❗🐜🦈🏠
This commit is contained in:
commit
ab23368b88
19
.gitignore
vendored
Normal file
19
.gitignore
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# gitignore created on 02/09/22 at 12:17
|
||||||
|
# Disable reminder in prompt
|
||||||
|
ignoredirmessage
|
||||||
|
|
||||||
|
# OS generated files
|
||||||
|
.DS_Store
|
||||||
|
.DS_Store?
|
||||||
|
._*
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
ehthumbs.db
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Other
|
||||||
|
.installed
|
||||||
|
|
||||||
|
|
||||||
|
# ignore commit message
|
||||||
|
.gitcommit
|
77
Dockerfile
Normal file
77
Dockerfile
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
FROM casjaysdev/alpine:latest AS stage
|
||||||
|
|
||||||
|
RUN apk -U upgrade && \
|
||||||
|
apk add \
|
||||||
|
proftpd-mod_auth_otp \
|
||||||
|
proftpd-mod_ban \
|
||||||
|
proftpd-mod_copy \
|
||||||
|
proftpd-mod_ctrls_admin \
|
||||||
|
proftpd-mod_deflate \
|
||||||
|
proftpd-mod_dynmasq \
|
||||||
|
proftpd-mod_exec \
|
||||||
|
proftpd-mod_facl \
|
||||||
|
proftpd-mod_geoip \
|
||||||
|
proftpd-mod_ifsession \
|
||||||
|
proftpd-mod_ifversion \
|
||||||
|
proftpd-mod_ldap \
|
||||||
|
proftpd-mod_load \
|
||||||
|
proftpd-mod_memcache \
|
||||||
|
proftpd-mod_quotatab \
|
||||||
|
proftpd-mod_quotatab_file \
|
||||||
|
proftpd-mod_quotatab_ldap \
|
||||||
|
proftpd-mod_quotatab_radius \
|
||||||
|
proftpd-mod_quotatab_sql \
|
||||||
|
proftpd-mod_radius \
|
||||||
|
proftpd-mod_ratio \
|
||||||
|
proftpd-mod_readme \
|
||||||
|
proftpd-mod_redis \
|
||||||
|
proftpd-mod_rewrite \
|
||||||
|
proftpd-mod_sftp \
|
||||||
|
proftpd-mod_sftp_sql \
|
||||||
|
proftpd-mod_shaper \
|
||||||
|
proftpd-mod_site_misc \
|
||||||
|
proftpd-mod_snmp \
|
||||||
|
proftpd-mod_sql \
|
||||||
|
proftpd-mod_sql_mysql \
|
||||||
|
proftpd-mod_sql_odbc \
|
||||||
|
proftpd-mod_sql_passwd \
|
||||||
|
proftpd-mod_sql_postgres \
|
||||||
|
proftpd-mod_sql_sqlite \
|
||||||
|
proftpd-mod_tls \
|
||||||
|
proftpd-mod_tls_memcache \
|
||||||
|
proftpd-mod_tls_redis \
|
||||||
|
proftpd-mod_tls_shmcache \
|
||||||
|
proftpd-mod_unique_id \
|
||||||
|
proftpd-mod_wrap2 \
|
||||||
|
proftpd-mod_wrap2_file \
|
||||||
|
proftpd-mod_wrap2_redis \
|
||||||
|
proftpd-mod_wrap2_sql \
|
||||||
|
proftpd-utils
|
||||||
|
|
||||||
|
COPY ./config/. /etc/
|
||||||
|
COPY ./bin/. /usr/local/bin/
|
||||||
|
|
||||||
|
FROM stage
|
||||||
|
ARG BUILD_DATE="$(date +'%Y-%m-%d %H:%M')"
|
||||||
|
|
||||||
|
LABEL \
|
||||||
|
org.label-schema.name="proftpd" \
|
||||||
|
org.label-schema.description="proftpd server based on Alpine Linux" \
|
||||||
|
org.label-schema.url="https://github.com/casjaysdev/jekyll" \
|
||||||
|
org.label-schema.vcs-url="https://github.com/casjaysdev/jekyll" \
|
||||||
|
org.label-schema.build-date=$BUILD_DATE \
|
||||||
|
org.label-schema.version=$BUILD_DATE \
|
||||||
|
org.label-schema.vcs-ref=$BUILD_DATE \
|
||||||
|
org.label-schema.license="MIT" \
|
||||||
|
org.label-schema.vcs-type="Git" \
|
||||||
|
org.label-schema.schema-version="latest" \
|
||||||
|
org.label-schema.vendor="CasjaysDev" \
|
||||||
|
maintainer="CasjaysDev <docker-admin@casjaysdev.com>"
|
||||||
|
|
||||||
|
EXPOSE 21
|
||||||
|
|
||||||
|
WORKDIR /data
|
||||||
|
VOLUME [ "/data" ] [ "/data", "/config" ]
|
||||||
|
|
||||||
|
HEALTHCHECK CMD [ "/usr/local/bin/entrypoint-proftpd.sh" "healthcheck" ]
|
||||||
|
ENTRYPOINT [ "/usr/local/bin/entrypoint-proftpd.sh" ]
|
13
LICENSE.md
Normal file
13
LICENSE.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||||
|
Version 2, December 2004
|
||||||
|
|
||||||
|
Copyright (C) 2022 Jason Hempstead <git-admin@casjaysdev.com>
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim or modified
|
||||||
|
copies of this license document, and changing it is allowed as long
|
||||||
|
as the name is changed.
|
||||||
|
|
||||||
|
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
1. You just DO WHAT THE FUCK YOU WANT TO.
|
10
README.md
Normal file
10
README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<h1 align=center>
|
||||||
|
👋 Welcome to proftpd 👋
|
||||||
|
</h1>
|
||||||
|
<p align=center>
|
||||||
|
StartDocumentationHere
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
👤 **Jason Hempstead**
|
51
bin/entrypoint-proftpd.sh
Normal file
51
bin/entrypoint-proftpd.sh
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
##@Version : 202202021753-git
|
||||||
|
# @Author : Jason Hempstead
|
||||||
|
# @Contact : jason@casjaysdev.com
|
||||||
|
# @License : WTFPL
|
||||||
|
# @ReadME : entrypoint.sh --help
|
||||||
|
# @Copyright : Copyright: (c) 2022 Jason Hempstead, Casjays Developments
|
||||||
|
# @Created : Wednesday, Feb 02, 2022 17:53 EST
|
||||||
|
# @File : entrypoint.sh
|
||||||
|
# @Description :
|
||||||
|
# @TODO :
|
||||||
|
# @Other :
|
||||||
|
# @Resource :
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
APPNAME="$(basename "$0")"
|
||||||
|
VERSION="202202021753-git"
|
||||||
|
USER="${SUDO_USER:-${USER}}"
|
||||||
|
HOME="${USER_HOME:-${HOME}}"
|
||||||
|
SRC_DIR="${BASH_SOURCE%/*}"
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
# Set bash options
|
||||||
|
if [[ "$1" == "--debug" ]]; then shift 1 && set -xo pipefail && export SCRIPT_OPTS="--debug" && export _DEBUG="on"; fi
|
||||||
|
trap 'exitCode=${exitCode:-$?};[ -n "$ENTRYPOINT_SH_TEMP_FILE" ] && [ -f "$ENTRYPOINT_SH_TEMP_FILE" ] && rm -Rf "$ENTRYPOINT_SH_TEMP_FILE" &>/dev/null' EXIT
|
||||||
|
|
||||||
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
export TZ="${TZ:-America/New_York}"
|
||||||
|
export HOSTNAME="${HOSTNAME:-casjaysdev-proftpd}"
|
||||||
|
|
||||||
|
[ -n "${TZ}" ] && echo "${TZ}" >/etc/timezone
|
||||||
|
[ -n "${HOSTNAME}" ] && echo "${HOSTNAME}" >/etc/hostname
|
||||||
|
[ -n "${HOSTNAME}" ] && echo "127.0.0.1 $HOSTNAME localhost" >/etc/hosts
|
||||||
|
[ -f "/usr/share/zoneinfo/${TZ}" ] && ln -sf "/usr/share/zoneinfo/${TZ}" "/etc/localtime"
|
||||||
|
|
||||||
|
[ -f "/config/ssl/ca.crt" ] || create-ssl-cert
|
||||||
|
[ -f "/config/proftpd.conf" ] &&
|
||||||
|
cp -Rf /config/proftpd.conf /etc/proftpd/proftpd.conf ||
|
||||||
|
cp -Rf /etc/proftpd/proftpd.conf /config/proftpd.conf
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
healthcheck)
|
||||||
|
echo 'OK'
|
||||||
|
;;
|
||||||
|
bash | shell | sh)
|
||||||
|
shift 1
|
||||||
|
exec /bin/bash -l "$@"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exec proftpd --nodaemon -c /etc/proftpd/proftpd.conf || bash -l
|
||||||
|
;;
|
||||||
|
esac
|
43
config/proftpd.conf
Normal file
43
config/proftpd.conf
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# proftpd config
|
||||||
|
<Global>
|
||||||
|
Umask 022
|
||||||
|
AllowOverwrite yes
|
||||||
|
TransferLog /dev/stdout
|
||||||
|
ExtendedLog /dev/stdout
|
||||||
|
DefaultRoot /data
|
||||||
|
DisplayConnect "/etc/motd"
|
||||||
|
</Global>
|
||||||
|
|
||||||
|
<Anonymous /data>
|
||||||
|
User root
|
||||||
|
Group root
|
||||||
|
AccessGrantMsg "Anonymous login ok, restrictions apply."
|
||||||
|
UserAlias anonymous ftp
|
||||||
|
MaxClients 2000 "Sorry, max %m users -- try again later"
|
||||||
|
DisplayLogin /data/welcome.msg
|
||||||
|
DisplayChdir .message
|
||||||
|
DisplayReadme README*
|
||||||
|
DirFakeUser on ftp
|
||||||
|
DirFakeGroup on ftp
|
||||||
|
WtmpLog off
|
||||||
|
ExtendedLog /dev/stdout WRITE,READ default
|
||||||
|
ExtendedLog /dev/stdout AUTH auth
|
||||||
|
AllowRetrieveRestart on
|
||||||
|
AnonRequirePassword off
|
||||||
|
<Limit WRITE>
|
||||||
|
DenyAll
|
||||||
|
</Limit>
|
||||||
|
</Anonymous>
|
||||||
|
|
||||||
|
PassivePorts 49152 65534
|
||||||
|
TLSEngine on
|
||||||
|
TLSRequired off
|
||||||
|
TLSProtocol TLSv1 TLSv1.1 TLSv1.2
|
||||||
|
TLSOptions NoSessionReuseRequired
|
||||||
|
TLSVerifyClient off
|
||||||
|
TLSRenegotiate none
|
||||||
|
TLSLog /dev/stdout
|
||||||
|
|
||||||
|
TLSCACertificateFile /config/ssl/ca.crt
|
||||||
|
TLSRSACertificateFile /config/ssl/localhost.crt
|
||||||
|
TLSRSACertificateKeyFile /config/ssl/localhost.key
|
Loading…
x
Reference in New Issue
Block a user