База знаний
ARMANOS без экрана
Запуск в режиме сервера
Запустите программу с доводом --server или задайте ARMANOS_SERVER=1. Тогда ей нужен ключ локального API в ARMANOS_API_TOKEN, от 24 знаков, или в файле, который назван в ARMANOS_API_TOKEN_FILE.
Ключ из командной строки не берётся: её видят все пользователи машины в списке процессов. Ключ и код входа уходят из окружения при запуске, и процессы браузера их не наследуют.
- ARMANOS_API_TOKEN
- Ключ локального API, от 24 знаков
- ARMANOS_API_TOKEN_FILE
- Файл с этим ключом, для секретов Docker
- ARMANOS_API_PORT
- Порт на 127.0.0.1, по умолчанию 50325
- ARMANOS_OUT_DIR
- Полный путь к папке выгрузок и файлов сценариев, по умолчанию out в папке данных
- ARMANOS_LOGIN_CODE
- Одноразовый код входа из кабинета
- ARMANOS_API_KEY
- Ключ API аккаунта с правом входить в программу
Код выхода 2 значит, что ключ или настройка негодны, и строка ошибки называет, что именно. Код 3 значит, что порт занят: программа не уходит на другой, потому что ваш скрипт звонит в этот.
Что меняется в режиме сервера
Окно не показывается
Оно есть, но скрыто, поэтому всё, что оно делает в фоне, работает.
Локальный API включён всегда
Только на 127.0.0.1, как на обычном компьютере; переключатель на экране «Для программистов» не нужен.
Уведомления идут в журнал
Строкой, начатой с ARMANOS notice, в стандартный вывод вместо сообщения системы.
Сайты не получают окна спроса
Каждый профиль отказывает в разрешениях без окна, как во время прогона сценария, и страница не ждёт ответа, которого никто не даст. Место профиля с «Отдавать без вопроса» сайт получает, как и с окном.
Обновления не проверяются
Чтобы обновиться, поставьте новую версию.
Одна строка состояния при запуске
Она называет адрес API, аккаунт, движок с версией и видеокарту. Ключа в ней нет.
Вход без формы
POST /api/v1/app/login принимает одно из трёх тел. Программа, уже вошедшая тем же аккаунтом, отвечает alreadySignedIn и ничего не тратит, поэтому скрипт может звать вход при каждом своём запуске.
Без числа второго шага ответ two_factor_required. Пароль идёт только в теле, в адресе он отвергается.
Код из кабинета живёт две минуты и работает один раз. Право входить в программу ключом по умолчанию выключено, а отзыв ключа заканчивает вход программы на следующем обновлении пропуска.
- {"code": "…"}
- Код из кабинета: «Устройства», затем «Войти на сервере»
- {"email", "accountPassword", "twoFactorCode"}
- Тот же вход, что в окне, со вторым шагом
- {"apiKey": "ak_…"}
- Ключ аккаунта из «Ключи API» в кабинете с правом входить в программу
Состояние для скрипта
GET /api/v1/app/state отвечает, вошла ли программа и кем, тариф и его предел профилей, движок и его версию, сколько профилей открыто, видеокарту, порт и включён ли режим сервера.
Открытый ход /status остался прежним и работает без ключа. Почты он не называет: звать его может кто угодно на этой машине.
Без видеокарты
На сервере видеокарты обычно нет. Тогда ARMANOS Browser открывает профили без WebGL и WebGPU, и сайт может отличить такую машину от той, что в шаблоне профиля.
ARMANOS говорит об этом прямо: gpu none в строке состояния и в app/state, note no_gpu_webgl в ответе browser/start и profile/quick.
Программная графика не включается
Остановка программы
SIGTERM, Ctrl+C и «Завершить ARMANOS» в меню закрывают открытые профили и ждут до 8 секунд, пока наш сервер снимет их замки, чтобы напарник не видел профиль занятым после остановки. Сервер, который не отвечает, дольше выход не держит.
С окном выход так же ждёт снятия замков. Но если окно ARMANOS видно, а профили открыты, программа сначала спросит, закрыть ли их, и выход ждёт ответа; без видимого окна вопроса нет.
Чего это не делает
- Это не открывает локальный API другим компьютерам. Вызовы идут только с этой машины.
- Это не берёт ключ из командной строки. Задайте его окружением или файлом.
- Это не обновляет программу само. Новая версия ставится поверх.
- Это не показывает окно. Всё идёт через API и журнал.
Где это решается
Каждая строка ниже называет стенд, который это проверяет.
- Коды выхода 2 и 3, скрытое окно, ключ вне окружения и вывода, вход кодом, почтой и ключом, отказ в разрешениях без окна
- apps/desktop/test/режим-сервера.js, apps/desktop/test/режим-сервера-живьём.js
- Выход ждёт, пока сервер снимет замки профилей, и не дольше предела
- apps/desktop/test/выход-ждёт-замков-живьём.js
- «Войти на сервере» в кабинете показывает код и команды без ключа
- apps/web/test/вход-на-сервере-кабинет.js
- Право входа ключом отдельное, отзыв ключа заканчивает вход
- apps/server/test/вход-ключом-устройства.js
Вопросы
- Программа сразу вышла с кодом 2.
- Ключа нет, он короче 24 знаков или передан в командной строке. Строка в выводе ошибок называет причину.
- Программа вышла с кодом 3.
- Порт держит другая программа. Остановите её или задайте свободный порт в ARMANOS_API_PORT.
- Как скрипту узнать, что программа готова?
- Звать /status, пока не ответит, потом GET /api/v1/app/state, чтобы узнать, вошла ли программа.
Попробуйте на одной машине
Бесплатный тариф даёт два профиля, без срока и без карты.