Inicio
Al azar
Cambios recientes
Páginas especiales
Portal de la comunidad
Preferencias
Acerca de José Manuel López Hueso
Descargos
José Manuel López Hueso
Buscar
Menú de usuario
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Despliegue de MediaWiki con Docker
»
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
'''MediaWiki''' es el software wiki libre en el que se basa Wikipedia. En esta práctica se ha desplegado con '''Docker''' y se publica en Internet a través de un '''proxy inverso nginx''' con HTTPS. [[Archivo:Esquema_wiki.png|thumb|300px|Esquema del despliegue]] == Arquitectura == {| class="wikitable" ! Componente !! Tecnología !! Función |- | some-mediawiki || mediawiki:1.43 || Aplicación web (Apache + PHP) |- | some-mariadb || mariadb:latest || Base de datos de la wiki |- | Proxy inverso || nginx + Let's Encrypt || Publica la wiki con HTTPS en ''wiki.lopezhueso.org'' |} Los dos contenedores están en la red de Docker '''practica''', así que MediaWiki se conecta a la base de datos usando el nombre del contenedor (<code>some-mariadb</code>), sin exponer el puerto de MariaDB. == Despliegue de los contenedores == === Base de datos === <pre> docker run -d --name some-mariadb --network practica \ -v /my/own/datadir:/var/lib/mysql:Z \ --env MARIADB_USER=mediawiki \ --env MARIADB_PASSWORD='********' \ --env MARIADB_DATABASE=media_wiki \ --env MARIADB_ROOT_PASSWORD='********' \ mariadb:latest </pre> === MediaWiki === <pre> docker run -d --name some-mediawiki --network practica \ -v images:/var/www/html/images \ -v /srv/wiki/LocalSettings.php:/var/www/html/LocalSettings.php:ro \ -p 8080:80 \ mediawiki:1.43 </pre> El fichero <code>LocalSettings.php</code> lo genera el instalador web y se monta como fichero de solo lectura. El directorio de imágenes se guarda en el volumen <code>images</code> para que no se pierda al recrear el contenedor. == Proxy inverso con HTTPS == En el VPS, nginx recibe las peticiones a <code>wiki.lopezhueso.org</code> y las reenvía al contenedor. El certificado se ha obtenido con '''Certbot''': <pre> sudo certbot --nginx -d wiki.lopezhueso.org </pre> Certbot añade la configuración de SSL en el puerto 443 y redirige todo el tráfico HTTP a HTTPS con un 301. == Seguridad de las subidas == Siguiendo la guía oficial de MediaWiki, el directorio <code>/images/</code> está protegido en nginx: * Cabecera <code>X-Content-Type-Options: nosniff</code>, para que el navegador no adivine el tipo de los ficheros. * Cabecera <code>Content-Security-Policy</code> con ''sandbox'', para impedir que se ejecuten scripts. * Las peticiones a scripts (<code>.php</code>, <code>.phtml</code>, <code>.sh</code>...) dentro de <code>/images/</code> devuelven '''403 Forbidden'''. * Los ficheros <code>.html</code> se sirven como texto plano. == Enlaces externos == * [https://www.mediawiki.org Sitio oficial de MediaWiki] * [https://www.mediawiki.org/wiki/Manual:Security Manual de seguridad de MediaWiki] * [https://hub.docker.com/_/mediawiki Imagen oficial en Docker Hub]
Resumen:
Ten en cuenta que todas las contribuciones a José Manuel López Hueso pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase
José Manuel López Hueso:Derechos de autor
para más detalles).
¡No uses textos con copyright sin permiso!
Cancelar
Ayuda de edición
(se abre en una ventana nueva)