Установка трофейной серверной версии Atlassian Confluence

Предыстория

Последние пару лет я и мои коллеги по хобби использовали бесплатную облачную версию Atlassian Confluence. В принципе, нам вполне хватало её бесплатной функциональности для ведения документации по хобби-проектам (мы делаем масштабные модели машин).

Но в начале июле 2023 года нам пришли письма от компании Atlassian следующего содержания:

Вкратце, так как мы из России, то мы кровавые орки (да, мы такие), и поэтому нам нельзя пользоваться облачными продуктами Atlassian.

Ну что ж, раз нельзя пользоваться и лень включать VPN для регистрации нового облака Atlassian, который в любой момент могут отключить, то запустим трофейную версию Confluence на своём оборудовании в России. Благо, что нам великодушно разрешили скачать бэкап наших данных из облака Atlassian.

Установка Atlassian Confluence

Для удобства установки я выбрал docker версию Confluence, чтобы не устанавливать библиотеки и решать различные зависимости.

Так как пользуюсь Ubuntu Linux, то я воспользовался инструкцией из официальной документации docker:

Опционально можно установить Docker Desktop, хотя пока это просто свистелка-перделка, и не заменяет консоль Linux.

После успешной установки docker самое время приступить к установке Confluence Server из официального docker-образа.

Для работы Confluence нам также понадобится база данных. Я выбрал PostgreSQL, который также установил из официального docker-образа.

Для того чтобы docker-контейнеры Confluence и PostgreSQL видели друг друга, нам потребуется запустить их через docker compose(хотя есть извращенцы, которые пытаются связать разные docker-контейнеры по ip-адресам). Вот пример моего compose-файла:

version: '3.3'

services:
  confluence-server:
    depends_on:
      - postgres-server
    volumes:
      - '/home/fk/apps/confluence/data:/var/atlassian/application-data/confluence'
      - '/home/fk/apps/confluence/backup:/var/atlassian/application-data/confluence/restore/site'
    container_name: confluence
    environment:
      JVM_SUPPORT_RECOMMENDED_ARGS: -Datlassian.recovery.password=admin //вход в Confluence после восстановления из бэкапа
    ports:
      - '8090:8090'
      - '8091:8091'
    image: confluencer-patched
    restart: unless-stopped
    
  postgres-server:
    volumes:
      - '/home/fk/apps/postgres:/var/lib/postgresql/data'
    environment:
      POSTGRES_DB: confluence-db
      POSTGRES_USER: confluence-user
      POSTGRES_PASSWORD: passowrd
    container_name: postgres
    ports:
      - '5432:5432'
    image: postgres
    restart: unless-stopped

  pgadmin4:
    container_name: pgadmin4
    image: 'dpage/pgadmin4:latest'
    environment:
      PGADMIN_DEFAULT_EMAIL: user@domain.com
      PGADMIN_DEFAULT_PASSWORD: SuperSecret
    ports:
      - '80:80'

Кроме PostgreSQL я установил ещё и pgadmin для проверки работы базы данных, так как я устанавливал Confluence и PosgreSQL впервые.

Первый запуск Confluence делаем через docker compose up -d из той же директории, где находится наш compose-файл.

Далее открываем в браузере адрес localhost:8090 и видим форму активации Confluence. И теперь переходим к методике затрофеивания 🙂

Для продуктов Atlassian существует отличный генератор ключей, который можно скачать, например, с RuTracker.

Взлом Confluence происходит в 2 этапа:

  1. Сперва надо пропатчить файлы com.atlassian.extras_atlassian-extras-decoder-vХХХ.jar и com.atlassian.extras_atlassian-extras-key-manager-ХХХ.jar
    1. Для замены файлов внутри docker-контейнера нужно исполнить команду docker exec -it *имя-контейнера* bash
  2. После этого необходимо сгенерировать серийный номер с настройками как на скриншоте выше и начать пользоваться Confluence 🙂

После успешного взлома, трофейная версия Confluence Server приветствует экраном настройки соединения с базой данных, как на скриншоте ниже (к серверу БД можно обращаться по имени docker-контейнера):

Для того чтобы наш взлом не пропал после перезапуска docker обновим образ Confluence через комманду docker commit. Например, неплохая инструкция лежит здесь. Не забудьте обновить имя образа Confluence в файле compose.yaml.

Восстановление из бэкапа Confluence

Для восстановления из бэкапа достаточно положить его zip-архив в директорию /var/atlassian/application-data/confluence/restore/site. В ходе полного восстановления из бэкапа восстановятся все пользователи, настройки и данные, которые были на предыдущей установке Confluence, поэтому после перезапуска можно столкнуться с проблемой авторизации. Решение проблемы восстановления доступа  можно найти здесь.

Также может проявиться ошибка с Server Base URL, но она легко лечится.

Итоги

Получаем импортнонезависимую и трофейную установку Confluence, в которой можно продолжать работать 🙂

Полезные ссылки

%d такие блоггеры, как: