Обновить

Собрал клиент AmneziaVPN для Ubuntu 22
...и сделал это через Dockerfile, который Вы можете отредактировать для любого дистрибутива

Зачем понадобилось

Свежие блокировки Роскомнадзора отрезали меня от различных VPN, которыми я периодически пользовался для доступа к зарубежным продуктам, официально в РФ не представленным. Например, к Gemini.

Моей последней надеждой стала self-hosted Амнезия. Я восстановил доступ на всех своих устройствах, кроме одного - домашнего ПК под GPU-вычисления, работающего на Ubuntu 22.04.

Последние версии клиента AmneziaVPN 22-ю убунту не поддерживают: релизы для Linux собираются на Ubuntu 24.04, поэтому есть ограничения в поддержке дистрибутивов из-за версии glibc.

Как это может помочь другим

22-я убунта - это всего лишь пример. Если Ваши вкусы специфичны, да настолько, что AmneziaVPN не работает на выбранном дистрибутиве, докерфайл с лёгкостью можно адаптировать. Единственная дистрибутиво-зависимая часть в докерфайле - вызов apt-get

Что сделано

Я подготовил докерфайл, который из чистого образа ubuntu:22.04 устанавливает Qt и все прочие зависимости, качает репозиторий клиента AmneziaVPN, собирает проект и готовит инсталлятор. Выходная сборка, for my best knowledge, аналогична релизам авторов проекта. Вот здесь PR в официальный репозиторий со всеми объяснениями.

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

Как воспользоваться

Подготовка

Докерфайл качает официальный Qt-инсталлятор (я работал по инструкции вот здесь), поэтому потребуются активный Qt-аккаунт и IP-адрес не из РФ. Qt запрещает скачивания по российским IP-адресам. Нужно либо включить VPN, либо собирать на хостинге за пределами РФ (например, Казахстан). Да, я знаю, что это недостаток - пока не придумал, что с этим делать.

По умолчанию инсталлятор Qt смотрит на учётные данные в файле $HOME/.local/share/Qt/qtaccount.ini. Этот файл прокидывается в докер, поэтому он должен быть на машине для сборки. Если этого файла нет, можно перед запуском докера скачать любой GUI/CLI установщик Qt и пройти в нём страницу логина. Если не хочется возиться с инициализацией аккаунта на машине, то я оставил лазейку по прямой передаче логопасса в докер.

Сборка

Скачать мой форк репозитория, перейти в папку с ним и запустить докер.

Если настраивали аккаунт Qt:

DOCKER_BUILDKIT=1 docker build \
--secret id=qt_credentials,src=$HOME/.local/share/Qt/qtaccount.ini \
--file docker/ubuntu-22.04.Dockerfile --tag amnezia-ubuntu22 \
--output=./.build-dockerfile/ .

Если раскомментировали в докерфайле поддержку прямой передачи логопасса:

DOCKER_BUILDKIT=1 docker build \
--build-arg QT_CREDENTIAL_LOGIN="****@gmail.com" \
--build-arg QT_CREDENTIAL_PASSWORD="********" \
--file docker/ubuntu-22.04.Dockerfile --tag amnezia-ubuntu22 \
--output=./.build-dockerfile/ .

Клиент будет лежат в папке, указанной в --output

По умолчанию репозиторий использует ветку dev:

# Can use either branch or tag
ARG REPO_REVISION="dev"

(из того же докерфайла)

Это основная ветка проекта, соот-но возьмётся самый последний коммит, что может привести к ошибкам. Можно выбрать тэг с версией через

--build-arg REPO_REVISION="4.8.15.4"

Тэги с недавними релизами клиента AmneziaVPN
Тэги с недавними релизами клиента AmneziaVPN

Запуск

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

For Ubuntu you need to install xcb plugin: apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0 libxkbcommon-x11-0

Теги:
+5
Комментарии0

Публикации