🚀 Initial release: Complete Ansible LEMP WordPress automation
✨ Features: - Complete LEMP stack automation - WordPress with WP-CLI - Redis Object Cache (50% performance boost) - Multi-OS support - SSL/Let's Encrypt integration - Security hardening - Enterprise features - Docker testing environment - GitHub Actions CI/CD - Comprehensive documentation 🧪 Fully tested and production-ready Copyright (c) 2025 Sebastian Palencsár
This commit is contained in:
76
docker/Dockerfile
Normal file
76
docker/Dockerfile
Normal file
@@ -0,0 +1,76 @@
|
||||
FROM ubuntu:24.04
|
||||
|
||||
# Umgebungsvariablen setzen
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV TZ=Europe/Berlin
|
||||
|
||||
# System updaten und notwendige Pakete installieren
|
||||
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
|
||||
openssh-server \
|
||||
sudo \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-venv \
|
||||
curl \
|
||||
wget \
|
||||
vim \
|
||||
nano \
|
||||
git \
|
||||
systemctl \
|
||||
ca-certificates \
|
||||
gnupg \
|
||||
lsb-release \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& apt-get clean
|
||||
|
||||
# SSH-Verzeichnis erstellen
|
||||
RUN mkdir /var/run/sshd
|
||||
|
||||
# Root-Passwort setzen (für Testing)
|
||||
RUN echo 'root:password' | chpasswd
|
||||
|
||||
# SSH-Konfiguration für moderne Sicherheit
|
||||
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
|
||||
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config && \
|
||||
sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config && \
|
||||
echo "ClientAliveInterval 60" >> /etc/ssh/sshd_config && \
|
||||
echo "ClientAliveCountMax 3" >> /etc/ssh/sshd_config
|
||||
|
||||
# Ansible-User erstellen mit modernen Standards
|
||||
RUN useradd -m -s /bin/bash ansible && \
|
||||
echo 'ansible:ansible123' | chpasswd && \
|
||||
usermod -aG sudo ansible
|
||||
|
||||
# Sudo ohne Passwort für ansible-User (sicher für Testumgebung)
|
||||
RUN echo 'ansible ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/ansible && \
|
||||
chmod 0440 /etc/sudoers.d/ansible
|
||||
|
||||
# SSH-Keys-Verzeichnis für ansible-User erstellen
|
||||
RUN mkdir -p /home/ansible/.ssh && \
|
||||
chown ansible:ansible /home/ansible/.ssh && \
|
||||
chmod 700 /home/ansible/.ssh
|
||||
|
||||
# Webroot-Verzeichnis vorbereiten
|
||||
RUN mkdir -p /var/www/html && \
|
||||
chown ansible:ansible /var/www/html
|
||||
|
||||
# Systemd-Ersatz für Container (optional)
|
||||
RUN systemctl --user enable ssh || true
|
||||
|
||||
# Gesunde Defaults setzen
|
||||
WORKDIR /home/ansible
|
||||
USER root
|
||||
|
||||
# Start-Script kopieren
|
||||
COPY start-services.sh /usr/local/bin/start-services.sh
|
||||
RUN chmod +x /usr/local/bin/start-services.sh
|
||||
|
||||
# SSH-Port freigeben
|
||||
EXPOSE 22
|
||||
|
||||
# Healthcheck hinzufügen
|
||||
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
||||
CMD service ssh status || exit 1
|
||||
|
||||
# Start-Script ausführen
|
||||
CMD ["/usr/local/bin/start-services.sh"]
|
||||
Reference in New Issue
Block a user