Saltcorn — это расширяемая открытая система для создания баз данных без кодирования. Используйте её для создания веб- и мобильных приложений с гибкими представлениями, типами данных, макетами и действиями.
Этот репозиторий содержит основной код, включая код, необходимый для самостоятельного размещения экземпляра и для размещения многопользовательского экземпляра.
Saltcorn использует PostgreSQL, node.js, node-postgres, express, live-plugin-manager, craft.js, jQuery-Menu-Editor, Blockly, CodeMirror и другие замечательные бесплатные и открытые проекты.
Этот сервис бесплатный, но нет гарантий относительно безопасности или доступности вашего приложения или информации, которую вы храните. Этот сервис следует использовать только для изучения возможностей Saltcorn.#### Десктоп
Чтобы попробовать Saltcorn на вашем десктопе, убедитесь, что у вас установлен Node.js 18+ и npm. Затем выполните эти команды в командной строке:
npm config set prefix ~/.local
npm install -g @saltcorn/cli
export SQLITE_FILEPATH=~/saltcorn.sqlite
~/.local/bin/saltcorn reset-schema -f
~/.local/bin/saltcorn serve
Теперь откройте http://localhost:3000/ в вашем браузере. Когда вы захотите запустить это снова, вам нужно будет выполнить команду export
и команду saltcorn serve
. Или просто выполните SQLITE_FILEPATH=~/saltcorn.sqlite ~/.local/bin/saltcorn serve
.
Чтобы установить Saltcorn на свежую виртуальную машину, просто установите Node.js и выполните команду npx saltcorn-install -y
; см. Быстрая установка сервера на Linux. Чтобы попробовать Saltcorn с помощью Docker, см. Быстрый старт с Docker.
Для самостоятельного размещения достаточно 2 ГБ виртуального частного сервера для запуска Saltcorn, если вы не ожидаете высоких объемов трафика. Инструкции по установке приведены ниже. Saltcorn также может работать на виртуальной машине с 1 ГБ памяти, но могут возникнуть проблемы с обновлением.
DigitalOcean и Linode предлагают одноклик-установку для Saltcorn.Если вы размещаете на DigitalOcean, который предлагает виртуальную машину с 2 ГБ памяти за $12 в месяц, пожалуйста, рассмотрите использование нашего рекомендательного кода, который даст вам кредит в размере 100 $ в течение 60 дней.## Быстрый старт с Docker
Вы можете запустить локальный экземпляр для быстрого тестирования, выполнив следующую команду:
cd ./deploy/examples/test && docker-compose up -d
и затем перейдите по адресу http://localhost:3000 в вашем веб-браузере.
ЗАМЕЧАНИЕ: Зависимости для сборки мобильных приложений довольно большие, они не устанавливаются в стандартном образе Docker (saltcorn/saltcorn). Чтобы использовать образ, который включает мобильные зависимости, либо используйте 'saltcorn/saltcorn-with-mobile' напрямую, либо замените 'saltcorn/saltcorn' на 'saltcorn/saltcorn-with-mobile' в файле docker-compose.
Это было тестировано на Debian 11 и 12, Ubuntu 18.04, 20.04, 22.04, 24.04, OpenSuSE, AlmaLinux и Fedora. Все, что вам нужно, это выполнить эти три строки в командной строке, как root или как пользователь с правом sudo:
wget -qO - https://deb.nodesource.com/setup_22.x | sudo bash -
sudo apt-get install -qqy nodejs
npx saltcorn-install -y
Первые две строки установят Node.js 22 (вы также можете использовать 18, 20 или 24). Последняя строка вызовет скрипт установки Saltcorn, примет все значения по умолчанию и установит PostgreSQL и настроит Saltcorn как службу, слушающую порт 80.
Если вам нужен другой порт, другой базовый движок данных или чтобы не устанавливать как службу, вы можете опустить финальный -y
, чтобы получить интерактивную установку.
wget -qO - https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs libpq-dev build-essential python-is-python3
```## Установка из NPM пакетов
Инструкции были протестированы на Ubuntu 20.04 на виртуальной машине с 1 ГБ оперативной памяти.
TL;DR: `npm install -g @saltcorn/cli && saltcorn setup`
### Установка Node.js и npm
Для последней версии (v22) Node.js:
wget -qO - https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt-get install -y nodejs libpq-dev build-essential python-is-python3
Вы также можете установить любую версию Node.js от 18 до 24.
### Установка Saltcorn
`npm install -g @saltcorn/cli`
Если установка не удалась, вы можете указать npm игнорировать файловые разрешения во время компиляции:
`npm install -g @saltcorn/cli --unsafe-perm`
В некоторых случаях указанные выше команды не устанавливают библиотеку `sd-notify` (которая полезна для интеграции с systemd), несмотря на то, что она установлена. Вы можете исправить это, установив её позже:
`npm install -g sd-notify`
### Настройка (автоматическая)
Если вы являетесь `root`, создайте пользователя с правами sudo и переключитесь на этого пользователя:
adduser saltcorn adduser saltcorn sudo su saltcorn cd mkdir -p ~/.config/
затем выполните
`saltcorn setup` и следуйте инструкциям.
### Настройка (ручная)
ЗАМЕЧАНИЕ: эта инструкция несколько устарела; см. https://wiki.saltcorn.com/view/ShowPage?title=Install%20on%20Ubuntu, в частности последний раздел.
Пропустите этот раздел, если вы выполнили `saltcorn setup` или `npx saltcorn-install`
1. Установите PostgreSQL: `sudo apt install postgresql postgresql-client`
2. Или,
- Создайте JSON-файл `.saltcorn` в вашей директории конфигурации XDG (на Ubuntu это обычно \$HOME/.config) со следующими значениями: - `host`: адрес сервера PostgreSQL
- `port`: порт сервера PostgreSQL
- `database`: имя базы данных PostgreSQL
- `user`: имя пользователя PostgreSQL
- `password`: пароль пользователя PostgreSQL
- `sslmode`: режим SSL PostgreSQL [SSL Mode](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE)
- `sslcert`: сертификат SSL PostgreSQL [SSL Certificate](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLCERT)
- `sslkey`: ключ SSL PostgreSQL [SSL Key](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLKEY)
- `sslrootcert`: корневой сертификат SSL PostgreSQL [SSL Root Certificate](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLROOTCERT)
- `session_secret`: секретная сессия Saltcorn
- `multi_tenant`: запуск в многопользовательском режиме (true/false)
Например:
```json
{
"host":"localhost",
"port":5432,
"database":"saltcorn",
"user":"tomn",
"password":"dgg2342vfB",
"session_secret":"hrh64b45b3",
"multi_tenant":true
}
Или,
SALTCORN_SESSION_SECRET
, SALTCORN_MULTI_TENANT
(по умолчанию false
), и либо DATABASE_URL
или PGHOST
, PGPORT
, PGUSER
, PGDATABASE
, PGPASSWORD
. Вы также можете установить PGSSLMODE
, PGSSLCERT
, PGSSLKEY
, PGSSLROOTCERT
(см. документацию Postgres)saltcorn serve
Установка Saltcorn как службы означает, что он будет работать в фоновом режиме и автоматически перезапускаться при перезагрузке системы.
Создайте файл /lib/systemd/system/saltcorn.service
с таким содержимым:```
[Unit]
Description=saltcorn
Documentation=https://saltcorn.com
After=network.target
[Service] Type=notify WatchdogSec=30 User=saltcorn WorkingDirectory=/home/saltcorn ExecStart=/home/saltcorn/.local/bin/saltcorn serve -p 80 Restart=always Environment="NODE_ENV=production"
[Install] WantedBy=multi-user.target
запустите:
sudo systemctl daemon-reload sudo systemctl start saltcorn sudo systemctl enable saltcorn
Это может быть в другом месте в системах, отличных от Debian, например, в `/etc/systemd/system`.
Чтобы разрешить пользователю `saltcorn` открывать порт 80, вам нужно разрешить это node.js, запустив:
sudo setcap 'cap_net_bind_service=+ep' which node
#### SSL-сертификат
Используйте [Let's Encrypt](https://letsencrypt.org/) или [Cloudflare](https://www.cloudflare.com/ssl/) для получения бесплатного SSL-сертификата (для https).
## Установка из исходного кода (для разработчиков Saltcorn)
### Установка node и npm на Ubuntu
`sudo apt install nodejs npm libpq-dev`
позволяет получить рабочую версию. Для более новой версии (v22) Node.js:
wget -qO - https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt-get install -y nodejs libpq-dev
### Подготовка Node
предполагая, что вы склонировали этот репозиторий в \$HOME/saltcorn (в противном случае скорректируйте ПУТЬ)
npm config set prefix ~/.local echo 'export PATH=$HOME/saltcorn/packages/saltcorn-cli/bin:$HOME/.local/bin:$PATH' >> ~/.bashrc source ~/.bashrc
### Установка пакетов
запустите
npm install --legacy-peer-deps npm run tsc
для установки всего. Если установка прошла успешно, вы должны теперь иметь возможность запустить `saltcorn` в вашей оболочке.
## Пакеты
- [@saltcorn-cli](https://github.com/saltcorn/saltcorn/tree/master/packages/saltcorn-cli): команда командной строки
```## Советы по развертыванию
- Если ваш сервер Saltcorn работает за прокси-сервером обратного проксирования, таким как Nginx, обратитесь к [документации Socket.io для прокси-серверов обратного проксирования](https://socket.io/docs/v3/reverse-proxy/#nginx). Эта конфигурация необходима для Socket.io, который обеспечивает функциональность чата, просмотра логов и потокового API (например, для [плагина recorder](https://www.npmjs.com/package/@saltcorn/recorder)).
- Если вы работаете за Apache >= 2.4.47, вам потребуется всего две строки в разделе виртуального хоста:
```
# Для идентификации арендатора
ProxyPreserveHost On
ProxyPass / http://localhost:3000/ upgrade=websocket
```
## Советы по разработке
### Сервер разработки
Перейдите в вашу копию репозитория Saltcorn, затем запустите это в оболочке:
`npm run tsc; while [ 1 ]; do SALTCORN_NWORKERS=1 saltcorn serve --dev;done`
Это перезапустит сервер и перестроит с помощью tsc каждый раз, когда вы сохраните файл в репозитории Saltcorn или в локальном плагине.
### Работа с локальными плагинами
Локальный плагин означает, что код находится в вашем домашнем каталоге, и когда вы редактируете его, плагин обновляется в экземпляре после перезапуска (что произойдет автоматически при сохранении, когда вы запускаете сервер разработки).
Если у вас есть плагин, выложенный в каталоге, вы можете установить его в запущенном экземпляре через командную строку двумя разными способами:* Если плагин еще не установлен в экземпляре, запустите `saltcorn install-plugin -d путь_к_плагину` (если плагин выложен в путь_к_плагину).
* Если плагин уже установлен в экземпляре, вы можете преобразовать его в локальный плагин с помощью команды CLI `dev:localize-plugin`: `saltcorn dev:localize-plugin имя_плагина {путь_к_плагину}`.
* Вы также можете деактивировать локализацию плагина, увидеть помощь для `dev:localize-plugin`
### Запуск тестов
Запустите все тесты Jest с `saltcorn run-tests`
Запустите тесты Jest для конкретного пакета: `saltcorn run-tests saltcorn-data` для запуска тестов для пакета данных - третий аргумент должен соответствовать имени директории внутри `packages/`. Отчет о покрытии тестами: `saltcorn run-tests saltcorn-data -c`
Запуск конкретного теста по имени: `saltcorn run-tests saltcorn-data -t 'File class'`
Для запуска Python-базированных тестов безопасности увидьте файл github/pytest.yml.
### Prettier
Мы используем prettier:
`npm install -g prettier`
для форматирования кода:
`git ls-files | grep -v builder_bundle | xargs prettier --write`
Запустите это перед каждым запросом на слияние.
### React сборщик
cd packages/saltcorn-builder npm install npm install styled-components@4.4.1 npm run build
### Пересборка React при сохранении
в `saltcorn/packages/saltcorn-builder/` выполните:
`git ls-files | entr npm run builddev`
но это не является производственной сборкой, поэтому выполните
`npm run build`
по завершении.
Если вы получаете эту ошибку: `Error: error:0308010C:digital envelope routines::unsupported`,
выполните это и попробуйте снова: `export NODE_OPTIONS=--openssl-legacy-provider`.### Сборка TSDocs
npm install --legacy-peer-deps npm run tsc
затем
`npm run docs`
TSDocs будут доступны в `docs/`.
Для развертывания этих файлов на https://saltcorn.github.io/tsdocs/:
cp -R docs/* /path/to/tsdocs cd /path/to/tsdocs git add . git commit -am 'номер версии или другое сообщение...'
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )