¡Esta es una revisión vieja del documento!
Tabla de Contenidos
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 .

