Let's Chat
Отчет
Ставим самую последнюю mongodb, pkg делает это корректно
pkg install mongodb
Прописываем в /etc/rc.conf запуск mongo
sysrc mongod_enable=YES
Ставим последний Python
pkg install python
Поставленная через pkg nodejs-012 (последняя доступная) не захотела корректно ставить и запускать lets-chat. Где-то я читал, что нужна node версией 010. В портах была.
portsnap fetch extract
cd /usr/ports/www/node010
make install clean
Как выяснилось, можно было ставить проще:
pkg install node010
Также требуется npm. Чтобы она работала с node010, ее надо ставить из портов и отметить, что использовать node010
cd /usr/ports/www/npm
make config
make install clean
но можно делать и без портов (и работает не хуже, а в чем-то даже и корректнее):
Ставим:
curl https://www.npmjs.com/install.sh | sh
Не пошло -
pkg install npm
Запускаем mongod
service mongod start
Скачиваем lets-chat (я его решил ставить сразу в директорию /lets-chat):
cd /
git clone https://github.com/sdelements/lets-chat.git
cd /lets-chat
npm install
Можно запускать
npm start &
Теперь можно конфигурировать на использование SSO или LDAP
Инструкция тут: https://github.com/sdelements/lets-chat/wiki
Хочется сделать вход по серту. Надо понять, как входят в веб-морду почты по серту и как происходит аутентификация в ЛДАП в этом случае.
Направление понятно, похоже надо лепить LDAP
Сброс
Чтобы сбросить все содержимое чата, роняем базу монго.
mongo drop
Входим в клиент, который назвается mongo
Смотрим, какие базы есть командой show dbs
Входим в требуемую базу командой use our_database_name
Проверяемся, где мы db. Оно должно сказать, что мы в базе our_database_name
выполняем команду db.dropDatabase()
когда мы посмотрим на имеющиеся базы show dbs, оно покажет нашу базу пустой (размер 0)
Попутно сбрасываем в ноль базу local, ибо там ничего путного нет.
Теперь можно создавать пользователей с нуля.
mongo
show dbs
use letschat
db.dropDatabase()
use local
db.dropDatabase()
show dbs
exit
HTTPS
Слепил сетртификаты, как указано Аутентификация пользователя сайта по сертификату
Поменял settings.yml
- settings.yml
env: production # development / production
http:
enable: false
host: 'localhost'
port: 5000
https:
enable: true
port: 443
key: /etc/ssl/server.key
cert: /etc/ssl/server.crt
files:
enable: true
provider: local
maxFileSize: 100000000
restrictTypes: true
allowedTypes:
- 'image/jpeg'
- 'image/png'
- 'image/gif'
- 'text/plain'
- 'text/rtf'
- 'application/msword'
- 'application/pdf'
- 'application/zip'
- 'video/quicktime'
- 'video/mp4'
local:
dir: uploads
xmpp:
enable: false
port: 5222
domain: example.com
database:
uri: mongodb://localhost/letschat
secrets:
cookie: secretsauce
auth:
providers: [local]
local:
enableRegistration: true
salt: secretsauce
Рестартанул npm
Импортнул ca.cert в браузер
Добавил адрес компа в локальную зону.
Зашел по Https. Браузер проглотил https как родное. Пароль вводил руками.
Теоретически, можно прикрутить Jabber (xmpp).
Бросил пикчу в строку ввода текста чата. Оно выжадо интерфейс добавления файла. Картинки (.png, .jpg, .jpeg) добавляютя.
Подрихтовал settings.yml - пошли файлы других типов. Для базы файлмейкера надо разрешать тип application/octet-stream.
Если все юзеры будут доверенными, то можно отключить проверку типов файлов.