Установка SeaTable Enterprise Edition под Ubuntu Server 20.04 LTS

Благодаря Docker установка SeaTable Enterprise Edition очень проста и может быть выполнена всего за несколько мгновений. Ubuntu Server как широко распространенная и хорошо документированная операционная система Linux является отличной основой для SeaTable. Если у вас уже есть сервер Ubuntu, вы можете узнать, как установить SeaTable на него за 10 минут здесь.

Требования

Для того чтобы настройка SeaTable прошла так же гладко, как описано здесь, необходимо выполнить несколько предварительных условий. К ним относятся:

  • VServer / Dedicated Server с 4 ядрами, 8GB RAM и около 10GB памяти для операционной системы Ubuntu, SeaTable и других требований.
  • Корневой доступ к серверу (через SSH или консоль)
  • Поддомен, который ссылается на IP-адрес сервера через A-запись (IPv4) или AAAA-запись (IPv6).
  • Сервер, доступный через порт 80 и 443 через поддомен
  • Ни одна другая служба не прослушивает порты 80 и 443

Конечно, вам следует запланировать больше, чем вышеупомянутое пространство жесткого диска, чтобы иметь возможность хранить на носителе данных свои собственные данные в дополнение к операционной системе и SeaTable. В частности, если вы собираетесь организовывать файлы в SeaTable, вам следует очень щедро запланировать дополнительное место для хранения.

Это не обязательное условие, но полезно, если до сервера можно добраться через статический адрес IPv4. Это обеспечивает максимальную доступность сервера в пути. В Европе все еще существуют мобильные сети, которые пока не поддерживают IPv6. Ваш сервер SeaTable не может быть доступен через такую сеть, если у него нет адреса IPv4.

Если на вашем сервере уже заняты порты 80 и/или 443, вы найдете все, что нужно знать для установки в вашей ситуации, в статье Установка SeaTable Enterprise на собственном сервере за веб-сервером.

Вы готовы? Поехали! Мы предполагаем, что на вашем сервере открыт root shell.

Подготовка

Сначала мы обновляем систему, чтобы все пакеты были в актуальном состоянии:

apt update
apt upgrade -y

Конечно, эти и все последующие команды должны выполняться с правами root, если не указано иное.

SeaTable использует docker-compose, и вам необходимо установить этот пакет. Поскольку он доступен через источники пакетов Ubuntu, достаточно выполнить эту команду:

apt install docker-compose -y

Пакеты docker.io и containerd, а также многочисленные библиотеки Python3 являются частью зависимостей docker-compose. Поэтому они устанавливаются одновременно. Система готова к SeaTable!

Скачать SeaTable Enterprise

Docker-образ SeaTable Enterprise Edition находится в репозитории на Docker Hub. Используйте следующую команду, чтобы начать загрузку образа SeaTable:

docker pull seatable/seatable-ee:latest

Перейдем к единственной, несколько более сложной теме в настройке SeaTable. Однако с расширенными объяснениями этот шаг также становится легко выполнимым.

Индивидуализация docker-compose.yml

Чтобы представить этот раздел, немного базовых знаний об установке SeaTable: SeaTable предоставляет свои услуги через несколько контейнеров Docker. Помимо самого контейнера SeaTable, в котором работает сервер SeaTable, есть еще три других контейнера. В частности, это база данных MariaDB, кэширующий сервис Memcached и сервер словарей redis.

Файл docker-compose.yml, который будет рассмотрен в ближайшее время, является рецептом, который Docker использует для установки и настройки SeaTable и других контейнеров. Он содержит центральные настройки безопасности (например, пароль базы данных) и позволяет адаптировать установку к вашим собственным желаниям и потребностям (например, конфигурация SSL/TLS).

Сначала создайте каталог seatable в /opt. С момента установки containerd каталог /opt уже содержит каталог с таким же именем. Затем загрузите docker-compose.yml в эту директорию и откройте файл текстовым редактором. Приведенный ниже пример кода подробно описывает эту процедуру. Для редактирования docker-compose.yml мы используем текстовый редактор nano. Логично, однако, что подойдет и vim или любой другой текстовый редактор.

mkdir /opt/seatable
cd /opt/seatable
wget -O "docker-compose.yml" "https://manual.seatable.io/docker/Enterprise-Edition/docker-compose.yml"
nano docker-compose.yml

Вот как выглядит YAML-файл после загрузки:
файл docker-compose.yml

На первый взгляд, можно увидеть четыре контейнера, которые Docker устанавливает при выполнении рецепта: db, memcached, redis и seatable. Для каждого контейнера объявляется образ, который будет использоваться ("image"), и имя контейнера ("container_name"). Имя контейнера - это имя, которое впоследствии можно использовать для управления контейнером через Docker Console.

Кроме того, каждый контейнер имеет несколько индивидуальных настроек, некоторые из которых требуют вашего внимания.

В контейнере db необходимо изменить пароль базы данных. Замените "YOUR_PASSWORD" на многозначный буквенно-цифровой пароль. Кроме того, вы можете настроить путь, по которому каталог /opt/seatable/mysql-data/ будет доступен в контейнере seatable-mysql. По умолчанию это путь /var/lib/mysql. В этом нет необходимости.

Контейнер memcached и контейнер redis не требуют никаких настроек. Если вы уже используете memcached или redis, вы можете удалить эти два контейнера из файла Compose. Однако для того, чтобы SeaTable запустился, вам придется позже вручную внести изменения в конфигурационные файлы.

Самые значительные регулировки должны быть выполнены в контейнере с сиденьем: Прежде всего, там должен быть введен пароль MYSQL_ROOT_PASSWORD. В противном случае SeaTable не сможет взаимодействовать с базой данных. Поэтому введите пароль, указанный выше для контейнера db в "DB_ROOT_PASSWD".

Затем необходимо решить, должен ли Let's Encrypt подать заявку на SSL-сертификат для вас и включить его в конфигурацию веб-сервера. Если вы хотите сделать это - что, вероятно, является рекомендацией для большинства пользователей - то измените значение ключа SEATABLE_SERVER_LETSENCRYPT на "True" и введите поддомен, который вы используете для SEATABLE_SERVER_HOSTNAME. Certbot от Let's Encrypt запросит SSL-сертификат как часть установки и учтет его в конфигурации веб-сервера.

Вы можете оставить для часового пояса значение Etc/UTC для Центральной Европы. Если вы находитесь за пределами Центральной Европы, используйте обычные коды часовых поясов.

Инициализация базы данных

После того как файл YAML был адаптирован к вашим потребностям, следующим шагом будет инициализация базы данных. Для этого введите следующие команды:

cd /opt/seatable
docker-compose up

Команда docker-compose выполняет рецепт, содержащийся в файле YAML: Несколько образов Docker загружаются из Docker Hub и извлекаются. Сначала MariaDB, затем Memcached, затем redis и, наконец, сам SeaTable - в порядке, прописанном в docker-compose.yml. После загрузки запускается контейнер базы данных seatable-mysql. Вы можете следить за действиями на экране (см. ниже). Когда подседельный контейнер наконец возьмет на себя управление и на экране появится сообщение "This is a idle script (infinite loop) to keep container running.", вы можете отменить процесс с помощью комбинации клавиш CTRL + C.

Сработало ли это до сих пор? Тогда вы очень близки к созданию собственного экземпляра SeaTable! Если нет, ознакомьтесь с советами по устранению неполадок в конце этой статьи.

Запуск SeaTable

Снова выполните docker-compose.yml. В отличие от предыдущего шага, docker-compose теперь выполняется в фоновом режиме или "detached". После этого сервер SeaTable также можно запустить в Docker-контейнере seatable. Наконец, вам нужно создать только пользователя admin. После этого ваш сервер SeaTable готов к выполнению своих задач!

docker-compose up -d
docker exec -d seatable /shared/seatable/scripts/seatable.sh start
docker exec -it seatable /shared/seatable/scripts/seatable.sh superuser

После последней команды вам будет предложено ввести адрес электронной почты и пароль. Браво, вы создали первого пользователя в вашей локальной системе SeaTable.

Ввод в эксплуатацию

Теперь вызовите URL, который вы указали в docker-compose.yml под SEATABLE_SERVER_HOSTNAME. Вы попадете на страницу входа в систему вашего сервера SeaTable. Установка прошла успешно!

Если вы проголосовали за использование Let's Encrypt в docker-compose.yml, то ваш запрос должен быть перенаправлен непосредственно на https и, таким образом, связь с вашим сервером будет зашифрована. Если нет, то теперь вы должны вставить свой собственный SSL-сертификат. Скопируйте сертификат в папку /opt/seatable/ssl/ и настройте конфигурацию веб-сервера nginx. Также необходимо изменить адреса с http на https в конфигурационных файлах ccnet.conf, dtable_web_seetings.py и dtable_server_config.json. После этого необходимо перезапустить nginx, SeaTable и Memcached. Это можно сделать с помощью следующих трех команд:

docker exec -it seatable /shared/seatable/scripts/seatable.sh restart
docker restart seatable-memcached
docker exec -it seatable /usr/sbin/nginx -s reload

Подробнее об интеграции собственного SSL-сертификата вы можете узнать в руководстве по SeaTable.

Меню Пользователи в Системном администрировании SeaTable

Активация лицензии SeaTable

Вы можете использовать SeaTable Enterprise Edition со всеми функциями без платной лицензии с тремя пользователями - как частными, так и коммерческими, а также на постоянной основе. По этой причине для начала работы вам не нужна лицензия.

Однако если вы захотите создать в SeaTable более трех пользователей, SeaTable откажется это делать. Лицензию можно получить в нашем отделе продаж. Более подробную информацию о ценах на SeaTable Enterprise вы можете найти на нашей странице цен.

Чтобы активировать лицензию, сохраните файл лицензии, файл TXT, в папке /opt/seatable/seatable-data/seatable и перезапустите SeaTable:

docker exec -d seatable /shared/seatable/scripts/seatable.sh restart

После этого дополнительные пользователи сразу же становятся доступными и отображаются на панели управления.

Устранение неполадок

Если во время установки что-то пошло не так, просто удалите каталог /opt/seatable и начните заново. Но будьте осторожны: данные, хранящиеся в SeaTable, будут потеряны.

Если вы забыли пароль администратора, выполните команду

docker exec -it seatable /shared/seatable/scripts/seatable.sh superuser

снова. Команда создает еще одного пользователя с правами администратора. Если команда выдает ошибку, значит, ваша лицензия SeaTable не позволяет создавать дополнительных пользователей. (Это также относится к тестовому режиму с максимум тремя пользователями.) В этом случае вы должны установить пользователя неактивным в базе данных MySQL, а затем снова выполнить команду.

Ральф Диллик-Бренцингер
Ральф Диллик-Бренцингер является основателем и управляющим директором компании SeaTable. Он - стратегический вдохновитель SeaTable и мастер цифр. Он любит печенье своей невесты и хорошую прогулку на велосипеде.

Получайте регулярные советы по продуктивности на SeaTable

Скрытый
Это поле предназначено для проверки и не должно быть изменено.