feat: refactor to remove www

resolves #4
This commit is contained in:
Chris Milne 2026-04-24 12:47:12 +01:00
parent 2d84b9056a
commit a1cca9205f
322 changed files with 1 additions and 30 deletions

374
i18n/ru/code.json Normal file
View file

@ -0,0 +1,374 @@
{
"home.title": {
"message": "Представляем Butter Box"
},
"home.subtitle1": {
"message": "Жизнь без интернета стала проще."
},
"home.subtitle2": {
"message": "Получите доступ к полезным инструментам."
},
"home.whatisbutterbox": {
"message": "Магазин приложений, зашифрованный чат и многое другое доступно через Wi-Fi, от оффлайн Raspberry Pi."
},
"home.section1.title": {
"message": "Как это работает?"
},
"home.section1.description": {
"message": "Butter Box раздает собственную сеть WiFi. После того, как ты подключишься, ты можешь установить Butter, скачать приложения, присоединиться к публичному чату или сделать свой собственный, чтобы общаться с друзьями. Butter Box работает даже без интернета. Подойди к Butter Box, чтобы загрузить больше приложений или проверить чаты. Все это хранится прямо в Butter Box."
},
"home.learnmore": {
"message": "Узнать больше"
},
"home.getbutter.title": {
"message": "Получи собственный Butter Box"
},
"home.getbutter.description": {
"message": "Мы производим и поставляем Butter Box партнерам по всему миру. Свяжись с нами, если ты представляешь сообщество, которому это важно."
},
"home.getintouch": {
"message": "Напиши нам"
},
"home.makebutter.title": {
"message": "Сделай свой собственный Butter Box"
},
"home.makebutter.description": {
"message": "Ты можешь сделать свой собственный Butter Box, загрузив готовый образ на Raspberry Pi. Просто скачай образ и запиши его на карту microSD, используя Raspberry Pi Imager, также как для установки других дистрибутивов."
},
"home.learnhow": {
"message": "Узнай как!"
},
"home.getcode.title": {
"message": "Или настрой свой Butter Box, следуя инструкциям из нашего репозитория."
},
"home.getsource.button": {
"message": "Исходный код и документация"
},
"theme.ErrorPageContent.title": {
"message": "На странице произошёл сбой.",
"description": "The title of the fallback page when the page crashed"
},
"theme.BackToTopButton.buttonAriaLabel": {
"message": "Прокрутка к началу",
"description": "The ARIA label for the back to top button"
},
"theme.blog.archive.title": {
"message": "Архив",
"description": "The page & hero title of the blog archive page"
},
"theme.blog.archive.description": {
"message": "Архив",
"description": "The page & hero description of the blog archive page"
},
"theme.blog.paginator.navAriaLabel": {
"message": "Навигация по странице списка блогов",
"description": "The ARIA label for the blog pagination"
},
"theme.blog.paginator.newerEntries": {
"message": "Следующие записи",
"description": "The label used to navigate to the newer blog posts page (previous page)"
},
"theme.blog.paginator.olderEntries": {
"message": "Предыдущие записи",
"description": "The label used to navigate to the older blog posts page (next page)"
},
"theme.blog.post.paginator.navAriaLabel": {
"message": "Навигация по странице поста блога",
"description": "The ARIA label for the blog posts pagination"
},
"theme.blog.post.paginator.newerPost": {
"message": "Следующий пост",
"description": "The blog post button label to navigate to the newer/previous post"
},
"theme.blog.post.paginator.olderPost": {
"message": "Предыдущий пост",
"description": "The blog post button label to navigate to the older/next post"
},
"theme.tags.tagsPageLink": {
"message": "Посмотреть все теги",
"description": "The label of the link targeting the tag list page"
},
"theme.colorToggle.ariaLabel.mode.system": {
"message": "system mode",
"description": "The name for the system color mode"
},
"theme.colorToggle.ariaLabel.mode.light": {
"message": "Светлый режим",
"description": "The name for the light color mode"
},
"theme.colorToggle.ariaLabel.mode.dark": {
"message": "Тёмный режим",
"description": "The name for the dark color mode"
},
"theme.colorToggle.ariaLabel": {
"message": "Переключение между темным и светлым режимом (сейчас используется {mode})",
"description": "The ARIA label for the color mode toggle"
},
"theme.docs.breadcrumbs.navAriaLabel": {
"message": "Навигационная цепочка текущей страницы",
"description": "The ARIA label for the breadcrumbs"
},
"theme.docs.paginator.navAriaLabel": {
"message": "Страница документа",
"description": "The ARIA label for the docs pagination"
},
"theme.docs.paginator.previous": {
"message": "Предыдущая страница",
"description": "The label used to navigate to the previous doc"
},
"theme.docs.paginator.next": {
"message": "Следующая страница",
"description": "The label used to navigate to the next doc"
},
"theme.docs.tagDocListPageTitle.nDocsTagged": {
"message": "Одна страница|{count} страницы|{count} страниц",
"description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
},
"theme.docs.tagDocListPageTitle": {
"message": "{nDocsTagged} с тегом \"{tagName}\"",
"description": "The title of the page for a docs tag"
},
"theme.docs.versionBadge.label": {
"message": "Версия: {versionLabel}"
},
"theme.docs.versions.unreleasedVersionLabel": {
"message": "Это документация для будущей версии {siteTitle} {versionLabel}.",
"description": "The label used to tell the user that he's browsing an unreleased doc version"
},
"theme.docs.versions.unmaintainedVersionLabel": {
"message": "Это документация {siteTitle} для версии {versionLabel}, которая уже не поддерживается.",
"description": "The label used to tell the user that he's browsing an unmaintained doc version"
},
"theme.docs.versions.latestVersionSuggestionLabel": {
"message": "Актуальная документация находится на странице {latestVersionLink} ({versionLabel}).",
"description": "The label used to tell the user to check the latest version"
},
"theme.docs.versions.latestVersionLinkLabel": {
"message": "последней версии",
"description": "The label used for the latest version suggestion link label"
},
"theme.common.editThisPage": {
"message": "Отредактировать эту страницу",
"description": "The link label to edit the current page"
},
"theme.common.headingLinkTitle": {
"message": "Прямая ссылка на {heading}",
"description": "Title for link to heading"
},
"theme.lastUpdated.atDate": {
"message": " {date}",
"description": "The words used to describe on which date a page has been last updated"
},
"theme.lastUpdated.byUser": {
"message": " от {user}",
"description": "The words used to describe by who the page has been last updated"
},
"theme.lastUpdated.lastUpdatedAtBy": {
"message": "Последнее обновление{atDate}{byUser}",
"description": "The sentence used to display when a page has been last updated, and by who"
},
"theme.navbar.mobileVersionsDropdown.label": {
"message": "Версии",
"description": "The label for the navbar versions dropdown on mobile view"
},
"theme.NotFound.title": {
"message": "Страница не найдена",
"description": "The title of the 404 page"
},
"theme.tags.tagsListLabel": {
"message": "Теги:",
"description": "The label alongside a tag list"
},
"theme.AnnouncementBar.closeButtonAriaLabel": {
"message": "Закрыть",
"description": "The ARIA label for close button of announcement bar"
},
"theme.admonition.caution": {
"message": "предупреждение",
"description": "The default label used for the Caution admonition (:::caution)"
},
"theme.admonition.danger": {
"message": "осторожно",
"description": "The default label used for the Danger admonition (:::danger)"
},
"theme.admonition.info": {
"message": "к сведению",
"description": "The default label used for the Info admonition (:::info)"
},
"theme.admonition.note": {
"message": "примечание",
"description": "The default label used for the Note admonition (:::note)"
},
"theme.admonition.tip": {
"message": "подсказка",
"description": "The default label used for the Tip admonition (:::tip)"
},
"theme.admonition.warning": {
"message": "warning",
"description": "The default label used for the Warning admonition (:::warning)"
},
"theme.blog.sidebar.navAriaLabel": {
"message": "Навигация по последним постам в блоге",
"description": "The ARIA label for recent posts in the blog sidebar"
},
"theme.DocSidebarItem.expandCategoryAriaLabel": {
"message": "Expand sidebar category '{label}'",
"description": "The ARIA label to expand the sidebar category"
},
"theme.DocSidebarItem.collapseCategoryAriaLabel": {
"message": "Collapse sidebar category '{label}'",
"description": "The ARIA label to collapse the sidebar category"
},
"theme.IconExternalLink.ariaLabel": {
"message": "(opens in new tab)",
"description": "The ARIA label for the external link icon"
},
"theme.NavBar.navAriaLabel": {
"message": "Main",
"description": "The ARIA label for the main navigation"
},
"theme.navbar.mobileLanguageDropdown.label": {
"message": "Языки",
"description": "The label for the mobile language switcher dropdown"
},
"theme.NotFound.p1": {
"message": "К сожалению, мы не смогли найти запрашиваемую вами страницу.",
"description": "The first paragraph of the 404 page"
},
"theme.NotFound.p2": {
"message": "Пожалуйста, обратитесь к владельцу сайта, с которого вы перешли на эту ссылку, чтобы сообщить ему, что ссылка не работает.",
"description": "The 2nd paragraph of the 404 page"
},
"theme.TOCCollapsible.toggleButtonLabel": {
"message": "Содержание этой страницы",
"description": "The label used by the button on the collapsible TOC component"
},
"theme.blog.post.readMore": {
"message": "Читать дальше",
"description": "The label used in blog post item excerpts to link to full blog posts"
},
"theme.blog.post.readMoreLabel": {
"message": "Подробнее о {title}",
"description": "The ARIA label for the link to full blog posts from excerpts"
},
"theme.blog.post.readingTime.plurals": {
"message": "{readingTime} мин. чтения|{readingTime} мин. чтения|{readingTime} мин. чтения",
"description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
},
"theme.CodeBlock.copy": {
"message": "Скопировать",
"description": "The copy button label on code blocks"
},
"theme.CodeBlock.copied": {
"message": "Скопировано",
"description": "The copied button label on code blocks"
},
"theme.CodeBlock.copyButtonAriaLabel": {
"message": "Скопировать в буфер обмена",
"description": "The ARIA label for copy code blocks button"
},
"theme.CodeBlock.wordWrapToggle": {
"message": "Переключить перенос по строкам",
"description": "The title attribute for toggle word wrapping button of code block lines"
},
"theme.docs.breadcrumbs.home": {
"message": "Главная страница",
"description": "The ARIA label for the home page in the breadcrumbs"
},
"theme.docs.sidebar.collapseButtonTitle": {
"message": "Свернуть сайдбар",
"description": "The title attribute for collapse button of doc sidebar"
},
"theme.docs.sidebar.collapseButtonAriaLabel": {
"message": "Свернуть сайдбар",
"description": "The title attribute for collapse button of doc sidebar"
},
"theme.docs.sidebar.navAriaLabel": {
"message": "Docs sidebar",
"description": "The ARIA label for the sidebar navigation"
},
"theme.docs.sidebar.closeSidebarButtonAriaLabel": {
"message": "Закрыть панель навигации",
"description": "The ARIA label for close button of mobile sidebar"
},
"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
"message": "← Перейти к главному меню",
"description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"
},
"theme.docs.sidebar.toggleSidebarButtonAriaLabel": {
"message": "Переключить навигационную панель",
"description": "The ARIA label for hamburger menu button of mobile navigation"
},
"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel": {
"message": "Expand the dropdown",
"description": "The ARIA label of the button to expand the mobile dropdown navbar item"
},
"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": {
"message": "Collapse the dropdown",
"description": "The ARIA label of the button to collapse the mobile dropdown navbar item"
},
"theme.docs.sidebar.expandButtonTitle": {
"message": "Развернуть сайдбар",
"description": "The ARIA label and title attribute for expand button of doc sidebar"
},
"theme.docs.sidebar.expandButtonAriaLabel": {
"message": "Развернуть сайдбар",
"description": "The ARIA label and title attribute for expand button of doc sidebar"
},
"theme.blog.post.plurals": {
"message": "{count} запись|{count} записи|{count} записей",
"description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
},
"theme.blog.tagTitle": {
"message": "{nPosts} с тегом \"{tagName}\"",
"description": "The title of the page for a blog tag"
},
"theme.blog.author.pageTitle": {
"message": "{authorName} - {nPosts}",
"description": "The title of the page for a blog author"
},
"theme.blog.authorsList.pageTitle": {
"message": "Authors",
"description": "The title of the authors page"
},
"theme.blog.authorsList.viewAll": {
"message": "View All Authors",
"description": "The label of the link targeting the blog authors page"
},
"theme.blog.author.noPosts": {
"message": "This author has not written any posts yet.",
"description": "The text for authors with 0 blog post"
},
"theme.contentVisibility.unlistedBanner.title": {
"message": "Unlisted page",
"description": "The unlisted content banner title"
},
"theme.contentVisibility.unlistedBanner.message": {
"message": "This page is unlisted. Search engines will not index it, and only users having a direct link can access it.",
"description": "The unlisted content banner message"
},
"theme.contentVisibility.draftBanner.title": {
"message": "Draft page",
"description": "The draft content banner title"
},
"theme.contentVisibility.draftBanner.message": {
"message": "This page is a draft. It will only be visible in dev and be excluded from the production build.",
"description": "The draft content banner message"
},
"theme.docs.DocCard.categoryDescription.plurals": {
"message": "{count} элемент|{count} элемента|{count} элементов",
"description": "The default description for a category card in the generated index about how many items this category includes"
},
"theme.ErrorPageContent.tryAgain": {
"message": "Попробуйте ещё раз",
"description": "The label of the button to try again rendering when the React error boundary captures an error"
},
"theme.common.skipToMainContent": {
"message": "Перейти к основному содержимому",
"description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
},
"theme.tags.tagsPageTitle": {
"message": "Теги",
"description": "The title of the tag list page"
}
}

View file

@ -0,0 +1,14 @@
{
"title": {
"message": "Blog",
"description": "The title for the blog used in SEO"
},
"description": {
"message": "Blog",
"description": "The description for the blog used in SEO"
},
"sidebar.title": {
"message": "Recent posts",
"description": "The label for the left sidebar"
}
}

View file

@ -0,0 +1,30 @@
{
"version.label": {
"message": "Next",
"description": "The label for version current"
},
"sidebar.tutorialSidebar.category.Build A Box": {
"message": "Build A Box",
"description": "The label for category 'Build A Box' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.Raspberry Pi": {
"message": "Raspberry Pi",
"description": "The label for category 'Raspberry Pi' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.Services": {
"message": "Services",
"description": "The label for category 'Services' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.Content Packs": {
"message": "Content Packs",
"description": "The label for category 'Content Packs' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.Apps": {
"message": "Apps",
"description": "The label for category 'Apps' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.FAQ": {
"message": "FAQ",
"description": "The label for category 'FAQ' in sidebar 'tutorialSidebar'"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 641 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 641 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

View file

@ -0,0 +1,24 @@
---
title: "Сборка Butter Box"
nav_order: 3
has_children: true
permalink: /build-a-box/
---
# Сборка Butter Box
Ещё нет Butter Box? Вы можете легко собрать своё устройство. Выберите конфигурацию, чтобы начать.
## Конфигурации Butter Box
Программное обеспечение Butter Box в настоящее время работает на устройствах Raspberry Pi: Pi Zero 2 и Pi 4. Вы можете использовать любое из них. Подробности в сравнительной таблице ниже.
| Устройство | Ёмкость | Комплектующие |
| -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------- |
| <strong>Базовая</strong> Raspberry Pi Zero Pi 2<br/><br/><a href="raspberry-pi/basic-box-supplies.mdx">Начать</a> | До 10 человек, на расстоянии около 10 метров | [Список комплектующих](raspberry-pi/basic-box-supplies.mdx) |
| <strong>Расширенная</strong> Raspberry Pi 4 в связке с роутером<br/><br/><a href="raspberry-pi/extend-your-box.mdx">Начать</a> | До 20 человек, на расстоянии около 30 метров при использовании с роутером | [Список комплектующих](raspberry-pi/extend-your-box.mdx) |
| ПК/Ноутбук (amd64) | _Скоро будет_ | _Скоро будет_ |
Мы также изготавливаем и отправляем Butter Box партнёрам по всему миру.
Если вы работаете с сообществом, которому это может быть полезно, мы будем рады сотрудничеству.

View file

@ -0,0 +1,8 @@
---
title: "ПК/Ноутбук"
nav_order: 2
parent: "Сборка Butter Box"
---
# ПК/Ноутбук

View file

@ -0,0 +1,19 @@
---
title: "Источник питания"
nav_order: 3
parent: "Сборка Butter Box"
---
# Источник питания
Если вы хотите, чтобы Butter Box работал полностью автономно и без электричества — это возможно!
Butter Box может работать от розетки, от предварительно заряженного аккумулятора или от аккумулятора с солнечной панелью.
* **Розетка:** Официальный и рекомендуемый блок питания для компьютеров Raspberry Pi (зависит от используемой модели Raspberry Pi)
* **Предварительно заряженный аккумулятор (Power Bank):** Это наиболее распространённый вариант для использования в полевых условиях.
* Портативное зарядное устройство Anker [power bank](https://www.ozon.ru/product/zaryadnoe-ustroystvo-anker-nano-charger-45w-chernyy-a2692l11-3298658513/),
[power bank](https://aliexpress.ru/item/1005011864808436.html)
* **Солнечная панель (с Power Bank):** Используйте небольшую солнечную панель для подзарядки вашего power bank. Это хороший вариант для непрерывной работы устройства в местах без электросети. Использование солнечной панели напрямую без аккумулятора возможно, но нестабильно при переменной облачности.
* Комплекты солнечных панелей: [ozon.ru](https://www.ozon.ru/search/?text=%D0%A1%D0%BE%D0%BB%D0%BD%D0%B5%D1%87%D0%BD%D0%B0%D1%8F+%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D1%8C+%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BD%D0%B0%D1%8F&from_global=true)
<figure><img src="../.gitbook/assets/Screenshot 2025-07-31 at 10.55.41 PM.png" alt=""/><figcaption></figcaption></figure>

View file

@ -0,0 +1,36 @@
---
title: "Основные комплектующие"
nav_order: 1
parent: "Raspberry Pi"
grand_parent: "Сборка Butter Box"
---
# Основные комплектующие
Базовая конфигурация Butter Box — это Raspberry Pi Zero 2 W с картой microSD, на которой установлено программное обеспечение Butter, USB-накопитель и питание от USB-источника, такого как блок питания, power bank или солнечная панель.
В большинстве таких конфигураций Butter Box может комфортно обслуживать **от 4 до 10 подключённых устройств одновременно** без замедления. Возможно подключить и больше, но производительность может снизиться, если все одновременно загружают большие файлы или видео.
Радиус действия составляет около **510 метров** в помещении, в зависимости от модели Raspberry Pi, а также от стен и помех. На открытом воздухе, на открытом пространстве, он иногда может быть больше. Представьте себе радиус действия домашнего Wi-Fi роутера — достаточно, чтобы покрыть класс, кафе, переговорную комнату или небольшое мероприятие на открытом воздухе.
## Комплектующие
* [ ] Raspberry Pi Zero 2W (64 Bit) [ozon.ru/product/raspberry-pi-zero-2-w-c-wifi-i-bluetooth-mikrokompyuter-rasberi-malina-1069765865](https://ozon.ru/product/raspberry-pi-zero-2-w-c-wifi-i-bluetooth-mikrokompyuter-rasberi-malina-1069765865); Или вы можете купить комплект здесь: [ozon.ru/product/kompyuter-v-sborke-2136359684](https://ozon.ru/product/kompyuter-v-sborke-2136359684)
* [ ] Блок питания с кабелем, входящие в комплект Raspberry Pi Zero 2W, или [альтернативный источник питания](../power-supply.mdx)
* [ ] Карта Micro SD: Образы с программным обеспечением Butter обычно занимают менее 16 ГБ (мы рекомендуем 256 ГБ). Медиафайлы, которые люди загружают в чат, сохраняются на карте; они никогда не удаляются.
* [ ] USB-накопитель (минимум 32 ГБ)
* [ ] Адаптеры (по необходимости)
* [ ] Micro USB/штекер на USB A/гнездо
* [ ] Переходник для подключения карты micro SD к вашему ноутбуку (если необходимо)
**Когда у вас будут все комплектующие, переходите к разделу «Установка Butter».**
[install-butter.md](install-butter.mdx)
![](../../assets/images/20250815_142828.jpg)

View file

@ -0,0 +1,64 @@
---
title: "Апгрейд Butter Box"
nav_order: 3
parent: "Raspberry Pi"
grand_parent: "Сборка Butter Box"
---
# Апгрейд Butter Box
Butter Box с увеличенным радиусом действия объединяет Raspberry Pi с отдельным Wi-Fi маршрутизатором, обеспечивая более сильный сигнал и большее количество одновременных подключений.
С маршрутизатором сеть может охватывать 10-30 м и комфортно поддерживать 1020 подключённых устройств одновременно. Эта конфигурация идеально подходит для средней группы людей в помещении среднего размера, например, в учебных классах, на мероприятиях или в общественных пространствах.
## Необходимые материалы
* [ ] Raspberry Pi 4, 5 или Raspberry Pi Zero 2W
* [ ] Маршрутизатор ([Opal (GL-SFT1200) Wireless Travel Router](https://store-us.gl-inet.com/products/united-states-opal-gl-sft1200-gigabit-wireless-router-dual-band-openwrt-ipv6-tor) или аналог)
* [ ] Блок питания и кабели питания для Raspberry Pi и маршрутизатора или [альтернативный источник питания](../power-supply.mdx)
* [ ] Карта Micro SD: образы с программным обеспечением Butter обычно занимают менее 16 ГБ (мы рекомендуем Micro SD карту 256 ГБ). Медиафайлы, которые пользователи загружают в чат, сохраняются на карте и никогда не удаляются.
* [ ] USB-накопитель (минимум 32 ГБ)
* [ ] Адаптеры (при необходимости)
одключение к интернету не требуется._
![](../../assets/images/20250815_142438.jpg)
## Шаги
Чтобы увиличить радиус действия вашего Butter Box, просто подключите маршрутизатор GLi-Net к Butter Box с помощью кабеля Ethernet. Вместо доступа к коробке через портальную точку доступа Wi-Fi (например, butter box или любое имя, которое вы задали в настройках администратора), пользователи будут подключаться к сети Wi-Fi маршрутизатора.
### Подключите Butter Box к источнику питания.
Подключите Butter Box к питанию.
---
### Подключите маршрутизатор
Подключите маршрутизатор к питанию. Затем используйте кабель Ethernet для подключения к Butter Box. Убедитесь, что кабель Ethernet подключён к порту LAN на вашем маршрутизаторе.
---
### Проверьте подключение
Подключитесь к Wi-Fi маршрутизатора. Если вы ещё не настраивали и не использовали этот маршрутизатор, введите пароль по умолчанию, указанный в руководстве пользователя, входящем в комплект. Через 30 секунд откройте http://butterbox.local в браузере.
---
### Отключите точку доступа Wi-Fi Butter Box
Откройте настройки администратора на портале Butter Box. Перейдите в раздел **Безопасный портал**. Отключите точку доступа Wi-Fi. Это скроет сеть Wi-Fi, транслируемую Raspberry Pi, чтобы пользователи не путались, к какой сети подключаться.
---
### Пригласите пользователей подключиться к Wi-Fi маршрутизатора
Теперь пользователи будут подключаться к сети Wi-Fi маршрутизатора, когда захотят подключиться к Butter Box.

View file

@ -0,0 +1,10 @@
---
title: "Raspberry Pi"
nav_order: 1
parent: "Сборка Butter Box"
has_children: true
permalink: /build-a-box/raspberry-pi/
---
# Raspberry Pi

View file

@ -0,0 +1,112 @@
---
title: "Установка Butter"
nav_order: 2
parent: "Raspberry Pi"
grand_parent: "Сборка Butter Box"
---
# Установка Butter
Вам понадобится:
* Настольный компьютер
* Подключение к интернету
* Butter Box
### Скачайте Butter OS для Raspberry Pi
Убедитесь, что размер файла совпадает с размером, указанным на сайте. Иногда браузеры не завершают загрузку, что может привести к повреждению файла.
[https://www.dropbox.com/scl/fo/helpqh3q2oj7ti2ia038m/h?dl=0.&rlkey=cswt4w4zksiuj3eb1oca48yw0](https://www.dropbox.com/scl/fo/helpqh3q2oj7ti2ia038m/h?dl=0.&rlkey=cswt4w4zksiuj3eb1oca48yw0)
> **Информация:**
> Всегда выбирайте последнюю версию файла.
---
### Вставьте карту micro SD в компьютер
Чтобы вставить карту micro SD в компьютер, вам может понадобиться адаптер:
![Пример адаптера (USB-C к Micro SD)](../../assets/images/image.png)
> **Информация:**
> Подключать коробку к компьютеру не нужно.
---
### Запустите Raspberry Pi Imager
После того как вы вставили карту micro SD в компьютер с подключением к интернету, запустите Raspberry Pi Imager на настольном компьютере. Программа проведёт вас через шаги установки операционной системы Butter на карту micro SD.
Если у вас нет Raspberry Pi Imager, вы можете скачать его здесь: [https://www.raspberrypi.com/software/](https://www.raspberrypi.com/software/)
---
### Выберите устройство > **Raspberry Pi Zero 2 W**
После запуска Raspberry Pi Imager вам будет предложено выбрать устройство Raspberry Pi.
<img src="../../.gitbook/assets/Screenshot 2026-02-24 at 9.56.27AM.png" alt=""/>
<p>Выберите Raspberry Pi Zero 2 W (или другое устройство, если у вас не стандартная коробка от Butter HQ)</p>
---
### Выберите операционную систему > Use Custom
* На вкладке ОС выберите **Use Custom** и загрузите файл butter-******.img Убедитесь, что вы **распаковали файл xz** перед использованием.
<figure><img src="../../.gitbook/assets/Screenshot 2026-02-24 at 9.57.31AM.png" alt=""/><figcaption><p>Выберите «Use Custom». Выберите файл .img, который скачали с Dropbox.</p></figcaption></figure>
---
### Выберите хранилище > Выберите карту Micro SD
* На вкладке **Хранилище** выберите **карту Micro SD.**
<figure><img src="../../.gitbook/assets/Screenshot 2026-02-24 at 1.27.37PM.png" alt=""/><figcaption><p>Выберите карту Micro SD.</p></figcaption></figure>
После того как вы всё выбрали, ваш экран будет выглядеть примерно так:
<figure><img src="../../.gitbook/assets/Screenshot 2026-02-24 at 1.27.43PM.png" alt=""/><figcaption><p>Финальный экран после выбора.</p></figcaption></figure>
Вам может быть показано сообщение _«Doing this will erase all data from selected external storage»_ и _«do you want to apply settings?»_, нажмите _«no, clear settings»_.
После этого выберите _«write»_ и начните процесс записи на карту Micro SD.
---
### Извлеките из компьютера и вставьте карту Micro SD в Raspberry Pi (Butter Box)
По завершении извлеките карту Micro SD. Вставьте карту Micro SD в Raspberry Pi (Butter Box), который не подключён к питанию.
---
### Перейдите к быстрому старту
Подключите Raspberry Pi (Butter Box) к питанию. Подождите несколько мгновений и подключитесь к порталу Butter Box. Перейдите в раздел [Быстрый старт](../../quick-start.mdx) для получения дополнительной информации.
---
**Если вы собираете улучшенный Butter Box (с увеличенным радиусом действия), перейдите к следующему разделу: Апгрейд Butter Box.**
[extend-your-box.md](extend-your-box.mdx)
### Устранение неполадок
Если вы видите ошибку, указывающую, что входной файл не является допустимым образом диска, проверьте скачанный файл.
Убедитесь, что размер файла совпадает с размером, указанным на сайте. Иногда браузеры не завершают загрузку, что может привести к повреждению файла.
Также убедитесь, что вы **распаковали файл** перед использованием.
<figure><img src="../../.gitbook/assets/Screenshot 2026-02-24 at 1.28.37PM.png" alt=""/><figcaption></figcaption></figure>

View file

@ -0,0 +1,20 @@
---
title: "Примеры использования"
nav_order: 9
---
# Примеры использования
### 1. Тренинги по цифровой безопасности для распространения приложений и материалов
> Лидеры из стран Южной Африки путешествуют для проведения тренингов, аудитов и консультаций для организаций по вопросам цифровой безопасности, физической безопасности, оценки рисков, а также для оснащения журналистов, активистов и правозащитников инструментами и знаниями для более безопасного выполнения их работы. Для эффективной работы этим лидерам необходима возможность подбирать определённые типы контента для различных сценариев использования, в разных контекстах и на разных языках и в разных форматах. В офлайн-ситуациях (отключения электричества, отсутствие доступа к интернету или во время отключений интернета) возможность успешно проводить тренинги и доставлять контент становится практически невозможной. \
> \
> Они неоднократно отмечали, что если бы у них не было Butter Box, некоторые сессии пришлось бы отменить.
### 2. Обмен файлами и резервное копирование медиа
> Часто М. хочет поделиться музыкальными и видеофайлами, которые они загрузили на свой компьютер, с друзьями — но передача через кабели или Bluetooth — это мучение. Поэтому они настроили Butter Box со своей медиаколлекцией — музыкальные файлы, фильмы и фотографии. Они подключили его рядом с кухней, и теперь любой в их квартире может подключиться к Wi-Fi Butter и просматривать общую медиатеку. Интернет не нужен, и больше никаких поштучных передач файлов.
### 3. Временное хранение файлов
> На удалённом объекте без сотовой связи рабочим нужен был способ временно выгрузить большие файлы — например, фотографии объекта или документы — со своих телефонов. Используя локальную зашифрованную доску сообщений Butter Box, они отправляли файлы себе или коллегам на хранение. Файлы оставались на устройстве до их получения позже, даже без питания или сигнала.

View file

@ -0,0 +1,9 @@
---
title: "Приложения"
nav_order: 2
parent: "Наборы контента"
---
# Приложения
Если вы назовёте папку `appstore` и поместите её в корневую директорию USB-накопителя, на портале Butter Box появится иконка **Приложения**.

View file

@ -0,0 +1,50 @@
---
title: "Наборы контента"
nav_order: 5
has_children: true
permalink: /content-packs/
---
# Наборы контента
Вы можете создать свой собственный набор контента! Его просто нужно оформить как **статический сайт с локальными ссылками**. Этот сайт будет работать непосредственно с устройства, поэтому все изображения и файлы, необходимые для сайта, должны находиться в одной главной папке.
Когда ваш статический сайт будет готов, поместите все необходимые файлы в одну папку и разместите эту папку в **корневой директории** вашего USB-накопителя. Этот сайт будет отображаться в браузере, через который пользователи получают доступ к порталу Butter Box.
Советы по созданию набора контента со статическим сайтом:
* **Содержимое.** Всё для статического сайта должно храниться на USB-накопителе, подключённом к Butter Box. Сайт не должен ссылаться на ресурсы в глобальном интернете.
* **Размер.** Размер вашего набора контента ограничен доступным пространством на USB-накопителе. При этом учитывайте, что если несколько человек одновременно скачивают или просматривают очень большие файлы с устройства, возможны задержки.
* **Страницы.** Ссылки между страницами должны вести на другие сохранённые страницы в той же папке, а не в интернет. Необходимо использовать относительные пути (например, about/index.html) вместо абсолютных веб-URL.
* **Медиа.** Изображения, видео и звуки не могут ссылаться на онлайн-ресурсы. Файлы должны находиться в папке вашего сайта и храниться на USB-накопителе.
* **Библиотеки.** Сайт не может использовать JavaScript-библиотеки, которые зависят от интернет-соединения.
* **Стили.** Специальные шрифты и иконки (например, из Google Fonts) также должны находиться в папке, а не загружаться из сети.
### Попробуйте
* Приведённый ниже zip-файл содержит пример статического сайта. Чтобы понять, как статические сайты работают с Butter — скачайте его. Распакуйте. Затем добавьте этот набор файлов на ваш USB-накопитель.
[Скачать файл](/img/docs/Sample%20Static%20Website.zip)
### Начните работу
Лучший способ начать создание собственного набора контента — это определиться с идеей о том, какой опыт и какую информацию вы хотите предоставить, а затем спроектировать и создать для этого локальный статический сайт.
Это может быть что-то очень простое, например, аудиоплеер для музыки. Или список из пяти лучших VPN-приложений, которые вы рекомендуете. Или например библиотека, база знаний культурных артефактов.
### Добавьте файлы сайта на USB-накопитель
Поместите папку с файлами сайта в **корневую директорию** USB-накопителя. Убедитесь, что папка вашего сайта содержит файл **index.html.** Название этой папки будет отображаться на портале Butter Box.
<figure><img src="/assets/images/Screenshot 2025-08-16 at 9.46.16 PM.png" alt=""/><figcaption><p>Директория USB при просмотре в Finder на компьютере</p></figcaption></figure>
---
### Подключитесь к Butter Box для просмотра
Вставьте USB-накопитель в Butter Box. Когда вы откроете портал Butter Box, нажмите **Файлы**. Перейдите в папку сайта. Нажмите для просмотра.

Some files were not shown because too many files have changed in this diff Show more