FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
       openssh-server bash ca-certificates nano vim sudo ansible nginx python3 python3-pip \
    && rm -rf /var/lib/apt/lists/*

RUN useradd -ms /bin/bash steve \
    && echo "steve:pass123" | chpasswd \
    && useradd -ms /bin/bash alex \
    && echo "alex:bookworm42" | chpasswd

RUN mkdir -p /home/steve/docs /home/steve/projects /home/steve/tmp \
    && echo "TODO: проверить роли деплоя" > /home/steve/todo.txt \
    && echo "заметки встречи\n- просмотреть ansible playbook\n" > /home/steve/docs/notes.txt \
    && echo "идея проекта: TBD" > /home/steve/projects/idea.txt \
    && echo "напоминание о конфиге ssh: alex / bookworm42" > /home/steve/docs/credentials.txt \
    && echo "заглушка архива" > /home/steve/tmp/archive.tar \
    && chown -R steve:steve /home/steve

RUN echo 'vsosh{t00_3asy_t0_1337_h4ck3r}' > /home/alex/flag1.txt \
    && chown -R alex:alex /home/alex \
    && chmod 750 /home/alex \
    && chmod 640 /home/alex/flag1.txt

RUN echo 'vsosh{4ns1bl3_b3c0m3_pr1v3sc_r00t}' > /root/flag.txt \
    && chmod 600 /root/flag.txt

RUN mkdir -p /opt/ansible/playbooks /opt/ansible/playbooks/roles/app-server/tasks

COPY app-deploy.yaml /opt/ansible/playbooks/app-deploy.yaml
COPY app-server-main.yml /opt/ansible/playbooks/roles/app-server/tasks/main.yml

RUN chown -R root:alex /opt/ansible \
    && chmod -R 775 /opt/ansible

RUN echo "alex ALL=(root) NOPASSWD: /usr/bin/ansible-playbook /opt/ansible/playbooks/app-deploy.yaml" > /etc/sudoers.d/ansible \
    && chmod 440 /etc/sudoers.d/ansible

RUN sed -ri 's/^#?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config \
    && sed -ri 's/^#?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config \
    && sed -ri 's|^#?PrintMotd.*|PrintMotd no|' /etc/ssh/sshd_config \
    && sed -ri 's|^#?UsePAM.*|UsePAM yes|' /etc/ssh/sshd_config \
    && sed -ri 's|^#?PrintLastLog.*|PrintLastLog no|' /etc/ssh/sshd_config || true \
    && sed -ri 's/^(session\s+optional\s+pam_motd\.so.*)$/# \1/' /etc/pam.d/sshd

RUN chmod -x /etc/update-motd.d/* || true

COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod 755 /usr/local/bin/entrypoint.sh

RUN mkdir -p /run/sshd

EXPOSE 22

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
