Cusco Remote Control
5 постов
5 постов
Долго ничего не писал, решил поставить вас в курс дела.
За время предыдущего поста прошло много времени, как и выпустилось пару обновлений:
Отталкиваясь от опроса проведенного в прошлом году удалось купить MacBook, разобраться с ним и сделать сборку под MacOS весом всего 5.2 мб, внешне она ничем не отличается от Windows версии. Зато теперь проект поддерживает все основные системы.
Так же по просьбе в чате добавил комментарии к станциям, теперь их можно смотреть, изменять и фильтровать в общем списке.
После последнего обновления, добавляющего интеграцию с ChatGPT, но имеющего общий для всех пользователей счёт - просили добавить возможность указать личный API ключ, после чего было запущено голосование на пару недель, хоть и с небольшой активностью оно было реализовано, а ещё добавлен выбор версий, в том числе недавно прошедший тест Тьюринга:
Сейчас обдумываю способы реализовать большинство идей как своих, так и предложенных пользователями в тг чате проекта.
Поделитесь пожалуйста сервисом с знакомыми, кому он может быть полезен, напишите в чате что нибудь, ведь поддержка от людей очень важна в проекте не приносящим прибыль.
Вот сайт сервиса. Вот информационный канал, где новости появляются чаще чем в других медиа.
Спасибо участникам и вам за внимание.
Доброго дня!
Немного о проекте
Я запустил свой сервис удаленного доступа в январе этого года (вот статья на пикабу), который на тот момент мог получать полную информацию о компьютере, управлять процессами, программами, питанием и выполнять произвольные команды удаленно на Linux и Windows. С тех пор я обновил клиент (уменьшил размер, увеличил стабильность и быстродействие), добавил функцию визуального управления из браузера десктопа или мобильного устройства, добавил авто обновление, перевел сервис на 12 языков и закрыл много багов.
К сути
Сегодня я подготовил для вас ещё одно интересное обновление, а именно интеграцию вашего компьютера с ChatGPT. Теперь стало возможно автоматизировать работу и улучить производительность как системных администраторов, так и помочь продвинутым пользователям в управлении своим устройством.
Пару слов о том, как это работает: открывается станция (компьютер) в панели управления в браузере, запускается чат и оправляется запрос на сервер проекта, там формируется промт и выполняется запрос, ответ на который передается клиенту, оформляется в виде текста или команды, которую “ИИ” предлагает выполнить. Пользователь подтверждает или уточняет действие, затем команда подписывается ключом клиента и отправляется на сервер, где идет проверка на подлинность, затем отправляется непосредственно на клиент программы, который так же сверяет подпись, выполняет действие и отправляет результат обратно.
Так выглядит проверка перед выполнением:
Так выглядит результат другого запроса, когда перестала работать печать а гуглить и делать вручную не хочется:
В проекте Куско интеграция на текущий момент ограничена командной строкой, поэтому результат выдаваемый ассистентом должен быть соответствующе экранирован, иногда могут попадаться ошибки, которые так же предлагается отправить для их устранения:
Какие возможности существуют у “ИИ” при управлении компьютером?
А вот это самая сложная часть. Их очень много. Конечно на данный момент, пока подключена модель GPT 3.5 Turbo они немного ограничены, ответы приходят иногда совсем не те, что ожидаешь, но её уже можно использовать, желательно проверяя вывод.
Вот некоторые их них:
От идеи до реализации у меня ушло около 4 дней, времени обдумать запросы, что бы показать вам широту возможностей не было — надеюсь вы поможете мне с этим, присылайте свои варианты в чат проекта!
Автоматизация
Добавил в настройках несколько фич, таких как автоматизация подтверждения команд и отправку ошибок:
А так же возможность отображать сгенерированный “ИИ” HTML код, отступы в примере ниже — это тоже часть кода:
Если вам понравится это направление - то я готов его развивать, например на данный момент результат можно улучшить предоставив “ИИ” дополнительные функции для управления — для увеличения возможностей и сокращения количества ошибок, улучшить промты, сделать сверстку в контекст, добавить возможность искать информацию в интернете, как в plus версии, а может быть у вас будут какие идеи? Напишите о них в разделе чата “Идеи”.
А самое главное чего стоит ждать это открытие GPT 4 API для широкой аудитории. По моему мнению (в браузерной версии) он намного превосходит упрощенную модель и уже может стать хорошим помощником в рутинных задачах.
Если вы хотите поддержать проект - можете прислать донат по адресу указанному на сайте или положить денег на свой счет в панели управления. Буду очень рад вашей помощи!
Телеграм чат для обсуждения cusco_rc_group_ru
Канал, где публикуются все новости проекта cusco_rc_channel_ru
🥳 Ура! В проекте наконец-то появилось визуальное управление удаленной станцией!
Версия для desktop браузера (так же все прекрасно открывается в мобильном):
Спустя почти два месяца (а кажется что намного больше) после прошлого обновления, я могу показать адекватный рабочий вариант.
Давайте расскажу подробнее, что я наделал. В этом обновлении будет стандартная реализация:
Выбор дисплея
Выбор размера изображения: полный, вписанный в текущий монитор и увеличение /уменьшение картинки.
Клавиши. В быстром выборе основные: CTRL, ALT, ESC (эти три для быстрого вызова диспетчера задач), Del, Shift. И в дополнительном окне все остальные, которые может перехватывать управляющая система.
Так же сделал адаптацию для мобильных устройств - см. скрин. Для последних в верхнем меню есть еще пару пунктов:
Открытие клавиатуры
Выбор способа движения курсора - перемещением пальца по экрану или нажатием на область, где нужно кликнуть.
И еще небольшая фича, которой пока ни у кого нет - при большом количестве мониторов теперь вы можете знать на каком именно пользователь указывает вам мышкой. Это показано в меню выбора мониторов - небольшой синий указатель.
Пару слов о том как это всё работает.
Сначала программа ищет возможные пути, потом пытается подключиться по каждому маршруту напрямую к целевой станции, минуя NAT, если это не удаётся - используется сервер проекта. В первом случае соединение будет самое быстрое, во втором - может быть медленней. Если у вас стоит файрволл в сети, блокирующий интернет, то стоит добавить в исключения все поддомены “*.cusco-rc.com”.
Это минимальная реализация, сейчас выбрано по умолчанию качество передачи видео “среднее”, в будущем добавлю выбор его в меню, а так же автонастройку в зависимости от качества соединения. Так же будет передача файлов и проброс портов. Если есть какие то идеи или штуки, которые вы хотите видеть в визуальном управлении этого проекта - напишите в группу)
Если у вас уже стоит клиент, то он должен был обновиться или обновится в течении ближайшего получаса до версии 0.2.1. Если этого не случилось - скачайте с сайта, до этого была ошибка одна - я не правильно выставил период проверки обновлений, было где то раз в 3 года))
Если у вас возникли проблемы - не проходите мимо, напишите в подгруппу чата или мне в личку.
Всем привет! Я знаю, что немного вылетел из информационного поля, в этом посте хочу рассказать почему и что изменилось в сервисе за последнее время.
Прежде всего хочу поблагодарить тех людей, что проявляли активность, кто добавился в группу (нас уже около 360 человек), и особенно тех, кто выразил заинтересованность проектом и поддержали словами, именно ваш интерес и побуждал меня продолжить разработку.
Так же не могу не поблагодарить всех пикабушников, кто выкладывал мало постов или воздержался от этого, благодаря чему я не задерживался в прокрастинации и смог сосредоточиться на работе. Особенно радует переход из горячего прямо в свежее, что бы я без этого делал.
Спустя неделю после публикации статьи мне прилетело много багов, прикинув примерное время, требующееся на их устранение, прибавив к этому время необходимое для реализации тех возможностей, что были в планах, а так же учитывая, что Python язык больше скриптовый, мало подходит для тиражируемого релизного приложения, особенно учитывая компилируемый размер файла и меньшую производительность, я пришел к выводу, что рано или поздно это всё придется переписывать на другом языке, а это большие затраты времени, и чем дальше бы я зашел, тем больше бы вложений потребовалось, а учитывая что финансирую разработку только я сам, это могло бы вылиться в стагнацию или вообще повлиять на жизнеспособность сервиса.
Давайте теперь вернемся в настоящее. И вот спустя примерно пять недель работы, пару бутылок виски и четыре дня в депрессии, я все таки переписал клиента программы на более низкоуровневом языке, который пришлось изучать с нуля, попутно лысея. И как по мне - получилось весьма неплохо, давайте расскажу подробнее.
Начнем с самого частого, на что обращаешь внимание - размер программы, для сравнения:
Windows, было 58,6 мб, стало 3,3 мб в консольном варианте и 6,1 мб с GUI. Разница в 17,7 раз!
Linux, было 233,6 мб, стало 7,5 мб. Еще большая разница в 31,1 раз!
MacOS, ничего не изменилось, потому что клиента для неё пока нет. Но я увидел проголосовавших в группе по этому вопросу, буду его прорабатывать.
Конечно еще можно считерить и упаковать файл в zip архив, тогда размер получается 1,79 мб, это примерно 32,7 раз. Моя небольшая победа.
В windows пришлось разбить программу на две версии, т.к. можно скомпилировать или консольное или графическое приложение, изначально была задумка запускать консольное при наличии соответствующего аргумента. Объединить можно, но это займет время и добавит сложности в разработке.
Вот скриншоты интерфейсов, в консольном варианте он стал попроще:
По производительности тоже есть изменения. Потребление памяти при обновлении процессов в новой версии 37 мб против 70 мб в старой. На первый взгляд все открывается быстро, хоть это сейчас и не сильно важно, но при требовательных операциях в будущем будет конечно ощутимо в сравнении с Python.
Сервис стал доступнее для большего количества версий операционных систем, например я понизил архитектуру до x86, и минимальная поддерживаемая версия на которой тестировалась программа — windows 7, а для linux — ubuntu 18. Правда обе доступны только в консольном варианте, в графическом режиме отказывалось запускаться, думаю потом поменяю на другой GUI фреймфорк. Для более новых версий windows всё осталось так же.
Еще сделал наверное самую нужную функцию на текущий момент - автоматическое обновление, что бы не пришлось ручками переставлять на каждой машине, особенно если у вас много станций.
Так же были внесены небольшие изменения:
Исправлен баг с открытием окна командной строки на пару секунд при выполнении команд и при запуске.
Не всегда отображались IP адреса, особенно на linux.
Баг с отключением сервиса программы через 3 дня, из за чего станции были в офлайне. Никто об этом не написал, но я исправил.
Вывод результата кастомной команды теперь более приближен к оригинальному.
Генерация пароля каждый час, если он не был задан вручную.
Поправлена немного админка.
Было еще много изменений по мелочи, из того что успел прочитать в чате проекта и в личке, которые делал буквально на лету, не записывая.
Немного изменил логику, в том числе взаимодействие между клиентом сервером, поработал с безопасностью последнего, так что Python версию нужно будет заменить на новую.
По правде говоря, чистая работа с кодом сама по себе заняла около 3 недель, а последние две ушло на сборку и отладку под разные дистрибутивы, и на каждом встречались свои ошибки, и когда я закрывал ошибку скажем на ubuntu 22, на 18 вылазила новая. Меня это печалило до такой степени, что по ночам снились кошмары, например где я нахожу баг, но не могу его описать, не могу найти логов, хотя четко понимаю и вижу как приложение крашится, или еще сон с бесконечной сборкой, когда запускаешь команду и ждешь, ждешь, ждешь и больше ничего делать не можешь, просыпаешься в холодном поту и приходит радость, что это всё не в заправду. Для справки - мне обычно снились приятные или нейтральные сны, которые я часто забывал проснувшись, но эти я помню до сих пор.
Ну еще немного выскажусь, если вы не против. Хоть переписывать было и интересно в технологическом плане, но всё же я немного приуныл, так как мне хочется реализоввывать новые фишки, и удивлять вас ими, а так получается я делал всё одно и то же. В планах было запустить релизную версию уже на шестой месяц проекта (сейчас), и получать хоть какую ни будь отдачу, что бы были деньги раскручивать проект, а не двигаться со скоростью черепахи. И единственное что меня мотивировало — это ваши добрые пожелания и отзывы, которые показывают потребность в этом сервисе, только благодаря им я сделал спринт и выпустил это обновление раньше, чем работая в нормальном темпе.
Итак к делу, что бы обновиться на новую версию — нужно удалить старую, скачать новую и установить. Что бы ID станции и привязка к вашему аккаунту сохранились — переместите файл config.json из "C:\ProgramData\Cusco\CuscoRemoteControl" в "C:\ProgramData\Cusco\RemoteControl"
Новые файлы уже залиты на сайт, находятся в разделе загрузки.
В ближайшем будущем начну работу над визуальным управлением, попутно реализовывая ваши пожелания, если будет время.
Всё так же было бы классно увидеть ваши результаты тестирования, если можно то со скриншотами и подробностями как воспроизвести найденную ошибку.
Спасибо за ваше время, жду вас в группе. Обращу внимание, что в ней есть подгруппы: баги, основная — для общения, и идеи — которую в скором времени подчищу от флуда.
Всем привет.
Я работал админом около 12 лет, за всё время для целей администрирования пользовался почти всеми известными программами для удаленного доступа, сначала TeamViewer - после внедрения их политики лицензирования и обновления, мягко говоря неудобной и жуткой дорогой (около 30 т.р. в год), пересел на AnyDesk — который был чуть хуже в плане функционала, но более терпим в плане использования, и немного меньшей ценой — около 20 т.р. за год. Но душа всё-таки не была довольна, не хватало многих функций, автоматизации, да и порой было неудобно/лень договариваться о подключении с пользователем, что бы выполнить пустяковое действие. И так пришла на ум идея создать инструмент от админа админу, что бы и интерфейс устраивал, но не был перенасыщен, и разобраться мог любой человек более менее владеющий компьютером.
Ну и конечно санкции и новая их угроза послужила мотивом, зарубежные сервисы постепенно продавливаются или сами разделяют повестку ущемления обычных людей и к сожалению блокируют доступ к своим ресурсам. Хотя по моему мнению, IT компании как наука и спорт должны быть вне политики, не важно на какой стороне твой пользователь.
И вот буквально на днях я закончил писать бета версию, залив её в продакшн, в которой реализовал базовые функции, достаточные для закрытия определенного процента потребностей:
Сводная информация о машине, её загрузка в реальном времени. Например:
Система, версия, время включения
Оперативная память, использование, подкачка и пр.
Процессор. Модель, частота, загрузка ядер и пр.
Сеть. IP, Mac всех интерфейсов, статистика использования
Постоянная память. Свободное место, использование.
Управление и просмотр (с фильтрами, сортировкой и детальной информацией):
Процессов
Программ
Устройств
Управление питанием — выключение, перезагрузка, спящий режим, блокировка, гибернация.
Удаленное выполнение любых команд. Само по себе уже сильно выручает, если не хочется тревожить пользователя или экран заблокирован, а пароля не сказали.
Относительно безопасности — постарался реализовывать систему с учетом возможного взлома, так что отправка команд/получение информации возможна только при наличии приватного ключа, который вы сохраняете при регистрации и используете при подписании запросов, его сначала проверяет сервер, потом сама станция. На последней нужно задать пароль, так же в любой момент можно удалить доступ.
Примерно так выглядят окна управляемых станций в консольном и графическом режиме:
Пока поддерживаются платформы Windows, Linux. В планах MacOS — если будет запрос от пользователей. Этих целей создал голосовалку в чате.
Управление происходит с браузера компьютера:
Или мобильного телефона:
Остальные скриншоты решил не прикреплять — слишком большая статья получается, их можно посмотреть на сайте.
На счет ближайшего будущего — планирую реализовать:
Отслеживание процессов на графике, что бы представлять в динамике загрузку и из этого делать выводы.
Визуальное удаленное управление — классический контроль
Передача файлов — без этого никак
Управление местом на диске — одна из самых популярных задач в работе
Просмотр логов — ну тут всё понятно, бывает без анализа событий не решить проблему
Это не полный и конечно не окончательный перечень, идей много. Хоть примерные спринты уже намечены, всё же считаю — что сервис не должен ограничиваться желаниями одного человека, планирую делать продукт как можно более гибким и реализовывать пожелания пользователей, вообще пишу эту статью потому что потому что мне очень важно получить вашу обратную связь!
Буду всем очень благодарен, если присоединитесь к чату в телеграмм и поможете мне своим адекватным мнением в разработке проекта.
В качестве благодарности за тестирование, решил дать всем пикабушникам как минимум 10 станций в подарок навсегда за участие в тестировании, если будет необходимость и финансы позволят, постараюсь дать больше.
Не знаю можно ли разместить ссылку на ресурс, по запросу в комментах - добавлю сайт, если будет нарушать правила прошу удалить его.
Сервису всего пару дней, не топите в минусах первый пост пожалуйста.
Телеграм чат для обсуждения cusco_rc_group
Канал, где буду публиковать все новости проекта cusco_rc_chanel_ru
Всем добра!