Cómo montar el servidor en la escuela
🏫 Escenario real · Escuela Primaria N.° 109 «Juan Chassaing»
Zona oeste de Rosario · Pública · Contexto de vulnerabilidad educativa y tecnológica.
- Servidor: Notebook HP del programa Aprender Conectados (i3-7ma, 4GB RAM, HDD 500GB) con dual boot Ubuntu MATE.
- Clientes: 25 netbooks Aula Digital Móvil (2014, Atom 2GB RAM) + 7 tablets Aprender Conectados Nivel Inicial.
- Red: WiFi Estudiantes y Maestros con conexión a Internet intermitente y de baja velocidad (4-6 Mbps compartidos con 200 personas).
- Objetivo: Garantizar el acceso a recursos educativos offline, sin depender de Internet ni de servicios externos.
- Disponer de una PC, notebook o netbook en la institución que pueda destinarse como servidor.
- Instalar un sistema operativo GNU/Linux estable (ej. Ubuntu Server o Debian).
- Configurar un entorno LAMP (Linux, Apache, MySQL/MariaDB, PHP).
- Colocar los recursos navegables en la carpeta
/var/www/html/recursos/.
- Conectar los equipos de la escuela a la misma red local para acceder al servidor desde cualquier dispositivo.
Servicios disponibles
Plataforma educativa local para cursos y seguimiento de estudiantes.
Espacio de red social escolar para compartir ideas y experiencias.
Colección de simulaciones interactivas para ciencias y matemáticas.
Actividades educativas interactivas listas para su uso en el aula.
Herramienta para documentar y archivar trabajos y proyectos de los estudiantes.
Acceso a CDPedia o Kiwix para consultas sin necesidad de Internet.
Almacenamiento y compartición de archivos de manera local y segura.
Plataforma para la creación de un periódico escolar en red local.
Otros Servicios
Dependiendo de la infraestructura, se pueden montar servicios para comunicarse o compartir
Servicios desplegados en la Escuela 109
Simulaciones interactivas de ciencias y matemática, sin Internet.
Actividades educativas (crucigramas, sopas, asociaciones) en HTML5.
Entorno completo para desarrollo de videojuegos educativo.
Programación visual por bloques para los más chicos.
Colección didáctica creada por docentes argentinos (REA).
Escritura colaborativa y organización del aula (sin base de datos).
Enciclopedias offline (Vikidia, Wikipedia, Wikisource) en puerto 8080.
Carpeta compartida con los materiales de Aprender Conectados (videos, PDF, cuentos).
⚙️ Anexo · Decisiones técnicas clave para hardware limitado
🔹 Sin base de datos (MariaDB/MySQL)
Ningún recurso seleccionado la requiere. DokuWiki funciona con archivos de texto plano. Esto ahorra RAM y simplifica el mantenimiento.
🔹 Apache con MPM event
Más simple que Nginx en un entorno escolar, con permisos más directos. Limitado a 30 workers para no agotar los 4GB de RAM.
🔹 Montaje NTFS con permisos para Apache
La partición de Windows se monta en /mnt/windows_data con uid=www-data y gid=www-data, y se enlaza simbólicamente a /var/www/html/recursos. Así se evita duplicar espacio y se sirven los archivos directamente.
🔹 ZRAM para ampliar memoria efectiva
Con 4GB de RAM y un HDD lento, ZRAM (50% de la RAM, algoritmo zstd) proporciona 2GB de swap comprimido con prioridad 100. Evita el uso del disco como swap y mejora el rendimiento con múltiples clientes.
🔹 Kiwix en lugar de CDPedia
Kiwix es más ligero, tiene mejor buscador y permite servir archivos .zim de Vikidia y Wikipedia de manera eficiente en el puerto 8080.
🔹 Nombres mDNS (servidor.local)
Como la IP es dinámica y no se puede configurar el router, se utiliza el nombre servidor.local (Avahi/Bonjour) para que los clientes siempre encuentren el servidor, sin importar la IP que asigne el DHCP.
📄 Código de la página de inicio (index.html)
Este es el HTML que ven los usuarios al acceder a http://servidor.local/. Diseño responsivo, accesible y sin efectos que fallen en navegadores antiguos.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Servidor Escolar · Escuela 109 Juan Chassaing</title>
<style>
/* ── Base sólida y sin efectos pesados ── */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Segoe UI', 'Liberation Sans', Tahoma, sans-serif;
background: #f2f4f5; color: #1e2a36;
line-height: 1.5; font-size: 1.1rem; padding: 1rem;
}
.container {
max-width: 1200px; margin: 0 auto;
background: white; border-radius: 16px;
overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.08);
}
header {
background: #1a4b6e; color: white;
padding: 1.8rem 1.5rem; text-align: center;
}
header h1 { font-size: 2rem; font-weight: 600; margin-bottom: 0.5rem; }
header p { font-size: 1.1rem; opacity: 0.9; }
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 1.2rem; padding: 2rem;
}
.card {
display: flex; align-items: center; gap: 1rem;
background: #ffffff; border-left: 6px solid;
padding: 1.2rem; text-decoration: none;
color: #1e2a36; border-radius: 12px;
border: 1px solid #e2e8f0;
transition: background 0.1s ease;
}
.card:hover { background: #f8fafc; }
.card-azul { border-left-color: #2c7da0; }
.card-verde { border-left-color: #2e7d32; }
.card-naranja { border-left-color: #e67e22; }
.card-violeta { border-left-color: #8e44ad; }
.card-rojo { border-left-color: #c0392b; }
.card-amarillo { border-left-color: #f1c40f; }
.card-icon { font-size: 2.2rem; min-width: 55px; text-align: center; }
.card-content { flex: 1; }
.card-content h3 { font-size: 1.3rem; margin-bottom: 0.25rem; }
.card-content p { font-size: 0.95rem; color: #2c3e50; }
footer {
text-align: center; padding: 1.2rem;
font-size: 0.85rem; background: #e9ecef;
border-top: 1px solid #ced4da;
}
@media (max-width: 700px) {
body { padding: 0.5rem; font-size: 1rem; }
header h1 { font-size: 1.5rem; }
.grid { padding: 1rem; gap: 0.8rem; }
.card { flex-direction: column; text-align: center; border-left: none; border-top: 5px solid; }
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>📚 Servidor Escolar · Aulas Libres</h1>
<p>Escuela Primaria N.° 109 «Juan Chassaing» · Red local sin internet</p>
</header>
<div class="grid">
<a href="/PHET/" class="card card-azul">
<div class="card-icon">🧪</div>
<div class="card-content">
<h3>Simulaciones PhET</h3>
<p>Ciencias y Matemática · Experimentos interactivos</p>
</div>
</a>
<a href="/JClic/" class="card card-verde">
<div class="card-icon">🧩</div>
<div class="card-content">
<h3>Actividades JClic</h3>
<p>Crucigramas, sopas de letras, asociaciones</p>
</div>
</a>
<a href="/bloques/" class="card card-naranja">
<div class="card-icon">🧩</div>
<div class="card-content">
<h3>Pilas Bloques</h3>
<p>Programación con bloques visuales · Creá tu propio juego</p>
</div>
</a>
<a href="/pilas/" class="card card-naranja">
<div class="card-icon">⚙️</div>
<div class="card-content">
<h3>Pilas Engine</h3>
<p>Entorno completo de desarrollo de videojuegos</p>
</div>
</a>
<a href="/cd7/actividades/coleccion.educ.ar/coleccion/CD7/index.html" target="_blank" class="card card-rojo">
<div class="card-icon">🎓</div>
<div class="card-content">
<h3>Colección CD7</h3>
<p>Material didáctico · Proyecto que hicimos con cariño</p>
</div>
</a>
<a href="/wiki/" class="card card-verde">
<div class="card-icon">📝</div>
<div class="card-content">
<h3>DokuWiki</h3>
<p>Escritura colaborativa · Organizador del aula</p>
</div>
</a>
<a href="/recursos/" class="card card-amarillo">
<div class="card-icon">📂</div>
<div class="card-content">
<h3>Carpeta compartida</h3>
<p>Materiales del docente · Trabajos del aula</p>
</div>
</a>
</div>
<div style="text-align: center; margin: 0 2rem 2rem 2rem; padding: 1rem; background: #f1f5f9; border-radius: 16px; border: 1px solid #cbd5e1;">
<a href="http://servidor.local:8080" target="_blank" style="display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: #1e2a36; font-size: 1.2rem; font-weight: bold;">
<span style="font-size: 2rem;">📖</span>
<span>Enciclopedias offline (Vikidia · Wikipedia · Biblioteca)</span>
<span style="font-size: 1.2rem;">🔗</span>
</a>
<p style="margin-top: 8px; font-size: 0.85rem; color: #2c3e50;">Abre en nueva ventana · Puerto especial 8080</p>
</div>
<footer>
<p>📡 Red interna · Sin conexión a internet · <a href="/">Servidor escolar</a></p>
<p>📖 Recursos educativos libres · <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">CC BY-SA 4.0</a></p>
</footer>
</div>
</body>
</html>
Recomendaciones
Asignar un responsable técnico-docente para mantener actualizado el servidor, realizar copias de seguridad y capacitar al equipo en el uso de las plataformas. Promover el uso pedagógico y colaborativo, integrando a toda la comunidad educativa.
📖 Este proyecto demuestra que con hardware modesto, decisiones técnicas acertadas y compromiso docente, se puede garantizar el derecho a la educación incluso en contextos de conectividad limitada.