¡El antiguo foro y la Wiki ya están disponibles! 😀

¡Hola a todos!

¡Me alegra anunciar que la wiki y el antiguo foro ya están disponibles de nuevo!

CPCWiki por fin se ha actualizado a las últimas versiones de Mediawiki, luciendo un aspecto más elegante y funciones modernas.

Por su parte, el antiguo foro vuelve a estar activo, aunque en modo de solo lectura. Veréis que se han revocado todos los permisos para mantenerlo congelado en el tiempo.

Creedme, ha habido un gran trabajo detrás: por mi parte, pero sobre todo por parte de @Highlander, que hizo un trabajo fantástico configurando la infraestructura.

Dicho esto, es inevitable que surjan problemas. Sé, por ejemplo, que algunas extensiones de la wiki (la mayoría ya estaban desactivadas de todos modos) no funcionan a la perfección.

Por tanto, os agradecería que probarais las cosas y me informarais aquí de cualquier hallazgo.

Con esto, doy por completada la primera y más importante fase de la migración. Ahora nos centraremos en solucionar errores y hacer ajustes finos.

¡Gracias por vuestra paciencia!

PD: Vale la pena mencionar que, en el preciso momento en que la wiki volvió a estar activa, los bots de costumbre volvieron a descender en masa. Consiguieron hacer que los sitios web no respondieran, incluso en este servidor nuevo y enormemente superior. Hemos implementado una serie de medidas (limitación de tasa de peticiones, detección y rechazo de bots en el sitio, reglas de WAF que bloquean países enteros, etc.). Sin embargo, creo que los desafíos de Cloudflare ahora funcionan mucho mejor y solo deberíais ver uno si hay algo sospechoso en vuestra conexión.

¡Pinta genial! ¡Buen trabajo!

¡Sí! Enhorabuena a los dos.

Muchas gracias por vuestro excelente trabajo.

¡¡Fantástico!!
Se ha recuperado información muy valiosa. ¡¡Gran trabajo!!

¡Bien hecho! He echado de menos el CPC Wiki durante el verano. Es genial ver que no se ha perdido todo.

¡¡¡Increíble!!! ¡Gracias @Gryzor y @Highlander por devolverle la vida a las cosas!

Genial :slight_smile:

Un trabajo increíble por parte de todos los involucrados. ¡Qué alegría tener la wiki de vuelta!

¡Bienvenido de nuevo, amigo!

Genial.

¡Gracias por tu gran trabajo! El nuevo foro tiene muy buena pinta. Estaba tan acostumbrado al anterior que tal vez me lleve un tiempo sentirme como en casa, pero ya me iré adaptando :smile: .

¡Qué bueno verte de nuevo, compañero!

Sí, se ve un poco diferente, ¡pero en cuanto empieces a explorar te darás cuenta de que no cambia tanto! :slight_smile:

«Congelado en el tiempo», le has dado de lleno. La idea es preservar las conversaciones, el valor, la historia.

Tuviste un 100 % de acierto al reconstruir un foro funcional, aunque solo fuera para poder renderizar las páginas y preservarlas.

Ahora bien, se supone que esas páginas no van a cambiar, ¿verdad? Bueno, por definición, no.

Mantener todo un software funcional que renderiza dinámicamente páginas que están destinadas a… no cambiar nunca, me parece absurdo.

Y con el estado actual de Internet, estás casi obligado a mantenerlo, actualizarlo, etc., por miedo a que sea pirateado.

¿Has considerado convertirlo en un sitio web estático? Podrías usar un extractor de sitios web (por ejemplo, wget o similar) para obtener una instantánea HTML completa e independiente de todo el conjunto de páginas del foro. Luego, desenchufar la instalación de SMF y servir ese conjunto de páginas en las mismas URL. Al instante, servir páginas consume muchísimo menos CPU, la superficie de ataque se reduce y el mantenimiento se simplifica, al tiempo que se garantiza que el HTML, CSS, etc. renderizados permanezcan constantes a lo largo del tiempo.

Un inconveniente: se perdería cualquier aspecto no público (mensajes privados, etc.). Puedes anunciar el cambio varias veces y hacerlo, por ejemplo, tras un plazo de un año para que la gente guarde lo que quiera.

¿Qué opinas, @Gryzor?

Esa es justamente mi mayor preocupación: que por ambas razones el foro termine abandonado en algún momento y toda la información se pierda.

Creo que tenemos que hacer algo al respecto, que permanezca en este foro (tal vez en una sección de archivo). Estaré encantado de ayudar con esto.

No es una mala preocupación, para ser sincero, pero en la práctica la solución como que se cae a pedazos. He estado pensando en ello desde anoche y hay un par de escollos que son inherentemente imposibles (?) de superar:

1. Problemas con wget

SMF genera permutaciones dinámicas de URL para cada uno de los temas:

  • Filtros de ordenación (?sort=subject;desc, ?sort=starter)

  • Paginación y enlaces de salto (?topic=123.prev_next=next, ?topic=123.prev_next=prev)

  • Vistas de utilidad (?action=printpage, ?action=profile, ?action=help)

  • Identificadores de sesión y variaciones del índice del foro

Si le apuntas wget -m a SMF sin docenas de reglas de expresiones regulares, la araña SÍ O SÍ caerá en bucles infinitos de rastreo. Como el foro tiene unos 250k mensajes, puede generar fácilmente 15 MILLONES (por lo que veo) de URL rastreables; ¡mucha suerte con eso!.

2. El problema de la URL y el servidor web

Hice un par de pruebas; los servidores web estándar no sirven archivos estáticos a partir de «query strings» como los que usa SMF.

Para explicarlo: cuando un usuario visita index.php?topic=1240.0, el servidor web ve index.php como la ruta del archivo y ?topic=1240.0 como argumentos de consulta. Si PHP ya no está, el servidor simplemente intenta servir el archivo estático index.php una y otra vez. Para mapear los archivos estáticos rastreados a las URL originales con «query-string» de SMF, tienes que escribir reglas de reescritura enrevesadas para que Caddy traduzca los argumentos de consulta en nombres de archivo planos en el disco. Si ese mapeo se rompe, rompes todos los enlaces entrantes desde Google y la propia CPCWiki, lo cual es una pesadilla de SEO.

3. Archivos adjuntos/Descargas

SMF sirve los archivos adjuntos dinámicamente a través de index.php?action=dlattach;topic=.... Esto probablemente falle de forma estruendosa con un rastreador.

4. Búsqueda

Si lo mantenemos como páginas estáticas, destruiremos el motor de búsqueda (tal y como está). Podríamos crear un índice de búsqueda independiente en el lado del cliente (como Pagefind) dentro de las plantillas HTML rastreadas, pero eso anula en parte el propósito.

¿Solución?

La mejor solución que se me ocurrió es procesar la base de datos con un script para generar una lista de URL de temas únicos y luego usar wget para obtener las URL de esa lista generada, pero eso no resuelve el resto de los problemas.

Blindaje

Si lo que preocupa es la seguridad contra vandalismo, etc., podemos cerrar todo fácilmente revocando los permisos INSERT, UPDATE, DELETE, DROP, ALTER ON en la base de datos. Hacer que el directorio raíz del servidor web sea de solo lectura (RO) y devolver errores 503 para acciones específicas como:

@blocked {
    query action=login*
    query action=register*
    query action=post*
    query action=pm*
}
respond @blocked "Forum is read-only" 403

…y listo el pollo.

Pero bueno, incluso si un atacante de alguna manera consigue acceso para hacer algo en el sistema tal y como está ahora, seguimos teniendo copias de seguridad en un montón de sitios :slight_smile:

Eso SÍ es una preocupación a largo plazo. No le he dado muchas vueltas, pero llegará el momento en que el CPC dejará de existir de forma natural. Ni idea de cómo proceder a partir de ahí.

Es un excelente comienzo :grin:

¡Qué genial que el viejo foro esté de vuelta!

Lo eché de menos y me alegra estar de regreso.

Muchas gracias por todo el arduo trabajo que han realizado para hacerlo posible. :grinning_face: :flexed_biceps:

¡Bienvenido de nuevo, amigo! :slight_smile: