5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-21 22:56:22 +00:00
Panel de Sutty para correr con la CI
Find a file
2019-08-28 13:11:51 -03:00
_deploy generar los sitios! 2018-02-20 14:47:11 -03:00
app que turbolinks respete los anchors (para los artículos con notas al pie) 2019-08-23 15:47:12 -03:00
bin manipular la configuración por separado 2019-07-30 17:07:28 -03:00
config mostrar los errores de carga 2019-08-23 15:29:07 -03:00
db WIP: Subida de archivos 2019-08-21 22:09:29 -03:00
doc ultimo TODO 2019-08-28 13:11:51 -03:00
lib cargar warden automaticamente 2019-04-08 15:30:25 -03:00
log init 2018-01-02 14:19:25 -03:00
public elegir licencia 2019-07-19 21:34:14 -03:00
test validar que estemos subiendo imágenes 2019-08-23 15:26:34 -03:00
tmp init 2018-01-02 14:19:25 -03:00
vendor init 2018-01-02 14:19:25 -03:00
.dockerignore docker 2019-04-08 19:40:51 -03:00
.env.example usar secretos 2019-07-29 16:21:16 -03:00
.gitignore usar secretos 2019-07-29 16:21:16 -03:00
.rubocop.yml crear artículos 2019-08-13 20:52:05 -03:00
.rubocop_todo.yml no fallar con el titulo 2019-04-29 19:49:24 -03:00
.ruby-version ruby 2.5.5 2019-07-30 17:08:07 -03:00
Capfile poder compilar el sitio con sidekiq 2019-07-25 22:13:46 -03:00
config.ru rubocop 2019-03-26 12:32:20 -03:00
Dockerfile validar que estemos subiendo imágenes 2019-08-23 15:26:34 -03:00
entrypoint.sh docker 2019-04-08 19:40:51 -03:00
Gemfile WIP: Subida de archivos 2019-08-21 22:09:29 -03:00
Gemfile.lock WIP: Subida de archivos 2019-08-21 22:09:29 -03:00
LICENSE licencia 2018-01-02 14:19:51 -03:00
monit.conf deploy en docker 2019-07-29 15:15:23 -03:00
package.json usar input-tag en reemplazo de select2 2019-08-16 20:25:07 -03:00
Procfile WIP de deploy 2019-07-26 20:57:11 -03:00
Rakefile rubocop 2019-03-26 12:32:20 -03:00
README.md Update README.md 2018-11-13 15:00:26 -08:00
sync_assets.sh deploy en docker 2019-07-29 15:15:23 -03:00
yarn.lock usar input-tag en reemplazo de select2 2019-08-16 20:25:07 -03:00

README

This README would normally document whatever steps are necessary to get the application up and running.

Things you may want to cover:

  • Ruby version

  • System dependencies

  • Configuration

  • Database creation

  • Database initialization

  • How to run the test suite

  • Services (job queues, cache servers, search engines, etc.)

  • Deployment instructions

  • ...

Introducción

Un sitio web se traduce en calor, consumo eléctrico, desgaste de máquinas y componentes, impacto medioambiental... Cuanto mayor éxito de una plataforma o sitio (es decir, cuantas más visitas), más consumo de recursos.

Tomar conciencia de todo esto y optimizar al máximo posible ayuda a que Internet sea más sostenible y sustentable.

Al existir una aplicación, es decir un programa de computadoras, que ejecuta código cada vez que se genera una página web, también existen vulnerabilidades, donde una entidad malevolente (un equipo de hackers con financiamiento gubernamental, por ejemplo) puede engañar a la aplicación a ejecutar códigos distintos a los originales. Esto hace que las administradoras de los sistemas tengan que estar al pendiente de actualizaciones y ocuparse de montar infraestructura de protección y prevención, que a su vez consume más recursos digitales.

Un sitio estático puede estar conformado por los mismos elementos que un sitio web dinámico, pero en lugar de generar sus páginas web por cada visita, la aplicación solo las genera una sola vez en forma de archivos. Una vez generado el sitio, esas páginas web pueden ser visitadas miles de veces solo consumiendo los recursos necesarios para enviarlas a través de Internet. Los recursos necesarios para generar cada una fueron utilizados una sola vez.

Como la aplicación sólo se ejecuta una única vez, se reducen al mínimo las posibilidades de ataque. No hay software para actualizar, ni asegurarse que siga funcionando, un sitio estático es el mismo para siempre. Esto no quiere decir que un sitio estático no se pueda actualizar ni aceptar cambios, sino que hay una separación entre el momento de generación y el momento de envío a Internet. Podemos hacer los cambios que queramos y luego los podemos publicar.

Sin embargo, los sitios estáticos no se pueden editar desde un navegador web tan fácilmente como un sistema de manejo de contenidos como Wordpress.

Por eso, en Kéfir hemos desarrollado una plataforma de edición de sitios web estáticos que hemos llamado Sutty [1].

Así que, el desarrollo de la plataforma DocRed estará dividido en dos elementos:

  • Una plataforma de edición y carga de fichas, llamada Sutty.
  • Un sitio web estático, basado en un generador de sitios estáticos muy utilizado llamado Jekyll.

Sutty se basa en Jekyll [2], un generador de sitios estaticos desarrollado en el lenguaje de programación Ruby.

[1] Sutty es un personaje creado por la escritora feminista de ciencia ficción Ursula Le Guin. https://en.wikipedia.org/wiki/The_Telling [2] https://jekyllrb.com/

Algunas de las funcionalidades

Desarrollamos funcionalidades en la medida que nos salen proyectos de desarrollo en la cooperativa. Al tratarse de un proyecto de software libre, cada vez que desarrollamos una funcionalidad nueva, la implementamos en toda la plataforma Sutty, no sólo para el grupo que nos está pagando por desarrollarla. De esta manera, se va nutriendo este proyecto como un bien común para todes les habitantes de Kéfir.

  • Acceso por panel web desde navegador
  • Crear, editar y eliminar entradas a través de un editor markdown (formato de texto plano) que tiene un previsualizador html
  • Asignar categorías y etiquetas a las entradas: aparecen como paramétros del formulario de edición de entrada. Se pueden autocompletar los valores.
  • Exportar entradas, páginas de categorías y etiquetas y el sitio completo en PDF, texto plano y epub
  • Optimización de buscadores (SEO)
  • Buscador integrado
  • Relacionar entradas por similitud semántica, categoría/etiqueta afines
  • Subir y eliminar archivos: imágenes (.jpg, .png, .gif), videos (.mp4, .ogg, .webm), audios (.mp3, .ogg) y pdfs
  • Agregar archivos a entradas
  • Gestionar el orden de las entradas en las páginas de categorías
  • Integración con Matomo, software libre de estadísticas web que se puede configurar para respetar la privacidad de les navegantes. Kéfir mantiene su propia instalación de Matomo, por lo que esta información no se pasa a terceros.
  • Glosario para definir etiquetas y categorías. Cada vez que aparece una categoría o etiqueta en el sitio, sale hipervinculada a la definición de glosario creada
  • Formulario de contacto

Actualmente les habitantes no pueden directamente editar las plantillas y las hojas de estilo (css) directamente desde el navegador. Pueden desarrollar localmente, es decir, en sus propias computadoras el sitio a partir de plantillas Jekyll disponibles en internet [3] o hechas desde 0 con la ayuda de documentación [4]. Una vez que tengan una versión del sitio que quieran visualizar públicamente en internet, pueden pasarnos los archivos y lo subimos a lxs servidorxs. Algún día nos gustaría desarrollar Sutty para que esto se pueda hacer directamente desde el panel de administración :)

[3] https://jekyllthemes.io/ [4] https://jekyllrb.com/docs/