27 мар 2026 · 08:28    
{"document": [{"text": [{"type": "attachment", "attributes": {"caption": "Веб-приложение на своём сервере", "presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/png", "filename": "cf_cover_20260327_081417.png", "filesize": 1679470, "height": 768, "pic_id": 1053057, "url": "http://storage.yandexcloud.net/pabliko.files/article_cloud_image/2026/03/27/cf_cover_20260327_081417_HzwLGAu.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=YCAJEsyjwo6hiq7G6SgeBEL-l%2F20260327%2Fru-central1%2Fs3%2Faws4_request&X-Amz-Date=20260327T052727Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e497e152e02a94a6d2794b9a4e2d57715a616116a5a267a226660483bb36c236", "width": 1376}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "ONCE от Basecamp берёт на себя установку, SSL и обновления сам."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Basecamp - компания, известная корпоративным менеджером задач и почтовым сервисом HEY. Оба продаются по подписке. И вот та же компания выпускает бесплатную программу с открытым кодом, которая помогает запускать веб-приложения на вашем собственном сервере, не отдавая деньги сторонним хостингам. На первый взгляд - противоречие. На второй - осознанная позиция: Basecamp давно продвигает идею, что компании и разработчики должны контролировать собственную инфраструктуру, а не зависеть от чужих платформ."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Инструмент называется ONCE. Он берёт готовое веб-приложение, упакованное в Docker-контейнер - это изолированная «коробка», в которой приложение работает одинаково на любом компьютере, - и разворачивает его на вашем сервере. С автоматической настройкой защищённого соединения, управлением данными и обновлениями. Само."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Процесс начинается с одной команды в терминале. ONCE скачивает нужные компоненты, при необходимости сам устанавливает Docker, а затем предлагает выбрать приложение. Во встроенном списке - продукты от самого Basecamp, например Writebook, инструмент для публикации электронных книг. Но можно указать любой совместимый образ: ONCE не привязывает к экосистеме одного разработчика."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "После выбора нужно ввести адрес, по которому приложение будет доступно. Если есть свой домен - используйте его. ONCE развернёт приложение и откроет панель управления - экран с кнопками и статусами, который работает прямо в терминале без отдельного браузерного интерфейса."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "SSL, бэкапы, обновления: что ONCE делает сам"}], "attributes": ["heading1"]}, {"text": [{"type": "string", "attributes": {}, "string": "Без специального инструмента развернуть приложение на сервере - это несколько часов работы. Отдельно настраивать защищённое соединение через Let's Encrypt (бесплатный сервис, который выдаёт сертификаты для зашифрованных подключений), прописывать логику обновлений, думать о резервных копиях. ONCE берёт это на себя."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Защищённое соединение активируется автоматически при указании домена. Резервное копирование включается через меню настроек - нужно только указать папку или место для хранения копий. Обновления приложений не требуют вашего участия."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Есть деталь, которая не видна снаружи. ONCE поддерживает особые сценарии, срабатывающие перед резервным копированием и после восстановления из копии. Благодаря этому приложение успевает правильно «сложить» свою базу данных перед тем, как ONCE скопирует файлы. В результате резервная копия всегда целостная - даже если приложение работало в этот момент. Без такого механизма копия активно используемой базы данных могла бы оказаться повреждённой."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Через то же меню настроек можно подключить почтовый провайдер, сменить домен и переключиться на собственную сборку приложения - например, если вы хотите использовать доработанную версию одного из встроенных продуктов Basecamp."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Raspberry Pi, VPS, ноутбук - ONCE работает на любом железе"}], "attributes": ["heading1"]}, {"text": [{"type": "string", "attributes": {}, "string": "ONCE не требует отдельного мощного сервера. По данным разработчиков, программа работает на физическом сервере, виртуальном сервере в облаке (VPS), одноплатном мини-компьютере Raspberry Pi и обычном ноутбуке. Поддерживаемые операционные системы - Linux и macOS."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Это важно с практической точки зрения: у многих дома лежит старый ноутбук или мини-компьютер, которому можно дать вторую жизнь в роли домашнего сервера. Raspberry Pi потребляет несколько ватт и работает круглосуточно без шума. Перенести туда личные инструменты - заметки, фотоархив, персональный менеджер паролей - теперь реалистичнее, чем прежде."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Те, кто предпочитает арендовать сервер удалённо: самые бюджетные облачные варианты стоят заметно меньше, чем специализированный хостинг для веб-приложений. ONCE сам разберётся с настройкой - платить придётся только за аренду железа, а не за «платформу»."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "[ИЛЛ-3] (Устройства для запуска ONCE)"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Три условия совместимости с ONCE"}], "attributes": ["heading1"]}, {"text": [{"type": "string", "attributes": {}, "string": "Любое приложение, которое хочет работать через ONCE, должно отвечать трём требованиям: быть упаковано в Docker-контейнер, принимать обращения по стандартному протоколу HTTP и хранить все данные в специально отведённой папке. Вот и всё."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "На практике это означает: если вы находите стороннее приложение, упакованное в Docker, - скажем, самостоятельно работающий менеджер задач или облачное хранилище файлов, - его, вероятно, можно запустить через ONCE. Три условия не сложнее правил аренды квартиры: веди себя нормально, не шуми, убирай за собой."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Для разработчиков, которые создают собственные приложения, ONCE предлагает более глубокую интеграцию: передачу настроек почты, ключей безопасности и ресурсных ограничений через специальные параметры запуска, поддержку push-уведомлений. Это позволяет приложению «знать», в каких условиях оно работает, и подстраиваться под них."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Без DNS-записи ONCE ничего не запустит"}], "attributes": ["heading1"]}, {"text": [{"type": "string", "attributes": {}, "string": "Честная сложность, которую стоит знать заранее. Если разворачиваете приложение на сервере с доступом из интернета, нужно настроить DNS - правило в панели управления вашим доменом, которое связывает адрес сайта с IP-адресом вашего сервера. Делается один раз, у большинства регистраторов домена есть понятный интерфейс для этого, но шаг требует внимательности. Без него защищённое соединение не активируется."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Второй барьер - психологический. Интерфейс ONCE работает в терминале. Технически это полноценный экран с кнопками и меню - вводить команды вручную не придётся. Но «работать в терминале» для многих звучит как «работать в командной строке», и это останавливает. Судя по устройству инструмента, Basecamp рассчитывала на аудиторию с хотя бы базовым комфортом в такой среде."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Программа написана на Go - языке программирования, который позволяет создавать быстрые и компактные утилиты. Лицензия открытая: программу можно использовать, изменять и распространять без ограничений. Код доступен для проверки любому желающему."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Подробная инструкция по установке есть на странице проекта. Единственное реальное требование - машина под управлением Linux или macOS и базовый комфорт с терминалом. Если вы когда-нибудь запускали там хоть одну команду - разберётесь."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Те, кто привык платить за хостинг ежемесячно, при переходе на собственный сервер с ONCE платят только за железо. При нескольких приложениях разница за год становится вполне ощутимой: платить за каждое отдельно на чужой платформе в сумме значительно дороже."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Скажу прямо: большинство людей, которые хотят «поднять своё», останавливаются именно на шаге настройки, а не на выборе инструмента. ONCE снизил этот порог - но не до нуля. Для тех, кто никогда не открывал терминал, он пока не станет полноценным ответом."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Какие веб-приложения вы бы перенесли на свой сервер, если бы настройка занимала не часы, а минуты?"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Источник: "}, {"type": "string", "attributes": {"href": "https://github.com/basecamp/once"}, "string": "ONCE by Basecamp"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "🔔 Подписывайтесь на КликХак - находим бесплатные программы, которые работают не хуже платных."}], "attributes": []}], "selectedRange": [1265, 1265]}
Комментарии 0