Благодаря сайту 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 в эту директорию и откройте файл текстовым редактором. Приведенный ниже пример кода подробно описывает эту процедуру. Мы используем текстовый редактор nano для редактирования docker-compose.yml. Логично, однако, что подойдет и 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 устанавливает при выполнении рецепта: db, memcached, redis и seatable. Для каждого контейнера объявляется образ, который будет использоваться ("image"), и имя контейнера ("container_name"). Имя контейнера - это имя, которое в дальнейшем может быть использовано для управления контейнером через Docker Console.
Кроме того, каждый контейнер имеет несколько индивидуальных настроек, некоторые из которых требуют вашего внимания.
В контейнере db необходимо изменить пароль базы данных. Замените "YOUR_PASSWORD" на многозначный буквенно-цифровой пароль. Кроме того, в контейнере seatable-mysql можно настроить путь, по которому будет доступен каталог /opt/seatable/mysql-data/. По умолчанию это путь /var/lib/mysql. Это не обязательно.
Контейнер memcached и контейнер redis не требуют никаких настроек. Если вы уже используете memcached или redis, вы можете удалить эти два контейнера из файла Compose. Однако для того, чтобы SeaTable запустился, вам придется позже вручную внести изменения в конфигурационные файлы.
Наиболее масштабные настройки должны быть выполнены в подседельном контейнере: Прежде всего, там должен быть введен пароль MYSQL_ROOT_PASSWORD. В противном случае SeaTable не сможет взаимодействовать с базой данных. Поэтому введите в "DB_ROOT_PASSWD" пароль, указанный выше для контейнера db.
Затем необходимо решить, следует ли 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 . Сначала MariaDB, затем Memcached, затем redis и, наконец, сам SeaTable - в порядке, указанном в docker-compose.yml. После загрузки запускается контейнер базы данных seatable-mysql. За его действиями можно следить на экране (см. ниже). Когда контейнер seatable окончательно возьмет на себя управление и на экране появится сообщение "This is an idle script (infinite loop) to keep container running.", вы можете отменить процесс комбинацией клавиш CTRL + C.
Сработало ли это до сих пор? Тогда вы очень близки к созданию собственного экземпляра SeaTable! Если нет, ознакомьтесь с советами по устранению неполадок в конце этой статьи.
Запуск SeaTable
Снова выполните docker-compose.yml. В отличие от предыдущего шага, теперь docker-compose выполняется в фоновом режиме или "отсоединенно". После этого сервер SeaTable также можно запускать сидя в контейнере Docker . Наконец, осталось только создать пользователя 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 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, а затем снова выполнить команду.