¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Saltcorn
Saltcorn es una plataforma open-source y low-code diseñada para crear aplicaciones web personalizadas (como CRUDs, dashboards, formularios complejos o sistemas internos) sin necesidad de programar
Las notas aquí incluidas se centran en la versión 1.0.0 de Saltcorn.
Características
- Interfaz visual drag-and-drop:
- Arrastra y suelta elementos como formularios, tablas, gráficos o botones para diseñar tu app.
- No requiere conocimientos de programación, aunque permite añadir código JavaScript o SQL para personalización avanzada.
- Base de datos integrada:
- Usa PostgreSQL o SQLite para almacenar datos.
- Crea esquemas de datos personalizados (ej.: clientes, pedidos, facturas) con relaciones entre tablas.
- Templates y plugins:
- Plantillas preconstruidas para casos comunes (CRM, encuestas, blogs).
- Plugins para añadir funcionalidades como autenticación, mapas o notificaciones.
- Multiplataforma:
- Las apps creadas son responsive (funcionan en móviles, tablets y desktop).
- Soporta temas personalizables (CSS) para adaptar el diseño a tu marca.
- Self-hosting y privacidad:
- Descarga el código y autohospeda tus aplicaciones en tu propio servidor (ideal para empresas con políticas de datos estrictas).
- Licencia MIT (gratuita y open-source).
Instalación
Docker
Versión con SQLite
Necesitaremos un fichero .env con el siguiente contenido que podremos adaptar a nuestro gusto:
PGDATABASE=saltcorn PGUSER=postgres PGPASSWORD=postgres DOMAIN=localhost SALTCORN_SECRET=supersecretsaltcornsalt
Creamos la base base de datos ejecutando el siguiente comando:
docker run -it -v /ruta/saltcorn:/db -e SQLITE_FILEPATH=/db/db.sqlite -e SALTCORN_SESSION_SECRET=s3cr3t saltcorn/saltcorn reset-schema
El comando anterior creará el fichero db.sqlite en el directorio /ruta/saltcorn.
Fichero Docker Compose:
--- services: saltcorn: image: saltcorn/saltcorn container_name: saltcorn command: "serve" restart: unless-stopped ports: - "3000:3000" environment: - SALTCORN_SESSION_SECRET=${SALTCORN_SECRET} - SQLITE_FILEPATH=/db/db.sqlite volumes: - ./db:/db
PostgreSQL
Necesitaremos el fichero docker-entrypoint-initdb.sql (instrucciones para crear la base de datos) que podemos descargar desde aquí.
También un fichero .env con el siguiente contenido que podremos adaptar a nuestro gusto:
PGDATABASE=saltcorn PGUSER=postgres PGPASSWORD=postgres DOMAIN=localhost SALTCORN_SECRET=supersecretsaltcornsalt
Fichero Docker Compose:
--- services: saltcorn-app: image: saltcorn/saltcorn container_name: saltcorn depends_on: - saltcorn-db command: "serve" restart: always networks: - saltcorn ports: #not needed if using traefik - "3000:3000" environment: - SALTCORN_SESSION_SECRET=${SALTCORN_SECRET} - PGHOST=saltcorn-db - PGUSER=${PGUSER} - PGDATABASE=${PGDATABASE} - PGPASSWORD=${PGPASSWORD} saltcorn-db: image: postgres:13-alpine container_name: saltcorn-db restart: always networks: - saltcorn volumes: - ./data:/var/lib/postgresql/data #save the db to a mount point if you wish, otherwise will use docker container management - ./docker-entrypoint-initdb.sql:/docker-entrypoint-initdb.d/init.sql # This is the init script for the database environment: - POSTGRES_USER=${PGUSER} # initdb.sql script will only work for user "postgres" - POSTGRES_PASSWORD=${PGPASSWORD} - POSTGRES_DB=${PGDATABASE} networks: saltcorn: name: saltcorn-net
Uso
Crear una página principal pública
Para crear páginas: Pages → Create page. En la opción “Minimum role” elegimos public. Cuando terminemos la configuración y se haya creado la página, volvemos al menú Pages y vamos a la sección Root pages. Ahí nos desplazamos al rol public y en el desplegable marcamos la página que acabamos de crear.
A partir de entonces, cuando cualquier visitante (cualquier persona no registrada) llegue a nuestra instalación de Saltcorn, verá la página que creamos.
Tablas
Útiles para generar contenido dinámico. En Saltcorn, una aplicación está asociada con una base de datos. Una base de datos es una colección de tablas. Las tablas se usan para estructurar los datos en filas y columnas / campos.
Para crear tablas: Tablas → Create table.
Saltborn creará por nosotros el campo ID en cada tabla. Este campo se usará como clave primaria.
Cuando creamos un campo nuevo, en Label podemos usar mayúsculas y espacios. Internamente, Saltburn sustituirá los espacios por guiones bajos (_) y pasará todo a minúsculas.
Tipo de dato para los campos:
- String: sucesión de caracteres (texto).
- Integer: números enteros, positivos o negativos.
- Bool: valores booleanos,
true(cierto) ofalse(falso). - Date: fecha (con información de tiempo o no)
- Float: números decimales.
- Color: colores en formato RGB (Red Green Blue)
- File: referencia a un fichero del sistema de ficheros de Saltcorn.
- Key to <TABLA>: referencia a la clave foránea de cierta tabla. Se utiliza para enlazar datos de diferentes tablas y crear la estructura relacional de nuestra aplicación.
Después de crear las tablas, lo normal es crear vistas para mostrar los datos de las tablas.
Vistas
Después de crear las tablas, lo normal es crear vistas para mostrar los datos de las tablas. No nos interesa que los usuarios vean los datos de la tabla tal cual están guardados en la base de datos. Tampoco solemos querer que el usuario pueda editar las tablas directamente. Para todo esto son útiles las vistas.
Un vista pertenece a una tabla.
Cada vista sigue un patrón de vista:
- List: shows a tabular grid of multiple rows in a table. You can define its columns which can be data from this or related tables, action buttons or links to other views.
- Edit: a form that can be used to create a new row or edit an existing row in a table.
- Show: a single existing row in the table. The row must be specified either by linking or embedding from another view or page.
- Filter: not display any data from the table but can be used to set up user interface elements that determine which rows are shown in other views on the same page.
- Feed: configured by another view which shows a single row and will repeat this view for all available rows.
- ListShowList: Combine an optional list view on the left with displays on the right of a single selected row, with views of related rows from different tables underneath
- Room: Real-time space for chat
- Date Range Filter: Limit selected rows to those for which a date fields falls in a range selected by the user.
List, Edit y Show son los patrones más habituales.
Plugins / módulos
Para extender las funcionalidades base de Saltcorn podemos instalar plugins. Por ejemplo, para que en los campos tipo fecha se muestre un calendario para elegir el día, podemos instalar flatpickr-date.
Los plugins se instalan desde Settings → Modules → Modules.
Packs
Los packs ofrecen funcionalidades que podríamos conseguir mediante la creación de tablas, vistas, páginas… Nos permite construir por ejemplo un blog, una wiki, etc. Serían como aplicaciones completas. Proporcionan la estructura, no los datos.
Los packs se instalan desde Settings → Modules → Packs.
Usuarios
Settings → Users and security
Crear usuario
Como administrador, desde Settings → Users and security → Users podremos crear nuevos usuarios mediante el enlace Create user.
Deshabilitar registros
Si no queremos que cualquier visitante pueda crear una cuenta en nuestra instalación de Saltcorn, como administradores, debemos ir a Settings → Users and security → Login and Signup. Ahí desmarcaremos la casilla que pone Allow users to sign up for a new user account.
Desde ese momento, la única manera de crear nuevas cuentas será desde el panel de administración, mediante Settings → Users and security → Users.
Páginas
Añadir página al menú de navegación
Hay dos formas, una es ir al editor de menús (Settings → Site structure → Menu) y la otra es ir a Pages, localizar la página deseada y pulsar en el botón con los 3 puntos para luego elegir Add to menu.

