Herramientas de usuario

Herramientas del sitio


informatica:software:algernon

¡Esta es una revisión vieja del documento!


Algernon

Servidor web auto-contenido escrito en Go, diseñado para ser ligero, versátil y fácil de desplegar.

Características

Algernon es un servidor web que incluye soporte integrado para:

  • Lenguajes y tecnologías: Lua, Teal (Lua tipado), Markdown, JSX, Amber, Pongo2, Sass (SCSS), GCSS.
  • Bases de datos: BoltDB (embebido), Redis, PostgreSQL, MySQL, SQLite, MSSQL.
  • Protocolos: HTTP/2, QUIC, HTTP/S.
  • Otras características:
    • Plugins
    • Gestión de usuarios y permisos
    • Auto-refresh para desarrollo (Linux/macOS)
    • Integración con Ollama para modelos de lenguaje (LLMs)

Todo esto está empaquetado en un único ejecutable, lo que facilita su uso sin necesidad de instalar múltiples dependencias.

Instalación

Realmente no necesita instalación porque se trata de un único fichero ejecutable.

Docker

Si creamos un directorio llamado localhost creamos un fichero index.md (con texto con sintaxis Markdown) y luego ejecutamos lo siguiente:

docker run -it -p4000:4000 -v .:/srv/algernon xyproto/algernon

Cuando accedamos a http://localhost:4000 veremos el contenido de index.md interpretado como HTML.

También podemos crear un Docker Compose:

---
services:
  algernon:
    image: xyproto/algernon:latest
    container_name: algernon
    volumes:
      - ./localhost:/srv/algernon
    entrypoint: ["/bin/algernon", "--dev", "--autorefresh", "--addr", ":8000", "--dir", "/srv/algernon", "--debug", "--httponly", "--server"]
    restart: unless-stopped

Tras ejecutarlo, podremos ir a http://localhost:8000 y veremos el contenido del directorio localhost.

Uso

Ejemplo más sencillo sirviendo el directorio en el que se encuentra el ejecutable de Algernon:

algernon -x .

Ejecutará el servidor web en el puerto 3000 (por defecto).

Si queremos habilitar la recarga automática cuando hay cambios:

algernon -a .
informatica/software/algernon.1759915512.txt.gz · Última modificación: por tempwin