Як розгорнути для своєї команди архів slack повідомлень c синхронізацією і пошуком

Я сам прихильник ідеї що якщо подобається продукт то потрібно купувати його і своїми грошима підтримати програмістів.
Але іноді буває що компанія на цей софт грошей витрачати не може або не хоче. Особливо складно платити від 100$ в місяць коли є безкоштовні аналоги або якщо чати використовуються в некомерційних цілях.

Я опишу як можна розгорнути сервіс для зберігання історії всіх публічних повідомлень вашої команди в slack і позбутися від основного, неприємного, іноді выбешивающего обмеження — up to 10k of your team's most recent messages (можна дивитися і шукати лише серед 10 000 останніх повідомлень)

Серед готових рішень є:


Докладніше розповім про останнє рішення, воно мені найбільше сподобалося.

Як можна легко помітити основна ідея належить Lê Việt Hồng ( github.com/suoinguon я взяв його рішення за основу і почав додавати туди різні фічі.
Так як це звичайне Django додаток нові фічі туди додавати виявилося дуже просто.

Порівняно з оригіналом тепер з'явилися:
  • Повнотекстовий пошук по історії django-watson
  • Індексація тільки публічних груп і знижений рівень токена тільки з необхідними правами
  • Форматування повідомлень як в slack, включаючи смайли django-emoji
  • Оновлення всіх бібліотек і підтримка django 1.10
  • Імпорт даних з выгружженого архіву
  • Виправлено недоліки в логіці отримання данныз по API
  • Додані нові сторінки, повідомлення користувача, статистика за допомогою django orm
  • Додана навігація для того щоб можна було надіслати посилання на конкретне повідомлення c урахуванням пагинации django-pagination


Серед подальших планів хочеться відзначити:
  • Підтримати роботи з декількома командами
  • Поліпшити роботу з відображенням файлів
  • Додати можливість складного пошуку
  • Додати більше веселою або корисної статистики


Створення сервера
А тепер до справи, давайте розгорнемо собі цей проект.
Насамперед нам знадобиться віртуальний сервер. Для невеликих команд буде достатньо мінімальної конфігурації.

Наприклад, що можна запустити швидко і дешево:
vscale.io


www.digitalocean.com


aws.amazon.com/ru/ec2

(якщо реєструєтеся перший
раз то перший рік буде безкоштовно)

0.0065$ в годину
512mb
1 vcpu
Ebs disk


Разом можна отримати окремий сервер за 200 рублів на місяць або взагалі безкоштовно на перший час.
Я перевіряв скрипт на Centos7 тому при створенні вибираємо її, вивчаймо її ip-адресу або доменне ім'я і запам'ятовуємо їх, вони знадобиться на наступному кроці.

Реєструємо slack додаток

Далі нам потрібно зареєструвати slack додаток для доступу до API

  1. Заходимо на сторінку api.slack.com/applications
  2. Створюємо новий додаток


  3. Додаємо адресу тільки що створеного сервера в oauth redirects


  4. Зберігаємо собі Client ID Client Secret




Запускаємо додаток
  1. Підключаємося по ssh на сервер
  2. Запускаємо команду
  3. curl -O https://raw.githubusercontent.com/menemy/slack-backup/master/provisioning_on_centos7.sh
    
  4. Виправляємо три налаштування на початку скрипта
  5. SLACK_CLIENT_ID=[your_client_id]
  6. SLACK_CLIENT_SECRET=[your_client_secret]
  7. DOMAIN=[your_domain]
  8. Виправляємо права і запускаємо
  9. chmod 777 provisioning_on_amazonlinux.sh
  10. sudo ./provisioning_on_amazonlinux.sh
  11. Все, після цього додаток запущено і доступно за вашою адресою, історія синхронізується раз в п'ять хвилин
  12. Потрібно зайти на сайт і надати доступ до свого облікового запису slack


Опціонально, відновлюємо історію повідомлень
Якщо ви дізналися про це рішення пізно — не біда, slack насправді продовжує зберігати вашу історію і дозволяє вивантажити всю історію у вигляді zip-архіву.
Але це тільки для адміністраторів групи.

  1. Зайдіть на сторінку my.slack.com/services/export
  2. Створіть вивантаження
  3. Дочекайтеся закінчення
  4. Поновіть сторінку і скачайть zip файл
  5. Завантажте файл на сервер і вивантажите в папку /usr/local/src/slack-backup/full_history/
  6. Запустіть команду python /usr/local/src/slack-backup/manage.py restore_backup
  7. Дочекайтеся закінчення, це може зайняти час




Буду радий, якщо мої старання будуть корисні. Якщо є питання по роботі або потрібна допомога з установкою буду радий допомогти в коментарях.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.