From 659ca38d6edd6ea303e0101c10350fc1be07c306 Mon Sep 17 00:00:00 2001 From: Matt Hill Date: Wed, 23 Feb 2022 15:58:41 -0700 Subject: [PATCH 1/4] a bunch of changes --- site/source/_static/logo.png | Bin 207797 -> 13371 bytes site/source/conf.py | 2 +- site/source/diy.rst | 86 ++++++++++ site/source/index.rst | 7 +- site/source/learn/concepts/embassy.rst | 4 +- site/source/learn/concepts/networks.rst | 4 +- site/source/support/faq/faq-general.rst | 2 +- .../support/faq/faq-troubleshooting.rst | 2 +- .../troubleshooting/shoot-connection.rst | 2 +- site/source/user-manual/alt-marketplaces.rst | 12 +- .../user-manual/backups/backup-create.rst | 51 +++--- .../user-manual/backups/backup-restore.rst | 19 +-- .../backups/cifs-setup/cifs-linux.rst | 8 +- .../backups/cifs-setup/cifs-mac.rst | 8 +- .../backups/cifs-setup/cifs-synology.rst | 19 +-- .../backups/cifs-setup/cifs-windows.rst | 8 +- .../user-manual/backups/cifs-setup/index.rst | 16 +- site/source/user-manual/backups/index.rst | 4 +- .../connecting/connecting-lan/index.rst | 50 ++++++ .../connecting-lan/lan-browser/index.rst | 17 ++ .../connecting-lan/lan-browser/lan-brave.rst | 33 ++++ .../connecting-lan/lan-browser/lan-chrome.rst | 33 ++++ .../connecting-lan/lan-browser/lan-ff.rst | 48 ++++++ .../connecting-lan/lan-browser/lan-safari.rst | 7 + .../connecting-lan/lan-os/index.rst | 16 ++ .../connecting-lan/lan-os/lan-android.rst | 13 ++ .../connecting-lan/lan-os/lan-ios.rst | 31 ++++ .../connecting-lan/lan-os/lan-linux.rst | 7 + .../connecting-lan/lan-os/lan-mac.rst | 35 ++++ .../lan-os/lan-windows.rst | 28 +--- .../connecting/connecting-tor/index.rst | 42 +++++ .../tor-firefox/index.rst | 12 +- .../tor-firefox/torff-android.rst | 6 +- .../tor-firefox/torff-ios.rst | 6 +- .../tor-firefox/torff-linux.rst | 8 +- .../tor-firefox/torff-mac.rst | 8 +- .../tor-firefox/torff-windows.rst | 52 ++++++ .../tor-os/index.rst | 16 +- .../tor-os/tor-android.rst | 6 +- .../connecting-tor/tor-os/tor-ios.rst | 7 + .../tor-os/tor-linux.rst | 6 +- .../tor-os/tor-mac.rst | 6 +- .../tor-os/tor-windows.rst | 6 +- site/source/user-manual/connecting/index.rst | 16 +- .../connecting/lan-setup/index.rst | 13 -- .../lan-setup/lan-browser/index.rst | 17 -- .../lan-setup/lan-browser/lan-brave.rst | 46 ------ .../lan-setup/lan-browser/lan-chrome.rst | 49 ------ .../lan-setup/lan-browser/lan-ff.rst | 39 ----- .../lan-setup/lan-browser/lan-safari.rst | 7 - .../connecting/lan-setup/lan-os/index.rst | 16 -- .../lan-setup/lan-os/lan-android.rst | 33 ---- .../connecting/lan-setup/lan-os/lan-ios.rst | 75 --------- .../connecting/lan-setup/lan-os/lan-linux.rst | 25 --- .../connecting/lan-setup/lan-os/lan-mac.rst | 55 ------ .../connecting/tor-setup/index.rst | 13 -- .../tor-setup/tor-firefox/torff-windows.rst | 53 ------ .../connecting/tor-setup/tor-os/tor-ios.rst | 7 - site/source/user-manual/customize.rst | 22 +-- .../source/user-manual/dashboard-overview.rst | 71 ++++---- .../user-manual/device-guides/dg-android.rst | 6 +- .../user-manual/device-guides/dg-ios.rst | 2 +- .../user-manual/device-guides/dg-linux.rst | 7 +- .../user-manual/device-guides/dg-mac.rst | 8 +- .../user-manual/device-guides/dg-windows.rst | 8 +- site/source/user-manual/diy.rst | 101 ------------ site/source/user-manual/forgot-password.rst | 19 +-- site/source/user-manual/index.rst | 6 +- site/source/user-manual/initial-setup.rst | 105 ++++++------ site/source/user-manual/managing-services.rst | 156 ++++++++++++++++++ .../user-manual/managing-services/index.rst | 20 --- .../managing-services/service-actions.rst | 27 --- .../managing-services/service-config.rst | 27 --- .../managing-services/service-install.rst | 32 ---- .../service-instructions.rst | 17 -- .../managing-services/service-interfaces.rst | 15 -- .../managing-services/service-logs.rst | 12 -- .../managing-services/service-overview.rst | 32 ---- .../managing-services/service-properties.rst | 20 --- .../managing-services/service-updates.rst | 9 - site/source/user-manual/recover-03.rst | 57 ------- site/source/user-manual/sessions.rst | 14 +- site/source/user-manual/ssh.rst | 68 ++++---- site/source/user-manual/updating.rst | 72 +++++--- .../{migrate-02.rst => upgrade-02.rst} | 28 ++-- site/source/user-manual/wifi.rst | 16 +- 86 files changed, 979 insertions(+), 1215 deletions(-) create mode 100644 site/source/diy.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/index.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/lan-browser/index.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/lan-browser/lan-brave.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/lan-browser/lan-chrome.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/lan-browser/lan-ff.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/lan-browser/lan-safari.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/lan-os/index.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/lan-os/lan-android.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/lan-os/lan-ios.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/lan-os/lan-linux.rst create mode 100644 site/source/user-manual/connecting/connecting-lan/lan-os/lan-mac.rst rename site/source/user-manual/connecting/{lan-setup => connecting-lan}/lan-os/lan-windows.rst (81%) create mode 100644 site/source/user-manual/connecting/connecting-tor/index.rst rename site/source/user-manual/connecting/{tor-setup => connecting-tor}/tor-firefox/index.rst (69%) rename site/source/user-manual/connecting/{tor-setup => connecting-tor}/tor-firefox/torff-android.rst (95%) rename site/source/user-manual/connecting/{tor-setup => connecting-tor}/tor-firefox/torff-ios.rst (67%) rename site/source/user-manual/connecting/{tor-setup => connecting-tor}/tor-firefox/torff-linux.rst (87%) rename site/source/user-manual/connecting/{tor-setup => connecting-tor}/tor-firefox/torff-mac.rst (88%) create mode 100644 site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-windows.rst rename site/source/user-manual/connecting/{tor-setup => connecting-tor}/tor-os/index.rst (58%) rename site/source/user-manual/connecting/{tor-setup => connecting-tor}/tor-os/tor-android.rst (97%) create mode 100644 site/source/user-manual/connecting/connecting-tor/tor-os/tor-ios.rst rename site/source/user-manual/connecting/{tor-setup => connecting-tor}/tor-os/tor-linux.rst (97%) rename site/source/user-manual/connecting/{tor-setup => connecting-tor}/tor-os/tor-mac.rst (97%) rename site/source/user-manual/connecting/{tor-setup => connecting-tor}/tor-os/tor-windows.rst (97%) delete mode 100644 site/source/user-manual/connecting/lan-setup/index.rst delete mode 100644 site/source/user-manual/connecting/lan-setup/lan-browser/index.rst delete mode 100644 site/source/user-manual/connecting/lan-setup/lan-browser/lan-brave.rst delete mode 100644 site/source/user-manual/connecting/lan-setup/lan-browser/lan-chrome.rst delete mode 100644 site/source/user-manual/connecting/lan-setup/lan-browser/lan-ff.rst delete mode 100644 site/source/user-manual/connecting/lan-setup/lan-browser/lan-safari.rst delete mode 100644 site/source/user-manual/connecting/lan-setup/lan-os/index.rst delete mode 100644 site/source/user-manual/connecting/lan-setup/lan-os/lan-android.rst delete mode 100644 site/source/user-manual/connecting/lan-setup/lan-os/lan-ios.rst delete mode 100644 site/source/user-manual/connecting/lan-setup/lan-os/lan-linux.rst delete mode 100644 site/source/user-manual/connecting/lan-setup/lan-os/lan-mac.rst delete mode 100644 site/source/user-manual/connecting/tor-setup/index.rst delete mode 100644 site/source/user-manual/connecting/tor-setup/tor-firefox/torff-windows.rst delete mode 100644 site/source/user-manual/connecting/tor-setup/tor-os/tor-ios.rst delete mode 100644 site/source/user-manual/diy.rst create mode 100644 site/source/user-manual/managing-services.rst delete mode 100644 site/source/user-manual/managing-services/index.rst delete mode 100644 site/source/user-manual/managing-services/service-actions.rst delete mode 100644 site/source/user-manual/managing-services/service-config.rst delete mode 100644 site/source/user-manual/managing-services/service-install.rst delete mode 100644 site/source/user-manual/managing-services/service-instructions.rst delete mode 100644 site/source/user-manual/managing-services/service-interfaces.rst delete mode 100644 site/source/user-manual/managing-services/service-logs.rst delete mode 100644 site/source/user-manual/managing-services/service-overview.rst delete mode 100644 site/source/user-manual/managing-services/service-properties.rst delete mode 100644 site/source/user-manual/managing-services/service-updates.rst delete mode 100644 site/source/user-manual/recover-03.rst rename site/source/user-manual/{migrate-02.rst => upgrade-02.rst} (91%) diff --git a/site/source/_static/logo.png b/site/source/_static/logo.png index 63e10bd3d72bb796b05ccba4943c7d0c75c4f240..0d0382a8cf1fb056f907e480a495101e0bd83ba1 100644 GIT binary patch literal 13371 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 literal 207797 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 DK*q>$p# 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

{<^`CBXPPGo#|5=0IV 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≥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

q_7 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 O1R)xl8lZYkA^!oN#HrT+ diff --git a/site/source/conf.py b/site/source/conf.py index 04156d2..d5bfc81 100644 --- a/site/source/conf.py +++ b/site/source/conf.py @@ -95,7 +95,7 @@ html_theme_options = { "conf_py_path": "site/source/", "banner_button_text": "Learn more", "banner_button_url": "https://docs.start9.com/latest", - "banner_title_text": "EmbassyOS 0.3.0 is now released 🥳", + "banner_title_text": "EmbassyOS 0.3.0 is now available 🥳", "hide_banner": "false", "hide_edit_this_page_button": "false", "hide_sidebar_index": "true", diff --git a/site/source/diy.rst b/site/source/diy.rst new file mode 100644 index 0000000..254462f --- /dev/null +++ b/site/source/diy.rst @@ -0,0 +1,86 @@ +.. _diy: + +========= +DIY Guide +========= + +.. figure:: /_static/images/diy/pi.png + :width: 40% + :alt: Raspberry Pi + + Raspberry Pi Board + +By popular demand, we are pleased to present this "Do it Yourself" (DIY) guide for the Start9 Embassy personal server! + +Motivation +---------- + +There are several reasons you might prefer to build your own Embassy instead of purchasing one from us: + + #. You already own the necessary hardware and would like to re-purpose it. + #. You live outside the US and want to save on shipping costs. + #. You do not trust Start9's supply chain. + #. You do not want to share your shipping address. + #. You just like building things. + +Hardware +-------- + +The first thing you'll need to do is gather the hardware and assemble it. + +Parts +..... + +* `Raspberry Pi 4B (8GB) `_ +* `Power supply for Raspberry Pi 4B `_ Make sure this is at minimum 15w and 3.5a. +* Case for Raspberry Pi 4B (`passive cooling `_ is recommended). This means no moving parts and no noise. + + .. warning:: If you prefer to use a fan, **do not** use the official Raspberry Pi fan, as it requires the same GPIO pins as the audio speaker. Instead, we recommend `this fan `_. + +* A `16GB microSD card `_ (no need for bigger). +* `GPIO mini speaker/buzzer `_ (These often sell out, please let us know if this link needs to be refreshed) +* Ethernet cable +* MicroSD to USB adapter (or you may have a microSD port on your computer) +* SSD (minimum 1TB) that `connects over USB 3.0` This can be an `external drive `_, or an `internal drive `_ with an `USB enclosure `_. Currently the only tested and supported external drives are the Samsung T5 and T7 + +Assembly +........ + +#. Insert mini speaker/buzzer into GPIO pins 6/8/10/12 with the word "speaker" facing out, `away from the board`. + + .. figure:: /_static/images/diy/pins.png + :width: 60% + :alt: Speaker board spec + +#. Place the Raspberry Pi 4 board (with speaker attached), into its case. +#. Plug in the external drive to one of the USB 3.0 (blue) slots + +Getting EmbassyOS +----------------- + +After building your device, you need a copy of EmbassyOS. + +* **Purchasing from Start9** - You can purchase a copy of EmbassyOS `here `_. This is by far the easiest path to get up and running. + +* **Building from Source** - If you prefer to build EmbassyOS from source, Following `this guide `_. + +Installing EmbassyOS +-------------------- + +Whether you purchase EmbassyOS from us or build it yourself, you'll need to flash it onto a microSD card. + +#. Download `balenaEtcher `_ onto your Mac, Windows, or Linux computer. +#. Insert the microSD card into your computer, either directly or using an adapter. +#. Open balenaEtcher. + + .. figure:: /_static/images/diy/balena.png + :width: 60% + :alt: Balena Etcher Dashboard + +#. Click "Select Image" and select your downloaded copy of EmbassyOS. +#. Click "Select Target" and select your 16GB microSD card. + + .. warning:: Be certain you have selected the correct target microSD card. Whatever target you select will be completely erased and replaced with EmbassyOS. + +#. Click "Flash!". You may be asked to (1) approve the unusually large disk target or (2) enter your password. Both are normal. +#. After the flash completes, you may remove the micro SD, insert it into your Embassy, and continue to the :ref:`Initial Setup ` instructions. diff --git a/site/source/index.rst b/site/source/index.rst index 0eeca28..02cb923 100644 --- a/site/source/index.rst +++ b/site/source/index.rst @@ -10,7 +10,7 @@ :button_text: Purchase Embassy :image: /_static/img/eos_0.3.0.png - Here you will find information about Start9, EmbassyOS, and the era of sovereign computing. + Here you will find information about Start9, EmbassyOS, and the era of sovereign computing. Anyone can do it. No one can stop it. .. raw:: html @@ -33,7 +33,7 @@ .. topic-box:: :title: DIY - :link: user-manual/misc-guides/diy + :link: diy :icon: scylla-icon scylla-icon--integrations :class: large-4 :anchor: Get started @@ -116,6 +116,9 @@ :maxdepth: 3 :hidden: + Purchase + diy + Marketplace user-manual/index support/index learn/index diff --git a/site/source/learn/concepts/embassy.rst b/site/source/learn/concepts/embassy.rst index f57309a..315fd8f 100644 --- a/site/source/learn/concepts/embassy.rst +++ b/site/source/learn/concepts/embassy.rst @@ -38,7 +38,7 @@ The server-side software available on EmbassyOS are referred to as "Services." Session ------- -A session is simply a logged-in connection to your Embassy. You can view your :ref:`Active Sessions`, and kill one if you suspect it is not legitimate, or no longer use it. +A session is simply a logged-in connection to your Embassy. You can view your :ref:`Active Sessions`, and kill one if you suspect it is not legitimate, or no longer use it. .. _service-container: @@ -72,7 +72,7 @@ In EmbassyOS versions 0.2.x, each installed service received its own Tor hidden Certain services, such as Bitcoin, actually have multiple interfaces. Bitcoin has an RPC interface, a P2P interface, and could potentially even have a graphical interface, such as a dashboard displaying important node information. Using the same URL for these various interfaces is not only confusing, it could potentially pose a security vulnerability. For example, a user may want to share their P2P interface address with someone for peering but not want to give out their UI address, which is for private use only. -As such, EmbassyOS 0.3.0 permits services to have multiple interfaces, each receiving its own Tor address and/or LAN address. Users can then view and access all interfaces for a given service inside the new :ref:`Interfaces ` section of the service dashboard. +As such, EmbassyOS 0.3.0 permits services to have multiple interfaces, each receiving its own Tor address and/or LAN address. Users can then view and access all interfaces for a given service inside the "Interfaces" section of the service dashboard. .. _health-checks: diff --git a/site/source/learn/concepts/networks.rst b/site/source/learn/concepts/networks.rst index 2577477..829f9c3 100644 --- a/site/source/learn/concepts/networks.rst +++ b/site/source/learn/concepts/networks.rst @@ -14,7 +14,7 @@ Devices on a LAN are private and protected, such that only devices connected to Your Embassy hosts itself on the LAN and is reachable by visiting its ``embassy.local`` URL in the browser while also connected to the LAN. -.. note:: Any device connected to a LAN can inspect all communications on that LAN. To avoid snooping, your Embassy's LAN communications are encrypted using :ref:`ssl`, which requires :ref:`additional setup `. +.. note:: Any device connected to a LAN can inspect all communications on that LAN. To avoid snooping, your Embassy's LAN communications are encrypted using :ref:`ssl`, which requires :ref:`additional setup `. .. _lan-cert: @@ -50,7 +50,7 @@ We decided to have the Embassy act as a Certificate Authority. It creates a self When you setup SSL for your Embassy and device, the certificate communicates to the client (a browser) that the server (the Embassy) demonstrated ownership of the domain (the ``embassy-xxxxxxxx.local`` address) to the certificate authority (created on the Embassy) at the time of certificate issuance (during the setup process). The Embassy dashboard can then be accessed from a home network (LAN) using a secure HTTPS connection! -For more information on how to setup your devices to enable this feature visit :ref:`lan-setup`. +For more information on how to setup your devices to enable this feature visit :ref:`connecting-lan`. .. _tor: diff --git a/site/source/support/faq/faq-general.rst b/site/source/support/faq/faq-general.rst index bfc658e..0e8f1f4 100644 --- a/site/source/support/faq/faq-general.rst +++ b/site/source/support/faq/faq-general.rst @@ -62,7 +62,7 @@ It includes: * a custom application management layer, specialized for installing, running, and backing up .s9pk packaged services * a layer responsible for Embassy specific operations, such as Tor, Backups, and Notifications * a system of :ref:`Health Checks` for simple monitoring -* an SDK for developers, including an :ref:`Actions API` to simplify complex operations for the common user +* an SDK for developers, including an "Actions" API to simplify complex operations for the common user * and much, much more. Please see the corresponding :ref:`Concepts` section. The .s9pk extension is Start9's custom package format based on tar. It encompasses the necessary components to compress, host, and install a service on a Marketplace. diff --git a/site/source/support/faq/faq-troubleshooting.rst b/site/source/support/faq/faq-troubleshooting.rst index cea6c62..a49fd62 100644 --- a/site/source/support/faq/faq-troubleshooting.rst +++ b/site/source/support/faq/faq-troubleshooting.rst @@ -32,7 +32,7 @@ This is most likely a transient networking issue that will correct itself in a f 1. On Android/Orbot, the most common solution is to restart your Android device. -2. Access your Embassy over :ref:`LAN `, and restart it from the "Embassy" menu. +2. Access your Embassy over :ref:`LAN `, and restart it from the "Embassy" menu. 3. Restart your router. diff --git a/site/source/support/troubleshooting/shoot-connection.rst b/site/source/support/troubleshooting/shoot-connection.rst index 0711cb5..916a39e 100644 --- a/site/source/support/troubleshooting/shoot-connection.rst +++ b/site/source/support/troubleshooting/shoot-connection.rst @@ -12,7 +12,7 @@ If you still cannot connect, you can log into your router (the directions for wh I am unable to reach Embassy via it's ``embassy-xxxxxxxx.local`` (LAN) address ------------------------------------------------------------------------------ -Make sure you have successfully followed the :ref:`LAN Setup` instructions for your device. If you still cannot connect, make sure you are on the same network using the solution above. If you are able to visit your Embassy via its IP address, then something is wrong in your LAN Setup. Keep in mind that different devices have different methods of resolving ``.local`` addresses, and some devices, such as :ref:`Android`, lack the ability at an OS level. +Make sure you have successfully followed the :ref:`LAN Setup` instructions for your device. If you still cannot connect, make sure you are on the same network using the solution above. If you are able to visit your Embassy via its IP address, then something is wrong in your LAN Setup. Keep in mind that different devices have different methods of resolving ``.local`` addresses, and some devices, such as :ref:`Android`, lack the ability at an OS level. I am unable to reach Embassy via it's ``xxxxxxxxxxxxxxxxxx.onion`` (Tor) address -------------------------------------------------------------------------------- diff --git a/site/source/user-manual/alt-marketplaces.rst b/site/source/user-manual/alt-marketplaces.rst index bfa55df..cacf9d7 100644 --- a/site/source/user-manual/alt-marketplaces.rst +++ b/site/source/user-manual/alt-marketplaces.rst @@ -4,14 +4,12 @@ Alt Marketplaces ================ -It is critical to Start9's mission that Start9 NOT be a central point of failure. The Marketplace is a critical piece of infrastructure and therefore EmbassyOS supports accessing alternative marketplaces. +It is critical to Start9's mission that Start9 does **not** be a central point of failure. The Marketplace is a critical piece of infrastructure and therefore EmbassyOS supports accessing alternative marketplaces. -.. caution:: Start9 is not responsible for issues encountered when downloading services from alternative marketplaces, and cannot provide support for services that are not from our offical marketplace. Here be dragons!! +.. caution:: Start9 is not responsible for issues encountered when downloading services from alternative marketplaces, and cannot provide support for services that are not from our official marketplace. Here be dragons!! -.. note:: Currently this change will allow you to download services from a Marketplace of your choice. At this time, EmbassyOS updates on alternative Marketplaces are not supported. +.. note:: Currently this change will only permit the downloading of *services* from alternative marketplaces. EmbassyOS itself may only be obtained from Start9. -#. Go to Embassy -> Marketplace Settings +#. Go to *Embassy > Marketplace Settings*. -#. Click "Add Alternative Marketplace" and enter the URL of your desired Marketplace. You may connect immediately, or save for use later - -.. note:: Make sure you have the URL **EXACTLY CORRECT.** If you do not, your Embassy may crash. In this case, just reboot the device and try again. +#. Click "Add Alternative Marketplace" and enter the URL of your desired Marketplace. You may connect immediately, or save for later use. diff --git a/site/source/user-manual/backups/backup-create.rst b/site/source/user-manual/backups/backup-create.rst index 19d9751..3867395 100644 --- a/site/source/user-manual/backups/backup-create.rst +++ b/site/source/user-manual/backups/backup-create.rst @@ -1,44 +1,41 @@ .. _backup-create: -================ -Creating Backups -================ +============= +Backup Create +============= -There are 2 options for backing up your Embassy and service data: +Backing up your Embassy is easy and secure. Backups are encrypted with your master password. -1. Use a Shared Network Folder (recommended) on another device that connected to the same network as your Embassy, such as a laptop/desktop or external drive that is plugged into your laptop/desktop. -2. Use a physical drive, which must be externally powered or plugged into a powered USB hub. +Backup Using LAN Shared Folder +------------------------------ -LAN Backups ------------ +.. tip:: This is the recommended approach for creating backups. -This is the recommended approach for creating backups. +#. Follow instructions for creating a :ref:`LAN Shared Folder` on your laptop/desktop. -#. Follow instructions for creating a :ref:`Shared Network Folder` on your laptop/desktop. - -#. Go to the :ref:`Embassy tab`, then click on ``Create Backup``. +#. Go to *Embassy > Create Backup*. .. figure:: /_static/images/config/embassy_backup.png :width: 60% -#. Next, click on ``+ New Shared Folder`` to use your previously created backup folder. +#. Next, click on "New Shared Folder". .. figure:: /_static/images/config/embassy_backup0.png :width: 60% #. Fill in the following fields: - * Hostname - This is the hostname of the machine that your folder or drive is located on - * Path - This is the directory path to the shared folder. If you configured Samba yourself (Linux), this is the ``comment`` (name of the share in your samba config file) and not the path. + * Hostname - This is the hostname of the machine that your shared folder is located on + * Path - This is the directory path to the shared folder. If you configured Samba yourself (Linux), this is the "comment" (name of the share in your samba config file) and not the path. * Username - This is the user on the remote machine that you used to create the shared directory * Password - This is your user (from above) password .. figure:: /_static/images/config/embassy_backup1.png :width: 60% - Then click ``Save`` +#. Click "Save". -#. You will see a freshly created "cloud" backup location available, click it for options, and click ``Create Backup`` to begin. +#. You will see a freshly created "cloud" backup location available, click it, then click "Create Backup". .. figure:: /_static/images/config/embassy_backup2.png :width: 60% @@ -48,26 +45,28 @@ This is the recommended approach for creating backups. .. figure:: /_static/images/config/embassy_backup3.png :width: 60% -#. When the backup is complete you will be notified in the :ref:`Notifications tab`, and you will see the date and time of your most recent backup updated under ``Backups`` in the Embassy tab. +#. When the backup is complete you will receive a notification in the Notifications tab, and you will see the date and time of your most recent backup updated under "Backups" in the Embassy tab. .. figure:: /_static/images/config/embassy_backup4.png :width: 60% -Physical Backups ----------------- +Backup Using a Physical Drive +----------------------------- -You may use a drive by attaching to Embassy directly if you prefer. The recommended format at this time is ``exFAT``. +.. tip:: You can backup to a physical drive using the recommended method above, rather than plugging the drive directly into the Embassy, which can cause problems. .. caution:: If using the Raspberry Pi, you MUST use external power to attach a physical drive in order to prevent any data corruption due to power constraints. -#. First, go to ``Embassy`` -> ``Create Backup`` +#. Ensure your backup drive is properly formatted. The recommended format at this time is ``exFAT``. **Do not** use ``fat32``. + +#. If your drive is self-powered, you can plug it directly into your Embassy blue USB 3.0 slot. If not, first plug the drive into a powered USB hub, then plug the hub into your Embassy. Then you may power it up. + +#. Go to *Embassy > Create Backup* .. figure:: /_static/images/config/physical-backup0.png :width: 60% -#. Plug drive USB cable into Embassy. If your drive is self-powered, you can plug it directly into your Embassy USB 3.0 (blue) slot. If not, first plug the drive into a powered USB hub, then plug the hub into your Embassy USB 3.0 slot. Then you may power it up. - -#. Press ``Refresh`` in the top-right corner, and select your drive when it appears. +#. Select your drive. .. figure:: /_static/images/config/physical-backup1.png :width: 60% @@ -75,7 +74,7 @@ You may use a drive by attaching to Embassy directly if you prefer. The recomme .. figure:: /_static/images/config/physical-backup2.png :width: 60% -#. Enter your password to continue with the backup. +#. Enter your EmbassyOS master password. .. figure:: /_static/images/config/physical-backup3.png :width: 60% diff --git a/site/source/user-manual/backups/backup-restore.rst b/site/source/user-manual/backups/backup-restore.rst index b17feae..25c3e9d 100644 --- a/site/source/user-manual/backups/backup-restore.rst +++ b/site/source/user-manual/backups/backup-restore.rst @@ -1,30 +1,25 @@ .. _backup-restore: -=================== -Restore From Backup -=================== +============== +Backup Restore +============== -#. First, go to ``Embassy`` -> ``Restore From Backup``. +#. Go to *Embassy > Restore From Backup*. .. figure:: /_static/images/config/restore0.png :width: 60% -#. Select existing backup from either LAN or Physical. In this example, we'll select a LAN backup. +#. Select existing backup from either LAN or Physical. In this example, we'll select a LAN backup. .. figure:: /_static/images/config/restore1.png :width: 60% -#. Click ``Restore Backup`` and enter your Embassy password. +#. Click "Restore Backup" and enter your master password. .. figure:: /_static/images/config/restore2.png :width: 60% -#. Services that are available in the backup, and not already installed on your Embassy, will show in the following window. Select the service(s) you'd like to restore and click ``Restore Selected``. In the example, we'll be restoring 2 services from the available options. +#. Services that are available in the backup, and not already installed on your Embassy, will show in the following window. Select the service(s) you'd like to restore and click "Restore Selected". .. figure:: /_static/images/config/restore3.png :width: 60% - -#. That's it! The selected services will now install. After install, simply :ref:`configure` and start the service. - - .. figure:: /_static/images/config/restore4.png - :width: 60% diff --git a/site/source/user-manual/backups/cifs-setup/cifs-linux.rst b/site/source/user-manual/backups/cifs-setup/cifs-linux.rst index f9129f5..668ddfe 100644 --- a/site/source/user-manual/backups/cifs-setup/cifs-linux.rst +++ b/site/source/user-manual/backups/cifs-setup/cifs-linux.rst @@ -1,10 +1,8 @@ .. _cifs-linux: -===== -Linux -===== - -The following will guide you through the prerequisite configuration to backup to a Linux machine or an external drive that is attached to a Linux machine. +===================================== +Creating a LAN Shared Folder on Linux +===================================== .. tabs:: diff --git a/site/source/user-manual/backups/cifs-setup/cifs-mac.rst b/site/source/user-manual/backups/cifs-setup/cifs-mac.rst index ab690c0..83ef6aa 100644 --- a/site/source/user-manual/backups/cifs-setup/cifs-mac.rst +++ b/site/source/user-manual/backups/cifs-setup/cifs-mac.rst @@ -1,10 +1,8 @@ .. _cifs-mac: -=== -Mac -=== - -The following will guide you through the prerequisite configuration to backup to a Mac machine or an external drive that is attached to a Mac machine. +=================================== +Creating a LAN Shared Folder on Mac +=================================== #. Go to system settings diff --git a/site/source/user-manual/backups/cifs-setup/cifs-synology.rst b/site/source/user-manual/backups/cifs-setup/cifs-synology.rst index 54d06d1..86984e3 100644 --- a/site/source/user-manual/backups/cifs-setup/cifs-synology.rst +++ b/site/source/user-manual/backups/cifs-setup/cifs-synology.rst @@ -1,22 +1,17 @@ .. _cifs-synology: -======== -Synology -======== +======================================== +Creating a LAN Shared Folder on Synology +======================================== .. note:: This guide was created by a Start9 community member. This is not yet officially supported. Please report any feedback that may help improve the process. -The following will guide you through the prerequisite configuration to backup to a Synology NAS device. +#. In Synology UI, go to *Control Panel > Shared Folder* and select the folder you want to use. Click "Permissions" and make sure you have read/write permissions for the user you're going to be logging in as. Click "Save". -#. Go to the Synology UI > Control Panel > Shared Folder > select the folder you want to use > Permissions tab > make sure that you have read/write permissions for the user you're going to be logging in as > Save - -#. Then go to the Synology UI > Control Panel > File Services > SMB Tab > Click the SMB drop down button if it isn't already selected > Ensure that "Enable SMB service" is checked. +#. Back in Synology UI, go to *Control Panel > File Services > SMB* and click the SMB drop down button if it isn't already selected. Ensure that "Enable SMB service" is checked. .. note:: Under Advanced Settings on the same dropdown, "Min SMB protocol" was set to SMB2 and "Max SMB protocol set to SMB3" - this may or may not be necessary -#. On the same dropdown, under "Note" will be "PC (Windows Explorer): \". This DeviceAddressName is the "Hostname" within the Embassy New Shared Folder dialog, and note that it is case sensitive and that the \ have been removed. - -#. Go to Synology UI > File Station > navigate so that you can see the the desired destination folder > right click on it > Properties > General Tab, next to Location: will be an folder location of the format ///, the / portion (so without the volume label) is the "Path" within the Embassy New Shared Folder dialog. - -#. Fill in the Username and Password appropriately for the previously checked user. +#. In the same dropdown, under "Note" will be "PC (Windows Explorer): \". This DeviceAddressName is the "Hostname" within the Embassy New Shared Folder dialog, and note that it is case sensitive and that the \ have been removed. +#. Back in Synonogy UI, click "File Station" and navigate so that you can see the the desired destination folder. Right click the folder, then *Properties > General*. Next to "Location" will be a folder location of the format ///, the / portion (so without the volume label) is the "Path" within the Embassy New Shared Folder dialog. \ No newline at end of file diff --git a/site/source/user-manual/backups/cifs-setup/cifs-windows.rst b/site/source/user-manual/backups/cifs-setup/cifs-windows.rst index b02ebf5..73c2c5c 100644 --- a/site/source/user-manual/backups/cifs-setup/cifs-windows.rst +++ b/site/source/user-manual/backups/cifs-setup/cifs-windows.rst @@ -1,10 +1,8 @@ .. _cifs-windows: -======= -Windows -======= - -The following will guide you through the prerequisite configuration to backup to a Windows machine or an external drive that is attached to a Windows machine. +======================================= +Creating a LAN Shared Folder on Windows +======================================= #. Create a folder diff --git a/site/source/user-manual/backups/cifs-setup/index.rst b/site/source/user-manual/backups/cifs-setup/index.rst index e537931..b835eb4 100644 --- a/site/source/user-manual/backups/cifs-setup/index.rst +++ b/site/source/user-manual/backups/cifs-setup/index.rst @@ -1,15 +1,15 @@ .. _cifs-setup: -======================= -LAN Shared Folder Setup -======================= +============================ +Creating a LAN Shared Folder +============================ -Click your platform for detailed instructions on how to create a Shared Network Folder on your local network (:ref:`LAN`). +Click your platform for detailed instructions on how to create a LAN Shared Folder for creating backups. .. toctree:: :maxdepth: 2 - cifs-linux - cifs-mac - cifs-windows - cifs-synology + Linux + Mac + Windows + Synonogy diff --git a/site/source/user-manual/backups/index.rst b/site/source/user-manual/backups/index.rst index 9fef502..093e071 100644 --- a/site/source/user-manual/backups/index.rst +++ b/site/source/user-manual/backups/index.rst @@ -13,7 +13,7 @@ In addition to safekeeping of a good master password, maintaining good backups a

.. topic-box:: - :title: Create + :title: Create Backup :link: backup-create :icon: scylla-icon scylla-icon--memory-management :class: large-5 @@ -22,7 +22,7 @@ In addition to safekeeping of a good master password, maintaining good backups a Create an encrypted backup of Embassy. .. topic-box:: - :title: Restore + :title: Restore from Backup :link: backup-restore :icon: scylla-icon scylla-icon--comparison :class: large-5 diff --git a/site/source/user-manual/connecting/connecting-lan/index.rst b/site/source/user-manual/connecting/connecting-lan/index.rst new file mode 100644 index 0000000..85be29b --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/index.rst @@ -0,0 +1,50 @@ +.. _connecting-lan: + +=================== +Connecting Over LAN +=================== + +Whenever you are connected the same Local Area Network (LAN) as your Embassy (i.e. the same WiFi network), it is best to access your Embassy's LAN Address (.local URL). LAN connections are fast and secure and do not even require Internet access! + +.. note:: Your Embassy creates its own Certificate Authority (CA) to establish trust with client devices. + +Download Root CA +---------------- + +First, download your Embassy's Root CA. There are two way to accomplish this: + +Option 1 +........ + +Download it from html page you saved at the completion of :ref:`Initial Setup`. + +Option 2 +........ + +visit your Embassy over :ref:`Tor` and navigate to *Embassy > LAN*, then click "Download". + + .. figure:: /_static/images/ssl/embassy_lan_setup.png + :width: 60% + :alt: LAN setup menu item + +Trust Root CA +------------- + +First instruct your **operating system** to trust your Embassy's Root CA. + + .. toctree:: + :maxdepth: 2 + + lan-os/index + +Then instruct your **browser** to trust your Embassy's Root CA. + + .. toctree:: + :maxdepth: 2 + + lan-browser/index + +Access your Embassy LAN Address +------------------------------- + +With the Root CA downloaded and trusted by both your operating system and your browser, you can now visit your Embassy's LAN Address (.local URL) over secure https. Any service that offers a LAN URL will also be securely accessible! \ No newline at end of file diff --git a/site/source/user-manual/connecting/connecting-lan/lan-browser/index.rst b/site/source/user-manual/connecting/connecting-lan/lan-browser/index.rst new file mode 100644 index 0000000..7be8155 --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/lan-browser/index.rst @@ -0,0 +1,17 @@ +.. _lan-browser: + +================== +Trust CA - Browser +================== + +Instruct your **browser** to trust your Embassy's Root CA. + +.. caution:: You will first need to complete :ref:`lan-os` for your device before continuing. + +.. toctree:: + :maxdepth: 1 + + Firefox + Brave + Chrome + Safari diff --git a/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-brave.rst b/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-brave.rst new file mode 100644 index 0000000..c8287b7 --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-brave.rst @@ -0,0 +1,33 @@ +.. _lan-brave: + +========================= +Trust Embassy CA in Brave +========================= + +.. caution:: You will first need to complete :ref:`lan-os` for your device before continuing. + +#. Open a new tab in Brave and open to "Settings" from the top-right hamburger menu. + + .. figure:: /_static/images/ssl/browser/brave_settings.png + :width: 30% + :alt: Brave settings page + +#. On the left hand sidebar, select the "Security and Privacy" section, then the "Security" menu item. + + .. figure:: /_static/images/ssl/browser/brave_security.png + :width: 60% + :alt: Brave Security and Privacy settings + +#. At the bottom of the section, select "Manage Certificates". + + .. figure:: /_static/images/ssl/browser/brave_security_settings.png + :width: 60% + :alt: Brave Security settings page + +#. If you see "org-Start9" with a trusted “Embassy Local Root CA” listed under it, open a new tab to apply the certificate. If this does not work, quit and restart Brave. + +#. If you do not see "org-Start9" in the list, click "Import" and open the downloaded "Embassy Local Root CA.crt" file on your device. Check the box for "Trust this certificate for identifying websites" and click "OK". + + .. figure:: /_static/images/ssl/browser/brave_view_certs.png + :width: 60% + :alt: Brave Manage Certificates sub-menu on MacOS diff --git a/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-chrome.rst b/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-chrome.rst new file mode 100644 index 0000000..4d79552 --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-chrome.rst @@ -0,0 +1,33 @@ +.. _lan-chrome: + +============================= +Trusting Embassy CA in Chrome +============================= + +.. caution:: You will first need to complete :ref:`lan-os` for your device before continuing. + +.. tip:: The following guide also works with Chromium and Vivaldi. + +#. Open a new tab in Chrome and visit *chrome://settings/certificates* in the URL bar. + + .. figure:: /_static/images/ssl/browser/chrome_settings.png + :width: 60% + :alt: Chrome Certificates Settings page + +#. Click on the "Authorities" tab. + + .. figure:: /_static/images/ssl/browser/chrome_authorities.png + :width: 60% + :alt: Chrome Certificate Authorities page + +#. If you see "org-Start9" with a trusted “Embassy Local Root CA” listed under it, open a new tab to apply the certificate. If this does not work, quit and restart Chrome. + + .. figure:: /_static/images/ssl/browser/chrome_s9ca.png + :width: 60% + :alt: Start9 Certificate Authority + +#. If you do not see "org-Start9"in the list, click “Import” and open the downloaded "Embassy Local Root CA.crt" file on your device. Check the box for "Trust this certificate for identifying websites" and click "OK" + + .. figure:: /_static/images/ssl/browser/chrome_trust.png + :width: 60% + :alt: Trust the CA diff --git a/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-ff.rst b/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-ff.rst new file mode 100644 index 0000000..a3aeff3 --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-ff.rst @@ -0,0 +1,48 @@ +.. _lan-ff: + +============================== +Trusting Embassy CA in Firefox +============================== + +.. caution:: You will first need to complete :ref:`lan-os` for your device before continuing. + +Linux/Mac/Windows +----------------- + +#. Open Firefox and in a new tab select "Settings" from the right-hand hamburger menu: + + .. figure:: /_static/images/tor/os_ff_settings.png + :width: 30% + :alt: Firefox options screenshot + +#. Select “Privacy and Security” from the left hand navigation menu. + +#. Scroll all the way to the bottom of the page and select “View Certificates”. + + .. figure:: /_static/images/ssl/browser/firefox_security_settings.png + :width: 80% + :alt: Firefox security settings + +#. Select the "Authorities" tab from the "Certificate Manager". + +#. Click "Import" and open the downloaded "Embassy Local Root CA.crt" file on your device. + +#. When prompted, check "Trust this CA to identity websites" and select “OK”. + + .. figure:: /_static/images/ssl/browser/firefox_view_certs.png + :width: 80% + :alt: Firefox import cert + +#. Ensure the "Embassy Local Root CA" exists under "Start9 Labs". If it does not appear, you may need to close the Certificates pop-up and re-open to refresh the list. Then click “OK” to save. + +#. Open a new tab in Firefox to apply the changes. If this does not work, quit and restart Firefox. + +Android +------- + +#. To setup in Firefox Beta or Fennec, go to *Settings > About Firefox Beta* and tap the Firefox logo several times until it says "Debug menu enabled." Then return to *Settings > Secret Settings* and enable "Use third party CA certificates". + +iOS +--- + +No additional configuration for iOS is required. diff --git a/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-safari.rst b/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-safari.rst new file mode 100644 index 0000000..fdb1691 --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/lan-browser/lan-safari.rst @@ -0,0 +1,7 @@ +.. _lan-safari: + +============================= +Trusting Embassy CA In Safari +============================= + +Once you have completed the :ref:`lan-os` steps on your device, simply open a new tab to apply the changes. If this does not work, quit and restart Safari. You can now securely navigate to the LAN address for your Embassy! diff --git a/site/source/user-manual/connecting/connecting-lan/lan-os/index.rst b/site/source/user-manual/connecting/connecting-lan/lan-os/index.rst new file mode 100644 index 0000000..68e91d6 --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/lan-os/index.rst @@ -0,0 +1,16 @@ +.. _lan-os: + +============= +Trust CA - OS +============= + +Instruct your **operating system** to trust your Embassy's Root CA. + +.. toctree:: + :maxdepth: 2 + + Linux + Mac + Windows + Android/Graphene/Calyx + iOS diff --git a/site/source/user-manual/connecting/connecting-lan/lan-os/lan-android.rst b/site/source/user-manual/connecting/connecting-lan/lan-os/lan-android.rst new file mode 100644 index 0000000..b05765a --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/lan-os/lan-android.rst @@ -0,0 +1,13 @@ +.. _lan-android: + +============================== +Trusting Embassy CA on Android +============================== + +.. warning:: This is only possible on Android 12+, which is not yet available on Graphene/Calyx. + +#. On your Android device, go to *Settings > Security > Advanced > Encryption and Credentials > Install from Storage* and select your "Embassy Local Root CA" certificate. + + .. figure:: /_static/images/ssl/android/droidLAN0.png + :width: 30% + :alt: Install certificate diff --git a/site/source/user-manual/connecting/connecting-lan/lan-os/lan-ios.rst b/site/source/user-manual/connecting/connecting-lan/lan-os/lan-ios.rst new file mode 100644 index 0000000..f36b5d8 --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/lan-os/lan-ios.rst @@ -0,0 +1,31 @@ +.. _lan-ios: + +========================== +Trusting Embassy CA on iOS +========================== + +#. On your iOS device, go to *Settings > General > Profiles*. Under "Downloaded Profile", click "Embassy Local Root CA" + + .. figure:: /_static/images/ssl/ios/ssl_ipad_profiles.png + :width: 40% + :alt: Profiles + +#. Click "Install" + + .. tip:: You can safely click ``Yes`` for any warning prompts. + + .. figure:: /_static/images/ssl/ios/ssl_ipad_install_profile.png + :width: 40% + :alt: Install profile + +#. Next, navigate to *General > About > Certificate Trust Settings*. + + .. figure:: /_static/images/ssl/ios/ssl_ipad_cert_trust_settings.png + :width: 40% + :alt: Certificate trust settings + +#. Under "Enable full trust for root certificates", enable "Embassy Local Root CA". + + .. figure:: /_static/images/ssl/ios/ssl_ipad_cert_trust.png + :width: 40% + :alt: Enable full trust diff --git a/site/source/user-manual/connecting/connecting-lan/lan-os/lan-linux.rst b/site/source/user-manual/connecting/connecting-lan/lan-os/lan-linux.rst new file mode 100644 index 0000000..d012c82 --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/lan-os/lan-linux.rst @@ -0,0 +1,7 @@ +.. _lan-linux: + +============================ +Trusting Embassy CA on Linux +============================ + +Nothing specific needs to be configured for the Linux environment. diff --git a/site/source/user-manual/connecting/connecting-lan/lan-os/lan-mac.rst b/site/source/user-manual/connecting/connecting-lan/lan-os/lan-mac.rst new file mode 100644 index 0000000..bf83e53 --- /dev/null +++ b/site/source/user-manual/connecting/connecting-lan/lan-os/lan-mac.rst @@ -0,0 +1,35 @@ +.. _lan-mac: + +========================== +Trusting Embassy CA on Mac +========================== + +#. Locate your Embassy's Root CA, right click, then click *Open with > Keychain Access*. + + .. figure:: /_static/images/ssl/embassy_lan_setup1.png + :width: 60% + :alt: LAN setup prompt + +#. Enter your computer password when prompted. It will be imported into your mac's keychain. + + .. figure:: /_static/images/ssl/macos/certificate_untrusted.png + :width: 60% + :alt: Keychain access import menu + + .. note:: If the keychain console did not open, press "Command + spacebar" and type “Keychain Access”, and hit enter to open it. + +#. Navigate to the "System" tab on the left, find the certificate named "Embassy Local Root CA", and double click on this certificate. A second window will pop up. + +#. Open the "Trust" dropdown and select "Always Trust" from the dropdown next to "When using this certificate". + + .. figure:: /_static/images/ssl/macos/always_trust.png + :width: 60% + :alt: Keychain submenu + +#. Close this window and enter your password to apply the settings. + +#. The "Embassy Local Root CA" cert will now read "This certificate is marked as trusted for all users" in Keychain Access. + + .. figure:: /_static/images/ssl/macos/certificate_trusted.png + :width: 60% + :alt: Keychain menu trusted certificate diff --git a/site/source/user-manual/connecting/lan-setup/lan-os/lan-windows.rst b/site/source/user-manual/connecting/connecting-lan/lan-os/lan-windows.rst similarity index 81% rename from site/source/user-manual/connecting/lan-setup/lan-os/lan-windows.rst rename to site/source/user-manual/connecting/connecting-lan/lan-os/lan-windows.rst index 7687628..ccfeab0 100644 --- a/site/source/user-manual/connecting/lan-setup/lan-os/lan-windows.rst +++ b/site/source/user-manual/connecting/connecting-lan/lan-os/lan-windows.rst @@ -1,37 +1,21 @@ .. _lan-windows: -======= -Windows -======= +============================== +Trusting Embassy CA On Windows +============================== -Unfortunately, Windows does not have mDNS support built-in, which is necessary in order to visit .local addresses, so we recommend using the Bonjour service. Check out this :ref:`FAQ answer` for details. +Unfortunately, Windows does not have mDNS support built-in, which is necessary in order to visit .local addresses, so we recommend using the Bonjour service. Check out this :ref:`FAQ answer` for details. #. Install `Bonjour Print Services `_ on your Windows machine. .. tip:: If you are experiencing issues after installing Bonjour, you might have had a previous or failed install. To fix: #. Check out this video: https://www.youtube.com/watch?v=9ECCB3bqNDQ - #. Uninstall Bonjour completely via ``system settings -> remove programs`` + #. Uninstall Bonjour completely via *system settings > remove programs* #. Reinstall Bonjour Printer Driver package (download at https://support.apple.com/kb/DL999?locale=en_US) #. Restart Windows #. Note: Uninstalling Bonjour via the setup package seems to be not enough to solve the issue. Bonjour must be uninstalled via windows system settings. -#. Visit your Embassy at its Tor Address. - - .. note:: Using this encrypted Tor connection is required for security reasons. - -#. Navigate to the :ref:`Embassy tab` -> Settings -> LAN - - .. figure:: /_static/images/ssl/embassy_lan_setup.png - :width: 90% - :alt: LAN setup menu item - -#. Click "Download Root CA". This will prompt a download to save the certificate file to your machine. - - .. figure:: /_static/images/ssl/embassy_lan_setup0.png - :width: 90% - :alt: LAN setup page - #. Back in Windows, right-click the “Start” menu and select “Run”. #. Type in “mmc” and click “OK”. When prompted on the “User Account Control” window, select “Yes” to allow this program to run. @@ -105,5 +89,3 @@ Unfortunately, Windows does not have mDNS support built-in, which is necessary i Embassy Local Root CA imported into Certificate folder #. You can save the settings to the console if desired or cancel. - -#. Open your favorite browser to import this certificate and follow the steps for :ref:`browser setup `. diff --git a/site/source/user-manual/connecting/connecting-tor/index.rst b/site/source/user-manual/connecting/connecting-tor/index.rst new file mode 100644 index 0000000..940001b --- /dev/null +++ b/site/source/user-manual/connecting/connecting-tor/index.rst @@ -0,0 +1,42 @@ +.. _connecting-tor: + +=================== +Connecting Over Tor +=================== + +You can connect to your Embassy from anywhere in the world, privately and anonymously, by using its unique Tor Address (.onion URL). + +.. note:: Tor connection can sometimes be unreliable and have higher latency than normal internet connections. + +Using a Tor Browser +------------------- + +The fastest, easiest way to connect to your Embassy over Tor is to download a Tor-enabled browser and visit your Embassy's .onion URL. We recommend: + +* Linux, Mac, Windows, Android + + * `Tor Browser `_ + * `Brave `_ (requires using Tor tabs) + +* iOS + + * `Onion Browser `_ + +Using Firefox +------------- + +.. tip:: This is recommended way to connect to your Embassy over Tor, but it requires some additional steps. + +#. Run Tor on your connecting device. + + .. toctree:: + :maxdepth: 2 + + tor-os/index + +#. Configure Firefox + + .. toctree:: + :maxdepth: 2 + + tor-firefox/index diff --git a/site/source/user-manual/connecting/tor-setup/tor-firefox/index.rst b/site/source/user-manual/connecting/connecting-tor/tor-firefox/index.rst similarity index 69% rename from site/source/user-manual/connecting/tor-setup/tor-firefox/index.rst rename to site/source/user-manual/connecting/connecting-tor/tor-firefox/index.rst index b7fbe1d..d920feb 100644 --- a/site/source/user-manual/connecting/tor-setup/tor-firefox/index.rst +++ b/site/source/user-manual/connecting/connecting-tor/tor-firefox/index.rst @@ -4,15 +4,15 @@ Tor - Firefox ============= -.. caution:: This guide assumes you are already :ref:`running Tor on your phone or computer`. +.. caution:: This guide assumes you are already :ref:`running Tor on your phone or computer`. Once you have completed native :ref:`Tor Setup`, you can configure Firefox to use the Tor Network. This will allow you to visit both ``.onion`` and "normal" (.com, .net, etc) websites from within the same browser. .. toctree:: :maxdepth: 2 - torff-linux - torff-mac - torff-windows - torff-android - torff-ios + Linux + Mac + Windows + Android/Graphene/Calyx + iOS diff --git a/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-android.rst b/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-android.rst similarity index 95% rename from site/source/user-manual/connecting/tor-setup/tor-firefox/torff-android.rst rename to site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-android.rst index a5261fd..e497d3c 100644 --- a/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-android.rst +++ b/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-android.rst @@ -1,8 +1,8 @@ .. _torff-android: -======= -Android -======= +====================================== +Configuring Firefox for Tor on Android +====================================== .. caution:: This guide assumes you have completed :ref:`setting up Tor for Android`. Please visit this section before proceeding as it is required for Firefox to properly work with Tor. diff --git a/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-ios.rst b/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-ios.rst similarity index 67% rename from site/source/user-manual/connecting/tor-setup/tor-firefox/torff-ios.rst rename to site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-ios.rst index f0d0a32..24aacf2 100644 --- a/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-ios.rst +++ b/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-ios.rst @@ -1,7 +1,7 @@ .. _torff-ios: -=== -iOS -=== +================================== +Configuring Firefox for Tor on iOS +================================== Unforutnately, it is not currently possible to run Tor natively on iOS. This means that Firefox cannot be configured to use tor. Please see :ref:`iOS Limitations` for details and workarounds. diff --git a/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-linux.rst b/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-linux.rst similarity index 87% rename from site/source/user-manual/connecting/tor-setup/tor-firefox/torff-linux.rst rename to site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-linux.rst index d947d9b..fc23ccf 100644 --- a/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-linux.rst +++ b/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-linux.rst @@ -1,11 +1,11 @@ .. _torff-linux: -===== -Linux -===== +==================================== +Configuring Firefox for Tor on Linux +==================================== .. caution:: - This guide assumes you have completed :ref:`setting up Tor`. Please visit this section first before you proceed as it is required for Firefox to properly work with Tor. + This guide assumes you have completed :ref:`setting up Tor`. Please visit this section first before you proceed as it is required for Firefox to properly work with Tor. #. Open Firefox and enter ``about:config`` in the URL bar. Accept any warnings that may appear about accessing advanced settings. diff --git a/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-mac.rst b/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-mac.rst similarity index 88% rename from site/source/user-manual/connecting/tor-setup/tor-firefox/torff-mac.rst rename to site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-mac.rst index f5ea9ba..f206d4d 100644 --- a/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-mac.rst +++ b/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-mac.rst @@ -1,11 +1,11 @@ .. _torff-mac: -=== -Mac -=== +================================== +Configuring Firefox for Tor on Mac +================================== .. caution:: - This guide assumes you have completed :ref:`setting up Tor`. Please visit this section first before you proceed as it is required for Firefox to properly work with Tor. + This guide assumes you have completed :ref:`setting up Tor`. Please visit this section first before you proceed as it is required for Firefox to properly work with Tor. #. Open Firefox and enter ``about:config`` in the URL bar. Accept any warnings that may appear about accessing advanced settings. diff --git a/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-windows.rst b/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-windows.rst new file mode 100644 index 0000000..82c913e --- /dev/null +++ b/site/source/user-manual/connecting/connecting-tor/tor-firefox/torff-windows.rst @@ -0,0 +1,52 @@ +.. _torff-windows: + +====================================== +Configuring Firefox for Tor on Windows +====================================== + +.. caution:: This guide assumes you have completed :ref:`setting up Tor`. Please visit this section first before you proceed as it is required for Firefox to properly work with Tor. + +#. Open Firefox and enter ``about:config`` in the URL bar. Accept any warnings that may appear about accessing advanced settings. + +#. Search for ``dom.securecontext.whitelist_onions`` and set the value to "true". + + .. figure:: /_static/images/tor/firefox_whitelist.png + :width: 60% + :alt: Firefox whitelist onions screenshot + +#. Download a *Proxy Auto Config* file to inform Firefox how to use the Tor daemon running on your computer. You can get Start9's standard file by following instructions below: + + - Click `here `_ to get the file and save the file somewhere you will not delete it. Remember where you save the file. For this example: + + .. code-block:: + + C:\Program Files\Tor Browser\proxy.pac + +#. Now, back in your Firefox web browser, select "Options" from the right-hand hamburger menu: + + .. figure:: /_static/images/tor/firefox_options_windows.png + :width: 60% + :alt: Firefox options screenshot + +#. Search for the term "proxy" in the search bar in the upper right, then select the button that says "Settings": + + .. figure:: /_static/images/tor/firefox_search.png + :width: 60% + :alt: Firefox search screenshot + +#. This should open a menu that will allow you to configure your proxy settings. Select "Automatic proxy configuration URL" and paste in the path to your PAC file from earlier, prefixed with ``file://``. For example: + + .. code-block:: + + file://C:/Program Files/Tor Browser/proxy.pac + +#. Then, check the box labeled "Proxy DNS when using SOCKS v5": + + .. figure:: /_static/images/tor/firefox_proxy.png + :width: 60% + :alt: Firefox proxy settings screenshot + +#. Click "OK" and then restart Firefox for the changes to take effect. + +#. You're all set! You should now be able to navigate to ".onion" URLs in Firefox. You can test this by going to Start9's ``.onion`` homepage, `here `__. + diff --git a/site/source/user-manual/connecting/tor-setup/tor-os/index.rst b/site/source/user-manual/connecting/connecting-tor/tor-os/index.rst similarity index 58% rename from site/source/user-manual/connecting/tor-setup/tor-os/index.rst rename to site/source/user-manual/connecting/connecting-tor/tor-os/index.rst index 9f8758d..0d97ea6 100644 --- a/site/source/user-manual/connecting/tor-setup/tor-os/index.rst +++ b/site/source/user-manual/connecting/connecting-tor/tor-os/index.rst @@ -1,16 +1,16 @@ .. _tor-os: -============ -Tor - Device -============ +======== +Tor - OS +======== Select your Operating System to setup Tor to run in the background (natively) of any device that you might want to use to access your Embassy with remotely. .. toctree:: :maxdepth: 2 - tor-linux - tor-mac - tor-windows - tor-android - tor-ios + Linux + Mac + Windows + Android/Graphene/Calyx + iOS diff --git a/site/source/user-manual/connecting/tor-setup/tor-os/tor-android.rst b/site/source/user-manual/connecting/connecting-tor/tor-os/tor-android.rst similarity index 97% rename from site/source/user-manual/connecting/tor-setup/tor-os/tor-android.rst rename to site/source/user-manual/connecting/connecting-tor/tor-os/tor-android.rst index 52769a1..f4fff82 100644 --- a/site/source/user-manual/connecting/tor-setup/tor-os/tor-android.rst +++ b/site/source/user-manual/connecting/connecting-tor/tor-os/tor-android.rst @@ -1,8 +1,8 @@ .. _tor-android: -======= -Android -======= +====================== +Running Tor on Android +====================== Some apps, such as :ref:`Tor Browser`, have Tor built in. They do not require additional software or configurations to utilize Tor. Most apps, however, do not have Tor built in. They require an app called Orbot to be installed in order to utilize the Tor Network. diff --git a/site/source/user-manual/connecting/connecting-tor/tor-os/tor-ios.rst b/site/source/user-manual/connecting/connecting-tor/tor-os/tor-ios.rst new file mode 100644 index 0000000..a38afd9 --- /dev/null +++ b/site/source/user-manual/connecting/connecting-tor/tor-os/tor-ios.rst @@ -0,0 +1,7 @@ +.. _tor-ios: + +================== +Running Tor on iOS +================== + +Unfortunately, it is not currently possible to run Tor natively on iOS. Please see :ref:`iOS Limitations` for details and workarounds. diff --git a/site/source/user-manual/connecting/tor-setup/tor-os/tor-linux.rst b/site/source/user-manual/connecting/connecting-tor/tor-os/tor-linux.rst similarity index 97% rename from site/source/user-manual/connecting/tor-setup/tor-os/tor-linux.rst rename to site/source/user-manual/connecting/connecting-tor/tor-os/tor-linux.rst index b356b47..fa42dbb 100644 --- a/site/source/user-manual/connecting/tor-setup/tor-os/tor-linux.rst +++ b/site/source/user-manual/connecting/connecting-tor/tor-os/tor-linux.rst @@ -1,8 +1,8 @@ .. _tor-linux: -===== -Linux -===== +==================== +Running Tor on Linux +==================== .. tabs:: diff --git a/site/source/user-manual/connecting/tor-setup/tor-os/tor-mac.rst b/site/source/user-manual/connecting/connecting-tor/tor-os/tor-mac.rst similarity index 97% rename from site/source/user-manual/connecting/tor-setup/tor-os/tor-mac.rst rename to site/source/user-manual/connecting/connecting-tor/tor-os/tor-mac.rst index 2f72b7f..416357d 100644 --- a/site/source/user-manual/connecting/tor-setup/tor-os/tor-mac.rst +++ b/site/source/user-manual/connecting/connecting-tor/tor-os/tor-mac.rst @@ -1,8 +1,8 @@ .. _tor-mac: -=== -Mac -=== +================== +Running Tor on Mac +================== Install Homebrew ---------------- diff --git a/site/source/user-manual/connecting/tor-setup/tor-os/tor-windows.rst b/site/source/user-manual/connecting/connecting-tor/tor-os/tor-windows.rst similarity index 97% rename from site/source/user-manual/connecting/tor-setup/tor-os/tor-windows.rst rename to site/source/user-manual/connecting/connecting-tor/tor-os/tor-windows.rst index 7d92bb3..bfd4308 100644 --- a/site/source/user-manual/connecting/tor-setup/tor-os/tor-windows.rst +++ b/site/source/user-manual/connecting/connecting-tor/tor-os/tor-windows.rst @@ -1,8 +1,8 @@ .. _tor-windows: -======= -Windows -======= +====================== +Running Tor on Windows +====================== #. Unfortunately, `The Tor Project `_ no longer publishes a standalone Tor binary for Windows, so the recommended way to get it is with the Tor Browser Bundle. You can download it `here `_. diff --git a/site/source/user-manual/connecting/index.rst b/site/source/user-manual/connecting/index.rst index 59feb6e..456d0ec 100644 --- a/site/source/user-manual/connecting/index.rst +++ b/site/source/user-manual/connecting/index.rst @@ -11,22 +11,22 @@ Connecting
.. topic-box:: - :title: LAN - :link: lan-setup + :title: Connecting Over LAN + :link: connecting-lan :icon: scylla-icon scylla-icon--home :class: large-5 :anchor: Setup - Connect to Embassy over your Local Area Network. + Local Area Network connections are fast and secure and do not even require Internet access. .. topic-box:: - :title: Tor - :link: tor-setup + :title: Connecting Over Tor + :link: connecting-tor :icon: scylla-icon scylla-icon--tor :class: large-5 :anchor: Setup - Connect to Embassy over the Tor network. + Leverage Tor to connect to your Embassy privately and anonymously from anywhere in the world. .. raw:: html @@ -36,5 +36,5 @@ Connecting :maxdepth: 2 :hidden: - lan-setup/index - tor-setup/index + Lan + Tor diff --git a/site/source/user-manual/connecting/lan-setup/index.rst b/site/source/user-manual/connecting/lan-setup/index.rst deleted file mode 100644 index 651c8a7..0000000 --- a/site/source/user-manual/connecting/lan-setup/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. _lan-setup: - -========= -LAN Setup -========= - -When you are on the same network as your Embassy (typically a home or small office), :ref:`Local Access` is much faster and will allow access to your data, even with no Internet connection. Begin by setting up :ref:`Devices` before setting up a :ref:`Browser`. - -.. toctree:: - :maxdepth: 2 - - lan-os/index - lan-browser/index diff --git a/site/source/user-manual/connecting/lan-setup/lan-browser/index.rst b/site/source/user-manual/connecting/lan-setup/lan-browser/index.rst deleted file mode 100644 index f40c5a7..0000000 --- a/site/source/user-manual/connecting/lan-setup/lan-browser/index.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. _lan-browser: - -============= -LAN - Browser -============= - -When you are on the same network as your Embassy (typically a home or small office), :ref:`Local Access` is much faster and will allow access to your data, even with no Internet connection. - -.. caution:: You will first need to complete :ref:`LAN Setup` for your device before continuing. - -.. toctree:: - :maxdepth: 2 - - lan-brave - lan-chrome - lan-ff - lan-safari diff --git a/site/source/user-manual/connecting/lan-setup/lan-browser/lan-brave.rst b/site/source/user-manual/connecting/lan-setup/lan-browser/lan-brave.rst deleted file mode 100644 index 48a1b92..0000000 --- a/site/source/user-manual/connecting/lan-setup/lan-browser/lan-brave.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. _lan-brave: - -===== -Brave -===== - -.. caution:: You will first need to complete :ref:`LAN Setup` for your device before continuing. - -#. Open a new tab in Brave and Navigate to ``Settings`` from the top-right hamburger menu. - - .. figure:: /_static/images/ssl/browser/brave_settings.png - :width: 30% - :alt: Brave settings page - -#. On the left hand sidebar, select the Security and Privacy section, then the Security menu item. - - .. figure:: /_static/images/ssl/browser/brave_security.png - :width: 60% - :alt: Brave Security and Privacy settings - -#. At the bottom of the section, select "Manage Certificates". - - .. figure:: /_static/images/ssl/browser/brave_security_settings.png - :width: 60% - :alt: Brave Security settings page - -#. If you **EITHER** see "org-Start9" with a trusted “Embassy Local Root CA” listed under it, open a new tab to apply the certificate. If this does not work, quit and restart Chrome. - - **OR** - -#. If you do not see "org-Start9"in the list, ensure the certificate is properly set up on your computer system. Otherwise, click “Import” and open the downloaded ``Embassy Local Root CA.crt`` file on your device. If you cannot find this, make sure you completed the :ref:`device setup steps `. - - - .. figure:: /_static/images/ssl/browser/brave_view_certs.png - :width: 60% - :alt: Brave Manage Certificates sub-menu on MacOS - - Check the box for "Trust this certificate for identitying websites" and click "OK" - -#. Obtain the LAN address that was provided at the end of your initial Embassy setup, or from the :ref:`Embassy tab` -> ``About`` (Under ``Insights``) and enter it in a new tab. - - .. tip:: You may need to restart the browser - -#. You will see a green padlock and ``https://`` to the left of the URL bar. You can now securely navigate to your Embassy on your :ref:`LAN` with :ref:`HTTPS`! - -.. note:: Additionally, you can start a Brave private window with Tor to visit the Tor address over HTTPS (unnecessary in principle, but will circumvent annoying browser warnings). diff --git a/site/source/user-manual/connecting/lan-setup/lan-browser/lan-chrome.rst b/site/source/user-manual/connecting/lan-setup/lan-browser/lan-chrome.rst deleted file mode 100644 index 046bdb8..0000000 --- a/site/source/user-manual/connecting/lan-setup/lan-browser/lan-chrome.rst +++ /dev/null @@ -1,49 +0,0 @@ -.. _lan-chrome: - -====== -Chrome -====== - -.. caution:: You will first need to complete :ref:`LAN Setup` for your device before continuing. - -.. tip:: The following guide also works with Chromium and Vivaldi. - -#. Open a new tab in Chrome and navigate to ``chrome://settings/certificates``. - - .. figure:: /_static/images/ssl/browser/chrome_settings.png - :width: 60% - :alt: Chrome Certificates Settings page - -#. Click on the "Authorities" tab. - - .. figure:: /_static/images/ssl/browser/chrome_authorities.png - :width: 60% - :alt: Chrome Certificate Authorities page - -#. You will **EITHER** see "org-Start9" with a trusted “Embassy Local Root CA” listed under it, - - .. figure:: /_static/images/ssl/browser/chrome_s9ca.png - :width: 60% - :alt: Start9 Certificate Authority - - in which case, open a new tab to apply the certificate. If this does not work, quit and restart Chrome. - - **OR** - -#. If you do not see "org-Start9"in the list, ensure the certificate is properly set up on your computer system. Otherwise, click “Import” and open the downloaded ``Embassy Local Root CA.crt`` file on your device. If you cannot find this, make sure you completed the :ref:`device setup steps `. - - .. figure:: /_static/images/ssl/browser/chrome_trust.png - :width: 60% - :alt: Trust the CA - - Check the box for "Trust this certificate for identitying websites" and click "OK" - -#. Obtain the LAN address that was provided at the end of your initial Embassy setup, or from the :ref:`Embassy tab` -> ``About`` (Under ``Insights``) and enter it in a new tab. - - .. tip:: You may need to restart the browser - - .. figure:: /_static/images/ssl/browser/chrome_https.png - :width: 60% - :alt: Success - -#. You will see a green padlock and ``https://`` to the left of the URL bar. You can now securely navigate to your Embassy on your :ref:`LAN` with :ref:`HTTPS`! diff --git a/site/source/user-manual/connecting/lan-setup/lan-browser/lan-ff.rst b/site/source/user-manual/connecting/lan-setup/lan-browser/lan-ff.rst deleted file mode 100644 index 6b61d86..0000000 --- a/site/source/user-manual/connecting/lan-setup/lan-browser/lan-ff.rst +++ /dev/null @@ -1,39 +0,0 @@ -.. _lan-ff: - -======= -Firefox -======= - -#. Open Firefox and in a new tab select ``Settings`` from the right-hand hamburger menu: - - .. figure:: /_static/images/tor/os_ff_settings.png - :width: 30% - :alt: Firefox options screenshot - -#. Select “Privacy and Security” from the left hand navigation menu. - -#. Scroll all the way to the bottom of the page and select “View Certificates”. - - .. figure:: /_static/images/ssl/browser/firefox_security_settings.png - :width: 80% - :alt: Firefox security settings - - Firefox privacy and security settings page - -#. Select the "Authorities" tab from the "Certificate Manager". - -#. Click “Import” and open the downloaded ``Embassy Local Root CA.crt`` file on your device. If you cannot find this, make sure you completed the :ref:`device setup steps `. - -#. When prompted, check “Trust this CA to identity websites” and select “OK”. - - .. figure:: /_static/images/ssl/browser/firefox_view_certs.png - :width: 80% - :alt: Firefox import cert - - Firefox import certificate page - -#. Ensure the “Embassy Local Root CA” exists under “Start9 Labs”. If it does not appear, you may need to close the Certificates pop-up and re-open to refresh the list. Then click “OK” to save. - -#. Open a new tab in Firefox to apply the changes. If this does not work, quit and restart Firefox. - -#. Navigate to the LAN address provided at setup, or in the :ref:`Embassy tab` -> LAN. You can now securely navigate to your Embassy over HTTPS! diff --git a/site/source/user-manual/connecting/lan-setup/lan-browser/lan-safari.rst b/site/source/user-manual/connecting/lan-setup/lan-browser/lan-safari.rst deleted file mode 100644 index e668af4..0000000 --- a/site/source/user-manual/connecting/lan-setup/lan-browser/lan-safari.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. _lan-safari: - -====== -Safari -====== - -Once you have completed the :ref:`LAN Setup` steps on your device, simply open a new tab to apply the changes. If this does not work, quit and restart Safari. You can now securely navigate to the LAN address for your Embassy! diff --git a/site/source/user-manual/connecting/lan-setup/lan-os/index.rst b/site/source/user-manual/connecting/lan-setup/lan-os/index.rst deleted file mode 100644 index 647d933..0000000 --- a/site/source/user-manual/connecting/lan-setup/lan-os/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _lan-os: - -============ -LAN - Device -============ - -When you are on the same network as your Embassy (typically a home or small office), :ref:`Local Access` is much faster and will allow access to your data, even with no Internet connection. - -.. toctree:: - :maxdepth: 2 - - lan-linux - lan-mac - lan-windows - lan-android - lan-ios diff --git a/site/source/user-manual/connecting/lan-setup/lan-os/lan-android.rst b/site/source/user-manual/connecting/lan-setup/lan-os/lan-android.rst deleted file mode 100644 index 0b361c3..0000000 --- a/site/source/user-manual/connecting/lan-setup/lan-os/lan-android.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. _lan-android: - -======= -Android -======= - -If you are running Android 12+ (not yet available on Calyx/Graphene), you can setup :ref:`Local Access`, please refer to :ref:`Android Limitations ` for more details. - -.. note:: You must download your certificate via desktop/laptop over Tor and then transfer it to your phone (Step 3) - -#. Either use the Root CA you downloaded at the completion of :ref:`Initial Setup`, or visit your Embassy at its Tor Address (for security purposes), and navigate to the :ref:`Embassy tab` -> LAN - - .. figure:: /_static/images/ssl/embassy_lan_setup.png - :width: 60% - :alt: LAN setup menu item - -#. Click "Download Root CA". This will prompt a download to save the certificate file to your machine - - .. figure:: /_static/images/ssl/embassy_lan_setup0.png - :width: 60% - :alt: LAN setup page - -#. Send the cert to yourself via Signal, email, File Browser, etc and download onto your Android device - -#. Go to Settings -> Security -> Advanced -> Encryption and Credentials -> Install a Certificate and select the cert you downloaded from the file system - - .. figure:: /_static/images/ssl/android/droidLAN0.png - :width: 30% - :alt: Install certificate - -#. To setup in Firefox Beta or Fennec, go to Settings -> About -> tap the logo several times until it says "Debug menu enabled." Then return to Settings -> Secret Settings and toggle on "Use third party CA certificates." - -#. That's it! You may now browse the ``.local`` addresses on your Embassy. diff --git a/site/source/user-manual/connecting/lan-setup/lan-os/lan-ios.rst b/site/source/user-manual/connecting/lan-setup/lan-os/lan-ios.rst deleted file mode 100644 index 1c7a9e4..0000000 --- a/site/source/user-manual/connecting/lan-setup/lan-os/lan-ios.rst +++ /dev/null @@ -1,75 +0,0 @@ -.. _lan-ios: - -=== -iOS -=== - -.. note:: For security, this will need to be done using a Tor connection. Please use Onion Browser or Consulate to access your Embassy and complete the following steps. - -#. You will first need to get your :ref:`LAN Certificate`, which can be found either: - - #. When completing your Embassy :ref:`Initial Setup`, it is provided on the final screen - - or: - - #. In the ``Embassy`` tab in your Embassy, under ``Settings`` -> ``LAN`` - - .. figure:: /_static/images/ssl/embassy_lan_setup.png - :width: 60% - :alt: LAN setup menu item - -#. Select ``Download Root CA``. Clicking this will prompt you to “Save to device”. - - .. figure:: /_static/images/ssl/embassy_lan_setup0.png - :width: 60% - :alt: LAN setup page - -#. You will be directed to a page in your default browser indicating next steps and that the profile has been successfully downloaded. Be sure to complete all steps in this process! These steps are also outlined below. - - .. note:: - If you have changed the default browser from Safari to Brave, the following auto save certificate to device flow will *not* work. Safari, Firefox, and Chrome work as expected. We recommend you temporarily use one of these browsers to complete this action. - - .. figure:: /_static/images/ssl/ios/ssl_certificate_install_page.png - :width: 40% - :alt: Certificate install page - - Select "Allow" on the certificate install page - -#. Go to Settings on your iOS device. - - .. figure:: /_static/images/ssl/ios/ssl_ipad_general_settings.png - :width: 40% - :alt: General settings - -#. Navigate to *General > Profile(s) > Downloaded Profile > Install*. - - .. figure:: /_static/images/ssl/ios/ssl_ipad_profiles.png - :width: 40% - :alt: Profiles - - .. figure:: /_static/images/ssl/ios/ssl_ipad_install_profile.png - :width: 40% - :alt: Install profile - - Select "Install" for Embassy Local Root CA - -#. Select “Yes” to any warning prompts. - -#. Next, navigate to *General > About > Certificate Trust Settings*. - - .. figure:: /_static/images/ssl/ios/ssl_ipad_cert_trust_settings.png - :width: 40% - :alt: Certificate trust settings - - Select Certificate Trust Settings (scroll all the way down) - -#. Enable full trust for root certificates. - - .. figure:: /_static/images/ssl/ios/ssl_ipad_cert_trust.png - :width: 40% - :alt: Enable full trust - - Toggle to enable full trust for root certificates. "Continue" when warning prompts. - -#. Test that this process worked successfully by navigating to the LAN address provided from one of the locations listed under Step 1 at the top of this page. You should not see warnings about the security of this site in your browser (if you do, setup was not successful). - diff --git a/site/source/user-manual/connecting/lan-setup/lan-os/lan-linux.rst b/site/source/user-manual/connecting/lan-setup/lan-os/lan-linux.rst deleted file mode 100644 index 4f20bdc..0000000 --- a/site/source/user-manual/connecting/lan-setup/lan-os/lan-linux.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. _lan-linux: - -===== -Linux -===== - -Nothing specific needs to be configured for the Linux environment, so you just need to download the certificate from your Embassy. - -#. Visit your Embassy at its Tor Address. - - .. note:: Using this encrypted Tor connection is required for security reasons. - -#. Navigate to the :ref:`Embassy tab` -> Settings -> LAN - - .. figure:: /_static/images/ssl/embassy_lan_setup.png - :width: 60% - :alt: LAN setup menu item - -#. Click "Download Root CA". This will prompt a download to save the certificate file to your machine. - - .. figure:: /_static/images/ssl/embassy_lan_setup0.png - :width: 60% - :alt: LAN setup page - -Then open your favorite browser to import this certificate and follow the steps for :ref:`browser setup `. diff --git a/site/source/user-manual/connecting/lan-setup/lan-os/lan-mac.rst b/site/source/user-manual/connecting/lan-setup/lan-os/lan-mac.rst deleted file mode 100644 index c2bb2cd..0000000 --- a/site/source/user-manual/connecting/lan-setup/lan-os/lan-mac.rst +++ /dev/null @@ -1,55 +0,0 @@ -.. _lan-mac: - -=== -Mac -=== - -#. Visit your Embassy at its Tor Address (for security purposes), and navigate to the :ref:`Embassy tab` -> LAN - - .. figure:: /_static/images/ssl/embassy_lan_setup.png - :width: 60% - :alt: LAN setup menu item - -#. Click "Download Root CA". This will prompt a download to save the certificate file to your machine. - - .. figure:: /_static/images/ssl/embassy_lan_setup0.png - :width: 60% - :alt: LAN setup page - -#. Select the option to ``Open with`` "Keychain Access" and select ``OK``. If you choose to save the file, double click on it once downloaded. - - .. figure:: /_static/images/ssl/embassy_lan_setup1.png - :width: 60% - :alt: LAN setup prompt - -#. Enter your computer password when prompted. It will be imported into your mac's keychain. - - .. figure:: /_static/images/ssl/macos/certificate_untrusted.png - :width: 60% - :alt: Keychain access import menu - - Keychain access import menu - - .. note:: If the keychain console did not open, press "Command + spacebar" and type “Keychain Access”, and hit enter to open it. - -#. Navigate to the "System" tab on the left, find the certificate entitled “Embassy Local Root CA”, and double click on this certificate. A second window will pop up. - -#. Open the “Trust” dropdown and select “Always Trust” from the dropdown next to “When using this certificate”. - - .. figure:: /_static/images/ssl/macos/always_trust.png - :width: 60% - :alt: Keychain submenu - - Select "Always trust" under the "Trust" dropdown for Embassy Local CA - -#. Close this window and enter your password to apply the settings. - -#. The “Embassy Local Root CA” cert will now read “This certificate is marked as trusted for all users” in Keychain Access. - - .. figure:: /_static/images/ssl/macos/certificate_trusted.png - :width: 60% - :alt: Keychain menu trusted certificate - - Trusted Embassy Local CA certificate - -#. Open your favorite browser and follow the steps for :ref:`browser setup ` to complete LAN setup. diff --git a/site/source/user-manual/connecting/tor-setup/index.rst b/site/source/user-manual/connecting/tor-setup/index.rst deleted file mode 100644 index 31fcdb4..0000000 --- a/site/source/user-manual/connecting/tor-setup/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. _running-tor: - -========= -Tor Setup -========= - -Setup :ref:`Tor` to run on your devices, either natively (in the background), or by configuring an application, such as Firefox. - -.. toctree:: - :maxdepth: 2 - - tor-os/index - tor-firefox/index diff --git a/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-windows.rst b/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-windows.rst deleted file mode 100644 index 03c5f28..0000000 --- a/site/source/user-manual/connecting/tor-setup/tor-firefox/torff-windows.rst +++ /dev/null @@ -1,53 +0,0 @@ -.. _torff-windows: - -======= -Windows -======= - -.. caution:: This guide assumes you have completed :ref:`setting up Tor`. Please visit this section first before you proceed as it is required for Firefox to properly work with Tor. - -#. Open Firefox and enter ``about:config`` in the URL bar. Accept any warnings that may appear about accessing advanced settings. - -#. Search for ``dom.securecontext.whitelist_onions`` and set the value to ``true``. - - .. figure:: /_static/images/tor/firefox_whitelist.png - :width: 60% - :alt: Firefox whitelist onions screenshot - -#. Download a `Proxy Auto Config` file to inform Firefox how to use the Tor daemon running on your computer. You can get Start9's standard file by following instructions below: - - - Click `here `_ to get the file and save the file somewhere you won’t delete it. Please remember the location you save the file in if you do not use our example location. For this example: - - .. code-block:: - - C:\Program Files\Tor Browser\proxy.pac - -#. Now, back in your Firefox web browser, select ``Options`` from the right-hand hamburger menu: - - .. figure:: /_static/images/tor/firefox_options_windows.png - :width: 60% - :alt: Firefox options screenshot - - -#. Search for the term “proxy” in the search bar in the upper right, then select the button that says ``Settings…``: - - .. figure:: /_static/images/tor/firefox_search.png - :width: 60% - :alt: Firefox search screenshot - -#. This should open a menu that will allow you to configure your proxy settings. Select ``Automatic proxy configuration URL`` and paste in the path to your PAC file from earlier, prefixed with ``file://``. For example: - - .. code-block:: - - file://C:/Program Files/Tor Browser/proxy.pac - -#. Then, check the box labeled ``Proxy DNS when using SOCKS v5``: - - .. figure:: /_static/images/tor/firefox_proxy.png - :width: 60% - :alt: Firefox proxy settings screenshot - -#. Click ``OK`` and then restart Firefox for the changes to take effect. - -#. You're all set! You should now be able to navigate to ``.onion`` URLs in Firefox. This means you can access tor-only service :ref:`WebUIs `, such as Cups Messenger, and use your :ref:`Vaultwarden` Tor address in the `Bitwarden Firefox Plugin `_. You can test this by going to Start9's ``.onion`` homepage, `here `__. - diff --git a/site/source/user-manual/connecting/tor-setup/tor-os/tor-ios.rst b/site/source/user-manual/connecting/tor-setup/tor-os/tor-ios.rst deleted file mode 100644 index 85a806b..0000000 --- a/site/source/user-manual/connecting/tor-setup/tor-os/tor-ios.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. _tor-ios: - -=== -iOS -=== - -Unforutnately, it is not currently possible to run Tor natively on iOS. Please see :ref:`iOS Limitations` for details and workarounds. diff --git a/site/source/user-manual/customize.rst b/site/source/user-manual/customize.rst index 9cc02f1..d58e8a3 100644 --- a/site/source/user-manual/customize.rst +++ b/site/source/user-manual/customize.rst @@ -4,45 +4,31 @@ Customize ========= -.. _device-name: - Name Your Device ---------------- -Here you can change the name of your Embassy! - -#. Go to the ``Embassy`` tab on the main menu on the left side of the UI - - .. figure:: /_static/images/config/basic-config0.png - :width: 60% - :alt: Embassy Tab - -#. Under the ``Settings`` section, click ``Preferences`` +#. Go to the *Embassy > Preferences*. .. figure:: /_static/images/config/basic-config1.png :width: 60% :alt: Preferences -#. Then click ``Device Name``, set to desired name, and click ``Save`` +#. Click "Device Name", set to desired name, and click ``Save`` .. figure:: /_static/images/config/basic-config2.png :width: 60% :alt: Rename Embassy -.. _reorder: - Reorder Services ---------------- -You may customize the layout of your Services by re-arranging them to your liking. - -#. Simply visit the ``Services`` tab on the main menu on the left side of the UI, and select ``Reorder`` in the top right. +#. In the "Services" tab, and click "Reorder" in the top right. .. figure:: /_static/images/walkthrough/reorder0.png :width: 60% :alt: Reorder Button -#. You can now click and drag on each service to create the ordered list you desire. When satisfied, click ``Done`` in the top right to save. +#. Drag each service to its desired position. When satisfied, click "Done". .. figure:: /_static/images/walkthrough/reorder1.png :width: 60% diff --git a/site/source/user-manual/dashboard-overview.rst b/site/source/user-manual/dashboard-overview.rst index 0f27013..bff0f34 100644 --- a/site/source/user-manual/dashboard-overview.rst +++ b/site/source/user-manual/dashboard-overview.rst @@ -4,85 +4,74 @@ Dashboard Overview ================== -.. _services-tab: - Services Tab ------------ -The Services Tab will show you all of your currently installed :ref:`Services`, or in the case of a fresh install, no Services. You can reorder this layout to your liking with the ``Reorder`` button in the top right. You can see a demo of this :ref:`here`. +Use this tab to view and access your installed services. .. figure:: /_static/images/walkthrough/servicestab.png :width: 60% -Click on any service in order to see its :ref:`Service Page`. - - .. figure:: /_static/images/walkthrough/servicepage.png - :width: 60% - -.. _embassy-tab: - Embassy Tab ----------- -The Embassy Tab is where you can perform :ref:`Backups`, get Insights into EOS, change some basic Settings, and Power cycle your device if necessary. +Use this tab to customize and manage your Embassy. .. figure:: /_static/images/walkthrough/embassytab.png :width: 60% Backups -======= +........ -One of the most important actions you can do on your Embassy is to keep a regular backup of your data. See the page on :ref:`Backups`, and select your device for more details. In this section, you can create, and restore from, backups. +The Backups section allows you to create and restore :ref:`Embassy backups `. + +Settings +........ + +The Settings section gives you access to :ref:`EmbassyOS Updates `, Device Preferences, :ref:`connecting-lan`, :ref:`ssh`, :ref:`wifi`, and :ref:`alt-marketplaces`. Insights -======== +........ The Insights section gives you basic information on your Embassy, monitoring of system resources / temperature, and logs for debugging. -Settings -======== - -The Settings section lets you change preferences, and manage `Connectivity` and Active Sessions. See the documentation on :ref:`Configuration` for more details. - -.. _power: - -Power -===== - -Restart +Support ....... -#. Be patient while services shut down. A *tune* will play, indicating the shutdown is complete. -#. A gentle *bep* will sound when the Embassy is powered back on. -#. A *chime* will sound when the Embassy is ready to use. Please be patient as a Restart will take some time. +The Support section provides links to frequently asked questions as well as Start9 and community contact information. -Shutdown -........ +Power +..... -#. Be patient while services shut down, it may take some minutes. A *tune* will play, indicating the shutdown is complete. -#. It is now safe to unplug the Embassy from power and the ethernet cable, if connected. +* **Restart** + + * Be patient while services shut down. A *tune* will play, indicating the shutdown is complete. + * A gentle *bep* will sound when the Embassy is powered back on. + * A *chime* will sound when the Embassy is ready to use. Please be patient as a Restart will take some time. -.. note:: After a shutdown, the *only* way to turn your Embassy back on is to unplug it and plug it back in. As such, we do not recommend shutting down your Embassy when you are not physically near it. Instead, you should use the restart option. +* **Shutdown** -.. _marketplace-tab: + .. caution:: After a shutdown, the *only* way to turn your Embassy back on is to unplug it and plug it back in. As such, we do not recommend shutting down your Embassy when you are not physically near it. Instead, you should use the restart option. + + * Be patient while services shut down, it may take some minutes. A *tune* will play, indicating the shutdown is complete. + * It is now safe to unplug the Embassy from power and the ethernet cable, if connected. + +* **System Rebuild** + + This action will tear down all service containers and rebuild them from scratch. No data will be deleted. This action is useful if your system gets into a bad state, and it should only be performed if you are experiencing general performance or reliability issues. It may take multiple minutes to complete. During this time, you will lose all connectivity to your Embassy. Marketplace Tab --------------- -The Marketplace Tab is obviously the home of the Marketplace, where you can search out and install new Services, or manange existing ones. You can view our live Marketplace `here `_. +Use this tab to access your preferred Marketplace, where you can discover and install new services, or update existing services. Check out the `live Marketplace `_. .. figure:: /_static/images/walkthrough/markettab.png :width: 60% -Marketplace -=========== - -.. _notifications-tab: - Notifications Tab ----------------- -The Notifications Tab is where you can view and manage information produced by EOS and your Services that may need your attention. You can clear these individually, or all at once with ``Delete All`` in the top right. +Notifications issued by EmbassyOS will appear in this tab. You can delete these notifications individually or all at once by clicking "Delete All". .. figure:: /_static/images/walkthrough/notiftab.png :width: 60% diff --git a/site/source/user-manual/device-guides/dg-android.rst b/site/source/user-manual/device-guides/dg-android.rst index e1fb077..4370a4d 100644 --- a/site/source/user-manual/device-guides/dg-android.rst +++ b/site/source/user-manual/device-guides/dg-android.rst @@ -8,6 +8,6 @@ To optimize your device for use with your Embassy, it is recommended to complete .. tip:: Please see Android's :ref:`Known Limitations` to understand what is currently not possible on these devices -* :ref:`Connecting over LAN ` - For a fast and secure connection while on your Embassy's local network -* :ref:`Connecting over Tor ` - Run Tor natively (in the background) on your device. This will allow you to use applications on your machine via the Tor Network so they can communicate with your Embassy. -* :ref:`Tor Firefox Config ` - Configure Firefox to use the Tor Network so that you can reach ``.onion`` sites without needing to change browsers. +* :ref:`lan-android` - Trust your Embassy's Root Certificate Authority in order to securely connect over LAN. +* :ref:`tor-android` - Run Tor natively (in the background) on your Android device. This will allow you to use applications on your machine via the Tor Network so they can communicate with your Embassy. +* :ref:`torff-android` - Configure Firefox to use the Tor Network so that you can reach ".onion" sites without needing to change browsers. diff --git a/site/source/user-manual/device-guides/dg-ios.rst b/site/source/user-manual/device-guides/dg-ios.rst index 6dcc926..f1f2f39 100644 --- a/site/source/user-manual/device-guides/dg-ios.rst +++ b/site/source/user-manual/device-guides/dg-ios.rst @@ -8,4 +8,4 @@ To optimize your device for use with your Embassy, it is recommended to complete .. tip:: Please see iOS's :ref:`Known Limitations` to understand what is currently not possible on these devices -* :ref:`Connecting over LAN ` - For a fast and secure connection while on your Embassy's local network +* :ref:`lan-ios` - Trust your Embassy's Root Certificate Authority in order to securely connect over LAN. diff --git a/site/source/user-manual/device-guides/dg-linux.rst b/site/source/user-manual/device-guides/dg-linux.rst index 99a6940..082f64a 100644 --- a/site/source/user-manual/device-guides/dg-linux.rst +++ b/site/source/user-manual/device-guides/dg-linux.rst @@ -8,7 +8,6 @@ To optimize your device for use with your Embassy, it is recommended to complete .. tip:: Please see Linux's :ref:`Known Limitations` to understand what is currently not possible on these devices -* :ref:`Connecting over LAN ` - For a fast and secure connection while on your Embassy's local network -* :ref:`Connecting over Tor ` - Run Tor natively (in the background) on your device. This will allow you to use applications on your machine via the Tor Network so they can communicate with your Embassy. -* :ref:`Tor Firefox Config ` - Configure Firefox to use the Tor Network so that you can reach ``.onion`` sites without needing to change browsers. -* :ref:`LAN Shared Folder Setup ` - Configure a Shared Network Folder on your laptop/desktop (or an external drive plugged into your laptop/desktop) in order to use it for Embassy backups. +* :ref:`tor-linux` - Run Tor natively (in the background) on your Linux machine. This will allow you to use applications on your machine via the Tor Network so they can communicate with your Embassy. +* :ref:`torff-linux` - Configure Firefox to use the Tor Network so that you can reach ".onion" sites without needing to change browsers. +* :ref:`cifs-linux` - Configure a LAN Shared Folder on your Linux machine (or an external drive plugged into your Linux Machine) in order to use it for Embassy backups. diff --git a/site/source/user-manual/device-guides/dg-mac.rst b/site/source/user-manual/device-guides/dg-mac.rst index 6142d52..f5b20e2 100644 --- a/site/source/user-manual/device-guides/dg-mac.rst +++ b/site/source/user-manual/device-guides/dg-mac.rst @@ -8,7 +8,7 @@ To optimize your device for use with your Embassy, it is recommended to complete .. tip:: Please see Mac's :ref:`Known Limitations` to understand what is currently not possible on these devices -* :ref:`Connecting over LAN ` - For a fast and secure connection while on your Embassy's local network -* :ref:`Connecting over Tor ` - Run Tor natively (in the background) on your device. This will allow you to use applications on your machine via the Tor Network so they can communicate with your Embassy. -* :ref:`Tor Firefox Config ` - Configure Firefox to use the Tor Network so that you can reach ``.onion`` sites without needing to change browsers. -* :ref:`LAN Shared Folder Setup ` - Configure a Shared Network Folder on your laptop/desktop (or an external drive plugged into your laptop/desktop) in order to use it for Embassy backups. +* :ref:`lan-mac` - Trust your Embassy's Root Certificate Authority in order to securely connect over LAN. +* :ref:`tor-mac` - Run Tor natively (in the background) on your Mac. This will allow you to use applications on your machine via the Tor Network so they can communicate with your Embassy. +* :ref:`torff-mac` - Configure Firefox to use the Tor Network so that you can reach ".onion" sites without needing to change browsers. +* :ref:`cifs-mac` - Configure a LAN Shared Folder on your Mac (or an external drive plugged into your Mac in order to use it for Embassy backups. diff --git a/site/source/user-manual/device-guides/dg-windows.rst b/site/source/user-manual/device-guides/dg-windows.rst index 9fc507a..e6c9439 100644 --- a/site/source/user-manual/device-guides/dg-windows.rst +++ b/site/source/user-manual/device-guides/dg-windows.rst @@ -8,7 +8,7 @@ To optimize your device for use with your Embassy, it is recommended to complete .. tip:: Please see Window's :ref:`Known Limitations` to understand what is currently not possible on these devices. -* :ref:`Connecting over LAN ` - For a fast and secure connection while on your Embassy's local network -* :ref:`Connecting over Tor ` - Run Tor natively (in the background) on your device. This will allow you to use applications on your machine via the Tor Network so they can communicate with your Embassy. -* :ref:`Tor Firefox Config ` - Configure Firefox to use the Tor Network so that you can reach ``.onion`` sites without needing to change browsers. -* :ref:`LAN Shared Folder Setup ` - Configure a Shared Network Folder on your laptop/desktop (or an external drive plugged into your laptop/desktop) in order to use it for Embassy backups. +* :ref:`lan-windows` - Trust your Embassy's Root Certificate Authority in order to securely connect over LAN. +* :ref:`tor-windows` - Run Tor natively (in the background) on your Windows computer. This will allow you to use applications on your machine via the Tor Network so they can communicate with your Embassy. +* :ref:`torff-windows` - Configure Firefox to use the Tor Network so that you can reach ".onion" sites without needing to change browsers. +* :ref:`cifs-windows` - Configure a LAN Shared Folder on your Windows computer (or an external drive plugged into your Windows computer) in order to use it for Embassy backups. diff --git a/site/source/user-manual/diy.rst b/site/source/user-manual/diy.rst deleted file mode 100644 index 9ed27de..0000000 --- a/site/source/user-manual/diy.rst +++ /dev/null @@ -1,101 +0,0 @@ -.. _diy: - -========= -DIY Guide -========= - -.. figure:: /_static/images/diy/pi.png - :width: 40% - :alt: Raspberry Pi - - Raspberry Pi Board - -By popular demand, we are pleased to present this "Do it Yourself" (DIY) guide for the Start9 Embassy personal server! - -Motivation ----------- - -There are several reasons you might prefer to build your own Embassy instead of purchasing one from us: - - #. You already own the necessary hardware and would like to re-purpose it. - #. You live outside the US and want to save on shipping costs. - #. You do not trust Start9's supply chain. - #. You do not want to share your shipping address. - #. You just like building things. - -Building an Embassy -------------------- - -The first thing you'll need to do is gather the hardware and assemble it. - -Hardware: Components -.................... - -#. `Raspberry Pi 4B (8GB) `_ -#. `Power supply for Raspberry Pi 4B `_ Make sure this is at minimum 15w and 3.5a. -#. Case for Raspberry Pi 4B (`passive cooling `_ is recommended). This means no moving parts and no noise, as a fan is not required. - - .. caution:: If you prefer to use a fan, **DO NOT** use the official Raspberry Pi fan, as it requires the same GPIO pins as the audio speaker. Instead, we recommend `this fan `_. - -#. A `16GB microSD card `_ (no need for bigger). If you have ABSOLUTELY NO data to migrate (from an Embassy v0.2.x), you may choose to re-use the card already in your Embassy. -#. `GPIO mini speaker/buzzer `_ (These often sell out, please let us know if this link needs to be refreshed) -#. Ethernet cable -#. MicroSD → USB adapter (or you may have a microSD port on your computer) -#. An external drive (1TB minimum, 2TB SSD recommended), or an `internal drive `_ with an `USB enclosure `_, as sold with our upgrade kits. MUST CONNECT OVER USB 3.0! - - - Currently the only tested and supported external drives are the Samsung T5 and T7 - - .. tip:: Alternatively, you may build with the Geekworm setup and internal M.2 drive as described in this `guide `_, which has been tested to work, but is not currently supported. - -Hardware: Assembly -.................. - -#. Insert mini speaker/buzzer into GPIO pins 6/8/10/12 with the word "speaker" facing out, `away from the board`. - - .. figure:: /_static/images/diy/pins.png - :width: 60% - :alt: Speaker board spec - -#. Place the Raspberry Pi 4 board (with speaker attached), into its case. -#. Plug in the external drive to one of the USB 3.0 (blue) slots - -Getting EmbassyOS ------------------ - -After building your device, you need a copy of EmbassyOS. - -Purchase from Start9 -............................. - -- You can purchase a copy of EmbassyOS `here `_. This is by far the easiest path to get up and running. - -- Depending on your Internet speed, the download should take between 5 and 30 minutes. - -Build from Source -....................................... - -- If you prefer to build EmbassyOS from source, you can do so following our guide on the `Start9 GitHub `_. - -Installing EmbassyOS --------------------- - -Whether you purchase EmbassyOS from us or build it yourself, you'll need to flash it onto a microSD card. - -#. Download `balenaEtcher `_ onto your Mac, Windows, or Linux computer. -#. Insert the microSD card into your computer, either directly or using an adapter. -#. Open balenaEtcher. -#. Click `Select Image`, then find and select your copy of EmbassyOS. -#. Click `Select Target`, then find and select your micro SD card. - - .. warning:: BE CERTAIN YOU SELECT THE CORRECT DISK AS IT WILL BE ERASED AND WRITTEN OVER - -#. Click `Flash!` You may be asked to (1) approve the unusually large disk target or (2) enter your password. Both are normal. - - .. figure:: /_static/images/diy/balena.png - :width: 60% - :alt: Balena Etcher Dashboard - -#. Once the image is flashed and verified, you may remove the micro SD, insert it into your Embassy, and power up the device. -#. The Embassy is now ready for use, and you may continue following the normal :ref:`Initial Setup ` instructions. - - .. note:: The first time you power on your Embassy it may take 10-20 minutes to initialize. diff --git a/site/source/user-manual/forgot-password.rst b/site/source/user-manual/forgot-password.rst index 08045bc..2722e64 100644 --- a/site/source/user-manual/forgot-password.rst +++ b/site/source/user-manual/forgot-password.rst @@ -4,21 +4,18 @@ Forgot Password =============== -There is currently no way to reset you Embassy master password through a standard UI flow. +.. note:: There is currently no way to reset you Embassy master password through a standard UI flow. -SSH/Linux +Using SSH --------- -If you already have :ref:`SSH keys registered with your Embassy` **OR** you have access to a Linux computer, you can reset your Embassy password without losing any data. - -SSH -=== +.. note:: Resetting you password with SSH only possible if you have already :ref:`set up SSH` on your Embassy. #. Use the command line to gain SSH access to your Embassy, replacing ``[network-id]`` with your Embassy's unique ID: .. code-block:: bash - ssh pi@embassy-[network-id].local + ssh root@embassy-[network-id].local #. Check if you have sqlite3 installed (with ``which``). If not, install it (with ``apt``): @@ -48,10 +45,10 @@ SSH .. warning:: Running setup process will generate new certificate and Tor address for your Embassy. -#. You can now visit ``embassy.local`` to reclaim your Embassy and set a new password. +#. You can now visit http://embassy.local to reclaim your Embassy and set a new password. -Linux -===== +Using a Linux Computer +---------------------- #. Shut down your Embassy, disconnect from power, and remove the microSD card. #. Insert the microSD card into your Linux computer and mount the drive:: @@ -80,7 +77,7 @@ Linux .. warning:: Running setup process will generate new certificate and Tor address for your Embassy. -#. You can now visit ``embassy.local`` to reclaim your Embassy and set a new password. +#. You can now visit http://embassy.local to reclaim your Embassy and set a new password. No SSH/Linux ------------ diff --git a/site/source/user-manual/index.rst b/site/source/user-manual/index.rst index 9cfcdb9..4b1619a 100644 --- a/site/source/user-manual/index.rst +++ b/site/source/user-manual/index.rst @@ -17,13 +17,11 @@ Welcome to the EmbassyOS user manual. Here you will discover all that you Embass backups/index forgot-password customize - managing-services/index + managing-services service-guides/index sessions wifi ssh - diy alt-marketplaces - migrate-02 - recover-03 device-guides/index + upgrade-02 diff --git a/site/source/user-manual/initial-setup.rst b/site/source/user-manual/initial-setup.rst index 5016b3b..49d0190 100644 --- a/site/source/user-manual/initial-setup.rst +++ b/site/source/user-manual/initial-setup.rst @@ -4,95 +4,88 @@ Initial Setup ============= -Powering On ------------ - Check out our quick setup video below, and follow along with the steps in this guide: .. youtube:: DmTlwp5_zvY -1. Connect your Embassy to power and Internet, normally using an ethernet port on your home Internet router. +Powering On +----------- -.. tip:: To avoid networking issues, it is recommended to use your primary router, not an extender or mesh router. +#. Connect your Embassy to power and Ethernet. -2. Plug in your external drive to one of the USB 3.0 (blue) ports on Embassy. + .. tip:: To avoid networking issues, it is recommended to use your `primary` router, not an extender or mesh router. -Embassy will initialize, which may take 10-15min. You will hear 2 distinct sounds: +#. Insert your external drive to one of the blue USB 3.0 ports on Embassy. -* "bep" - Starting up -* "chime" - Embassy is ready +#. You will hear 2 distinct sounds: -Connecting ----------- + * "bep" - Starting up + * "chime" - Embassy is ready + + .. caution:: If you followed the DIY guide and built EmbassyOS from source code, it may take up to 20 minutes to first initialize. -1. Ensure the device you are using (desktop/laptop or mobile) is connected to the same network as your router. +Claiming your Device +-------------------- -.. caution:: Sometimes a router will have a "guest WiFi network," which might be different than the network your Embassy is placed on via ethernet. +#. Ensure the device you are using (desktop/laptop or mobile) is connected to the same network as your Embassy. -2. Visit ``embassy.local`` from your web browser. You will be prompted to enter your :ref:`Product Key`. This is found on the bottom side of your device. + .. caution:: Sometimes a router will have a "guest WiFi network," which might be different than the network your Embassy is placed on via ethernet. -.. figure:: /_static/images/setup/setup0.png - :width: 60% - :alt: Enter Product Key +#. Visit http://embassy.local from your web browser. You will be prompted to enter your :ref:`Product Key`. If you purchased a device from Start9, your Product Key is engraved on the bottom of your device. -.. admonition:: Explanation - :class: toggle expand + .. figure:: /_static/images/setup/setup0.png + :width: 60% + :alt: Enter Product Key - The product key is used to discover your Embassy's IP address on the Local Area Network using a hashing function and a protocol named :ref:`MDNS (or Zeroconf) `. + .. note:: -3. Next, select "Start Fresh" if this is your first time using an Embassy. If you'd like to "Recover" from an existing Embassy, please follow the guide for :ref:`versions 0.2.x ` or :ref:`versions 0.3.x `. + The product key is used to discover your Embassy's IP address on the Local Area Network using a hashing function and a protocol named :ref:`MDNS (or Zeroconf) `. -.. figure:: /_static/images/setup/setup1.png - :width: 60% - :alt: Fresh Install +#. Select "Start Fresh" -4. Select your storage drive. You should only have one drive plugged into your Embassy at this time, but always verify it is what you expect before clicking (such as, is it a 1TB drive?) + .. figure:: /_static/images/setup/setup1.png + :width: 60% + :alt: Fresh Install -.. figure:: /_static/images/setup/setup2.png - :width: 60% - :alt: Select Drive + .. note:: The "Recover" button is used for :ref:`migrating from 0.2.x ` and :ref:`restoring from backup `. -5. Create your *permanent* master password and complete setup. +#. Select your storage drive. You should only have one drive plugged into your Embassy at this time, but always verify it is what you expect before clicking (such as, is it a 1TB drive?) -.. figure:: /_static/images/setup/setup3.png - :width: 60% - :alt: Enter a New Password + .. figure:: /_static/images/setup/setup2.png + :width: 60% + :alt: Select Drive -.. admonition:: Explanation - :class: toggle expand +#. Create your *permanent* master password and click "Finish". - In this step, the setup process will provide your Embassy with three pieces of critical information: + .. warning:: There is currently no way to change your password. Choose a strong master password. Write it down. Store it somewhere safe. DO NOT LOSE IT. If you lose this password, you may be forced to reset the device, resulting in permanent loss of data. **This one responsibility is the price of sovereignty.** - * An ed25519 private key. Used by the Embassy to create a .onion public address for encrypted and anonymous communication over Tor. - * A 4096 bit RSA private key. Used by the Embassy to create a SSL certificate for encrypted communication over LAN. - * A master password. Used by the Embassy to authenticate you as its owner. + .. figure:: /_static/images/setup/setup3.png + :width: 60% + :alt: Enter a New Password - All three secrets are packaged together and transmitted to the Embassy encrypted with its :ref:`Product Key`. +#. Your Embassy is now a private website on the private web! Continue to the section on :ref:`connecting` to learn more about using your Embassy over Tor and LAN. -.. warning:: There is also currently no way to change your password. Choose a strong master password. Write it down. Store it somewhere safe. DO NOT LOSE IT. If you lose this password, you may be forced to reset the device, resulting in permanent loss of data. **This one responsibility is the price of sovereignty.** + .. tip:: Click "Download This Page" to save your Embassy address and certificate info on your computer. -6. That's it! - -.. figure:: /_static/images/setup/setup4.png - :width: 60% - :alt: Setup Complete - -Your Embassy is now hosted on the private web! After setup is complete you will be presented with connection information. You can view and manage your Embassy by visiting its unique Tor Address from any Tor-enabled browser, or by accessing it's ``.local`` address from your LAN (see :ref:`LAN Setup` for assistance). + .. figure:: /_static/images/setup/setup4.png + :width: 60% + :alt: Setup Complete Troubleshooting --------------- -Try these steps if you have any issues with setup. +If you are experiencing issues with setup, try the following: - #. Confirm that the Embassy is plugged into both power and Ethernet, with the USB drive in a USB 3.0 (blue) slot. - #. Confirm the Embassy emitted two sounds when powering on: a bep and a chime. - #. Confirm you are entering the product key correctly and exactly. - #. Confirm your device you are using is not connected to a "Guest" network - #. Confirm your device is not using a VPN. - #. Try to refresh the ``embassy.local`` page. - #. Very rarely, a router may not support mDNS. In this case: +#. Confirm that the Embassy is plugged into both power and Ethernet +#. Confirm your SSD is plugged into one of the blue USB 3.0 slots. +#. Confirm the Embassy emitted two sounds when powering on: a bep and a chime. +#. Confirm you are entering the correct product key. +#. Confirm your connecting device is **not** connected to a "Guest" network. +#. Confirm your connecting device is not using a VPN. +#. Refresh the embassy.local browser page. +#. Very rarely, a router may not support mDNS. In this case: - On your desktop or laptop computer, navigate to your router configuration settings within the browser. This is usually an IP address such as 192.168.1.1. A simple web search will usually reveal how to access the router configuration settings for a particular brand. - Once in the router config settings, find the section that lists the devices on your network. You should see an item labeled "embassy". Take note of the associated IP address and enter it into your browser's URL field to enter the setup. -If you are still having issues, please reach out to us for :ref:`Assistance`. +If you are still having issues, please :ref:`contact support `. diff --git a/site/source/user-manual/managing-services.rst b/site/source/user-manual/managing-services.rst new file mode 100644 index 0000000..eb6652b --- /dev/null +++ b/site/source/user-manual/managing-services.rst @@ -0,0 +1,156 @@ +.. _managing-services: + +================= +Managing Services +================= + +EmbassyOS provides a rich interface for managing installed Services. + +Service Dashboard +----------------- + +The Service Dashboard provides quick insight into the status and health of your service, as well as exposing a variety of management tools. + +.. figure:: /_static/images/services/service00.png + :width: 60% + +* Status: + * **Needs Config**: The Service needs your attention in making a configuration decision. There will always be default options available to you. + * **Stopping**: Service is in the process of stopping. + * **Stopped**: Service is installed and configured, but not currently running. + * **Starting**: Service is in the process of starting up. + * **Running**: Service is running. +* **Launch UI**: If the service offer a User Interface (UI), and the UI is currently available, clicking this button will launch the UI in a new browser tab. Learn more about :ref:`Web UIs`. +* **Health Checks**: This is a critical feature of EmbassyOS. Health Checks are configured by the service packager in order to quickly convey to the user what is happening with their service, as well as possible actions they may want to take. Learn more about :ref:`Health Checks `. +* **Dependencies**: Some services depend on the presence and proper configuration of other services to function. This section will inform you if all dependencies are satisfied and, if not, what to do about it. Learn more about :ref:`Dependencies `. +* **Start / Stop**: Self-explanatory, use these buttons to start or stop a service. + +Installing a Service +-------------------- + +* To add a new service, find its listing inside the Marketplace and click "Install". + + .. figure:: /_static/images/services/service0.png + :width: 60% + + .. figure:: /_static/images/services/service1.png + :width: 60% + +* Depending on the size of the service and your Internet connection, installation should take between 60 seconds and a few minutes. + + .. figure:: /_static/images/services/service2.png + :width: 60% + +* You may click *View Service* at any time to view install progress. + + .. figure:: /_static/images/services/service3.png + :width: 60% + +Updating a Service +------------------ + +.. note:: EmbassyOS will **NEVER** update a service without your consent. + +To see if an update is available for a service, you can visit the *Updates* section of the Marketplace or by visiting its Marketplace listing. + +If an update is available, simply click "Update" and confirm the action. + +Configuring a Service +--------------------- + +After an installation or update, some services require configuration before they can be started. + +Navigate to the *Services > [Service Name] > Config* + + .. figure:: /_static/images/services/service-needs-config.png + :width: 60% + +Traditionally, configuring services was a massive headache and a huge barrier to running a personal server. But no more! The Embassy's revolutionary service config system makes the process transparent, simple, and safe. + + .. figure:: /_static/images/services/service4.png + :width: 60% + +Config options are defined by the service developer and can be almost anything. They are represented as simple UI elements - such as toggles and drop downs - and they include explanations and validations, such that users understand their purpose and are prevented from making mistakes. + + .. figure:: /_static/images/services/service5.png + :width: 60% + +You can change your configuration at any time from a Service's main page: + + .. figure:: /_static/images/services/config.png + :width: 60% + +Service Instructions +-------------------- + +* Every services comes with its own set of usage instructions. To view the instructions for a particular service, navigate to the *Services > [Service Name] > Instructions*. + +.. figure:: /_static/images/services/instruct.png + :width: 60% + +* Instructions will provide you with service-specific direction, provided by the service package developer, on what to expect, and how to use your new service. + +.. figure:: /_static/images/services/service-instruct.png + :width: 60% + +Service Properties +------------------ + +Properties can contain both static and dynamic information about a service. They could be almost anything: a default username/password, an invite code, or a list of peers - anything the service developer thought might be useful. + +.. note:: Some services do not have any information in the Properties section. + +.. figure:: /_static/images/services/props.png + :width: 60% + +* To view the Properties for a particular service, navigate to *Services > [Service Name] > Properties*. + +* Properties may be accompanied by one or more of the following: + * a **help** icon for further explanation. + * a **copy** icon for copying the value to your clipboard. + * a **QR** icon for viewing the value as a QR code. + +Service Interfaces +------------------ + +Interfaces are URLs that an installed service uses to communicate in various ways with other software. Many Services will only have one interface, perhaps with a Tor and LAN address, to denote where it is hosted / accessed. Other services, such as Bitcoin or Lightning Nodes, may have several interfaces for different use cases. + +.. figure:: /_static/images/services/service-ints.png + :width: 60% + +* To view the Interfaces for a particular service, navigate to *Services > [Service Name] > Properties*. From there you can copy a URL to your clipboard for use with external software. + +.. figure:: /_static/images/services/service-ints0.png + :width: 60% + +Service Actions +--------------- + +Actions are defined by the service package developer, and can provide the ability to do resets or other miscellaneous administrative tasks. Actions may or may not require user input. + +.. figure:: /_static/images/services/acts.png + :width: 60% + +Default Actions +............... + +Every service comes with a set up default Actions that can be run. Currently, the only default action is "Uninstall". + +* **Uninstall** - To Uninstall a service, navigate to *Services > [Service Name] > Actions > Uninstall*. + + .. warning:: THIS WILL DELETE ALL DATA FOR THIS SERVICE, PLEASE BE SURE YOU WANT TO DO THIS! + +Custom Actions +.............. + +Service developers can define any number of arbitrary actions for their service. + +Service logs +------------ + +Every service emits logs while it is in a *running* state. Logs give an *under-the-hood* glimpse of a service and can be extremely useful for debugging purposes. To a non-technical user, logs may look like gibberish, and sometimes there is nothing to see at all. You can check here if you have an issue with a service, and if you are talking to support, they may ask you to screenshot or copy these logs to help discover the root of the problem. + +.. figure:: /_static/images/services/logs.png + :width: 60% + +* To view the Logs for a particular service, go to *Services > [Service Name] > Logs* diff --git a/site/source/user-manual/managing-services/index.rst b/site/source/user-manual/managing-services/index.rst deleted file mode 100644 index b4b94ac..0000000 --- a/site/source/user-manual/managing-services/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. _managing-services: - -================= -Managing Services -================= - -EmbassyOS provides a rich interface for working with services installed from the Marketplace. - -.. toctree:: - :maxdepth: 1 - - service-overview - service-install - service-config - service-instructions - service-properties - service-actions - service-interfaces - service-logs - service-updates diff --git a/site/source/user-manual/managing-services/service-actions.rst b/site/source/user-manual/managing-services/service-actions.rst deleted file mode 100644 index db111d0..0000000 --- a/site/source/user-manual/managing-services/service-actions.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. _actions: - -======= -Actions -======= - -Actions are defined by the service package developer, and can provide the ability to do resets or other miscellaneous administrative tasks. Actions may or may not require user input. - -Default Actions ---------------- - -Every service comes with a set up default Actions that can be run. Currently, the only default action is "Uninstall". - -Uninstall -========= - -.. warning:: THIS WILL DELETE ALL DATA FOR THIS SERVICE, PLEASE BE SURE YOU WANT TO DO THIS! - -To remove a service, navigate to the :ref:`Services tab` *> [Service Name] > Actions > Uninstall*. - - .. figure:: /_static/images/services/acts.png - :width: 60% - -Custom Actions --------------- - -Service developers can define any number of arbitrary actions for their service. diff --git a/site/source/user-manual/managing-services/service-config.rst b/site/source/user-manual/managing-services/service-config.rst deleted file mode 100644 index 9a3306f..0000000 --- a/site/source/user-manual/managing-services/service-config.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. _service-config: - -============= -Configuration -============= - -After installation or update, some services require configuration before they can be started. - -Navigate to the `Services tab ` *> [Service Name] > Config* - - .. figure:: /_static/images/services/service-needs-config.png - :width: 60% - -Traditionally, configuring services was a massive headache and a huge barrier to running a personal server. But no more! The Embassy's revolutionary service config system makes the process transparent, simple, and safe. - - .. figure:: /_static/images/services/service4.png - :width: 60% - -Config options are defined by the service developer and can be almost anything. They are represented as simple UI elements - such as toggles and drop downs - and they include explanations and validations, such that users understand their purpose and are prevented from making mistakes. - - .. figure:: /_static/images/services/service5.png - :width: 60% - -You can change your configuration at any time from a Service's main page: - - .. figure:: /_static/images/services/config.png - :width: 60% diff --git a/site/source/user-manual/managing-services/service-install.rst b/site/source/user-manual/managing-services/service-install.rst deleted file mode 100644 index f307683..0000000 --- a/site/source/user-manual/managing-services/service-install.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. _installing: - -========== -Installing -========== - -.. note:: Some services have :ref:`dependencies` on other services. Adding, updating, or removing a service can sometimes have requirements or consequences for other services. Your Embassy will always inform you of these issues along the way. - -To add a new service, simply find its listing inside the Marketplace: *[Service Name] >* ``Install``. Let's install Synapse as an example: - - .. figure:: /_static/images/services/service0.png - :width: 60% - - .. figure:: /_static/images/services/service1.png - :width: 60% - -Depending on the size of the service and your Internet connection, installation should take between 60 seconds and a few minutes. - - .. figure:: /_static/images/services/service2.png - :width: 60% - -You may click *View Service* at any time to view install progress, or after install to go to the Service page. Many services will need to be configured after install. You can use the default options, or change to your liking. See :ref:`configuration` for details. - - .. figure:: /_static/images/services/service3.png - :width: 60% - -You will see a screen like the following when install is complete. Then you're ready to :ref:`configure ` your service! - - .. figure:: /_static/images/services/service4.png - :width: 60% - -.. note:: You can only use a service once its :ref:`dependencies ` are met, its :ref:`configuration` is complete, it has been started, and is in a *running* :ref:`status `. diff --git a/site/source/user-manual/managing-services/service-instructions.rst b/site/source/user-manual/managing-services/service-instructions.rst deleted file mode 100644 index d5e3ffa..0000000 --- a/site/source/user-manual/managing-services/service-instructions.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. _instructions: - -============ -Instructions -============ - -To view the instructions for a particular service, navigate to the :ref:`Services tab ` *> [Service Name] > Instructions*. - -.. figure:: /_static/images/services/instruct.png - :width: 60% - -Instructions will provide you with service-specific direction, provided by the service package developer, on what to expect, and how to use your new service. - -.. figure:: /_static/images/services/service-instruct.png - :width: 60% - -.. note:: For advanced instructions and integration guides, visit the wrapper repository for an `available service `_. diff --git a/site/source/user-manual/managing-services/service-interfaces.rst b/site/source/user-manual/managing-services/service-interfaces.rst deleted file mode 100644 index 116c9ac..0000000 --- a/site/source/user-manual/managing-services/service-interfaces.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. _service-interfaces: - -========== -Interfaces -========== - -Interfaces are URLs that a :ref:`Service` uses to communicate in various ways with other software. Many Services will only have one interface, perhaps with a Tor and LAN address, to denote where it is hosted / accessed. Other services, such as Bitcoin or Lightning Nodes, may have several interfaces for different use-cases. - -.. figure:: /_static/images/services/service-ints.png - :width: 60% - -To view the instructions for a particular service, navigate to the :ref:`Services tab ` *> [Service Name] > Properties*. From there you can copy a URL to your clipboard for use with external software. - -.. figure:: /_static/images/services/service-ints0.png - :width: 60% diff --git a/site/source/user-manual/managing-services/service-logs.rst b/site/source/user-manual/managing-services/service-logs.rst deleted file mode 100644 index dd213b9..0000000 --- a/site/source/user-manual/managing-services/service-logs.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. _service-logs: - -==== -Logs -==== - -Naviage to *Services > [Service Name] > Logs* - -Every service emits logs while it is in a *running* state. Logs give an *under-the-hood* glimpse of a service and can be extremely useful for debugging purposes. To a non-technical user, logs may look like gibberish, and sometimes there is nothing to see at all. You can check here if you have an issue with a service, and if you are talking to support, they may ask you to screenshot or copy these logs to help discover the root of the problem. - - .. figure:: /_static/images/services/logs.png - :width: 60% diff --git a/site/source/user-manual/managing-services/service-overview.rst b/site/source/user-manual/managing-services/service-overview.rst deleted file mode 100644 index 3ad2a9c..0000000 --- a/site/source/user-manual/managing-services/service-overview.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. _service-overview: - -======== -Overview -======== - -Services are very similar to Applications on a mobile device. The biggest differences are that they are often designed to run constantly, with 24/7 availability for when a user requires them. This is why they are called services: they are always ready to serve users! - -.. figure:: /_static/images/services/service8.png - :width: 60% - -In the image above, we see an example of a Service's homescreen, where you can access all the information and utilities of a particular service. - -Below, we highlight the quick, need-to-know information of a Service that a user will want to see right away. - -.. figure:: /_static/images/services/service00.png - :width: 60% - -.. _service-status: - -We can see the Service (Embassy Pages in this case), its ``Status``, ``Health Checks`` (if it has any), ``Dependencies`` (if it has any), and the ability to ``Start`` or ``Stop`` the Service, as well as ``Launch UI`` if it has a :ref:`Web Interface `. Here's a breakdown of what each of these means: - -- Status: - - ```Needs Config```: The Service needs your attention in making a configuration decision. There will always be default options available to you. - - ```Stopping...```: Service is being stopped - - ```Stopped```: Service is installed and configured, but not currently running. - - ```Starting...```: Service is booting up - - ```Running```: Service is running -- Health Checks: This is a critical feature of EmbassyOS. Health Checks are configured by the service packager in order to quickly convey to the user what is happening with their service, and possible actions they may want to take. Learn more about :ref:`Health Checks `. -- Dependencies: A service may require another service, called a dependency, in order to work. These may be optional, or required. Learn more about :ref:`Dependencies `. -- Start / Stop: Self-explanatory, use these buttons to start or stop a service. -- Launch UI: If available, this will open the User Interface (UI) for the service in a new browser tab. Learn more about :ref:`Web UIs`. diff --git a/site/source/user-manual/managing-services/service-properties.rst b/site/source/user-manual/managing-services/service-properties.rst deleted file mode 100644 index 5f9de17..0000000 --- a/site/source/user-manual/managing-services/service-properties.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. _service-properties: - -========== -Properties -========== - -Properties can contain both static and dynamic information about a service. They could be almost anything: a default username/password, an invite code, or a list of peers - anything the service developer thought might be useful. - - .. figure:: /_static/images/services/props.png - :width: 60% - -To view the instructions for a particular service, navigate to the :ref:`Services tab ` *> [Service Name] > Properties*. - -Properties may be accompanied by one or more of the following: - -* a *help* icon for further explanation. -* a *copy* icon for copying the value to your clipboard. -* a *QR* icon for viewing the value as a QR code. - -.. note:: Some services do not have any information in the Properties section diff --git a/site/source/user-manual/managing-services/service-updates.rst b/site/source/user-manual/managing-services/service-updates.rst deleted file mode 100644 index 63da73e..0000000 --- a/site/source/user-manual/managing-services/service-updates.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _service-updates: - -======== -Updating -======== - -To see if an update is available for a service, you can visit the *Updates* section of the Marketplace or by visiting its Marketplace listing. - -If an update is available, simply click "Update" and confirm the action. diff --git a/site/source/user-manual/recover-03.rst b/site/source/user-manual/recover-03.rst deleted file mode 100644 index 77fc0d2..0000000 --- a/site/source/user-manual/recover-03.rst +++ /dev/null @@ -1,57 +0,0 @@ -.. _recover-03: - -====================== -Recover 0.3 Data Drive -====================== - -This guide will cover how to recover existing Embassy 0.3.x service and user data (on an SSD) to a new OS install (sd card). - -Instructions ------------- - -#. Plug up all your hardware - - - New EOS install, flashed on sd card - - Old SSD with 0.3.x data that you are recovering from - - Ethernet cable - - Finally, power cable to boot device - -#. Embassy will power up and then initialize, a process of less than 5 minutes if you purchased an image, or about 10-20 minutes if you built from source. Once complete you will hear a _bep_ to indicate it is initialized and then a _chime_ sound to indicate it is online. - -#. On your computer, open up a browser and go to ``embassy.local``. You will be asked to enter a product key. This can be located on the bottom of your Embassy if you purchased, or in the repository folder if you built from source. - - .. figure:: /_static/images/setup/migrate0.png - :width: 60% - -#. Once entered, select ``Recover`` then select the ``Use Drive`` from the pop-up. If you don't see the drive, you may get a message asking you to unplug, then plug back in the drive, and refresh the page. Do so, then select the drive. - - .. figure:: /_static/images/setup/migrate1.png - :width: 60% - - .. figure:: /_static/images/setup/migrate3.png - :width: 60% - - .. note:: If it does not show up, please power down Embassy, unplug it, plug it back in, and boot Embassy again - -#. If this drive is not empty, you will see a warning first, indicating all data will be overwritten. If you are happy to proceed, click ``Continue``. - - .. figure:: /_static/images/setup/migrate4.png - :width: 60% - -#. You will now need to make a password for your Embassy. It needs to be a strong password. This password protects your Embassy. It can be the same one that you used prior to recovery, or a new one. Either way, make it strong, and make a backup of it. Without this you will **LOSE ALL ACCESS** to your Embassy! - -#. Embassy will now recover all your data from your old Embassy and once finished, you will hear a _bep_ then a _chime_. - - .. figure:: /_static/images/setup/migrate5.png - :width: 60% - -#. Now you will be provided with both a Tor and LAN address with which you can access your Embassy. A file download will contain this important information, which you should keep somewhere safe. It is also a good idea to make bookmarks on the devices that you will use to access your Embassy. These will be the same as your Embassy previous to recovery. - - .. figure:: /_static/images/setup/migrate6.png - :width: 60% - -#. To use LAN safely, the SSL certificate will need to be added to whatever device you are using to access. This can be downloaded by clicking on ``Download root CA`` and installed by following the :ref:`instructions`. - -#. You can now log in to your Embassy via Tor or LAN, and you will be given the option of recovering your data on a service-by-service basis. - -.. note:: For those recovering Bitwarden - it is now called Vaultwarden. diff --git a/site/source/user-manual/sessions.rst b/site/source/user-manual/sessions.rst index c786c42..8ddc3fc 100644 --- a/site/source/user-manual/sessions.rst +++ b/site/source/user-manual/sessions.rst @@ -1,12 +1,14 @@ -.. _active-sessions: +.. _session-management: -=============== -Active Sessions -=============== +================== +Session Management +================== -Every time a login is made with Embassy, such as from a web browser on your laptop or mobile device, a :ref:`Session ` is created. You can see these listed in the ``Embassy`` tab, under ``Active Sessions``. +Every time a login is made with Embassy, such as from a web browser on your laptop or mobile device, a :ref:`Session ` is created. -To end a session, simply click ``Kill`` to the right of your selection. +* To view and manage your active sessions, go to *Embassy > Active Sessions*. + +* To end an active session and log out of that device, click "Kill" to the right of your selection. .. figure:: /_static/images/walkthrough/sessions0.png :width: 60% diff --git a/site/source/user-manual/ssh.rst b/site/source/user-manual/ssh.rst index 957cb39..647ee8e 100644 --- a/site/source/user-manual/ssh.rst +++ b/site/source/user-manual/ssh.rst @@ -4,21 +4,20 @@ Using SSH ========= -.. warning:: This is an advanced feature and should be used with caution. Start9 is not responsible for any damage you might cause while using SSH access. +Creating an SSH Key +------------------- -.. tip:: An ED25519 key is strongly recommended. If you have issues with any other type of key, please consider using an ED25519. +@TODO -Setting Up SSH Access ---------------------- +Registering an SSH Key +---------------------- -Connecting via CLI (Linux / Mac) -================================ +#. Navigate to the *Embassy > SSH*. +#. Click "Add New Key". +#. Paste in your SSH *public* key (created above) and click "Submit". -#. Navigate to the ``Embassy`` tab, then under ``Settings``, click ``SSH`` -#. Click the ``+ Add New Key`` button -#. Paste in your SSH public key and hit ``Submit`` - - .. tip:: This is typically found under your ``home`` in the ``.ssh`` directory and the file should end in ``.pub`` - copy the entire contents of the file. +Connecting via CLI on Linux/Mac +------------------------------- #. You can now access your Embassy from the command line (Linux and Mac) using: @@ -28,22 +27,22 @@ Connecting via CLI (Linux / Mac) Replacing ```` with your Embassy's LAN (``embassy-xxxxxxx.local``) address -Connecting via SSH on Windows, using PuTTY -========================================== +Connecting via PuTTY on Windows +------------------------------- -One of our community members, `@brewsbitcoin `_ (https://brewsbitcoin.com/), has put together this `Guide `_ for connecting via PuTTY on Windows. +@TODO -Setting Up Remote SSH Access (Tor) ----------------------------------- +Using SSH Over Tor +------------------ -.. note:: The following guide requires that you have already added an `SSH key to your Embassy`. +.. note:: The following guide requires that you have already added an :ref:`SSH key to your Embassy`. -This guide will allow you remote SSH access via Tor. Currently only supported on Linux, but may work on Windows with `Torifier `_. Currently, this setup will not persist after a reboot. +.. caution:: SSH over Tor is only supported on Linux, though it may also work on Windows with `Torifier `_. Setup -===== +..... -#. First, you'll need one dependency, ``torsocks``, which will allow you to use SSH over Tor on the machine that you want access with. Select your Linux flavor to install: +#. First, you'll need one dependency, ``torsocks``, which will allow you to use SSH over Tor on the machine that you want access with. Select your Linux flavor to install: .. tabs:: @@ -61,42 +60,41 @@ Setup #. SSH in: + .. warning:: The changes you make here are on the overlay and won't persist after a restart of your Embassy. + .. code-block:: bash ssh root@embassy-xxxxxxx.local -#. Add the following 2 lines to ``/etc/tor/torrc`` **EITHER** by using your preferred text editor (such as ``nano`` or ``vim``): - - ``HiddenServiceDir /var/lib/tor/ssh`` - ``HiddenServicePort 22 127.0.0.1:22`` - - **OR** by entering the following 2 commands: +#. Using Vim or Nano, add the following 2 lines to ``/etc/tor/torrc`` .. code-block:: bash - echo "HiddenServiceDir /var/lib/tor/ssh" >> /etc/tor/torrc - echo "HiddenServicePort 22 127.0.0.1:22" >> /etc/tor/torrc + HiddenServiceDir /var/lib/tor/ssh + HiddenServicePort 22 127.0.0.1:22 -#. Then reload the Tor configuration with your edits: + .. tip:: You can also add these lines by running the following command: + + .. code-block:: bash + + echo "HiddenServiceDir /var/lib/tor/ssh" >> /etc/tor/torrc && echo "HiddenServicePort 22 127.0.0.1:22" >> /etc/tor/torrc + +#. Reload the Tor configuration with your edits: .. code-block:: bash systemctl reload tor -#. Next, gather the ``.onion`` address you just created: +#. Gather the ".onion" address you just created: .. code-block:: bash cat /var/lib/tor/ssh/hostname - .. note:: All these changes are on the overlay and won't persist after a restart of your Embassy - -#. Add an additional SSH key in your EmbassyUI if you want to access from a machine other than the one you did this setup with. - Access ====== -Now to log in, simply use the following command, using the ``.onion`` hostname you printed above: +To log in, simply use the following command, using the ".onion" hostname you printed above: .. code-block:: diff --git a/site/source/user-manual/updating.rst b/site/source/user-manual/updating.rst index a8095c0..867288f 100644 --- a/site/source/user-manual/updating.rst +++ b/site/source/user-manual/updating.rst @@ -1,31 +1,59 @@ -.. _updates: - -======== -Updating -======== - -Keeping current on Updates ensures a secure and performant system. - -.. _update-eos: +.. _updating-eos: +================== Updating EmbassyOS ------------------- +================== -When an Operating System update is available, a big, beautiful banner will appear in the Marketplace as an announcement. Simply click on this and follow the UI flow to update EmbassyOS. It is recommended to keep EOS up to date for the latest security and performance patches, as well as to take advantage of new features. +.. note:: EmbassyOS will **NEVER** update itself without your approval. But we highly recommended keeping EmbassyOS up to date for the latest security and performance patches, as well as to take advantage of new features. -.. _auto-check-updates: +How to Update +------------- -Enable Auto Check for Updates ------------------------------ +#. When a new version of EmbassyOS is available, a badge will appear on the "Embassy" tab. +#. Go to *Embassy > Software Update*. -#. Navigate to the ``Embassy`` tab -> ``Preferences`` -#. Click "Auto Check for Updates" and click Enable -#. If there is an update available, you will be prompted to install it. -#. While updating, your Embassy will emit a gentle chime every 20 seconds. + .. warning:: Ensure you have a stable Internet connection before beginning an OS update, and do not unplug your Embassy while EmbassyOS is downloading. -.. note:: Ensure you have a stable Internet connection, and do not unplug your Embassy during an update. Updates usually complete within a few minutes, but depending on the size of the update and your Internet bandwidth, they can sometimes take up to an hour. +#. Read the release notes and click "Begin Update". +#. While the new version of EmbassyOS is downloading, you may continue to use your device as usual. +#. Once the download is complete, you will be prompted to restart Embassy. +#. After restart, you may be prompted to refresh the browser window. -Manually Checking Updates -------------------------- +Disabling Auto Check for Updates +-------------------------------- -If you choose not to enable automatic update checks, service updates will still appear in the ``Updates`` tab of the Marketplace when ready. +By default, Embassy will automatically check for available updates. To disable this check, do the following: + +#. Navigate to the *Embassy > Preferences*. +#. Click "Auto Check for Updates" and click "Disable". + + .. note:: With auth check for updates disabled, you will need to manually check for updates. This can be done by going to *Embassy > Software Update*. + +This guide will cover how to recover existing Embassy 0.3.x service and user data (on an SSD) to a new OS install (sd card). + +Manual Update by Re-flashing +---------------------------- + +#. Obtain the latest copy of EmbassyOS with your product key included, either by `downloading `_ or `building from source `_. +#. Flash the downloaded image to your microSD card. +#. Insert the microSD card into your Embassy and power it on. + + .. note:: Embassy will power up and then initialize, a process of less than 5 minutes if you purchased an image, or about 10-20 minutes if you built from source. Once complete you will hear a _bep_ to indicate it is initialized and then a _chime_ sound to indicate it is online. + +#. On your computer, open up a browser and go to http://embassy.local. +#. When prompted, enter your Product Key: + + .. figure:: /_static/images/setup/migrate0.png + :width: 60% + +#. Select "Recover". + + .. figure:: /_static/images/setup/migrate1.png + :width: 60% + +#. Assuming you have you fully-intact EmbassyOS data drive plugged in, you will receive a popup declaring that a valid data drive has been detected. Click "Use Drive" from the pop-up. If you don't see the drive, you may get a message asking you to unplug, then plug back in the drive, and refresh the page. + + .. figure:: /_static/images/setup/migrate3.png + :width: 60% + +@TODO get better image ^ diff --git a/site/source/user-manual/migrate-02.rst b/site/source/user-manual/upgrade-02.rst similarity index 91% rename from site/source/user-manual/migrate-02.rst rename to site/source/user-manual/upgrade-02.rst index 8748878..bbfcae8 100644 --- a/site/source/user-manual/migrate-02.rst +++ b/site/source/user-manual/upgrade-02.rst @@ -1,8 +1,8 @@ -.. _migrate-02: +.. _upgrade-02: -================== -Migrate from 0.2.x -================== +==================== +Upgrading from 0.2.x +==================== This guide will cover how to upgrade from EmbassyOS version 0.2.x to version 0.3.0. @@ -20,13 +20,9 @@ Hardware Requirements #. `SD card adapter `_ for getting data from your SD card. -.. _migrate-02-instructions: - Instructions ------------ -.. _migrate-02-backing-up: - Backing up .......... @@ -38,8 +34,6 @@ If you're unsure how to do this - please follow `this `_ -.. _migrate-02-migrate: - -Migrate -....... +Migrate Data +............ #. Begin by going into your Embassy, stopping all running services, and shutting down the device in the Embassy tab. @@ -74,7 +66,7 @@ Power Up #. Embassy will power up and then initialize, a process of less than 5 minutes if you purchased an image, or about 10-20 minutes if you built from source. Once complete you will hear a _bep_ to indicate it is initialized and then a _chime_ sound to indicate it is online. -#. On your computer, open up a browser and go to ``embassy.local`` +#. On your computer, open up a browser and go to http://embassy.local #. You will be asked to enter a product key. This can be located on the bottom of your Embassy if you purchased, or in the repository folder if you built from source. @@ -82,7 +74,7 @@ Power Up :width: 60% -#. Once entered, select ``Recover`` then select the microSD card - this will be labelled ``rootfs``. +#. Once entered, select "Recover" then select the microSD card - this will be labelled ``rootfs``. .. figure:: /_static/images/setup/migrate1.png :width: 60% @@ -97,7 +89,7 @@ Power Up .. note:: If it does not show up, please power down Embassy, unplug it, plug it back in, and boot Embassy again -#. If this drive is not empty, you will see a warning first, indicating all data will be overwritten. If you are happy to proceed, click ``Continue``. +#. If this drive is not empty, you will see a warning first, indicating all data will be overwritten. If you are happy to proceed, click "Continue". .. figure:: /_static/images/setup/migrate4.png :width: 60% @@ -114,7 +106,7 @@ Power Up .. figure:: /_static/images/setup/migrate6.png :width: 60% -#. To use LAN safely, the SSL certificate will need to be added to whatever device you are using to access. This can be downloaded by clicking on ``Download root CA`` and installed by following the :ref:`instructions`. +#. To use LAN safely, the SSL certificate will need to be added to whatever device you are using to access. This can be downloaded by clicking on "Download root CA" and installed by following the :ref:`instructions`. #. You can now log in to your Embassy via Tor or LAN, and you will be given the option of recovering your data on a service-by-service basis. diff --git a/site/source/user-manual/wifi.rst b/site/source/user-manual/wifi.rst index 498831d..aaac6cb 100644 --- a/site/source/user-manual/wifi.rst +++ b/site/source/user-manual/wifi.rst @@ -4,9 +4,9 @@ Setting up WiFi =============== -Although we highly recommend a wired (ethernet) connection for best performance, you can connect your Embassy with a wireless connection if you prefer. Follow the directions below to connect to a WiFi network, or save your credentials for later to connect to a network you are not currently in proximity to. +Although a wired (ethernet) connection for best performance, you can connect your Embassy with a wireless connection if you prefer. Follow the directions below to add one or more WiFi networks to you Embassy. -#. On the ``Embassy`` tab, Under ``Settings``, Click ``WiFi`` +#. Go to *Embassy > WiFi*. .. figure:: /_static/images/config/wifi0.png :width: 60% @@ -18,27 +18,27 @@ Although we highly recommend a wired (ethernet) connection for best performance, :width: 60% :alt: Select Region -#. Select the network you would like from the list of available networks. You will get an idea of signal strength on the right, from red (weak signal) to green (strong signal). If you can move your Embassy closer to the WiFi broadcasting device, you will get a better signal, and as a result, better performance. +#. Select your network from the list of available networks. You will get an idea of signal strength on the right, from red (weak signal) to green (strong signal). If you can move your Embassy closer to the WiFi broadcasting device, you will get a better signal, and as a result, better performance. + + .. tip:: You may also select the network labeled "Other" at the bottom of the list in order to add a hidden network, or a network that is not nearby, for connecting to at a later time. .. figure:: /_static/images/config/wifi2.png :width: 60% :alt: Add WiFi Network - .. tip:: You may also select the network labeled ``Other`` at the bottom of the list in order to add a hidden network, or a network that is not nearby, for connecting to at a later time. - -#. Enter your WiFi password and either select ``Save for Later`` or ``Save and Connect`` to connect immediately. +#. Enter your WiFi password and select "Save for Later" **or** "Save and Connect". .. figure:: /_static/images/config/wifi3.png :width: 60% :alt: Enter Credentials -#. If you saved the network, it will appear in the list when successfully added, but not show connected. If you connect immediately, you will receive a dialogue box and a green checkmark to show connection is live. +#. If you clicked "Save for Later", the network it will appear in the list, unconnected. If you selected "Save and Connect", the network will attempt to connect and show a green checkmark upon success. .. figure:: /_static/images/config/wifi4.png :width: 60% :alt: Connect -#. Click on a saved network for connection options. If you are successfully connected, you will receive a dialogue box and a green checkmark to show connection is live. At this point, you can safely disconnect the ethernet cable from your Embassy, if you wish to use WiFi. +#. Once connected to a WiFi network, you may safely disconnect the ethernet cable from your Embassy. .. figure:: /_static/images/config/wifi5.png :width: 60% From 574aa6f8d60654d38f74da4cfac29740cfd8850c Mon Sep 17 00:00:00 2001 From: Matt Hill Date: Wed, 23 Feb 2022 16:00:04 -0700 Subject: [PATCH 2/4] update dep repo --- sphinx-scylladb-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sphinx-scylladb-theme b/sphinx-scylladb-theme index 9c772de..91c190c 160000 --- a/sphinx-scylladb-theme +++ b/sphinx-scylladb-theme @@ -1 +1 @@ -Subproject commit 9c772de727640dd12a8bdb26ba2cae10819b0288 +Subproject commit 91c190c7991738a632da94e88a88bcfdb093f6e3 From 831cf199af31dedd58d35d31368f4418e7e6b58a Mon Sep 17 00:00:00 2001 From: kn0wmad Date: Wed, 23 Feb 2022 17:27:41 -0700 Subject: [PATCH 3/4] Minor edits --- site/03-todo.md | 13 ++++--------- site/source/user-manual/alt-marketplaces.rst | 2 +- site/source/user-manual/customize.rst | 2 +- site/source/user-manual/dashboard-overview.rst | 12 ++++++------ site/source/user-manual/wifi.rst | 4 ++-- sphinx-scylladb-theme | 2 +- 6 files changed, 15 insertions(+), 20 deletions(-) diff --git a/site/03-todo.md b/site/03-todo.md index d8453fc..917a4e7 100644 --- a/site/03-todo.md +++ b/site/03-todo.md @@ -1,20 +1,15 @@ # TODO - CIFS/LAN OS guides (screens) -- Add / verify ALL links in the **UI** go to the right place in docs - Fontawesome - Tor box (connecting) needs icon - device guides need OS icons -- Initial Setup +- Initial Setup Video - Lightning Guides (Zeus) - Vaultwarden guide (screens) - Refactor and update Roadmap - -# BLOCKED: -- Possible sounds in troubleshooting (and overview / update migrate with links) -- Alt Market Build Guide +- BLOCKED: Possible sounds in troubleshooting (and link in overview / upgrade pages) # AFTER PUBLISHING: -- Close all relevant issues (some await new processes in order to test) -- Add new video content +- Add any new video content - Breakout Bitcoin / Lightning integrations into their own individual pages - Create badges for device guide topic boxes -- Connecting LAN/Tor nesting isn't great - Migrate from other server projects / nodes (currently punted) +- Alt Market Build Guide (punted) diff --git a/site/source/user-manual/alt-marketplaces.rst b/site/source/user-manual/alt-marketplaces.rst index cacf9d7..0262ba9 100644 --- a/site/source/user-manual/alt-marketplaces.rst +++ b/site/source/user-manual/alt-marketplaces.rst @@ -4,7 +4,7 @@ Alt Marketplaces ================ -It is critical to Start9's mission that Start9 does **not** be a central point of failure. The Marketplace is a critical piece of infrastructure and therefore EmbassyOS supports accessing alternative marketplaces. +It is critical to Start9's mission that Start9 is **not** a central point of failure. The Marketplace is a critical piece of infrastructure and therefore EmbassyOS supports accessing alternative marketplaces. .. caution:: Start9 is not responsible for issues encountered when downloading services from alternative marketplaces, and cannot provide support for services that are not from our official marketplace. Here be dragons!! diff --git a/site/source/user-manual/customize.rst b/site/source/user-manual/customize.rst index d58e8a3..27728b2 100644 --- a/site/source/user-manual/customize.rst +++ b/site/source/user-manual/customize.rst @@ -22,7 +22,7 @@ Name Your Device Reorder Services ---------------- -#. In the "Services" tab, and click "Reorder" in the top right. +#. In the "Services" tab, click "Reorder" in the top right. .. figure:: /_static/images/walkthrough/reorder0.png :width: 60% diff --git a/site/source/user-manual/dashboard-overview.rst b/site/source/user-manual/dashboard-overview.rst index bff0f34..e12c8b1 100644 --- a/site/source/user-manual/dashboard-overview.rst +++ b/site/source/user-manual/dashboard-overview.rst @@ -21,30 +21,30 @@ Use this tab to customize and manage your Embassy. :width: 60% Backups -........ +======= The Backups section allows you to create and restore :ref:`Embassy backups `. Settings -........ +======== The Settings section gives you access to :ref:`EmbassyOS Updates `, Device Preferences, :ref:`connecting-lan`, :ref:`ssh`, :ref:`wifi`, and :ref:`alt-marketplaces`. Insights -........ +======== The Insights section gives you basic information on your Embassy, monitoring of system resources / temperature, and logs for debugging. Support -....... +======= The Support section provides links to frequently asked questions as well as Start9 and community contact information. Power -..... +===== * **Restart** - + * Be patient while services shut down. A *tune* will play, indicating the shutdown is complete. * A gentle *bep* will sound when the Embassy is powered back on. * A *chime* will sound when the Embassy is ready to use. Please be patient as a Restart will take some time. diff --git a/site/source/user-manual/wifi.rst b/site/source/user-manual/wifi.rst index aaac6cb..8c25c05 100644 --- a/site/source/user-manual/wifi.rst +++ b/site/source/user-manual/wifi.rst @@ -4,7 +4,7 @@ Setting up WiFi =============== -Although a wired (ethernet) connection for best performance, you can connect your Embassy with a wireless connection if you prefer. Follow the directions below to add one or more WiFi networks to you Embassy. +Although a wired (ethernet) connection is recommended for best performance, you can connect your Embassy with a wireless connection if you prefer. Follow the directions below to add one or more WiFi networks to you Embassy. #. Go to *Embassy > WiFi*. @@ -32,7 +32,7 @@ Although a wired (ethernet) connection for best performance, you can connect you :width: 60% :alt: Enter Credentials -#. If you clicked "Save for Later", the network it will appear in the list, unconnected. If you selected "Save and Connect", the network will attempt to connect and show a green checkmark upon success. +#. If you clicked "Save for Later", the network will appear in the list, unconnected. If you selected "Save and Connect", the network will attempt to connect and show a green checkmark upon success. .. figure:: /_static/images/config/wifi4.png :width: 60% diff --git a/sphinx-scylladb-theme b/sphinx-scylladb-theme index 91c190c..062eaab 160000 --- a/sphinx-scylladb-theme +++ b/sphinx-scylladb-theme @@ -1 +1 @@ -Subproject commit 91c190c7991738a632da94e88a88bcfdb093f6e3 +Subproject commit 062eaabc57a6743006d3d6e3f4043abff13b66e6 From 559636c2b6d0b97fca9d7e25c48034dbdd727c42 Mon Sep 17 00:00:00 2001 From: kn0wmad Date: Wed, 23 Feb 2022 17:36:16 -0700 Subject: [PATCH 4/4] Minor edits --- sphinx-scylladb-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sphinx-scylladb-theme b/sphinx-scylladb-theme index 062eaab..91c190c 160000 --- a/sphinx-scylladb-theme +++ b/sphinx-scylladb-theme @@ -1 +1 @@ -Subproject commit 062eaabc57a6743006d3d6e3f4043abff13b66e6 +Subproject commit 91c190c7991738a632da94e88a88bcfdb093f6e3