Sign inSign up

koko004/remote-wake-sleep-on-lan-armv7

By koko004

•Updated over 1 year ago

Web server with WOL

Image
0

603

koko004/remote-wake-sleep-on-lan-armv7 repository overview

Dockerfile

# Usamos la imagen base Debian para ARMv7
FROM arm32v7/debian:latest

# Mantenedor
MAINTAINER ex0nuss

# Variables de entorno para evitar preguntas interactivas durante la instalación
ENV DEBIAN_FRONTEND=noninteractive

# Instalación de dependencias necesarias
RUN apt-get update && \
    apt-get install -y \
    apache2 \
    php8.2 \
    libapache2-mod-php8.2 \
    php8.2-curl \
    iputils-ping \
    wakeonlan \
    git \
    openssl \
    nano \
    && apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Habilitar módulos de Apache
RUN a2enmod proxy_fcgi setenvif ssl headers

# Clonar el repositorio de la aplicación
RUN git clone https://github.com/sciguy14/Remote-Wake-Sleep-On-LAN-Server.git /root/Remote-Wake-Sleep-On-LAN-Server

# Crear directorio para SSL
RUN mkdir -p /etc/apache2/ssl

# Generar certificados SSL autofirmados
RUN openssl genrsa -out /etc/apache2/ssl/wol.key 2048 && \
    openssl req -new -key /etc/apache2/ssl/wol.key -out /etc/apache2/ssl/wol.csr -subj "/CN=localhost" && \
    openssl x509 -req -days 10 -in /etc/apache2/ssl/wol.csr -signkey /etc/apache2/ssl/wol.key -out /etc/apache2/ssl/wol.crt

# Copiar archivos de configuración de Apache desde el repositorio
RUN cp -f /root/Remote-Wake-Sleep-On-LAN-Server/apache2_configs/ssl.conf /etc/apache2/mods-available/ssl.conf && \
    cp -f /root/Remote-Wake-Sleep-On-LAN-Server/apache2_configs/000-default_self-https.conf /etc/apache2/sites-available/000-default.conf && \
    a2ensite 000-default.conf

# Configurar PHP (PHP 8.2)
RUN sed -i.bak "s/expose_php = On/expose_php = Off/g" /etc/php/8.2/apache2/php.ini && \
    sed -i.bak "s/error_reporting = .*/error_reporting = E_ERROR/g" /etc/php/8.2/apache2/php.ini

# Configurar seguridad de Apache
RUN sed -i.bak "s/ServerSignature On/ServerSignature Off/g" /etc/apache2/conf-available/security.conf && \
    sed -i.bak "s/ServerTokens OS/ServerTokens Prod/g" /etc/apache2/conf-available/security.conf

# Mover la aplicación al directorio de Apache
RUN mkdir -p /var/www/html && \
    cp -r /root/Remote-Wake-Sleep-On-LAN-Server/www/html/* /var/www/html/ && \
    cp /root/Remote-Wake-Sleep-On-LAN-Server/www/html/.htaccess /var/www/html/ && \
    mv /var/www/html/config_sample.php /var/www/html/config.php && \
    rm -rf /root/Remote-Wake-Sleep-On-LAN-Server

# Cambiar permisos para ping (necesario para Wake-on-LAN)
RUN chmod u+s /usr/bin/ping

# Limpiar archivos innecesarios
RUN rm -f /var/www/html/index.html

# Exponer el puerto 80 (HTTP) y 443 (HTTPS)
EXPOSE 80 443

# Comando para iniciar Apache en primer plano
CMD ["apachectl", "-D", "FOREGROUND"]

docker-compose.yml

version: "3"

services:
  remote-wake-sleep-on-lan-armv7:
    image: koko004/remote-wake-sleep-on-lan-armv7
    container_name: wol
    restart: always
    network_mode: host
    volumes:
      - ./config.php:/var/www/html/config.php
    environment:
      - PASSPHRASE=adminpasswd
      - APACHE2_PORT=80
      - RWSOLS_COMPUTER_NAME=Pc1,Pc2
      - RWSOLS_COMPUTER_MAC="XX:XX:XX:XX:XX:XX","XX:XX:XX:XX:XX:XX"
      - RWSOLS_COMPUTER_IP="192.168.1.45","192.168.1.50"

config.php

<?php
// Configuración de la contraseña
$PASSPHRASE = getenv('PASSPHRASE') ?: 'admpassw'; // Usa la variable de entorno o un valor por defecto
$APPROVED_HASH = password_hash($PASSPHRASE, PASSWORD_DEFAULT); // Genera el hash de la contraseña

// Otras configuraciones
$USE_HTTPS = false; // Cambia a true si usas HTTPS
$BOOTSTRAP_LOCATION_PREFIX = ''; // Ruta para los archivos de Bootstrap
$DEBUG = false; // Habilita o deshabilita el modo de depuración

// Configuración de las computadoras
$COMPUTER_NAME = explode(',', getenv('RWSOLS_COMPUTER_NAME') ?: 'Pc1,Pc2');
$COMPUTER_MAC = explode(',', getenv('RWSOLS_COMPUTER_MAC') ?: 'XX:XX:XX:XX:XX:XX,XX:XX:XX:XX:XX:XX');
$COMPUTER_LOCAL_IP = explode(',', getenv('RWSOLS_COMPUTER_IP') ?: '192.168.1.45,192.168.1.50');
$COMPUTER_SLEEP_CMD_PORT = getenv('RWSOLS_SLEEP_PORT') ?: 7760;
$COMPUTER_SLEEP_CMD = getenv('RWSOLS_SLEEP_CMD') ?: 'suspend';

// Configuración de ping
$MAX_PINGS = getenv('RWSOLS_MAX_PINGS') ?: 15;
$SLEEP_TIME = getenv('RWSOLS_SLEEP_TIME') ?: 5;
?>```

Tag summary

Content type

Image

Digest

sha256:82abfad86…

Size

110.1 MB

Last updated

over 1 year ago

docker pull koko004/remote-wake-sleep-on-lan-armv7