¡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.
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.

