🦈🏠🐜 Initial Commit 🐜🦈🏠

This commit is contained in:
Jason 2022-02-14 16:46:31 -05:00
commit ab23368b88
No known key found for this signature in database
GPG Key ID: 4F765975C1F0EE5F
6 changed files with 213 additions and 0 deletions

19
.gitignore vendored Normal file
View 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
View 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
View 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
View 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
View 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
View 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