Introduction

Welcome to the Start9 Docs! Here you will find everything you need to set up and use your Start9 server. For additional help, contact support.

User Manual


Flashing Guides


Device Guides


Service Guides


Misc Guides


Packaging Guide


Help


Initial Setup - Start Fresh

  1. Connect your server to power and Ethernet.

  2. From a computer connected to the same Local Area Network (LAN) as your server, open a browser and visit http://start.local.

    Setup

  3. Select "Start Fresh" and follow the on-screen instructions. If you are setting up StartOS and need to recover existing data, see Initial Setup - Recover.

Initial Setup - Recover

There are three options for setting up StartOS while also keeping existing data.

Setup

Use Existing Drive

Select this option if:

  1. You have re-flashed StartOS and want to resumt normal operation on the same drive and server.

  2. You are physically transplanting your data drive to a new server.

Transfer

Select this option if you are transferring your data from one drive to another.

Restore from Backup (Disaster Recovery)

Select this option only if your StartOS data drive has been lost or corrupted. This is for disaster recovery only.

Trusting Your Root CA

To establish a secure (HTTPS) connection with your server, it is necessary to download and trust your server's Root Certificate Authority (Root CA).

Contents

Download your Root CA

There are multiple ways to download your Root CA.

  1. From the HTTP login screen.

    Visit your server's http://<adjective-noun>.local URL.

    Trust Root CA Login

  2. From your StartOS-info.html file.

    Following initial setup, you were required to download a StartOS-info.html file. Your Root CA can be downloaded from this file.

    Address Info

  3. Over Tor.

    You can securely access your server using its http://....oinion URL from any Tor-enabled browser. From there, you can download your Root CA by going to System -> Root CA.

    CA Download

  4. Sending to yourself.

    Once you have downloaded your Root CA on one device, you can simply send the file to yourself using email, messaging app, or other file sharing technique.

Trust your Root CA

Select your client device OS and follow instructions

Connecting Locally

To connect locally, you must be connected to the same LAN as your server. Local connections are the fastest possible, as they do not reach out to the Internet.

Contents

Using .local (preferred)

  1. Ensure you have trusted your Root CA.

  2. Visit your server's unique .local address from any browser.

Using IP Address


Your router may unexpectedly change your server's IP address. To prevent this, assign a static IP address to your server in your router settings. This is supported by all routers. Refer to your router's user manual for instructions.
  1. Ensure you have trusted your Root CA.

  2. Visit your server's unique IP address from any browser. You can find your server's IP address in StartOS under System > About, or in your router settings.

Connecting Remotely

Contents

Connecting over Router VPN

Prerequisite

Most modern routers have VPN functionality built-in. Refer to your router's user manual for instructions to complete the following steps.

  1. Assign a static IP address to your server.

  2. Enable your router's VPN.

    
    Rarely, your ISP may unexpectedly change your home IP address. If this happens, it will break your VPN connection until you re-complete the steps below. To prevent this, you can enable Dynamic DNS in your router, which is usually a paid service. To learn more about Dynamic DNS, click [here]().
    
  3. Download your VPN config file from your router.

  4. Install OpenVPN on your client device(s) and establish a VPN connection to your LAN using the config file from above.

Connecting over Tor


It is normal for Tor connections to be slow or unreliable at times.

Using a Tor Browser

You can connect to your server from anywhere in the world, privately and anonymously, by visiting its unique http://....onion URL from any Tor-enabled browser.

Recommended Browsers

Running Tor in the background on your Phone/Laptop

By running Tor on your phone or laptop, certain apps will be able to connect to your server over Tor, even if the apps themselves do not natively support Tor. Select the guide specific to your phone/laptop:

Installing Services

Contents

Installing from the Marketplace

The Marketplace is made up of multiple "registries". A registry is a curated list of services that can be downloaded and installed onto StartOS. You can think of a registry as just one "store" or "booth" inside a broader marketplace.

StartOS comes preloaded with two default registries: (1) The Start9 Registry and (2) the Community Registry.

Services in the Start9 Registry are vouched for, recommended, supported, and maintained by Start9. Services in the Community Registry are not. For a more detailed explanation of the Registry framework, check out this short blog post.

To install a service from the marketplace, simply visit the Marketplace, select a service, and click "Install".

Switching Registries

To switch between registries or add a custom registry, simply click "Change" underneath the current Registry title.

change registry

SideLoading

Sideloading is useful if you are testing a service that does not yet exist on a registry, or if you prefer to eliminate the Marketplace as a point of trust. An s9pk can be obtained from anywhere or even built from source code.

To sideload a service, go to System > Sideload a Service and upload the appropriate .s9pk file.

system sideload

system sideload

Creating Backups

Creating backups is an essential responsibility of self-hosting. If you do not make backups, you will eventually lose your data.

Contents

What You Need to Know

  1. You can create backups to a physical drive plugged directly into your server, or over-the-air to another device on the same LAN (a network folder).

  2. Backups are encrypted using your master password.

  3. Services may choose to exclude certain files or folders from the backup. For example, Bitcoin excludes the blockchain, since it can be recovered by re-syncing.

  4. Backups can take minutes or hours to complete, depending on your hardware and quantity of data.

  5. A service cannot be used while it is backing up. You may, however, continue to use your server and other services.

  6. Upon completion, StartOS issues a backup report, indicating which services were backed up, as well as any errors.

Physical Drive

EXT4 is the recommended format of your backup drive. fat32 and exFAT are not recommended and may not work.

Backing up to USB thumb drive or SD card media is highly discouraged, as low-quality flash memory is easily corruptible.

If you are using a Raspberry Pi, backup drive _must_ be self-powered, or be connected via a powered USB hub, to prevent possible data corruption.

Network Folder

Choose your target device below for instructions creating a network folder.

Restoring Backups

Contents

Restoring Individual Services

This option should only be necessary if you accidentally uninstall a service.

  1. Go to System > Restore from Backup.

    select backup drive

  2. Select your backup drive.

    select backup drive

  3. Decrypt the backup drive by entering the password that was used to create it.

    decrypt backup drive

  4. Select the service(s) you want to restore and click "Restore Selected".

    select services to restore

Restoring an Entire Server

If your StartOS data drive is lost or corrupted and you need to restore your entire server, follow instructions here.

Using SSH

Like other Linux distributions, you can go "under-the-hood" via Secure Shell Protocol (SSH) if you choose. Even though StartOS is designed to be used from the GUI, it is a good idea to set up SSH access. It can be useful for debugging purposes as well as advanced functionality.

For security reasons, StartOS _disables_ access is not available, so you will need to add an SSH key to your server via the method below.

Contents

Creating an SSH Key

  1. Open a terminal on your client device and enter the following command.

    ssh-keygen -t ed25519
    

    You will be asked to enter a file in which to save the key. We recommend pressing Enter to use the default location

  2. Optionally create a passphrase, or press enter for no passphrase.

    The next 3 step are for Linux and Mac users only. Windows users skip to Registering Your SSH Key with StartOS

  3. The terminal will inform you that your public key has been saved. Take note of the path.

    Your public key has been saved in /home/user/.ssh/id_ed25519.pub
    
  4. Start your system's ssh-agent:

    eval "$(ssh-agent -s)"
    
  5. Add your key to the ssh-agent:

    ssh-add ~/.ssh/id_ed25519
    

    Note: if you changed the file name/location in step 1, you will need to use that file/path in this step

Registering Your SSH Key with StartOS

  1. Open a terminal on your client device and display your SSH public key (created above):

    • Mac and Linux:

      cat ~/.ssh/id_ed25519.pub
      
    • Windows:

      type .ssh\id_ed25519.pub
      
  2. Copy the resulting line that looks similar to

    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINH3tqX71XsPlzYhhoo9CqAP2Yx7gsGTh43bQXr1zqoq user@email.com
    
  3. In StartOS, navigate to System > SSH.

  4. Click "Add New Key".

  5. Paste your SSH public key (copied above).

  6. Click "Submit".

SSH over LAN

  1. Open a terminal on your client device and enter:

    ssh start9@SERVER-HOSTNAME
    

    Replace SERVER-HOSTNAME with your server's adjective-noun.local address URL.

  2. The first time you connect, you will see something like this:

    The authenticity of host 'adjective-noun.local (192.168.1.175)' can't be established.
    
    ED25519 key fingerprint is SHA256:BgYhzyIDbshm3annI1cfySd8C4/lh6Gfk2Oi3FdIVAa.
    
    This key is not known by any other names.
    
    Are you sure you want to continue connecting (yes/no/[fingerprint])?
    

    Type "yes" and hit Enter to start trusting the server's SSH public key.

    
    If you get a scary looking warning that says something like
    
        WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
    
    Fear not! This is most likely happening because you have recently re-flashed your server, which causes a change in the key for your device's hostname. The solution is to delete the existing entry from your `known_hosts` file, which is typically located at `~/.ssh/known_hosts`. This will be specified in the warning, along with a helpful line number (in case your file is lengthy).
    

Connecting via PuTTY on Windows

For Windows, following the command above will work. But if you prefer a GUI tool, BrewsBitcoin has created a guide for connecting via SSH using PuTTY on Windows

SSH over Tor


Terminal SSH over Tor is only supported on Linux and MacOS. For Windows, it is only possible with PuTTY as seen <a href="https://tor.stackexchange.com/a/143" target="_blank">here</a>. Note: those instructions use port 9150, but we've configured Tor in Windows on the traditional port 9050.

  1. Install torsocks

    • Mac:

      brew install torsocks
      
    • Debian / Ubuntu

      sudo apt install torsocks
      
    • Arch / Garuda / Manjaro

      sudo pacman -S torsocks
      
  2. Run the following command:

    echo -e "\nHost *.onion\n\tProxyCommand nc -xlocalhost:9050 %h %p" >> ~/.ssh/config
    

    This command adds a wildcard setting for .onion domains to your SSH config file. Any .onion domains you connect to using SSH will use the specified proxy command.

  3. SSH into StartOS:

    
    The changes you make here are on the overlay and won't persist after a restart of your server.
    
    ssh start9@<custom-address>.local
    
  4. Elevate yourself to root in chroot edit mode (which will make your changes persist across reboots):

    sudo /usr/lib/startos/scripts/chroot-and-upgrade
    
  5. Using Vim or Nano, add the following 2 lines to /etc/tor/torrc

    HiddenServiceDir /var/lib/tor/ssh
    HiddenServicePort 22 127.0.0.1:22
    
    
    You can also add these lines by running the following command:
    
        echo -e "\nHiddenServiceDir /var/lib/tor/ssh\nHiddenServicePort 22 127.0.0.1:22" >> /etc/tor/torrc
    
  6. Restart your Start9 server by exiting chroot edit mode:

    exit
    
  7. SSH in again to gather you newly-generated SSH ".onion" address:

    sudo cat /var/lib/tor/ssh/hostname
    
    
    This .onion address is only for SSH access and should not be confused with your server's main .onion address.
    
  8. Exit SSH

    exit
    
  9. Now you can SSH into your server using your SSH ".onion" URL:

    ssh start9@xxxxxxxxxxxxxxxxx.onion
    

Using WiFi

Servers are intended to be online 24/7 and a direct Ethernet connection is always faster, more stable and more reliable than WiFi. We recommend against using WiFi.

Your server does not need to be in the same room as you. You do not need to access it physically. You do not need to see it or touch it for it to serve a web interface on your network. It can live with your router with a direct ethernet connection.

However, WiFi can sometimes be necessary, such as in a school or office setting where Ethernet connections are not available.

Your server may or may not come with a built-in WiFi adapter.

No WiFi adapter

If your device does not have a WiFi adapter, we recommend using a WiFi extender.

You connect the WiFi extender to the available WiFi network, then you connect your StartOS server to the WiFi extender using Ethernet. It is that easy.

The WiFi extenders below have been tested to work with StartOS, but other extenders should also work.

WiFi adapter built-in

Connecting to a WiFi network in StartOS

You should have already set up your server in a location with ethernet and be able to log in from a client machine.

  1. Under System > WiFi select your country (this is for limiting to local civilian radio frequencies)

    Select Country

  2. Choose your WiFi network

    Select Network

  3. Enter your WiFi password and click Save and Connect

    Select Network

That's it!


You should use either wired ethernet or WiFi to connect your server, it isn't recommended that you use both at the same time.


WiFi is consistantly less easy to work with than wired ethernet and is not a recommended solution. Common issues include:

- WiFi networks set up on routers being seperate networks (i.e. "guest" networks or a different subnet)
- Dropped connections confused with the server being down
- Issues with routers when wired ethernet and WiFi are both connected

These can make it difficult to troubleshoot when contacting support.

Updating StartOS


StartOS does not have automatic updates and will _never_ update without your approval. That said, we highly recommended keeping StartOS up to date for the latest security and performance patches, as well as to take advantage of new features.

Contents

Update through the UI

  1. When a new version of StartOS is available, a rocket badge will appear on the "System" tab.

  2. Go to System > Software Update.

  3. Read the release notes and click "Begin Update".

    
    Ensure you have a stable Internet connection before beginning an OS update, and do not unplug your server while StartOS is downloading.
    
  4. While the new version of StartOS is downloading, you may continue to use your device as usual.

  5. Once the download is complete, you will be prompted to restart your server to complete the update.

    
    Updates can take up to an _hour_ to complete. During this time, there is no indication of progress and your StartOS UI will be unreachable. **DO NOT UNPLUG YOUR SERVER DURING THIS TIME!**
    

Update by Re-flashing

If you updating to an unreleased version of StartOS, or something went wrong with a UI update (very rare), it may be necessary to update StartOS by re-flashing. Follow the guide for Flashing StartOS.

Flashing Firmware

Flashing Firmware - Server Pure

This page is for the Server Pure only. It will not work on other devices.

It is generally unnecessary to flash your device in this manner. Please only use this method if directed by a Start9 team member.

The firmware source code can be viewed here.

Prerequisites

  • A monitor and keyboard.
  • A USB stick, formatted FAT32.

Instructions

  1. Power down your server if not already.

  2. Connect a monitor and keyboard to your server using two of the USB3 (blue) ports.

  3. Download the latest firmware: standard release or jailed WiFi.

  4. Copy or move the zip file to the USB stick.

  5. Eject the USB stick and insert it into your server using a USB3 (blue) slot.

  6. Turn on the server while pressing the ESC key on the keyboard repeatedly until you see the PureBoot Basic Boot Menu screen. Select "Options -->".

    step 1

  7. Select "Flash/Update the BIOS".

    step 2

  8. Select "Flash the firmware with a new ROM, erase settings".

    step 3

  9. The system will ask if you want to proceed flashing the BIOS with a new ROM, select "Yes".

    step 4

  10. Choose the file that we downloaded and copied to the USB stick.

    step 5

  11. Confirm you want to proceed with the flash by selecting "Yes".

    step 6

  12. The BIOS will be re-flashed with the new firmware. This may take a few minutes. When complete, remove the firmware USB, then select "OK" to complete the process.

    step 7

Flashing Firmware - Server Pure

This page is for the Server Pure only. It will not work on other devices.

It is generally unnecessary to flash your device in this manner. Please only use this method if directed by a Start9 team member.

The firmware source code can be viewed here.

Prerequisites

  • A monitor and keyboard.
  • A USB stick, formatted FAT32.

Instructions

  1. Power down your server if not already.

  2. Connect a monitor and keyboard to your server using two of the USB3 (blue) ports.

  3. Download the latest firmware.

  4. Copy or move the zip file to the USB stick.

  5. Eject the USB stick and insert it into your server using a USB3 (blue) slot.

  6. Turn on the server while pressing the ESC key on the keyboard repeatedly until you see the PureBoot Basic Boot Menu screen. Select "Options -->".

    step 1

  7. Select "Flash/Update the BIOS".

    step 2

  8. Select "Flash the firmware with a new ROM, erase settings".

    step 3

  9. The system will ask if you want to proceed flashing the BIOS with a new ROM, select "Yes".

    step 4

  10. Choose the file that we downloaded and copied to the USB stick.

    step 5

  11. Confirm you want to proceed with the flash by selecting "Yes".

    step 6

  12. The BIOS will be re-flashed with the new firmware. This may take a few minutes. When complete, remove the firmware USB, then select "OK" to complete the process.

    step 7

Flashing Firmware - Server One (2023)

Start9's 2023 Server One was the Intel NUC11ATKC4, whose BIOS was refered to as "ATJSLCPX" by Intel, and whose latest release was AT0043.cap before they officially discontinued support for the product line.

Prerequisites

  • A monitor and keyboard.
  • A USB stick, formatted FAT32.

Instructions

  1. Download Intel_ATJSLCPX-AT0043.cap to the USB stick

    
    If you wish to confirm the integrity of your download before you flash it, here is the sha256sum:
    
    `e72c356cdefa90486c031b7bd3d616cfd4e34e76dffb9f3ba72928355db3185b  Intel_ATJSLCPX-AT0043.cap`
    
  2. Insert the power cable, video cable, keyboard, mouse, and USB stick with the ATJSLCPX BIOS into the Server One.

  3. Power the unit on and continually press F7 on your keyboard to launch the BIOS update screen.

  4. Press enter 3 times to update the BIOS by selecting and confirming your intention to flash Intel_ATJSLCPX-AT0043.cap from the USB stick.

  5. Power the unit off when it reboots, and remove the BIOS USB stick.

  6. Power the unit on and continually press F2 to enter the bios settings.

  7. Arrow up, then right to the Power menu (near the top right).

  8. Arrow to Secondary Power Settings at the bottom.

  9. Arrow down to After Power Failure and set the value to "Power On".

  10. Arrow to Wake on LAN from S4/S5 and set the value to "Stay Off".

  11. Arrow up, then over to the Boot menu (top right).

  12. Arrow down to Boot Priority.

  13. Set all 4 UEFI PXE & HTTP Network boot options to "Disabled".

  14. Arrow down to Boot USB Devices First and enable (check) it.

  15. Hit F10 to save changes and exit, followed by "Yes".

Flashing StartOS

Flashing StartOS - X86_64 / ARM

This guide is for flashing StartOS to a USB drive, then installing it onto an x86_64 device, which includes most desktops, laptops, and mini PCs. For an up-to-date list of known-good hardware, please check out this forum post.


To install StartOS on an ARM device, simply replace all x86_64 references in this guide.

Contents

Download

  1. Visit the Github release page to find the latest version of StartOS.

  2. At the bottom of the page, under "Assets", download the x86_64.iso file or the x86_64-nonfree.iso file. We recommend installing the x86_64.iso image first. Then, if it is not compatible with your hardware, install the x86_64-nonfree.iso image.

    • x86_64.iso: This image is 100% open source, containing no proprietary firmware or drivers. It will only work on certain hardware devices, such as the Start9 Server Pure.

    • x86_64-nonfree.iso: this image contains non-free (closed source) firmware and drivers, primarily for display and wireless capabilities.

  3. Verify the SHA256 checksum against the one listed on GitHub (optional but recommended).

    • Mac. Open a terminal window and run the following, replacing startos-0..._x86_64 with the path/name of the file:

      openssl dgst -sha256 startos-0..._x86_64
      
    • Linux Open a terminal window and run the following, replacing startos-0..._x86_64 with the path/name of the file:

      sha256sum startos-0..._x86_64
      
    • Windows Open a PowerShell and run the following, replacing Downloads with the directory where you downloaded the file, and startos-0..._x86_64 with the name of the file:

      cd Downloads
      Get-FileHash startos-0..._x86_64
      

Flash

  1. Download and install balenaEtcher onto your Linux, Mac, or Windows computer.

  2. Insert your USB drive into your computer.

  3. Open balenaEtcher.

  4. Click "Select Image" and select the .iso image you just downloaded.

  5. Click "Select Target" and select your microSD card.

    
    BE ABSOLUTELY CERTAIN you have selected the correct target USB flash drive. Whatever target you select will be **COMPLETELY ERASED**!!
    
  6. Click "Flash!". You may be asked to approve the unusually large disk target and/or enter your password. Both are normal.

Install

  1. Remove the newly-flashed USB drive from your computer and plug it into your server. Choose the fastest available USB 3.0+ port - typically this is blue or labeled "SS" (SuperSpeed).

  2. Power on your server, booting from USB.

    
    Occasionally, you may need to make some changes in your BIOS, such as turning off Secure Boot, or allowing USB boot for install. See the <a href="https://community.start9.com" target="_blank">Community Hub</a> for guides or to get help.
    
  3. The StartOS install wizard will now be available at http://start.local. You can also use a monitor, keyboard, and mouse. This is known as "Kiosk Mode".

  4. Choose "Re-Install" to preserve existing StartOS data, or "Factory Reset" to start fresh. After install is complete, you will be prompted to remove the USB drive and refresh the page.

Flashing StartOS - Raspberry Pi

This guide is for flashing StartOS to a microSD card for use on a Raspberry Pi.

Contents

Download

  1. Visit the Github release page to find the latest version of StartOS.

  2. At the bottom of the page, under "Assets", download the startos-..._raspberrypi.img.gz file.

  3. Verify the SHA256 checksum against the one listed on GitHub (optional but recommended).

    • Mac. Open a terminal window and run the following, replacing startos-0..._raspberrypi.img.gz with the path/name of the file:

      openssl dgst -sha256 startos-0..._raspberrypi.img.gz
      
    • Linux Open a terminal window and run the following, replacing startos-0..._raspberrypi.img.gz with the path/name of the file:

      sha256sum startos-0..._raspberrypi.img.gz
      
    • Windows Open a PowerShell and run the following, replacing Downloads with the directory where you downloaded the file, and startos-0..._raspberrypi.img.gz with the name of the file:

      cd Downloads
      Get-FileHash startos-0..._raspberrypi.img.gz
      

Flash

  1. Download and install balenaEtcher onto your Linux, Mac, or Windows computer.

  2. Insert your microSD card into your computer, either directly or using an adapter.

  3. Open balenaEtcher.

  4. Click "Select Image" and select the .img.gz image you just downloaded.

  5. Click "Select Target" and select your microSD card.

    
    BE ABSOLUTELY CERTAIN you have selected the correct target microSD card. Whatever drive you select will be **COMPLETELY ERASED**!
    
  6. Click "Flash!". You may be asked to approve the unusually large disk target and/or enter your password. Both are normal.

Install

  1. For the Raspberry Pi, flashing and installing are essentially the same thing. Simply remove the newly-flashed microSD card and insert it into your Raspberry Pi.

Linux Guides

Trusting Your Root CA (Linux)

Contents

Debian Systems

This should work for most Debian-based systems, such as Debian, Ubuntu, Mint, PopOS etc.

  1. Ensure you have downloaded your Root CA.

  2. Open a terminal and run::

    sudo apt update
    sudo apt install -y ca-certificates p11-kit
    
  3. Move into the directory where you downloaded your Root CA (usually ~/Downloads), for example:

    cd ~/Downloads
    
  4. Add your Root CA to your OS trust store. Be certain to replace adjective-noun with your server's unique hostname in the 3rd and 4th commands:

    sudo mkdir -p /usr/share/ca-certificates/start9
    sudo cp "adjective-noun.crt" /usr/share/ca-certificates/start9/
    sudo bash -c "echo 'start9/adjective-noun.crt' >> /etc/ca-certificates.conf"
    sudo update-ca-certificates
    

    If successful, you will receive 1 added.

  5. If using Firefox or Tor Browser, complete this final step.

  6. If using a Chromium browser, such as Chrome or Brave, complete this final step.

Arch / Garuda

  1. Ensure you have downloaded your Root CA.

  2. Move into the directory where you downloaded your Root CA (usually ~/Downloads), for example:

    cd ~/Downloads
    
  3. Add your Root CA to your OS trust store. Be certain to replace adjective-noun with your server's unique hostname in the 3rd and 4th commands:

    sudo pacman -S ca-certificates
    sudo cp "adjective-noun.crt" /etc/ca-certificates/trust-source/anchors/
    sudo update-ca-trust
    

    Despite no output from the last command, you can test your app right away.

CentOS / Fedora

  1. Ensure you have downloaded your Root CA.

  2. In /etc/systemd/resolved.conf, ensure you have MulticastDNS=Yes.

  3. Restart systemd-resolved

    sudo systemctl restart systemd-resolved
    
  4. Move into the directory where you downloaded your Root CA (usually ~/Downloads), for example:

    cd ~/Downloads
    
  5. Add your Root CA to your OS trust store. Be certain to replace adjective-noun with your server's unique hostname in the 3rd and 4th commands:

    sudo yum install ca-certificates
    sudo cp "adjective-noun.crt" /etc/pki/ca-trust/source/anchors/
    sudo update-ca-trust
    

Additional Steps for Chromium Browsers

On Linux, Chromium browsers require extra configuration to trust your Root CA. These instructions should work for Chrome, Brave, Vivaldi and other Chrome-based browsers.

  1. In the URL bar, enter chrome://settings/certificates.

  2. Click Authorities > Import.

  3. Select your adjective-noun.crt file.

  4. Check "Trust this certificate for identifying websites".

  5. Click OK.

Using a VPN (Linux)

Running Tor (Linux)

Contents


After completing the guide below for your system, you can confirm Tor is running with:

    systemctl status tor

In the rare event that Tor is having connectivity issues, reset the connection:

    sudo systemctl restart tor

Debian/Ubuntu

This should work for most Debian-like systems, such as Debian, Ubuntu, Mint, PopOS etc.

The following instructions will install the LTS (Long Term Support) version of Tor from your distro's default repository. If you would always like the latest stable release, the Tor Project maintains their own Debian/Ubuntu repository. The instructions for connecting to this official Tor Project repository can be found here.

  1. Open a terminal and install/start Tor:

    sudo apt update && sudo apt install tor
    

Arch / Garuda / Manjaro

  1. Open a terminal and install/start Tor:

    sudo pacman -S tor
    

CentOS / Fedora / RHEL

  1. Configure the Tor Package repository. Add the following to /etc/yum.repos.d/tor.repo:

    [Tor]
    name=Tor for Enterprise Linux $releasever - $basearch
    baseurl=https://rpm.torproject.org/centos/$releasever/$basearch
    enabled=1
    gpgcheck=1
    gpgkey=https://rpm.torproject.org/centos/public_gpg.key
    cost=100
    

    For Fedora, the "name" line should be Tor for Fedora $releasever - $basearch

  2. Open a terminal and install Tor:

    sudo dnf install tor
    
  3. Enable tor service:

    sudo systemctl enable --now tor
    

Creating Backups (Linux)

Contents

Create a Shared Folder

Ubuntu

  1. Install Samba if not already:

    sudo apt install samba && sudo systemctl enable smbd
    
  2. Add your user to samba, replacing $USER with your Linux username.

    sudo smbpasswd -a $USER
    

    You will be prompted for your linux password. Then, you must create a new SMB password for the user with permission to write to your new backup share. Keep the password somewhere safe, such as Vaultwarden.

  3. Identify or create a folder to store your server backups.

    
    This folder can be located on an external drive connected to your Linux machine.
    
  4. Right click the folder and click "Properties".

  5. Click "Local Network Share".

  6. Select "Share this folder" and give the folder a Share name. Remember the name, you will need it later. Then click "Create Share".

  7. If your installation of Ubuntu is running a firewall by default or due to your own custom configuration, enter this command to allow connections to Samba. If it generates an error, you can safely ignore it:

    sudo ufw allow Samba
    

Mint

  1. Install Samba if not already:

    sudo apt install samba && sudo systemctl enable smbd
    
  2. Add your user to samba, replacing $USER with your Linux username.

    sudo usermod -a -G sambashare $USER
    sudo smbpasswd -a $USER
    

    You will be prompted for your linux password. Then, you must create a new SMB password for the user with permission to write to your new backup share. Keep the password somewhere safe, such as Vaultwarden.

  3. Identify or create a folder to store your server backups.

    
    This folder can be located on an external drive connected to your Linux machine.
    
  4. Right click the folder and click "Sharing Options".

  5. Select "Share this folder" and give the folder a Share name (maximum 12 characters). Remember the name, you will need it later. Click "Create Share".

  6. If your installation of Mint is running a firewall by default or due to your own custom configuration, enter this command to allow connections to Samba. If it generates an error, you can safely ignore it:

    sudo ufw allow Samba
    

Other Linux

  1. Install Samba if it is not already installed.

    • Arch:

       sudo pacman -S samba
      
    • Debian and Debian-based:

        sudo apt install samba
      
    • CentOS/Redhat

        sudo yum install samba
      
    • Fedora

        sudo dnf install samba
      
  2. Identify or create a folder to store your server backups. Make a note of the directory path. For example:

    mkdir -p /home/$USER/start9-backup
    

    replacing $USER with your Linux username and "start9-backup" with whatever you want the folder to be named.

    
    This folder can be located on an external drive connected to your Linux machine.
    
    
    If you are on Fedora 38+, you need to do an extra step to allow the Samba share in SELinux:
    
        sudo semanage fcontext --add --type "samba_share_t" "/home/$USER/start9-backup(/.*)?"
        sudo restorecon -R /home/$USER/start9-backup
    
  3. Configure Samba by adding the following to the end of your /etc/samba/smb.conf file:

    [backup-share]
        path = "/home/$USER/start9-backup"
        create mask = 0600
        directory mask = 0700
        read only = no
        guest ok = no
    

    Where:

    • [backup-share] can be replaced with whatever you want (must remain inside brackets). This is your Share Name. Remember the name, you will need it later.
    • path is the directory path to the share folder from above.
  4. Open a terminal and enter the following command, replacing $USER with your Linux username:

    sudo smbpasswd -a $USER
    

    This creates a password for the Local Network Share. Keep it somewhere safe, such as Vaultwarden.

  5. If your installation of Linux (Pop-OS users take special note!) is running a firewall by default or due to your own custom configuration, enter this command to allow connections to Samba. If it generates an error, you can safely ignore it:

    sudo ufw allow Samba
    

Create a Backup

  1. In StartOS, go to System > Create Backup.

  2. Click "Open New".

  3. Complete the form:

    1. Hostname: The name of your Linux machine on the LAN.

    2. Path - The "Share Name" (name of the share in your samba config), not the full directory path. (e.g. "backup-share" in the example).

    3. Username - Your Linux username on the remote machine that you used to create the shared directory.

    4. Password - The password you set above using smbpasswd

  4. Click "Connect".

    
    - If you receive `Filesystem I/O Error mount error(13): Permission denied`, ensure you have entered all the correct values in the form. The hostname can be particularly tricky.
    

Mac Guides

Trusting Your Root CA (Mac)

  1. Ensure you have downloaded your Root CA.

  2. Locate your Root CA and double click it. Keychain Access will launch. You will be prompted for your Mac credentials. Select "Modify Keychain".

    Setup

  3. Press Command + Spacebar to launch a program, type in Keychain Access and select the resulting Keychain Access program to open it.

  4. Your server's CA certificate will be displayed among the imported certificates in Keychain Access. Right-click on the imported CA cert and select Get Info:

  5. The details of your CA certificate will be displayed in a new dialog window. Click the "Trust" heading, then select "Always Trust" on Secure Sockets Layer (SSL) and X.509 Basic Policy.

Click the red (x) button at the top left of the Local Root CA dialog window.

  1. You will then be prompted again for your Mac credentials. Click Update Settings:

  2. You will see your server's CA certificate as trusted now, signified by a blue (+) sign and the CA cert information will now say "This certificate is marked as trusted for all users" in Keychain Access:

  3. If using Firefox or Tor Browser, complete this final step

Using a VPN (Mac)

Running Tor (Mac)

Contents

  1. Install Homebrew
  2. Install Tor
  3. Enable Tor System Wide

Install Homebrew

  1. If you do not already have Homebrew installed, follow the installation instructions here. TLDR: Open the Terminal and paste the following line:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  2. You will be prompted for your system password before installation; proceed with entering your password. You may be asked more than once.

  3. You will be notified which directories Homebrew is going to create. Hit RETURN:

    Setup

  4. Homebrew may take a few minutes to download and install everything it needs.

    
    Homebrew uses Google Analytics to collect anonymous usage data. You can deselect the option to share usage data by <a href="https://docs.brew.sh/Analytics#opting-out" target="_blank">opting out</a>
    

Install Tor

  1. If you have the Tor Browser open, close it and quit the application.

    
    If you are on a very old version of macOS, such as High Sierra (10.13) or below, first execute this command in a Terminal window, then close the Terminal app.
    
         echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile
    
  2. Open the Terminal app and install Tor using the following command:

    brew install tor
    
  3. Then start Tor with:

    brew services start tor
    

    This will start Tor and ensure that it is always running, even after a restart. See the Tor Project docs for more details.

Enable Tor System-Wide

Content

  1. Sonoma
  2. Pre-Sonoma

Sonoma (MacOS 14)

  1. Enable the proxy autoconfig file (This will download the Start9 standard proxy config file. You can use your own if you prefer):

    sudo curl https://start9.com/assets/proxy.pac --output /Library/WebServer/Documents/proxy.pac
    
  2. Enable Apache:

    sudo launchctl enable system/org.apache.httpd
    sudo launchctl kickstart system/org.apache.httpd
    
    
    If these commands fail, your version of macOS may still use the older launchctl syntax:
    
        sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
    
  3. Go to System Settings > Network and select the interface to edit. We recommend editing both Ethernet and WiFi. First do one, then the other:

    Sonoma Network

  4. Click Details > Proxies and paste the following URL into "Automatic Proxy Configuration": http://localhost/proxy.pac. Click "OK".

    Sonoma proxy config

  5. Repeat the previous two steps for Wifi/Ethernet, depending on which interface you haven't done yet.

Pre-Sonoma (MacOS 13 and Older)

  1. Enable the proxy autoconfig file (This will download the Start9 standard proxy config file. You can use your own if you prefer):

    sudo curl https://start9.com/assets/proxy.pac --output /Library/WebServer/Documents/proxy.pac
    
  2. Enable Apache:

    sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
    
  3. Go to System Preferences > Network and select the interface to edit. We recommend editing both Ethernet and WiFi. First do one, then the other:

    Pre-Sonoma Network

  4. Click Advanced > Proxies and paste the following URL into "Automatic Proxy Configuration": http://localhost/proxy.pac

    Pre-Sonoma proxy config

  5. Repeat the previous two steps for Wifi/Ethernet, depending on which interface you haven't done yet.

Creating Backups to Mac

Contents

  1. Create a Shared Folder
  2. Create a backup

Create a Shared Folder

  1. Identify or create a folder to store your server backups.

    
     This folder can be located on an external drive connected to your Mac.
    
  2. Go to System Settings > General > Sharing and click the "info" icon:

    Sharing Sharing info

  3. Click the toggle to enable file sharing, then click the "plus" icon and select your backups folder.

    Sharing info

  4. Click "Options".

  5. Select the user who owns the folder.

  6. You can now move in to Create a Backup

    
     You can find the hostname at the top of sharing window. The hostname will be an address beginning with smb://. To use as hostname disregard the smb:// and simply enter the ip address that follows it. You will need this in the next step. Alternatively you can use the computer hostname. (See directions below) Either method will work.
    

Create a Backup

  1. In StartOS, go to System > Create Backup.

  2. Click "Open New".

  3. Complete the form:

    1. Hostname: The name of your Mac. Check the tip in Step 5 of the section above to find it. On some versions of Mac, you may need to open up Terminal and type hostname.

    2. Path - The name of your shared folder, not the full directory path.

    3. Username - Your Mac user who owns the shared folder.

    4. Password - Your password for the above user.

  4. Click "Connect".

    
    - If you receive `Filesystem I/O Error mount error(13): Permission denied`, ensure you have entered all the correct values in the form. The hostname can be particularly tricky.
    
    - **MacOS Catalina (version 10.15.7)** If the backup fails, please see this <a href="https://discussions.apple.com/thread/253970425" target="_blank">Apple support thread</a>. If the provided solution does not work, you will either need to update your Mac or use a physical drive for backups.
    
    - **MacOS Ventura (version 13.2)** If you recently updated to Ventura, and you cannot get the folder to connect, do the following: in `System Settings > General > Sharing`, turn off file sharing, restart your mac, then turn file sharing back on.
    

Windows Guides

Trusting Your Root CA (Windows)

  1. Ensure you have downloaded your Root CA.

  2. Click the "Start" menu, type mmc, and select "Run as administrator" to access the Windows Management Console. When prompted with the "User Account Control" window, select "Yes" to allow this program to run.

    Open MMC

  3. When the Management Console opens, navigate to File > Add/Remove Snap-in.

    Add Snap-in

  4. Select "Certificates" in the left side menu, then "Add". This will open another window.

    Adding a certificate

  5. Select "Computer account" and click "Next". Leave defaulted options on the next screen and click "Finish".

    Computer account

  6. When you return to the "Add or Remove Snap-ins" page, ensure "Certificates (Local Computer)" exists under "Console Root" in the "Selected snap-ins" section, then click "OK".

    Selected Snap-in

  7. In the left hand menu of the Management Console, navigate to Certificates (Local Computer) > Trusted Root Certification Authorities > Certificates.

    Certificates

  8. Right click on the "Certificates" directory, then navigate to All Tasks > Import.

    Import

  9. Click "Next" on the first page of the Certificate Import Wizard, then browse to the location where you saved the downloaded certificate and open it. Then click "Next".

    Import wizard

  10. On the "Certificate Store" window, ensure that it says "Trusted Root Certificate Authorities" and click "Next". Then click "Finish" on the final screen.

    Certificate Store

  11. Select "OK" when the import is successful.

  12. Verify your server's unique <adjective-noun> Local Root CA certificate is in the "Certificates" folder:

    Verify

  13. You can save the console settings (where we added a snap-in), if desired. Your Root CA will remain imported to the CA certificate store either way, and you will likely use this guide if you need to import a new certificate.

  14. If using Firefox or Tor Browser, complete this final step

Using a VPN (Windows)

Running Tor (Windows)

  1. Unfortunately, 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.

  2. Once it is downloaded, run the installer by right clicking on it and selecting "Run as Administrator".

  3. Once you have selected a language, you should see a menu like this:

    install tor

    
    We will install it to `C:\Program Files\Tor Browser`. 
    If you choose a different folder, it needs to _not_ be anywhere under `C:\Users\`. Note the path you use here for the step after next.
    
  4. Open your Command Prompt as an administrator. In Windows 10, you can simply type cmd in the Windows search bar. Right click on the first result, and select "Run as Administrator".

  5. Configure Tor to run perpetually in the background. Insert your destination folder (from above) between binPath=" and the Browser subfolder

    sc create tor start= auto binPath="C:\Program Files\Tor Browser\Browser\TorBrowser\Tor\tor.exe -nt-service"
    
    
    If you receive `Access denied`
    
    1. ensure you are running the command prompt in Administrator Mode. You can tell because the prompt will show C:\\Users\\YOUR-USERNAME> if you are _not_ in admin mode, and it will show C:\\WINDOWS\\system32 if you ARE in admin mode.
    
  6. Start Tor.

    sc start tor
    

    tor running

    
    If you receive `The specified service already exists`:
    
    1. Run the command:
    
            sc delete tor
    
    1. Uninstall the Tor Browser, following <a href="https://tb-manual.torproject.org/uninstalling/" target="_blank">these steps</a>.
    
    1. Begin this guide again from the beginning.
    
  7. If using Firefox or Tor Browser, complete this final step

Creating Backups (Windows)

Contents

  1. Create a Shared Folder
  2. Create a backup

Create a Shared Folder

  1. Identify or create a folder to store your server backups.

    
     This folder can be located on an external drive connected to your Windows machine.
    
  2. Right click the folder and click "Properties".

    Properties

  3. Click "Sharing".

    Sharing

  4. Click "Share".

    Share

  5. Select a user you want to use for login and click "Share".

    Select a user

    
    If you get the following dialog box, you have designated your network "Public". You may wish to change to "Private" if this is your home network. Otherwise you may turn on network sharing for public networks.
    
       ![public network](./assets/backups-windows-4.png)
    
  6. Note the Windows directory path in grey text, highlighted in blue, beginning at the first single slash (\). We will use that path later.

    path

Create a Backup

  1. In StartOS, go to System > Create Backup.

  2. Click "Open New".

  3. Complete the form:

    1. Hostname: Enter your Windows computer name (this is shown after a \\).

    2. Path - Enter the folder path followed by the share name displayed in the Windows sharing dialog shown copied from above. In our example this would be /Users/win/Desktop/SharedFolder. When entering the path, make sure replace the back slashes \ shown in Windows with forward slashes /.

    3. Username - Your Windows user who owns the shared folder.

    4. Password - Your password for the above user.

  4. Click "Connect".

    
    - If you receive `Filesystem I/O Error mount error(13): Permission denied`:
    
    1. Ensure you are entering the correct username and password. You _cannot_ use a pin.
    
    1. Ensure your windows password meets any length and complexity requirements set by your local Windows policy.
    
    1. Office365 accounts also may not work at all, try a regular user in this case.
    
    - If you receive `Filesystem I/O Error mount error(115): Operation now in progress`,
    
    1. Navigate to `Start > Settings > Network & Internet > Ethernet (or WiFi)` and select the "Private" profile to treat your LAN as a trusted network that allows file sharing.
    

Android/Graphene Guides

Trusting Your Root CA (Android/Graphene)

This guide applies to Android 13+, GrapheneOS, CalyxOS, and LineageOS

  1. Ensure you have downloaded your Root CA.

  2. Go to Settings > Security > More security settings > Encryption & credentials > Install a certificate > CA Certificate > Install Anyway, then select your custom-named adjective-noun.crt certificate.

    Setup

  3. If using Firefox, you must use Firefox Beta, then complete this final step.

Using a VPN (Android/Graphene)

Running Tor (Android/Graphene)

Some apps have Tor built-in; they do not require additional software or configurations. Most apps, however, do not have Tor built-in. They require an app called Orbot.

Contents

Running Orbot

#. Install Orbot from the Play Store or F-Droid.


For F-Droid, enable the Guardian Project repository by going to `F-Droid > Settings > Repositories > Guardian Project Official Releases`
  1. Open Orbot and click "Start VPN":

    Start Orbot

  2. Open the kebab menu in the bottom right and click "Settings":

  3. Make sure the options for Start Orbot on Boot and Allow Background Starts are both checked:

    Orbot settings

Orbot VPN Apps

Apps that support using a Socks5 Proxy can use Orbot as-is; no need to add them as VPN apps. Other apps, however, must to be added. If this applies to you, continue below.

  1. In Android, go to Settings > Network & Internet > Advanced > Private DNS and toggle Private DNS to "off".

  2. In Orbot, click "Choose Apps" and select the apps you want to utilize Tor.

    Orbot select apps

iOS Guides

Trusting Your Root CA (iOS)

  1. Ensure you have downloaded your Root CA.

  2. Open your iCloud Downloads folder and click on the certificate. It will display a dialog box that says Profile Downloaded. Click "Close".

  3. Head to Settings > General > VPN & Device Management:

    Settings management

  4. Under "DOWNLOADED PROFILE", click your Root CA:

    Settings select profile

  5. Click "Install":

    Settings profile install

  6. Click "Install" again:

    Settings profile install again

  7. Click "Install" for a 3rd time:

    Settings profile install yet again

  8. You should see green text with a check-mark saying "Verified" under the Profile Installed dialog:

    Settings profile verified

  9. Tap "Done".

  10. Go to General > About > Certificate Trust Settings and enable your Root Ca:

    Settings trust

  11. Click "Continue".

Using a VPN (iOS)

Running Tor (iOS)

  1. Install Orbot.

  2. In Orbot, click "Settings" and configure the following:

    1. "Disable Orbot for non-onion traffic" -> On
    2. "Disable GeoIP lookup for nodes" -> On
    3. "Always clear cache before start" -> On

    Orbot settings

  3. Go back to the main screen and click "Start":

    Orbot start

Synology Guides

Creating Backups to Synology

Create a Shared Folder

  1. In the Synology UI, go to Control Panel > Shared Folder and choose the folder you want to use as the destination for the backup.

Do not select an encrypted folder. Encrypted folders on Synology enforce a character limit of 143 characters. At this time, StartOS backups use folder/file names that are longer than 143 characters. The backup process will fail if you try to backup to an encrypted folder.
  1. Still in the Synology UI, go to Control Panel > File Services > SMB and click the SMB tab if it isn't already selected. Ensure that "Enable SMB service" is checked.

  2. Under Advanced Settings on the same tab, set "Min SMB protocol" to SMB2 and "Max SMB protocol" to SMB3.

  3. Also on the SMB tab, take note of your device name. Just under "Note" in a pale blue box, you will see "PC (Windows Explorer): " and "Mac (Finder):". These both provide network addresses that contain your device's name. This device name is the "Hostname" you will need to provide within the StartOS "New Network Folder" dialog in step 3 of the "Connect StartOS" section below.

  4. Still in File Services, click on the rsync tab. Click the checkbox to enable the rsync service.

  5. Back in the Synology UI, click "File Station" and locate the the desired destination folder. Right click the folder, then Properties > General. Next to "Location" will be a folder location. The portion of the location without the volume label is the value you will use for the "Path" within the StartOS New Network Folder dialog. For example, if the Location is /volume1/Backups, the value you care about is Backups.

Create a Backup

  1. In StartOS, go to System > Create Backup.

  2. Click "Open New".

  3. Complete the form:

    1. Hostname: The name of your Synology device on the LAN.

    2. Path - The name of your shared folder, not the full directory path (e.g. Backups from the example above).

    3. Username - Your Synology user who owns the shared folder.

    4. Password - Your password for the above user.

  4. Click "Connect".

    
    - If you receive `Filesystem I/O Error mount error(13): Permission denied`, ensure you have entered all the correct values in the form. The hostname can be particularly tricky.
    

TrueNAS Guides

Creating Backups to TrueNAS

Create a Shared Folder

  1. Ensure you have already created a ZFS disk pool in Storage > Pool as a place to store your backups. If you need help with this step, see the TrueNAS documentation.

  2. In the TrueNAS UI, create a user for writing backups. Go to Accounts > Users > ADD.

    add user

  3. Enter a Full Name, Username, and Password for the new user. Near the bottom, click "Shell: nologin", and enable "Samba Authentication". Click "SUBMIT". In this example, we will use "Start9 Server Backup" for the full name and "s9backup" for the username. You may choose a different values.

    create user

  4. Go to Services > SMB. enable SMB and check the box "Start Automatically".

    enable SMB

  5. Open a shell and create your backups directory. In this example, we will create a directory called start9backupshare in the root of our storage pool. You may choose a different name or path.

    mkdir /mnt/zpooldisk1/start9backupshare
    

    create dir

  6. Under Sharing > Windows Shares (SMB), drill down into the path until you find the directory to be shared. Give the share a name and click "SUBMIT". In this example we will name the share the nasshare. You may choose a different name.

    find dir

  7. A Configure ACL dialog will emerge. Click "CONFIGURE NOW".

    configure acl

  8. You will be brought to an Edit ACL screen. Under "User", click "Apply User" and select the username we created in step 3. On the right-hand side, Permissions Type should be set to "Basic" and Permissions should be set to "Full Control". Click SAVE

    edit acl

Create a Backup

  1. In StartOS, go to System > Create Backup.

  2. Click "Open New".

  3. Complete the form:

    1. Hostname: The name of your TrueNAS device on the LAN. (e.g truenas.local)

    2. Path - The name of your shared folder, not the full directory path (e.g. "nasshare" from the example).

    3. Username - Your TrueNAS user who owns the shared folder. (e.g. "s9backup" from the example)

    4. Password - Your password for the above user.

  4. Click "Connect".

    
    - If you receive `Filesystem I/O Error mount error(13): Permission denied`, ensure you have entered all the correct values in the form. The hostname can be particularly tricky.
    

Bitcoin Core

Contents

BitBoxApp

This guide is adapted from Shiftcrypto.

Available For

  • Android
  • Linux
  • macOS
  • Windows

Instructions


You will need to be [running Tor in the background](../../../user-manual/connecting-remotely.md#running-tor-in-the-background-on-your-phonelaptop) on your device.

  1. Ensure you are running Tor in the background on your device

  2. In the BitBoxApp sidebar, select Settings > Enable tor proxy.

  3. Enable the proxy and confirm the proxy address (127.0.0.1:9050).

  4. Restart BitBoxApp in order for the new settings to take effect.

  5. In the BitBoxApp sidebar, select Settings > Advanced settings > Connect your own full node.

  6. In the field Enter the endpoint, paste your electrs Tor URL and Port (found in Electrs > Properties). For example: gwdllz5g7vky2q4gr45zGuvopjzf33czreca3a3exosftx72ekppkuqd.onion:50001

  7. Click "Check", and you will be prompted with the message "Successfully established a connection".

  8. Click "Add" to add your node to the node list at the top of the page.

  9. Remove the other servers if you want to exclusively connect to your own node.

Blockstream Green

Available For

  • Android
  • iOS
  • Linux
  • macOS
  • Windows

Contents

Instructions

Desktop Wallet

  1. Open Blockstream Green and click the gear icon on the bottom left to open the App Settings

    Blockstream Green App Settings

  2. Click the Network button

  3. Toggle the Connect with Tor to On (Note: you don't need to connect through a proxy, but optionally can connect to your own if you have set one up.)

    Blockstream Green Network

  4. Click < Back, then click Custom servers and validation

  5. Now toggle Choose the Electrum servers you trust to On to display a Bitcoin Electrum Server field.

  6. Back in your StartOS web interface, go to Services > Electrs > Properties and copy the Quick Connect URL

  7. Switch back to Blockstream Green and paste it into the Bitcoin Electrum Server field, and remove :t

    Blockstream Green Electrs

  8. Click < Back, then click X to close.


The current version of Blockstream Green no longer displays the status of your in-app Tor connection, unlike previous versions. This leaves you uncertain about whether you've completed the steps correctly or if any Tor connectivity issues are due to your server or the in-app Tor connection. In some situations, it may be worth connecting to your local proxy from Step 3, as you can verify that with commands.

Mobile Wallet

  1. Open Blockstream Green and tap App Settings on the bottom or bottom right

  2. Toggle Connect with Tor to On

  3. Toggle Personal Electrum Server to On to display a Bitcoin Electrum server field.

  4. Back in your StartOS web interface, go to Services > Electrs > Properties and copy the Quick Connect URL

  5. Switch back to Blockstream Green and paste it into the Bitcoin Electrum Server field, and remove :t

  6. Tap Save

    Blockstream Green Mobile

Blue Wallet

Available For

  • iOS
  • Android

Blue Wallet on Mac cannot use Tor and is therefore not supported by StartOS.

Instructions


You will need to be [running Tor in the background](../../../user-manual/connecting-remotely.md#running-tor-in-the-background-on-your-phonelaptop) on your device.

  1. In Blue Wallet, go to the settings menu and click "Network".

  2. Click "Electrum Server".

  3. Enter your electrs host (hostname) and port (found in Services -> electrs -> Properties). For example: gwdllz5g7vky2q4gr45zGuvopjzf33czreca3a3exosftx72ekppkuqd.onion:50001

  4. Click 'Save'

Electrum


Completing this guide will _add_ your StartOS Electrum Server (electrs) to the list of servers used by Electrum. If, instead, you _only_ want to connect to your own server, ignoring all others, you will need to run Electrum in <a href="https://electrum.readthedocs.io/en/latest/tor.html" target="_blank">Single Server Mode</a> from the CLI.

Available For

  • Mac
  • Linux
  • Windows
  • Android/Graphene

Instructions


You will need to be [running Tor in the background](../../../user-manual/connecting-remotely.md#running-tor-in-the-background-on-your-phonelaptop) on your device.

  1. Open Electrum and go to Tools > Network or, if you are running for the first time, choose "Select server manually," and click "Next".

  2. Uncheck "Select server automatically", and enter your electrs Quick Connect URL (found in Services > electrs > Properties). Then click "Next".

  3. Select "Use Tor" and "Use Proxy" and enter "127.0.0.1" for the address and "9050" for the port. Click "Next"

  4. That's it! You will be prompted to create a wallet if this is your first time. You can check your connection by clicking the orb in the bottom right, which should be blue in color. If your server settings persist, you are connected.

Fully Noded

Available For

  • Mac
  • iOS

Blue Wallet on Mac cannot use Tor and is therefore not supported by StartOS.

Instructions

  1. In Fully Noded, go to Settings > Node Manager > +

  2. Enter your Bitcoin Core credentials. You can do this in one of two ways:

    a. Use Fully Noded to scan your Quick Connect URL (found in Services > Bitcoin Core > Properties); OR

    b. Enter your Bitcoin Core Tor URL (found in Services > Bitcoin Core > Interfaces) with :8332 appended, as well as you RPC Username and Password (found in Services > Bitcoin Core > Properties).

Nunchuck

Available For

  • Mac
  • Linux
  • Windows
  • Android/Graphene
  • iOS

Contents

Instructions

Nunchuck Mobile


You will need to be [running Tor in the background](../../../user-manual/connecting-remotely.md#running-tor-in-the-background-on-your-phonelaptop) on your device.

  1. If using Android/Graphene, add Nunchuck to the list of VPN apps in Orbot.

  2. Open Nunchuck and select Profile > Network Settings.

  3. In the "Mainnet server" field, enter your electrs hostname and port (found in Services > electrs > Properties).

  4. Click "Save network settings" and restart Nunchuck.

Nunchuck Desktop


You will need to be [running Tor in the background](../../../user-manual/connecting-remotely.md#running-tor-in-the-background-on-your-phonelaptop) on your device.

  1. Open Nunchuck and go to Profile (bottom left) > Settings > Network Settings.

  2. In the "MAINNET SERVER" field Enter your electrs hostname and port (found in Services > electrs > Properties).

  3. Select "Enable TOR Proxy" and enter "127.0.0.1" for the address and "9050" for the port.

    Nunchuk

  4. Click "Save network settings" and restart Nunchuck.

Sparrow

Available For

  • StartOS
  • Mac
  • Linux
  • Windows

Contents

Instructions

Sparrow on StartOS


To choose between a connection to Bitcoin Core or to Electrs, instead of using the Sparrow's own UI you will instead set your choice in the StartOS UI at `Services > Sparrow > Configuration`

  1. Ensure Sparrow is installed and running if not already.

  2. Click "Launch UI".

Sparrow Desktop


To connect to Bitcoin Core over your LAN you do not need to be running Tor, but connecting to your .local will mean you can't use Sparrow away from home.

To connect to Electrs (or Bitcoin Core over Tor), you must be running Tor. You can do this in two ways…
   
   1. You could be running a proxy on your computer by [running Tor in the background](../../../user-manual/connecting-remotely.md#running-tor-in-the-background-on-your-phonelaptop). In this case you would toggle-on `Use Proxy`. 
   
   1. You can use the Tor daemon built into Sparrow itself, which will start automatically when you enter a .onion. You can even do this if you are already running Tor locally.


You can use Sparrow's built-in Tor even if you are already running [Tor in background](../../../user-manual/connecting-remotely.md#running-tor-in-the-background-on-your-phonelaptop)… except on Windows, where you **must** use the proxy **if** you have already set it up and have it running.

  1. If this is your first time using Sparrow, you will be guided to a screen to configure your Bitcoin server. Otherwise, you can find the server setup in File > Preferences > Server > Configure Server.

    • Connecting to Bitcoin Core (recommended):

      1. In the URL field, enter your Bitcoin Core RPC URL (found in Services > Bitcoin Core > Interfaces).

        • If connecting locally, copy the LAN Address. Remove the https:// prefix and enter "443" for the port.

        • If connecting over Tor, copy the Tor Address. Remove the http:// prefix and enter 8332 for the port.

        Sparrow Bitcoin Core

      2. In the User / Pass field, enter you Bitcoin Core RPC Username and Password (found in Services > Bitcoin Core > Properties)

      3. If you are connecting over Tor set up as a local Proxy

        • Enable Use Proxy.

        • For URL, enter "localhost".

        • For Port, enter "9050".

        Otherwise, if you are using your .local or will use Sparrow's own Tor daemon, keep Use Proxy diabled.

      4. Test your connection

        Sparrow test connection

    • Connecting to electrs:

      1. In the URL field, enter your electrs Tor hostname and port (found in Services > electrs > Properties). Currently, electrs can only be used over Tor.

        Sparrow Electrs

      2. If you are connecting over Tor set up as a local Proxy

        • Enable Use Proxy.

        • For URL, enter "localhost".

        • For Port, enter "9050".

        Otherwise, if you are using Sparrow's own Tor daemon, keep Use Proxy diabled.

      3. Test your connection

        Sparrow test connection

Specter

Available For

  • Mac
  • Linux
  • Windows

Contents

Instructions

Specter Desktop

  1. If this is your first time using Specter, you will be shown a screen to pick a connection method. But we'll skip this for now and set up Tor.

    Specter first open

  2. Click Settings and select the Tor tab.

    • If you have Tor running as local Proxy scroll down and select Custom

      • Enter or leave the URL as socks5h://localhost:9050

      • Click Test connection - if it fails, please review your Tor proxy

    • If you don't have Tor running in the background of your system, select Built-in

      • Click Set Up, then Setup Tor
    • then click the Save button

  1. Click the ... menu and click + Add Connection

  2. In the Username and Password fields, enter your Bitcoin Core RPC credentials (found in Services > Bitcoin Core > Properties)

    Specter Bitcoin RPC

  3. In Host, enter your Bitcoin Core RPC Interface Tor Address (found in Services > Bitcoin Core > Interfaces).

  4. In Port, enter 8332 and click Connect

Connecting to Electrs


If you already have a Bitcoin Core connection set up, Specter will make you delete it before you can add your connection to Electrs. If you don't already have a connection, you can skip the first step.

  1. Delete any connections you already have by clicking ..., hovering over the connection to reveal the cog icon, clicking the cog icon and then clicking Delete. Do this for all the connections you have.

  2. Click Add plugin then click Spectrum

    Specter add plugin

  3. Select Enter my own

    Specter Electrs

  4. In the Host field, enter your electrs Tor hostname (found in Services > electrs > Properties) and enter your port as 50001.

  5. Click Connect, then Let's Go!

Trezor Suite

Available For

  • Mac
  • Linux
  • Windows

Instructions

  1. Click the gear icon to enter the settings menu.

    Trezor Suite menu

  2. Inside the Application tab, enable Tor.

    Trezor Suite enable tor

  3. Inside the Coins tab, hover over over Bitcoin to show the gear icon. Click it.

    Trezor Suite coins

  4. Under Backends, click the dropdown menu and select "Custom Electrum Server".

    Trezor Suite electrs

  5. Enter your electrs Quick Connect URL (found in Services > electrs > Properties) and click "Confirm".

    Trezor Suite electrs

Description

If you already have a synced Bitcoin blockchain on one StartOS server, and would like to skip IBD on another StartOS server, follow this guide.


This is an advanced feature and should be used with caution. Start9 is not responsible for any damage you might cause through SSH access.

Instructions

  1. In this guide, we will refer to your synced node as synced.local and your unsynced node as unsynced.local. Simply replace these URLs with your own.

  2. In unsynced.local UI, install Bitcoin. Do not configure or start it.

  3. In synced.local UI:

    1. Ensure you have already have an SSH key.

    2. Stop Bitcoin.

  4. SSH into synced.local:

    ssh start9@synced.local
    
  5. Once inside the shell, run the following commands:

    sudo -i
    
    mkdir -m 0700 -p .ssh
    
    ssh-keygen -t ed25519 -N '' -f .ssh/temp.key
    
    chmod 600 .ssh/temp.key*
    
    cat .ssh/temp.key.pub
    
  6. Copy the output of the final cat command to your clipboard.

  7. In unsynced.local UI, go to System > SSH > Add New Key, and paste the value from above. Click "Submit"

  8. In synced.local shell, run the following commands, replacing unsynced.local in the second command with the correct URL:

    cd /embassy-data/package-data/volumes/bitcoind/data/main/
    
    rsync -e "ssh -i ~/.ssh/temp.key" -povgr --append-verify --rsync-path="sudo mkdir -p /embassy-data/package-data/volumes/bitcoind/data/main ; sudo rsync" ./{blocks,chainstate} start9@unsynced.local:/embassy-data/package-data/volumes/bitcoind/data/main/
    
  9. Wait some hours until the copy is complete. On a gigabit network, the limiting factor will be the write speed of your SSD on the unsynced server.

  10. When the copy is complete, in synced.local shell, run the following commands:

    rm .ssh/unsynced.key*
    
    exit
    
  11. In synced.local UI, restart Bitcoin.

  12. In unsynced.local UI:

    • configure and start Bitcoin for the first time. You should see it begin at 99%+ pre-synced!

    • Delete the temp.key SSH key we added above.

Jellyfin

Web Application

Access through a web browser is the simplest way to view media on a desktop or laptop. When logged in with an administrator account, it also allows you access to an administrator dashboard to add & remove user accounts and set age registrictions, and change other settings.

LAN/Router VPN

  1. In a standard web browser, launch Jellyfin from the StartOS UI or access Jellyfin by typing the LAN interface into the address bar.

TOR

  1. In Tor Browser, or another browser configured for Tor, launch Jellyfin from the StartOS UI or access Jellyfin by typing the .onion interface into the address bar.

While the Jellyfin server is accessable over tor for many clients, connecting over LAN/VPN is recommended for the best streaming experience.

Mobile Apps

Contents

Instructions

Android

Before proceeding, make sure your Android device has been setup to connect over LAN. If you are connecting remotely, you will need to connect over a router VPN or setup Tor.

  1. Visit the app store of your choice and download the Jellyfin Android app.

  2. Open the app, you will be prompted for a host; paste the URL (.local recommended) from your Jellyfin service Services -> Jellyfin -> Interfaces in this field.

  3. Next enter your username and password and tap "Sign In".


If you are getting connection errors, make sure you are connected to the same LAN and an external VPN is not blocking use on your device.

iOS

Before proceeding, make sure your Apple device has been setup to connect over LAN. If you are connecting remotely, you will need to connect over a router VPN or setup Tor.

  1. Open the Apple App Store and download the Jellyfin iOS app.

  2. Open the app, you will be prompted for a server address; paste the URL (.local recommended) from your Jellyfin service Services -> Jellyfin -> Interfaces in this field.

  3. Next enter your username and password and tap "Sign In".


If you are getting connection errors, make sure you are connected to the same LAN and an external VPN is not blocking use on your device.

Desktop Apps

Contents


You can access Jellyfin and play your media through a [web browser](./web-application.md) if you prefer, rather than install an app.

Instructions

MacOS or Windows

Before proceeding, make sure your device has been setup to connect over LAN. If you are connecting remotely, you will need to connect over a router VPN or setup Tor.

  1. Download the .dmg file (MacOS) or the .exe file (Windows) for Jellyfin Media Player.

  2. Upon opening the client, you will be prompted to add server. Click "Add Server".

  3. Next you will be prompted for a server address; paste the URL (.local recommended) from Jellyfin service interfaces (Services -> Jellyfin -> Interfaces) and click "Connect".

  4. Next enter your username and password and click "Sign In".

Jellyfin

Jellyfin has numerous other clients, not all of which have been tested at the time of writing. If you are able to test (successfully or unsucessfully) an app not documented in this guide, your feedback would be much appreciated.


Some clients such as 'Jellyfin for Roku', 'Swiftfin' (tvOS) and other Samsung/LG Smart TV apps previously would not run as they were unable to resolve private urls like ``.local``. These should now work using your unique adjective-noun.local and port number found under `Services -> Jellyfin -> Interfaces`, or of course, the IP address and port.

Lightning Network

Contents

Getting Started

  • Opening Your First Channel - We use Ride The Lightning (RTL) as the tool to interact with and to fund our CLN or LND wallet, then open a private channel to Start9.

  • Getting Inbound Liquidity - We look at the common ways to receive payments having only just opened a channel with all the liquidity on your side.

Connecting to CLN

Connecting to LND with Alby Hub

Connecting to LND

Using LNbits

Opening Channels

Here we'll show you how to install a lightning node and how to open a channel with Start9! We recommend first taking a moment to understand the important concept of liquidity.

Running a Node and Making a Channel with Start9

  1. First, ensure that you have Bitcoin Core installed, running, and fully synced.

  2. Install a lightning node. There are two options we offer on the Start9 marketplace - LND and Core Lightning. In this guide we're going to use Core Lightning (CLN). Though you can use LND and the process will be almost exactly the same.

    LND vs CLN

  3. Install one of the above lightning implementations - as mentioned in this guide we'll use CLN.

    Install CLN

  4. You'll see CLN say Needs Config. Click Configure:

    Config CLN

  5. You can leave the settings as their default values and hit SAVE.

    Config CLN

  6. Now hit Start and wait for CLN to sync up to the network. This may take a couple of hours.

  7. Once the Synced health check turns green (as below) you can proceed to the next step.

    CLN synced

  8. To interact with your node we will use Ride The Lightning (RTL) - this is a service that provides a graphical user interface for our lightning node.

    This will work with either (or both!) lightning implementations.

    CLN synced

  9. Install it and click on Configure just like with CLN.

    Configure RTL

  10. It will default to LND. In this case we are using a CLN node instead, so we will change the default setting as shown:

    Configure RTL

    Configure RTL

    Change to Core Lightning (CLN) and hit OK:

    Configure RTL

    Hit Save:

    Configure RTL

  11. Now hit Start:

  12. With RTL started, click Properties:

  13. Copy the automatically generated password:

    Configure RTL

  14. Head back to the RTL service and click Launch UI:

    Configure RTL

    Enter the copied password and log in:

    Configure RTL

    
    You can add the password to your password manager for convenience.
    
    
  15. Once in RTL, click On-chain then click Generate Address:

    Configure RTL

  16. Send bitcoin to the generated address to add funds to your lightning wallet:

    Configure RTL

    
     Please do not send money to the address pictured above as we will not receive it. If you are intent on sending us money please [head here](https://donate.start9.com).
    
    
  17. Once your sats confirm on-chain you'll see this:

    Configure RTL

  18. Now we must add a peer with which to make channels. In this example we will be opening a channel with Start9 so we will add Start9's node as a peer. Click Peers/Channels:

    Configure RTL

  19. Click Peers then Add Peer:

    Configure RTL

  20. Enter the details of the lightning node you'd like to open a channel with. Start9's node can be found here and is what we'll use in this example. You can use another node if you like - ideally one that is well connected. Once chosen and added as below, click Add Peer:

    Configure RTL

    
     The syntax is as follows **NodePublicKey@ipaddress:port** - If it's a Tor node it will be **PublicKey.onion:port** instead.
    
    
  21. Then you can enter an amount (the size of the channel), select Private Channel (unless you want a public channel - see below), and a Fee Rate (check a block explorer for an idea of current necessary fees):

    Configure RTL

    
     Here we are creating a very small channel with a capacity for payments of only a few dollars. You will likely want your channel to be larger than this so that it's actually usable for reasonably sized payments. Channels this small may well get closed by the remote peer.
    
    
    
     Using a private channel is what we advise as a default. You may wish for the channel to be public if you intend on becoming a routing node or for other reasons.
    
    
  22. You will now see your channel in Channels -> Pending/Inactive:

    Configure RTL

  23. Once the transaction opening the channel gets added to a block your channel will soon appear here under Open:

    Configure RTL

  24. To make a payment head to the Transactions tab and press Send Payment:

    Configure RTL

  25. That's it! You now have a lightning node running with a channel open ready to send payments on the lightning network!

    
     You will not be able to receive payments until you have inbound liquidity in your channel. After completing the above process you will only have outbound liquidity. Inbound liquidity can be created by making payments, having someone open a channel to you or via more sophisticated channel creation.
    
     [This guide](getting-inbound-liquidity.md) will explain more about attaining inbound liquidity.
    
    

If you want to connect other applications or wallets to your node, please see the guides here.

Getting Inbound Liquidity

Before you read this, it's important to understand the important concept of liquidity. This guide summarizes some of the ways you can get some inbound liquidity after opening a new or first channel.

Spending Sats

The simplest way to gain inbound liquidity is to spend some of your outbound liquidity. Whether you send this to yourself or spend it on a purchase, the end result will be inbound liquidity equal to the amount you have spent.

Let's say you have opened a channel of 1 million sats and you'd like this "balanced" so that you have 500k outbound and 500k inbound. To do this, you'll have to send 500k sats from your node to somewhere else.

Common options

  • Buy something you'd ordinarily buy using a service like Bitrefill or The Bitcoin Company, then buy back the sats with fiat.

  • Send 500k sats to another wallet you control, or pay your friend the 500k sats you owe!

  • Donate to Start9

"Loop Out", or perform a swap

Oftentimes when people open a channel, again, let's use 1 million sats as an example, they'd like to be both better connected to the Lightning Network with more than one channel and have inbound and outbound liquidity on both channels. But if you've just opened a channel with the majority of your on-chain funds, you now have just one channel with all your funds as outbound liquidity.

To get some of these sats back as on-chain funds, and so free up the channel so that it has some inbound liquidity, we need to send sats via lightning and have them come back to us at an on-chain Bitcoin address (optionally back to your CLN or LND node to open another channel).

This is typically done using third-party services such as Loop, Boltz, Deezy, and probably a few others. They'll provide you with a lightning invoice to pay and ask you in turn for a Bitcoin address to send to. In return for this service, you'll pay a percentage fee.


In using a swap service, you'll not only pay the third-party a fee for their service, but you'll also be charged for the resulting on-chain fee. This means when swapping or "looping" out 500k, you'll receive the majority but not all of it back. This means any second channel you open will be smaller than the first unless you add more on-chain funds.


Start9 doesn't recommend, vouch for or have any relationship with the third-parties listed as examples.

You can acheive the same effect as using an official swap tool with many lightning wallets that have their own swapping functionality built in. Though this is generally intended for you to be able to pay an on-chain invoice/address through the app rather than for channel management, it can be useful in a pinch. Send to the wallet over lightning, send back to yourself onchain, paying the wallet's own swap fees in the process.

Get peers to open channels to you

When you open a channel to someone else, by default, you'd have all the liquidity on your side of that channel. You'd have only outbound liquidity. On your channel partner's side of the channel, they would see that all the liquidity is on your side and that they only have inbound liquidity.

In the same way that you're giving someone else inbound liquidity by opening your channel to them, you can get inbound liquidity by having someone open a channel to you.

You can convince someone to do this, pay someone to do this, or make friends with others and open reciprocal channels as a group.

Buying Lquidity

There are those who make a business out of selling liquidity. These businesses will charge a fee to open a channel to you from their well-connected nodes, giving you inbound liquidity to use immediately. They will typically agree to keep the channel open for a specific period of time. Examples of these businesses include LNBig and Deezy.

There are also marketplaces where ordinary users sell their liquidity. These could probably be considered a better option. Most sellers are well connected but not heavily centralized, and you have a channel partner you can reach out to and talk with. They'd often be willing to keep the channel open longer if you ask them or if you use it. One popular market for this is Magma.

Swapping Liquity

The easiest, cheapest, and best way to get and offer liquidity is to make agreements with fellow Lightning Network users and open reciprocal channels as a group. You'll often have a chance to learn from more experienced peers (i.e., how to do a circular rebalance) and get two channels by just opening one yourself. For example, in a triangular swap, you open with A, A opens with B, B opens with you. Each user gets 2 channels and 50% inbound. The best example of this is lightning network+

Connecting to CLN

Core Lightning is one of the two lightning implementations found on StartOS. It was created and is maintained by Blockstream.

Core Lightning - Alby Browser Extension

Alby is a browser extension that can be connected to your lightning node a number of ways. This guide will go over direct connections between Alby and your Core Lightning node.


If you are looking for Alby Hub, this is not it. To use [Alby Hub](../lnd/alby-hub.md) you must instead run [LND](../lnd/).
This is NOT the guide for setting up **Alby Hub** this is for a direct connection to LND. If you'd like to connect via Alby Hub instead (recommended), click [here].

If you'd like to connect via LNbits which allows allocation of funds, please see this guide.


We are going to connect using Tor so that Alby will be able to connect from anywhere.

  1. Make sure you are already running Tor on your system and we suggest using Firefox which must be configured to use Tor

  2. Download the Alby extension by visiting the Alby Github, selecting your browser, and installing.

  3. On the Alby welcome screen, select Get Started.

  4. Create a strong password and store it somewhere safe, like your Vaultwarden password manager.

  5. On the next screen, select Bring Your Own Wallet and click Connect.

    Connect Alby

  6. Click Start9 first...

    Connect Alby

  7. ... and only then Core Lightning.

    Connect Alby

  8. You will see the following fields to fill out:

    Connect Alby

  9. For "Host" this is your Peer Interface - find this under Interfaces -> Machine Interfaces within the CLN service on your Start9 server. Copy the address shown here but remove the http:// at the start and paste it into Host within Alby:

  10. For Public key enter your Node Id found at the top of Properties within the CLN service on your server.

  11. To generate a rune on StartOS you will need to navigate to Core Lightning > Actions > Generate Rune. Then copy the value and paste it into Alby.

  12. Leave the Port as 9735.

  13. Click Continue. Once the connection is completed you will see a success page that displays the balance of your CLN node in Sats.

    Connect Alby

Alby is now connected to your CLN node over Tor!

Core Lightning - RTL

This can simply be installed by going to the StartOS marketplace, clicking on Ride The Lightning and then installing the latest version.

Once installed you can configure it to work with either - or both - Core Lightning and LND!

Config RTL

Config RTL

Core Lightning - Zeus

Zeus is a powerful mobile wallet that can be connected directly to both LND and Core Lightning. If you'd like to connect via LNbits, which allows allocation of funds, please see this guide.

Available For:

  • Android
  • iOS

This guide will go over how to connect Zeus to **CLN**. If you'd like to connect Zeus to LND instead - please use [this guide](../lnd/zeus.md).

  1. Download Zeus for your device.

  2. Log into StartOS and expand Services -> Core Lightning -> Config -> Advanced -> Plugins, then confirm the CLNRest is toggled on.

  3. Now open Services -> Core Lightning -> Properties.

    LND Actions

  4. Tap the QR code icon for CLNRest Quick Connect to display the QR code.

    LND Actions

  5. In Zeus, tap "ADVANCED SET-UP", followed by "Connect a node", and finally click the 'scan' icon in the top right to scan the qr code from the previous step.

  6. Click SAVE NODE CONFIG


If you already have other nodes configured in Zeus, Click the 'Node' icon in the top right -> 'plus' icon -> 'scan' icon . Then scan the QR code, and tap "SAVE NODE CONFIG".

![LND Actions](../assets/connect-zeus-cln-addnode.png)

That's it. You can now use your CLN Node via Zeus.

Alby Hub

Alby Hub is the open-source, self-custodial Lightning wallet that puts you in control. Connect to your LND or to an integrated node, it's more than just a wallet—it's your gateway to Bitcoin. Manage channels, run apps, and take charge of your funds, all through one sleek, user-friendly interface. Empower your Bitcoin journey with simplicity and sovereignty.

Usage options

  • LND already on your server: This option tells Alby Hub to use the LND node installed on this StartOS server. It is the more sovereign and secure option, allowing full control over your node.

  • Alby Hub embedded light node: This option tells Alby Hub to use its own, built-in LDK light node. This option is convenient but offers less control over your node.

Getting Started

  1. Once you've made your decision on how to use Alby Hub, install it from the marketplace.

    Installing Alby Hub

  2. Click Configure

    Configure

  3. And select your prefered usage type…

    Configure

  4. Hit Save and then start the service.

LND on your server

You will be running Alby Hub on your server, and it will be connecting to LND on your server.

  1. Launch the Alby Hub UI for the first time.

  2. Cycle through the introduction to arrive at the setup screen.

    Setup

  3. Click on the Get Started (LND) button.

    Setup

  4. Enter a password and keep it somewhere safe, like in your personal :ref:Vaultwarden<vaultwarden-service> instance.

    Setup

  5. Select whether you will create an Alby account now or later (i.e. not at all).

    
    An Alby Account gives your hub a lightning address, Nostr address and zaps, email notifications, fiat topups, priority support, automatic channel backups, access to podcasting apps & more. If you choose not to create an account, your setup will be complete.
    
    

    Setup

  6. Connect your Alby account by clicking to request an authorization code. This will open a new tab.

    Setup

  7. If you have a pre-existing Alby account your can log in here, otherwise you can sign up.

    Setup

    Setup

  8. You will get an authorization code to add back into the previous tab hosted on your server. Paste that auth code and hit Submit.

    Setup

  9. Your self-hosted Alby Hub is ready and connected to your self-hosted LND!

Alby Hub embedded light node

You will be running Alb Hub on your server, and it will be connecting to LDK light node on your server. (The Alby Hub service will have a self-contained node, rather than connecting to an external instance of the LND servic. Keep this in mind when considering backups!)

  1. Launch the Alby Hub UI for the first time.

  2. Cycle through the introduction to arrive at the setup screen.

    Setup

  3. Click on the Get Started (LDK) button.

    Setup

  4. Enter a password and keep it somewhere safe, like in your personal Vaultwarden.

    Setup

  5. Select whether you will create an Alby account now or later (i.e. not at all).

    
    An Alby Account gives your hub a lightning address, Nostr address and zaps, email notifications, fiat topups, priority support, automatic channel backups, access to podcasting apps & more. If you choose not to create an account, your setup will be complete.
    
    

    Setup

  6. Connect your Alby account by clicking to request an authorization code. This will open a new tab.

    Setup

  7. If you have a pre-existing Alby account your can log in here, otherwise you can sign up.

    Setup

    Setup

  8. You will get an authorization code to add back into the previous tab hosted on your server. Paste that auth code and hit Submit.

    Setup

  9. Your self-hosted Alby Hub is ready and connected to your self-hosted LDK light node!

Connecting Apps

Two of the more important apps you may want to install are:

  • Alby Web (a simple wallet interface that connects to your Alby Hub and can be saved as a PWA (app-like) on your phone)
  • Alby Extension (companion for accessing Bitcoin and Nostr apps, payments across the globe and passwordless logins)

Alby Web

  1. If you have connected your Alby Hub to an Alby account during setup, Alby Web will appear connected by default. (If you have not, you can go to Settings > Alby Account to add an account).

    Alby Web Setup

    Alby Web Setup

This wallet interface allows you to interact with your Alby Hub-connected LND over clearnet with a easy to use interface.

Alby Extension

  1. Visit the App Store from your Alby Hub.

    Alby Extension Setup

  2. Click Connect.

    Alby Extension Setup

  3. Give the connection to your Alby Extenions a name and decide what access and limitations you give it.

    
    The settings are fairly self explanatory. Typically you'll want your browser extension to be able to have full access to your lightning node and funds since you will be the only one using it and will want to both make and receive payments. Payments you make have to be confirmed and authorized through the extension, but if you are worried about overspending, the advanced **Budget** option sets monthly limits on how much can be spent. This is useful in case you get carried away zapping or if you ever misread a payment request that's higher than you expect.
    
    

    Alby Extension Setup

  4. Download the extension for your browser if you don't have it already. Install it. Open it if you do already have it installed.

  5. If the extenstion is installed on the same browser, click the newly appeared icon in the menu bar while on the screen above. Click to connect.

    Alby Extension Setup

  6. You can now spend sats and generate invoices from your browser! Test it out by running your own noStrudel instance.

Resources and Guides

Alby have extensive users guides available here. Learn how to connect other apps and use the advanced features available to those who set up Alby accounts.

BTC Sessions has created an Alby Hub tutorial here. While this focuses on the cloud hosted variety of Alby Hub, the interface and features are the same, and the Start9 hosted variety gets a mention in the last segment.

Connecting to LND

LND is the second of the two lightning implementations found on StartOS. It was created and is maintained by Lightning Labs.

Alby Hub

Lightning Node Connect (LNC)

LND - Alby Browser Extension


This is NOT the guide for setting up **Alby Hub** this is for a direct connection to LND. If you'd like to connect via Alby Hub instead (recommended), click [here](./alby-hub.md).

Alby is a browser extension that can be connected to your lightning node a number of ways. This guide will go over direct connections between Alby and your LND node.

If you'd like to connect via LNbits which allows allocation of funds, please see this guide.


We are going to connect using Tor so that Alby will be able to connect from anywhere.

  1. Make sure you are already running Tor on your system and we suggest using Firefox which must be configured to use Tor

  2. Download the Alby extension by visiting the Alby Github, selecting your browser, and installing.

  3. On the Alby welcome screen, select Get Started.

  4. Create a strong password and store it somewhere safe, like your Vaultwarden password manager.

  5. On the next screen, select Bring Your Own Wallet and click Connect.

    Connect Alby

  6. Click Start9 first...

    Connect Alby

  7. ... and only then LND.

    Connect Alby

  8. Copy the LND Connect REST URL from your LND service page’s Properties section and paste it into Alby:

    Connect Alby

    Connect Alby

  9. Alby will pick up that you are connecting over Tor and suggest using their Companion App (only needed if your browser isn’t setup to use Tor) or using Tor natively which you will be able to do. Select TOR (native) and click Continue:


If this does not work, please ensure that Tor is running on your system and that Firefox is configured to use it. If you can’t get this to work it’s OK to use the Companion App - but you will have a better experience with your Start9 server elsewhere if you take the time to get Tor running on your devices.

  1. Once connection is completed you will see a success page that displays the balance of your LND node in Sats..

    Connect Alby

Alby is now connected to your LND node over Tor!

LND - BitBanana


Compatible with LND only

  1. Install BitBanana on your phone.

  2. In BitBanana go to Connect Node.

  3. Locate the LND Connect gRPC URL from your LND service page's Properties section.

  4. Display the QR code by clicking on the QR code icon.

  5. Scan the QR code with your phone.

BitBanana is now connected to your LND node!

LND - Fully Noded

Sovereign, secure, powerful, and easy-to-use wallet that utilizes your own LND node as a backend.

Available For:

  • iOS
  • macOS
  1. Download Fully Noded from the Apple App Store.

  2. Log into your Start9 server UI and select Services -> LND -> Properties.

  3. Click the QR code icon next to “LND Connect REST URL” to display the QR code and scan/copy this with your iPhone/mac.

    [Scanning QR] From the App, you have to go > Node manager > Add a node + > hit Scan QR (not LND)

    [Pasting credentials] From the App, you have to go > Node manager > Add a node (+) > select LND (not Scan QR).

    If pasting, there are 4 fields where we'll paste the LND Connect URL we copied earlier:

    • Label (pick a name for your LND node)
    • Address (paste the address without the word "lndconnect")
    • Macaroon (paste the macaroon without the word "macaroon")
    • SSL Cert (optional field - leave it blank)
  4. Press "SAVE"

You can now use Fully Noded with your LND node to send/receive bitcoin over the lightning network, open/close channels, connect to peers, etc!

LND - RTL

This can simply be installed by going to the StartOS marketplace, clicking on Ride The Lightning and then installing the latest version.

Once installed you can configure it to work with either - or both - Core Lightning and LND!

Config RTL

Config RTL

LND - Zeus

Zeus is a powerful mobile wallet that can be connected directly to both LND and Core Lightning. If you'd like to connect via LNbits, which allows allocation of funds, please see this guide.

Available For:

  • Android
  • iOS

This guide will go over how to connect Zeus to **LND**. If you'd like to connect Zeus to CLN instead - please use [this guide](../cln/zeus.md).

  1. Download Zeus for your device.

  2. Log into StartOS and select Services -> LND -> Properties.

  3. Tap the QR code icon for LND Connect REST URL to display the QR code.

  4. In Zeus, tap "Scan node config". Allow camera access, scan the QR code, and then tap 'Save node config'. Zeus will fill in your node details based on the information in the QR code.

  5. Click SAVE NODE CONFIG


If you already have other nodes configured in Zeus, go to Settings.-> Connect a node -> + . Then scan the QR code, and tap "Save node config".

That's it. You can now use your LND Node via Zeus.

Connect to LND via Lightning Node Connect (LNC)

Lightning Node Connect (LNC) provides a very simple way to connect to an LND node that does not require the Tor network.

This is not the same as connecting directly to LND for which guides can be found here.


This requires installing the [Lightning Terminal](https://marketplace.start9.com/marketplace/lightning-terminal) service from the marketplace.

The following two guides go over how to connect wallets to LND via LNC.

LND via Lightning Node Connect (LNC) - Alby Browser Extension

Alby is a browser extension that can be connected to your lightning node a number of ways. This guide will go over connecting Alby and LND using LNC.

If you'd like to connect directly using LND's REST API see here. If you'd like to connect via LNbits which allows allocation of funds, please see this guide.


This requires installing the [Lightning Terminal](https://marketplace.start9.com/marketplace/lightning-terminal) service from the marketplace.

  1. Download the Alby extension by visiting the Alby Github, selecting your browser, and installing.

  2. Install Lightning Terminal from the marketplace.

  3. On the Alby welcome screen, select Get Started.

  4. Create a strong password and store it somewhere safe, like your Vaultwarden password manager.

  5. On the next screen, select Bring Your Own Wallet and click Connect.

    Connect Alby

  6. Click Start9 first...

    Connect Alby

  7. ... and only then Lightning Terminal (LNC).

    Connect Alby

  8. You will see the following screen. Launch the Lightning Terminal service UI from your Start9 server and do as instructed below:

    Connect Alby

  9. Click Continue and you will see this once you successfully connect:

    Connect Alby

Alby is now connected to your LND node via LNC!

LND via Lightning Node Connect (LNC) - Zeus

Zeus is a powerful mobile wallet that can be connected directly to LND and or avoiding Tor via LNC. This guide will go over connecting Alby and LND using LNC.

Available For:

  • Android
  • iOS

If you'd like to connect directly using LND's REST API see here. If you'd like to connect via LNbits which allows allocation of funds, please see this guide.


This requires installing the [Lightning Terminal](https://marketplace.start9.com/marketplace/lightning-terminal) service from the marketplace.

  1. Download Zeus for your device.

  2. Install Lightning Terminal from the marketplace.

  3. Log into StartOS and select Services -> Lightning Terminal and click Launch UI. The password can be found in Services -> Lightning Terminal -> Properties.

  4. From the Lightning Terminal interface, click Lightning Node Connect.

  5. Click to Create a new session.

  6. Name the wallet and click Submit.

    Connect Zeus via LNC

  7. Click on the QR code:

    Connect Zeus via LNC

  8. Open up Zeus and click SCAN NODE CONFIG then scan the QR code.

  9. Tap SAVE NODE CONFIG.


If you already have other nodes configured in Zeus, go to Settings.-> Connect a node -> + . Then scan the QR code, and tap "Save node config".

That's it. You can now use your LND Node via LNC with Zeus.

Using LNbits

The Concept

LNbits allows you to create a wallet that makes use of your node with only an alloted amount of sats. This restriction can be very helpful for if you only want to have a small amount for spending on your phone without making your entire lightning balance available. You can even allow other people to have wallets you create for them - think giving your children an allowance. They can start with a set amount (can be zero) and simply spend what you initially make available. They can also earn more for themselves as they will have the freedom to issue their own invoices - all while making use of your node.


All wallets created this way are ultimately bound by the capacity of your node. If one wallet is allocated 10,000 sats but your underlying node only has 9000 sats of outbound capacity, payments will simply fail.

What lightning node should I use?

LNbits will work for both Core Lightning (CLN) and LND but if you want to connect Zeus or BlueWallet to LNbits then this will only work with LND as the underlying node. This is because the LNDhub plugin will be required.

If you are looking to connect the Alby browser extension to your LNbits wallet, that will work with both CLN and LND.

Setting up LNbits

  1. Start by ensuring that you have LNbits installed already as well as LND or Core Lightning (CLN). You also need your lightning node to have at least one channel set up otherwise payments will not work. If you have not set up a channel yet, please follow this guide.

 Remember - if you intend to connect BlueWallet or Zeus, that will only be possible with LND. Alby can work with both.

  1. Navigate to Services -> LNbits, click Launch UI, and authenticate with your 'Superuser Username' and 'Superuser Default Password' found in LNbits -> Properties:

    LNbits superuser

  2. After logging into your LNbits account you'll see the following screen - click I understand:

    LNbits superuser

    
    This isn't a concern on StartOS as all wallets created will have the address they generated stored within **Properties** within the LNbits serivce.
    
    
  3. Now a default wallet will have already been generated - highlighted on the top left. We'll rename it to something we can remember by clicking Rename wallet entering somthing-you-can-remember then clicking UPDATE NAME:

    LNbits raname wallet

Now you can proceed to connect one of the following wallets to LNbits using the guides below:

Funding LNbits


After any of the above wallets has been setup with the corresponding instructions, you can allocate sats to this wallet within LNbits by clicking the "+" icon here:

LNbits fund +

LNbits fund amount

LNbits fund complete


Remember: All wallets are ultimately bound by the capacity of your node. If one wallet is allocated 1,000 sats but your underlying node only has 900 sats of outbound capacity, payments will simply fail.

Your newly created LNbits wallet has now been funded and is ready to send sats over the Lightning Network!

Using LNbits

The Concept

LNbits allows you to create a wallet that makes use of your node with only an alloted amount of sats. This restriction can be very helpful for if you only want to have a small amount for spending on your phone without making your entire lightning balance available. You can even allow other people to have wallets you create for them - think giving your children an allowance. They can start with a set amount (can be zero) and simply spend what you initially make available. They can also earn more for themselves as they will have the freedom to issue their own invoices - all while making use of your node.


All wallets created this way are ultimately bound by the capacity of your node. If one wallet is allocated 10,000 sats but your underlying node only has 9000 sats of outbound capacity, payments will simply fail.

What lightning node should I use?

LNbits will work for both Core Lightning (CLN) and LND but if you want to connect Zeus or BlueWallet to LNbits then this will only work with LND as the underlying node. This is because the LNDhub plugin will be required.

If you are looking to connect the Alby browser extension to your LNbits wallet, that will work with both CLN and LND.

Setting up LNbits

  1. Start by ensuring that you have LNbits installed already as well as LND or Core Lightning (CLN). You also need your lightning node to have at least one channel set up otherwise payments will not work. If you have not set up a channel yet, please follow this guide.

 Remember - if you intend to connect BlueWallet or Zeus, that will only be possible with LND. Alby can work with both.

  1. Navigate to Services -> LNbits, click Launch UI, and authenticate with your 'Superuser Username' and 'Superuser Default Password' found in LNbits -> Properties:

    LNbits superuser

  2. After logging into your LNbits account you'll see the following screen - click I understand:

    LNbits superuser

    
    This isn't a concern on StartOS as all wallets created will have the address they generated stored within **Properties** within the LNbits serivce.
    
    
  3. Now a default wallet will have already been generated - highlighted on the top left. We'll rename it to something we can remember by clicking Rename wallet entering somthing-you-can-remember then clicking UPDATE NAME:

    LNbits raname wallet

Now you can proceed to connect one of the following wallets to LNbits using the guides below:

Funding LNbits


After any of the above wallets has been setup with the corresponding instructions, you can allocate sats to this wallet within LNbits by clicking the "+" icon here:

LNbits fund +

LNbits fund amount

LNbits fund complete


Remember: All wallets are ultimately bound by the capacity of your node. If one wallet is allocated 1,000 sats but your underlying node only has 900 sats of outbound capacity, payments will simply fail.

Your newly created LNbits wallet has now been funded and is ready to send sats over the Lightning Network!

Using LNbits

The Concept

LNbits allows you to create a wallet that makes use of your node with only an alloted amount of sats. This restriction can be very helpful for if you only want to have a small amount for spending on your phone without making your entire lightning balance available. You can even allow other people to have wallets you create for them - think giving your children an allowance. They can start with a set amount (can be zero) and simply spend what you initially make available. They can also earn more for themselves as they will have the freedom to issue their own invoices - all while making use of your node.


All wallets created this way are ultimately bound by the capacity of your node. If one wallet is allocated 10,000 sats but your underlying node only has 9000 sats of outbound capacity, payments will simply fail.

What lightning node should I use?

LNbits will work for both Core Lightning (CLN) and LND but if you want to connect Zeus or BlueWallet to LNbits then this will only work with LND as the underlying node. This is because the LNDhub plugin will be required.

If you are looking to connect the Alby browser extension to your LNbits wallet, that will work with both CLN and LND.

Setting up LNbits

  1. Start by ensuring that you have LNbits installed already as well as LND or Core Lightning (CLN). You also need your lightning node to have at least one channel set up otherwise payments will not work. If you have not set up a channel yet, please follow this guide.

 Remember - if you intend to connect BlueWallet or Zeus, that will only be possible with LND. Alby can work with both.

  1. Navigate to Services -> LNbits, click Launch UI, and authenticate with your 'Superuser Username' and 'Superuser Default Password' found in LNbits -> Properties:

    LNbits superuser

  2. After logging into your LNbits account you'll see the following screen - click I understand:

    LNbits superuser

    
    This isn't a concern on StartOS as all wallets created will have the address they generated stored within **Properties** within the LNbits serivce.
    
    
  3. Now a default wallet will have already been generated - highlighted on the top left. We'll rename it to something we can remember by clicking Rename wallet entering somthing-you-can-remember then clicking UPDATE NAME:

    LNbits raname wallet

Now you can proceed to connect one of the following wallets to LNbits using the guides below:

Funding LNbits


After any of the above wallets has been setup with the corresponding instructions, you can allocate sats to this wallet within LNbits by clicking the "+" icon here:

LNbits fund +

LNbits fund amount

LNbits fund complete


Remember: All wallets are ultimately bound by the capacity of your node. If one wallet is allocated 1,000 sats but your underlying node only has 900 sats of outbound capacity, payments will simply fail.

Your newly created LNbits wallet has now been funded and is ready to send sats over the Lightning Network!

Using LNbits

The Concept

LNbits allows you to create a wallet that makes use of your node with only an alloted amount of sats. This restriction can be very helpful for if you only want to have a small amount for spending on your phone without making your entire lightning balance available. You can even allow other people to have wallets you create for them - think giving your children an allowance. They can start with a set amount (can be zero) and simply spend what you initially make available. They can also earn more for themselves as they will have the freedom to issue their own invoices - all while making use of your node.


All wallets created this way are ultimately bound by the capacity of your node. If one wallet is allocated 10,000 sats but your underlying node only has 9000 sats of outbound capacity, payments will simply fail.

What lightning node should I use?

LNbits will work for both Core Lightning (CLN) and LND but if you want to connect Zeus or BlueWallet to LNbits then this will only work with LND as the underlying node. This is because the LNDhub plugin will be required.

If you are looking to connect the Alby browser extension to your LNbits wallet, that will work with both CLN and LND.

Setting up LNbits

  1. Start by ensuring that you have LNbits installed already as well as LND or Core Lightning (CLN). You also need your lightning node to have at least one channel set up otherwise payments will not work. If you have not set up a channel yet, please follow this guide.

 Remember - if you intend to connect BlueWallet or Zeus, that will only be possible with LND. Alby can work with both.

  1. Navigate to Services -> LNbits, click Launch UI, and authenticate with your 'Superuser Username' and 'Superuser Default Password' found in LNbits -> Properties:

    LNbits superuser

  2. After logging into your LNbits account you'll see the following screen - click I understand:

    LNbits superuser

    
    This isn't a concern on StartOS as all wallets created will have the address they generated stored within **Properties** within the LNbits serivce.
    
    
  3. Now a default wallet will have already been generated - highlighted on the top left. We'll rename it to something we can remember by clicking Rename wallet entering somthing-you-can-remember then clicking UPDATE NAME:

    LNbits raname wallet

Now you can proceed to connect one of the following wallets to LNbits using the guides below:

Funding LNbits


After any of the above wallets has been setup with the corresponding instructions, you can allocate sats to this wallet within LNbits by clicking the "+" icon here:

LNbits fund +

LNbits fund amount

LNbits fund complete


Remember: All wallets are ultimately bound by the capacity of your node. If one wallet is allocated 1,000 sats but your underlying node only has 900 sats of outbound capacity, payments will simply fail.

Your newly created LNbits wallet has now been funded and is ready to send sats over the Lightning Network!

Alby Browser Extension with LNbits

Alby is a browser extension that can be connected to your lightning node a number of ways. This guide will go over connecting Alby to your LNbits wallet which allows allocation of funds.

If you'd like to connect to LND or CLN directly with Alby, start here.


This guide assumes you have already setup LNbits as per [this guide](../lnbits.md).

  1. Make sure you are already running Tor on your system and we suggest using Firefox which must be configured to use Tor

  2. Download the Alby extension by visiting the Alby Github, selecting your browser, and installing.

  3. On the Alby welcome screen, select Get Started.

  4. Create a strong password and store it somewhere safe, like your Vaultwarden password manager.

  5. On the next screen, select Bring Your Own Wallet and click Connect.

    Connect Alby

  6. Click Start9 first...

    Connect Alby

  7. ... and only then LNbits.

    Connect Alby

  8. You will see the following fields to fill out:

    Connect Alby

  9. Head back to LNbits and select the wallet you created then click on the arrow to the right of API Info:

    Connect Alby

  10. Copy the Admin key and paste it into Alby

  11. Head back to your Start9 server’s LNbits service page and select Interfaces:

    Connect Alby

  12. Copy the Tor Address:

  13. Head back to Alby and paste what you just copied into LNbits URL, select Tor (native) then hit Continue:

    Connect Alby

  14. Click Continue. Once the connection is completed you will see a success page that displays the balance of your CLN node in Sats.


Make sure to include the http:// at the start of the address. If it is not working make sure that you are properly [configured Tor](../../../user-manual/connecting-remotely.md) on your system.

  1. Once connected you should see the following success page:

    Connect Alby

    Alby is now connected to your lightning node via LNbits!

  2. In addition to allocating sats to this wallet via the LNbits Superuser Account (see “Funding LNbits section” here), you can also receive funds the normal way by hitting Receive within Alby.


Funds received this way must be sent from another lightning node, not the node underneath LNbits. A lightning payment that originates and terminates at the same node is technically a rebalance, not a normal payment.

You’re now setup with Alby and LNbits!

BlueWallet with LNbits


This guide assumes you have already setup LNbits as per :ref:`this guide <connecting-lnbits>` with **LND** as your underlying node.


**This will not work with CLN as your underlying node!**

  1. BlueWallet requires that we use the LnbHub extension in order to connect to LNbits.

  2. To do this, click Manage Extensions:

    Connect BlueWallet

  3. Click MANAGE under the LndHub extension:

    Connect BlueWallet

  4. Click the two arrows on the right, then click install:

    Connect BlueWallet

  5. Now ensure that it says Activated underneath LndHub and then click Extensions on the left:

    Connect BlueWallet

  6. Click ENABLE:

    Connect BlueWallet

  7. Click OPEN or LndHub under Extensions:

    Connect BlueWallet

  8. Make sure the wallet you just created is selected below the two QR codes:

    Connect BlueWallet

  9. Open up BlueWallet and click on the three dots in the top right:

    Connect BlueWallet

  10. Click "Network" then "Tor settings":

    Connect BlueWallet

    Connect BlueWallet

  11. Click "Start" and it should say "Done" after a short time:

    Connect BlueWallet

    Connect BlueWallet

  12. Head back to the main screen and click the "+" sign:

    Connect BlueWallet

  13. Click "Import wallet":

    Connect BlueWallet

  14. Click "Scan or import a file"

  15. If you only want this wallet to be able to RECEIVE PAYMENTS, scan this QR code:

    Connect BlueWallet

    If you are happy for this wallet to be able to both receive and MAKE payments scan this QR code:

    Connect BlueWallet

  16. You'll see this once the wallet is added:

    Connect BlueWallet

  17. In addition to allocating sats to this wallet via the LNbits Superuser Account (see "Funding LNbits section" here), you can also receive funds the normal way by hitting "Receive" within BlueWallet.


Funds received this way must be sent from another lightning node, not the LND node underneath LNbits. A lightning payment that originates and terminates at the same node is technically a rebalance, not a normal payment.

Congratulations! BlueWallet is set up and ready to use lightning via your own lightning node - furthermore it will only be able to use your node in the way you allow it, via LNbits.

Zeus with LNbits


This is not the same as connecting Zeus directly to your lightning node - using LNbits allows us to allocate a specific amount of funds to Zeus instead of giving it full access to your lightning node. We can also use LNbits to permit Zeus to **just receive** satoshis, or the ability to both **receive and spend** satoshis.


This guide assumes you have already setup LNbits as per [this guide](../lnbits.md).


**This will not work with CLN as your underlying node!**

  1. Zeus requires that we use the LnbHub extension in order to connect to LNbits.

  2. To do this, click Manage Extensions:

    Connect Zeus

  3. Click MANAGE under the LndHub extension:

    Connect Zeus

  4. Click the two arrows on the right, then click install:

    Connect Zeus

  5. Now ensure that it says Activated underneath LndHub and then click Extensions on the left:

    Connect Zeus

  6. Click ENABLE:

    Connect Zeus

  7. Click OPEN or LndHub under Extensions:

    Connect Zeus

  8. Make sure the wallet you just created is selected below the two QR codes:

    Connect Zeus

  9. Install Zeus.

  10. Open it up and click SCAN NODE CONFIG.

  11. If you only want this wallet to be able to RECEIVE PAYMENTS, scan this QR code:

    Connect Zeus

    If you are happy for this wallet to be able to both receive and MAKE payments scan this QR code:

    Connect Zeus

  12. Once scanned, name the wallet if you wish, then hit SAVE NODE CONFIG.

    Connect Zeus

  13. Zeus will now connect to your node and you'll see this screen:

    Connect Zeus

    
    If it doesn't work, please manually restart the Zeus app.
    
    
  14. In addition to allocating sats to this wallet via the LNbits Superuser Account (see "Funding LNbits section" here), you can also receive funds the normal way by hitting Request within Zeus.

    Connect Zeus

    
    This will only work if your node has inbound liquidity. And you cannot send sats from the LND node LNbits is using as that is not a regular lightning payment - that is a reblanace.
    
    
  15. Once you have added sats, you can click on this button within Zeus and see your new balance

Congratulations! Zeus is set up and ready to use lightning via your own lightning node - furthermore it will only be able to use your node in the way you allow it, via LNbits.

Matrix

Synapse

With registrations disabled, the only way to create an account on your Server is through the Admin Portal. The Admin Portal is the preferred method for creating an account.

  1. In your Start9 UI, under Services > Synapse, click "Launch UI"

  2. Log in with your Admin Username and Password (located in Properties). For "Homeserver URL", do not enter your Homeserver address. Instead, enter your Admin Portal URL.

    
    This is the URL currently showing in your browser URL bar, excluding the path. e.g. `https://adjective-noun.local:port` or `http://exampleaddress.onion`
    
    

    Synapse Admin

  3. In the "Users" tab, you will notice the admin user already created.

  4. In the "Users" tab, click "+ Create"

    Synapse Admin

  5. Choose a User-ID, Displayname, and Password for your account. Optionally enter an email address under the 3PIDs section. It is not recommended to make this user a Server Administrator, as it is best to limit admin access.

    Synapse Admin

Nextcloud

These guides will help you to setup tools to connect or interact with Nextcloud.

Nextcloud Device Setup

Connection guides by Device. This will guide you through initial setup and syncing configurations.

Nextcloud - Linux

Initial Config

For the best experience, it is recommended to set up your Nextcloud devices on LAN with a designated IP address and port. This setup allows you to sync files, calendars, and contacts while away from home using a Router VPN.

Once configured, you can also use Tor for remote syncing. However, keep in mind that transferring large files may fail or take a considerable amount of time. Therefore, it is advisable to use remote syncing primarily for low-bandwidth activities, such as syncing calendars, contacts, tasks, and notes. Streaming music is also possible.


When using remote connections, be mindful of any data caps on your cellular plan. You may need to limit bandwidth usage by disconnecting from your Router VPN server or Tor when using cellular data.

Desktop Integrations

Many Linux distributions ship with a Desktop Environment (DE) that supports Nextcloud account integration directly for use with their built-in calendars and other applications. It is recommended to try these first for the best possible experience with your particular flavor of Linux.

You will first need to trust your Root CA.

The following desktop environments support integrated account syncing, including Nextcloud:

  • Gnome (Ubuntu default)
  • Cinnamon (Linux Mint default)
  • KDE
  • Budgie

The following guide uses Ubuntu as an example.

  1. Open settings app.

    open settings app

  2. Go to Online Accounts and click on Nextcloud.

    online accounts settings

  3. Paste in the server path from StartOS > Nextcloud > Interfaces and the username and password from StartOS > Nextcloud > Properties, and click Connect.

    enter nextcloud credentials

  4. Choose which services you want to integrate and close Nextcloud Account window.

    nextcloud account services

  5. Open the file manager, and you should see your NextCloud account in the side panel.

    nextcloud in file manager

To setup other Linux distributions, check out this Linuxhint guide and our Nextcloud Master Thread. Please share your feedback - it is very valuable to our community!

Standalone Clients

For those that prefer to use a desktop client or your desktop environment does not support account integrations.


The desktop version of NextCloud doesn't have much of a user interface.  Once installed, it solely lives in the your system tray or navigation bar.  You can click on this icon to access the app.

File Syncing - Nextcloud Desktop

This is Nextcloud's official client application for file syncing and account management. It is available in your favorite package manager (usually as nextcloud). You can also see this full list of available packages. or you can get the latest version as an AppImage from the Download for Desktop section of Nextcloud's website.

LAN/Router VPN Setup

Make sure you have first set up your trusted Root CA.

  1. Open the client and click Log In to your Nextcloud.

    nextcloud login

  2. From your server's Nextcloud service page, go to Interfaces and copy the IP address and port, or .local and port.

    nextcloud interfaces

  3. Enter your IP address and port, or .local and port under Server Address and click Next.

    nextcloud server path

  4. This will launch a page in your web browser, click Log In and then Grant access to link the desktop client. You can close this browser window afterwards.

    nextcloud login and grant access

  5. Next, configure the local directory that you want to sync with Nextcloud. You may use the default or change it, and edit the sync settings to desired. When satisfied, click Connect.

    nextcloud add account

  6. Files will begin to sync immediately and you will see a green check when this is complete.

    nextcloud sync

  7. That's it! From this desktop client you will recieve notifications, control accounts and syncing, and quickly access your Apps' WebUI pages

Tor Setup

You will first need to have the Tor daemon running.

  1. On your desktop application. Click the account avatar in the top left > Settings, then click Network. Choose Specify proxy manually as and SOCKS5 proxy. Enter 127.0.0.1 for the Host and 9050 for the port.

    nextcloud network settings

  2. Close the Settings screen and click the account in the top left again, then Add Account.

    nextcloud add account

  3. On the following screen, click Log in your Nextcloud, then enter your Nextcloud Tor server address, which you can copy from the Nextcloud page on your StartOS > Interfaces > Tor. This should start with https:// and end with .onion.

    nextcloud server path

    nextcloud add account

  4. This will launch your browser and prompt you to log in to your account. Log in and then grant access as we did for LAN.

  5. That's it! You can set up some select folders for remote sync, but for large files, it is best to sync on LAN only. Check your connection by clicking the newly created account in the client app.

Nextcloud - Mac OS

Initial Config

For the best experience, it is recommended to set up your Nextcloud devices on LAN with a designated IP address and port. This setup allows you to sync files, calendars, and contacts while away from home using a Router VPN.

Once configured, you can also use Tor for remote syncing. However, keep in mind that transferring large files may fail or take a considerable amount of time. Therefore, it is advisable to use remote syncing primarily for low-bandwidth activities, such as syncing calendars, contacts, tasks, and notes. Streaming music is also possible.


When using remote connections, be mindful of any data caps on your cellular plan. You may need to limit bandwidth usage by disconnecting from your Router VPN server or Tor when using cellular data.

Native Desktop Integration

The smoothest experience will be using direct account integration with your Mac. First head into the top-righthand menu of your Nextcloud's WebUI and click "Apps," then search for and install the Calendar and/or Contacts Apps if you don't have them already (these are installed by default on the latest Nextcloud for StartOS).The steps below are adapted from the Official Nextcloud guide.

  1. Open the "System Settings" and select "Internet Accounts," click "Add Account." and then select "Add Other Account".

    step1

    step1.2

  2. Select CalDAV for calendar setup or CardDAV for contacts setup. If you want to do both, you will need to return to this step after finishing the setup of the first.

    
    You will need to perform 2 individual setups, one for Calendar and one for Contacts.
    
    

    step2

  3. Select "Advanced" from the "Account Type" dropdown menu and fill in the following fields.

    step3

    • Username - The default user is "admin," but this is your user within Nextcloud, so be sure it is the correct user if you have more than one.

    • Password - In your Nextcloud WebUI, visit the top-right-hand menu and select "Personal Settings" -> "Security." At the bottom, under Devices & Sessions, create a new app password with a name of your choice, such as "MacCalDAV." Then, copy the resulting password into your Mac's account configuration. step3.1

    • Server Address - copy your LAN address from the "Interfaces" section of your Nextcloud service page then paste. step3.2

    • Server Path - You can find the complete path in Nextcloud by navigating to Calendar settings and copying the iOS/macOS CalDav address. For setting up contacts (CardDav), use only the path without the hostname.

      Example:

      /remote.php/dav/principals/users/admin/

      step3.3

    • Port - Set port to 443.

Standalone Clients

The desktop version of NextCloud doesn't have much of a user interface.  Once installed, it solely lives in the top right hand corner of the Mac desktop in the navbar, near the WiFi icon.  When it's synced, the icon turns into a checkmark with a circle around it.

File Syncing - Nextcloud Desktop

This is Nextcloud's official client application for file syncing and account management. The latest version of the official Nextcloud client is available on their download page.

LAN/Router VPN Setup

Make sure you have first set up LAN access. Then do the following:

  1. Open the client and click "Log In". LAN step1

  2. From your server's Nextcloud Service page, go to "Interfaces" and copy the LAN address. LAN step2

  3. Enter your LAN address under "Server Address" and click "Next". LAN step3

  4. This will launch a page in your web browser, click "Log In" and then "Grant access" to link the desktop client. You can close this browser window afterwards. LAN step4

  5. Next, configure the local directory that you want to sync with Nextcloud. You may use the default or change it, and edit the sync settings to desired. When satisfied, click "Connect". LAN step5

  6. Files will begin to sync immediately and you will see a green check when this is complete. LAN step6

  7. That's it! From this desktop client you will recieve notifications, control accounts and syncing, and quickly access your Apps' WebUI pages.

Tor Setup

You will first need to have the Tor daemon running.

  1. To add an account, configure the network settings first. In your desktop application, go to your account in the top left, select Settings, then Network. Choose Specify proxy manually as and select SOCKS5 proxy. Enter 127.0.0.1 for the Host and 9050 for the Port.

    TOR step1 TOR step1.2

  2. Close the Settings screen and click the account in the top left again, then "Add Account".

  3. On the following screen, click "Log in," then enter your Nextcloud Tor server address, which you can copy from Nextcloud -> Interfaces - Tor. This should start with http:// and end with .onion. Click Next.

  4. This will launch your browser and prompt you to log in to your account. Log in and then grant access as we did for LAN.

  5. That's it! You may wish to set up some select folders for remote sync, but for large files, it is best to sync on LAN only, so you can "Skip folders configuration" on the resulting screen if you wish. Check your connection by clicking the newly created account in the client app.

Nextcloud - Windows

Initial Config

For the best experience, it is recommended to set up your Nextcloud devices on LAN with a designated IP address and port. This setup allows you to sync files, calendars, and contacts while away from home using a Router VPN.

Once configured, you can also use Tor for remote syncing. However, keep in mind that transferring large files may fail or take a considerable amount of time. Therefore, it is advisable to use remote syncing primarily for low-bandwidth activities, such as syncing calendars, contacts, tasks, and notes. Streaming music is also possible.


When using remote connections, be mindful of any data caps on your cellular plan. You may need to limit bandwidth usage by disconnecting from your Router VPN server or Tor when using cellular data.

Native Desktop Integration

If you prefer to use Microsoft's integrated Calendar and Contacts apps with your Windows machine, you can integrate directly. First head into the top-righthand menu of your Nextcloud's WebUI and click "Apps," then search for and install the Calendar and/or Contacts Apps. The steps below are adapted from the Official Nextcloud guide.

Make sure you have first set up LAN access. Then do the following:

  1. Launch the Windows Calendar app and click the gear icon (Settings), then select "Manage Accounts."

  2. Select "Add Account" and choose "iCloud" (don't worry, it won't really be iCloud).

  3. Enter an email, username and password. None of this information has to be valid and it will all be changed in the upcoming steps. Click "Sign In" (or "Done" in Win10).

  4. In the "Manage Accounts" menu, click on the account just created and select "Change Settings," and then "Change mailbox sync settings" (at the bottom of the page).

  5. Scroll to the bottom again and fill in the following fields (as desired):

    • Calendar Server (CalDAV) - This link can be copy-pasted by clicking your Nextcloud Calendar app's "Calendar Settings" in the bottom-left, then "Copy primary CalDAV address" at the bottom of the expanded menu.

    • Contacts Server (CardDAV) - This link can be copy-pasted by clicking your Nextcloud Contacts app's "Contacts Settings" in the bottom-left, then the kebab (3 dots) menu next to "Contacts," and finally "Copy Link" at the top of the resulting menu.

  6. Click "Done."

You should now be able to sync your native Windows Contacts and/or Calendar apps with the associated Nextcloud apps.

Standalone Clients

File Syncing - Nextcloud Desktop

This is Nextcloud's official client application for file syncing and account management. The latest version of the official Nextcloud client is available on their download page.

LAN/Router VPN Setup

Make sure you have first set up LAN access. Then do the following:

  1. Download the appropriate desktop client from https://nextcloud.com/install/#install-clients
  2. Open the client and click "Log In"
  3. From your server's Nextcloud Service page, go to "Interfaces" and copy the IP address and port, or .local and port.
  4. Enter your LAN address under "Server Address" and click "Next"
  5. You will be asked to Trust your server's certificate, which is safe to do as you generate and sign this during LAN Setup
  6. Tick the box for "Trust this certificate anyway" and click "Next"
  7. This will launch a page in your web browser, click "Log In" and then "Grant access" to link the desktop client. You can close this browser window afterwards
  8. Next, configure the local directory that you want to sync with Nextcloud. You may use the default or change it, and edit the sync settings to desired. When satisfied, click "Connect"
  9. Files will begin to sync immediately and you will see a green check when this is complete.
  10. That's it! From this desktop client you will recieve notifications, control accounts and syncing, and quickly access your Apps' WebUI pages

Tor Setup

You will first need to have the Tor daemon running.

  1. On your desktop application, click the account in the top left -> Settings, then in Settings, click Network, then "Specify proxy manually as" and "SOCKS5 proxy." Enter "127.0.0.1" for the Host and "9050" for the port.
  2. Close the Settings screen and click the account in the top left again, then "Add Account."
  3. On the following screen, click "Log in," then enter your Nextcloud Tor server address, which you can copy from Nextcloud -> Interfaces - Tor. This should start with http:// and end with .onion. Click Next.
  4. This will launch your browser and prompt you to log in to your account. Log in and then grant access as we did for LAN.
  5. That's it! You may wish to set up some select folders for remote sync, but for large files, it is best to sync on LAN only, so you can "Skip folders configuration" on the resulting screen if you wish. Check your connection by clicking the newly created account in the client app.

Nextcloud - Android

Initial Config

For the best experience, it is recommended to set up your Nextcloud devices on LAN with a designated IP address and port. This setup allows you to sync files, calendars, and contacts while away from home using a Router VPN.

Once configured, you can also use Tor for remote syncing. However, keep in mind that transferring large files may fail or take a considerable amount of time. Therefore, it is advisable to use remote syncing primarily for low-bandwidth activities, such as syncing calendars, contacts, tasks, and notes. Streaming music is also possible.


When using remote connections, be mindful of any data caps on your cellular plan. You may need to limit bandwidth usage by disconnecting from your Router VPN server or Tor when using cellular data.

Nextcloud App

The latest version of the official Nextcloud client is available on their download page. This is for file syncing and account management.

LAN/Router VPN Setup

Make sure you have first set up LAN access.

  1. Open Nextcloud via your server's Services -> Nextcloud -> Launch UI

  2. Log in and select the top right icon -> Personal Settings:

    Nextcloud: > Personal Settings

  3. Select the hamburger (3 lines) menu:

    Nextcloud: Personal Settings > Hamburger menu

  4. Select Security:

    Nextcloud: Personal Settings > Security

  5. Under Devices & sessions, give this Nextcloud mobile app a session name, such as "Mobile" and tap Create new app password:

    Nextcloud: Devices & sessions > Create new app password

  6. Tap Show QR code for mobile apps:

    Nextcloud Show new session's QR code

  7. The new session's QR code will be displayed:

    Nextcloud: New session's QR code is shown

  8. Download and install the appropriate desktop client for your Android device from https://nextcloud.com/install/#install-clients

  9. Open the Nextcloud client on your Android device and tap "Log in"

    Nextcloud mobile app Log in

  10. Tap the QR code icon:

    Nextcloud mobile app QR Code button

  11. Scan the QR code presented in Step 7.


Here you may see an error about the Nextcloud app being unable to find the host that was decoded from the QR code:

![Nextcloud mobile app error Could not find host](../assets/pitfall1-could_not_connect_to_host-wifi-mdns-orbot.png)

If you see this message, you may be on an Android version that does not support mDNS .local name resolution (it is available on Android 13+ and some builds of Android 12, but not all.  The other possibility is that your WiFi network is not properly "bridged" with the ethernet network that your Start9 server is on, or you lack WiFi connectivity to your network in general.


Alternatively, you may see a warning about an untrusted certificate:

![Nextcloud mobile app QR Code button](../assets/pitfall2-untrusted_cert.png)

In this case, make sure you have [added your server's CA certificate to the Android trust store](/device-guides/android/ca.md) as noted at the top of the `LAN Setup` section of this guide, close the Nextcloud mobile app and try again.  Otherwise, proceed to the next step.

  1. Android may ask you about Storage permissions. Grant "Full access":

    Nextcloud Storage permissions

  2. Next, configure the local directory that you want to sync with Nextcloud. You may use the default or change it, and edit the sync settings to desired. When satisfied, tap "Connect"

  3. Files will begin to sync immediately and you will see a green check when this is complete.

  4. That's it! From this desktop client you will recieve notifications, control accounts and syncing, and quickly access your Apps' WebUI pages

Tor Setup

You will first need to have Orbot running.

  1. First, add Nextcloud to your Orbot apps list.
  2. Tap the account in the top-right, then "Add Account."
  3. On the following screen, tap "Log in," then enter your Nextcloud Tor server address, which you can copy from Nextcloud -> Interfaces - Tor. This should start with https:// and end with .onion. tap Next.
  4. This will launch your browser and prompt you to log in to your account. Log in and then grant access as we did for LAN.
  5. That's it! You may wish to set up some select folders for remote sync, but for large files, it is best to sync on LAN only, so you can "Skip folders configuration" on the resulting screen if you wish. Check your connection by tapping into the newly created account in the app.

Device Integration

In order to sync calendars and contacts with your Android device, follow the steps below, which are adapted from the Official Nextcloud guide. First head into the top-righthand menu of your Nextcloud's WebUI and click "Apps," then search for and install the Calendar and/or Contacts Apps.

  1. Download the WebDAV sync management client DAVx5 from your app store of choice, such as F-Droid or the Play Store.

  2. Add account:

    • If you are on Android 12+ and already have the Nextcloud file-syncing app (recommended - guide above), then open it and enter the "Settings" menu from the top-lefthand hamburger (3 lines) menu. Then under the section titled, "More," tap "Sync Calendar & Contacts."

      • This will open Nextcloud's WebFlow login in a browser, where you will need to log in and "Grant Access" - you will then be returned to DAVx5

      • Set an account name when asked, then set "Contact Group Method" to "Groups are per-contact categories" - DAVx5 will close and Nextcloud will reappear.

      • Manually launch DAVx5 again and top on the account that was just created. Grant access to Calendars and Contacts when requested, and optionally tasks, if you added that feature in setup. Choose the address books and calendars you wish to sync and you're done!

    • If you are NOT using the Nextcloud app already, then open DAVx5 and after going through the introduction (optionally selecting additional features), tap the "+" icon to add a new account, then select "Login with URL and user name," and fill in the following fields:

      • Base URL - Enter your Nextcloud WebDAV Base LAN URL (found in "Properties" in the Nextcloud service page).

      • User name - Your Nextcloud user (defaults are found in "Properties" on your Nextcloud service page)

      • Password - Your Nextcloud user's password (defaults are found in "Properties" on your Nextcloud service page)

      • If given the option, select "Groups are per-contact categories," then tap "Login." Select the data you want to sync, grant access for contacts, calendars, and optionally tasks if you added that feature in setup. That's it, you're done!

    
    You may also wish to add the [ICSx5](https://icsx5.bitfire.at/) app, which allows subscription to remote WebCal or local iCal files (such as public event schedules, iCloud/Google calendars, etc).  It can be found in your favorite app store.
    
    

Nextcloud - iOS

Initial Config

For the best experience, it is recommended to set up your Nextcloud devices on LAN with a designated IP address and port. This setup allows you to sync files, calendars, and contacts while away from home using a Router VPN.

Once configured, you can also use Tor for remote syncing. However, keep in mind that transferring large files may fail or take a considerable amount of time. Therefore, it is advisable to use remote syncing primarily for low-bandwidth activities, such as syncing calendars, contacts, tasks, and notes. Streaming music is also possible.


When using remote connections, be mindful of any data caps on your cellular plan. You may need to limit bandwidth usage by disconnecting from your Router VPN server or Tor when using cellular data.

Standalone Client

The latest version of the official Nextcloud client is available on their download page.

LAN/ Setup

Make sure you have first set up LAN access.

  1. Download the iOS Nextcloud client from App Store.

  2. Open the client and tap "Log In".

    nextcloud-ios-login

  3. From your server's Nextcloud Service page, go to "Interfaces" and copy the IP address and port, or .local and port.

    nextcloud-ios-login

  4. Enter your LAN address under "Server Address" and tap "Next".

    nextcloud-ios-login

  5. You will be shown the "Connect to your account" screen, and then click "Log In" and "Grant Access".

    nextcloud-ios-login

    nextcloud-ios-login

  6. Next, you will be asked to enter the username and password, which can be found on the startOS Nextcloud Service page under the "Properties" tab. nextcloud-ios-login

  7. The account access page will be displayed, tap "Grant access".

    nextcloud-ios-login

  8. Files will begin syncing immediately, and you will see your username and account icon in the top left corner.

    nextcloud-ios-login

  9. That's it! From this mobile client you can receive notifications, control accounts and syncing, and quickly access your apps' WebUI pages.

Tor Setup

You will first need to have the Tor daemon running.

  1. Click the account in the top left again, then "Add Account."
  2. On the following screen, click "Log in," then enter your Nextcloud Tor server address, which you can copy from Nextcloud -> Interfaces - Tor. This should start with https:// and end with .onion. Click Next.
  3. This will launch your browser and prompt you to log in to your account. Log in and then grant access as we did for LAN.
  4. That's it! You may wish to set up some select folders for remote sync, but for large files, it is best to sync on LAN only, so you can "Skip folders configuration" on the resulting screen if you wish. Check your connection by clicking the newly created account in the client app.

Device Integration

In order to sync calendars and contacts with your iOS device, follow the steps below, which are adapted from the Official Nextcloud guide.

First head into the top-righthand menu of your Nextcloud's WebUI and click "Apps," then search for and install the Calendar and/or Contacts Apps. Next folow guide for iOS.

nextcloud account settings

  1. Open the "Settings" app on iOS device.

    
    You will need to perform 2 individual setups, one for Calendar and one for Contacts.
    
    
  2. Select "Calendar" (or "Contacts") -> "Accounts" -> "Add Account" -> "Other" -> "either CalDAV (for Calendar setup) or CardDAV (for Contacts setup)". Return to this step after completing one in order to add the other.

nextcloud account settings

  1. Enter the following fields and tap "Next":
  • Server - Copy your URL from Nextcloud -> Calendar settings -> Copy iOS/macOS CalDav address. For setting up contacts/CardDav use the same path.

  • User name - The default user is "embassy" but this is your user within Nextcloud, so be sure it is the correct user if you have more than one.

  • Password - In your Nextcloud WebUI, visit the top-right-hand menu and select “Personal Settings” -> “Security.” At the bottom, under Devices & Sessions, create a new app password with a name of your choice, such as “iOSCalDAV.” Then, copy the resulting password into your iOS CalDAV account configuration.

  • Description - Anything to describe this account, such as "Nextcloud CalDAV".

nextcloud account settings

  1. If you get a warning about verifying the server identity, it is safe to "Continue." Add the apps you want to use, such as Calendars, Contacts, and/or Reminders, then tap "Next".
  • That's it! Go back to step 2 above to set up your other account (CalDAV / CardDAV).

Nextcloud Apps & Integrations

Nextcloud Bookmarks

Nextcloud Bookmarks is software for sorting, tagging, searching, sharing, and (most importantly) syncing your browser's bookmarks via your server. First set up your client devices, so that Nextcloud will automatically keep your bookmarks synced.

Available for:

  • Web Interface
  • Mobile
    • Android
  • Desktop Browsers
    • Chrome
    • Edge
    • Firefox

NC App Setup

  1. Begin by downloading Bookmarks from your Nextcloud service's App Store (Top-right menu -> Apps).

    
    Use the "Search" function to quickly find the App you are looking for
    
    
  2. Once installed/enabled, you will get a new icon in your top menu for "Bookmarks." Click it to get started.

    • At this point you can begin adding bookmarks directly into the app, or import them from a browser. These are always available by accessing your Nextcloud from your client devices.

    • The real power here is in the ability to import or sync across devices. There are several clients that can accomplish this, which can be found on the NC Bookmarks Github Page. For our example, and the recommended option if you click "Sync with your browser" from the Bookmarks welcome page, is Floccus.

  3. (Optional) In the "Settings" menu in the bottom-left, you may change the Nextcloud location in which to store your bookmarks. If you change this or create a new folder, be sure to reflect this change in Floccus below.

Browser & Mobile Setups

Floccus (Browser & Android)

  1. Download the appropriate Floccus extension for your browser or app from the App Store, F-Droid, or Play Store.

  2. Open the Floccus browser extension and click "+NEW ACCOUNT", select "Nextcloud Bookmarks", and then add your server address and login via Nextcloud.

  3. (Optional) Edit the folder paths if changed above and select a local folder to save bookmarks to.

  4. On the final setup page, use the defaults unless you are absolutely sure what you are doing. Click "Continue" and you're ready to sync!

    
    Repeat this process for any additional devices or browsers that you'd like to keep in sync.
    
    

Nextcloud Calendar

Nextcloud Calendar is software for managing and syncing calendars, events, and tasks between your devices. First set up your client devices, so that Nextcloud will automatically keep your calendars synced.

Available for:

  • Web Interface
  • Mobile
    • Android
    • iOS
  • Desktop
    • Linux
    • Mac
    • Windows

NC App Setup

  1. On the latest Start9 Nextcloud service, Calendar is included by default. If coming from an older install, begin by downloading Calendar from your Nextcloud service's App Store (Top-right menu -> Apps).

    
    Use the "Search" function to quickly find the App you are looking for
    
    
  2. Once installed/enabled, you will get a new icon in your top menu for "Calendar." Click it to get started.

    • At this point you can begin using the Calendar right away in the web UI. All changes will be reflected in any currently synced client devices, or on any added in future.

Client Integrations

Client integrations can all be found in the initial setup guides for your device.

Nextcloud Contacts

Nextcloud Contacts is software for managing and syncing your contacts between your devices. First set up your client devices, so that Nextcloud will automatically keep your contacts synced.

Available for:

  • Web Interface
  • Mobile
    • Android
    • iOS
  • Desktop
    • Linux
    • Mac
    • Windows

NC App Setup

  1. On the latest Start9 Nextcloud service, Contacts is included by default. If coming from an older install, begin by downloading Contacts from your Nextcloud service's App Store (Top-right menu -> Apps).

    
    Use the "Search" function to quickly find the App you are looking for
    
    
  2. Once installed/enabled, you will get a new icon in your top menu for "Contacts." There is also a quick access icon in the top-right. Click either to get started.

    • At this point you can begin using your Contacts app right away in the WebUI. All changes will be reflected in any currently synced client devices, or on any added in future.

Client Integrations

Client integrations can all be found in the initial setup guides for your device.

Nextcloud Cookbook

Nextcloud Cookbook is software for viewing, syncing, and organizing recipes. First set up your client devices, so that Nextcloud will automatically keep your recipes synced.

Available for:

  • Web Interface
  • Mobile
    • Android
    • iOS

NC App Setup

  1. Begin by downloading Cookbook from your Nextcloud service's App Store (Top-right menu -> Apps).

    
    Use the "Search" function to quickly find the App you are looking for
    
    
  2. Once installed/enabled, you will get a new icon in your top menu for "Cookbook." Click it to get started.

  3. You can now start adding recipes. Simply find a recipe online and copy the URL into the box on the left. In most cases, this will be translated into an easy-to-read recipe with ingredients and steps, and without all the distractions and junk included with most recipe pages.

    
    Tag and categorize your recipes!  Basic settings are available in the bottom-left menu.
    
    

Mobile Setups

### Nextcloud Cookbook (Android / iOS)

There are 2 versions of this app available on Android, and one on iOS. Check this repository for details.

  1. Go to your app store of choice and install the Nextcloud Cookbook app.

  2. (Android connection) You can select a previously connected Nextcloud account, or scan an app-specific QR, created under Nextcloud's main menu -> Personal Settings -> Security

  3. (iOS connection) You will be prompted to enter the following:

    • Server URL - get this from your server's Services -> Nextcloud -> Interfaces (LAN is recommended)
    • Username - get this from your server's Services -> Nextcloud -> Properties (admin is default)
    • Password - get this from your server's Services -> Nextcloud -> Properties
    
    You may need to enable "self-signed certificates" for LAN.  This is safe to do as you are the signer of the cert and owner of all involved hardware.
    
    
  4. As soon as you connect and sync, you will see your Cookbook!

Nextcloud Files

Nextcloud Files is software for managing and syncing your data between your devices. In practice it functions similarly to the file explorer on your computer. Files also serves as the base storage on your server for all the other apps that may need to access your data, such as documents, multimedia, and syncing apps. This even includes data storage for other Start9 services on your server, such as Jellyfin and Start9 Pages.

Available for:

  • Web Interface
  • Mobile
    • Android
    • iOS
  • Desktop
    • Linux
    • Mac
    • Windows

NC App Setup

  1. You will find an icon in your top menu for "Files." Click here to get started.

    • You can begin using your Files app right away in the web UI. All changes will be reflected in any currently synced client devices, or on any added in future.
    
    Keep in mind that if you delete a file in one location, it may be deleted across all locations!!  Start with some test folders/files in order to understand how the syncing system works with your devices.
    
    

Client Integrations

Client integrations can all be found in the initial setup guides for your device.

Nextcloud Maps

Nextcloud Maps is software for viewing and managing your places. First set up your client devices, so that Nextcloud will automatically keep your maps synced.

Available for:

  • Web Interface

NC App Setup

  1. Begin by downloading Maps from your Nextcloud service's App Store (Top-right menu -> Apps).

    
    Use the "Search" function to quickly find the App you are looking for
    
    
  2. Once installed/enabled, you will get a new icon in your top menu for "Maps." Click it to get started.

  3. You can now browse OpenStreetMap, get directions, create favorite locations, add photos, and share custom maps.

    
    You can find the settings for Maps in the bottom-left
    
    

This is basic software at this time, havnig just reached 1.0, but features are planned by the developers for linking mobile devices for finding a lost or stolen device as well as fitness tracking and other modern location services.

Nextcloud Memories

Nextcloud Memories is software for viewing, managing, and organizing your photos. First set up your client devices, so that Nextcloud will automatically keep your photos synced.

Available for:

  • Web Interface
  • Mobile
    • Android

NC App Setup

  1. Begin by downloading Memories from your Nextcloud service's App Store (Top-right menu -> Apps).

    
    Use the "Search" function to quickly find the App you are looking for
    
    
  2. Once installed/enabled, you will get a new icon in your top menu for "Memories." Click it to get started.

  3. You will see an image that says "Click Here To Start" - click it and select your media directory.

    
    You can find the settings for Memories under the top-right menu -> Administrative Settings -> Memories
    
    

Desktop & Mobile Setups

This is currently a webUI only application (though the Android app of the same name is in active development), but you can use the same clients as those supported by Nextcloud Photos.

Nextcloud Music

Nextcloud Music is software for organizing and playing your music as well as managing and streaming podcasts and internet radio. First set up your client devices, so that Nextcloud will automatically keep your music synced.

Available for:

  • Web Interface

  • Mobile

    • Android
    • iOS
    • Garmin Watch
  • Desktop:

    • Linux
    • Mac
    • Windows

NC App Setup

  1. Begin by downloading Music from your Nextcloud service's App Store (Top-right menu -> Apps).

    
    Use the "Search" function to quickly find the App you are looking for
    
    
  2. Once installed/enabled, you will get a new icon in your top menu for "Music." Click it to get started.

  3. You can now play existing music from your Nextcloud Files, or add an internet radio station or podcast feed!

    
    You can set the media directory path in the 'Settings' menu on the bottom-left
    
    

Desktop & Mobile Setups

Nextcloud Music can be used by clients that support Ampache or Subsonic. See all the options in the 'Settings' menu on the bottom-left, or see the Ampache client list or the Subsonic client list.

Nextcloud News

Nextcloud News is software for managing and viewing RSS feeds. First set up your client devices, so that Nextcloud will automatically keep your feeds synced.

Available for:

  • Web Interface
  • Mobile
    • Android
    • iOS
    • SailfishOS
  • Desktop:
    • Linux
    • Mac
    • Windows
    • Unix Terminal

NC App Setup

  1. Begin by downloading News from your Nextcloud service's App Store (Top-right menu -> Apps).

    
    Use the "Search" function to quickly find the App you are looking for
    
    
  2. Once installed/enabled, you will get a new icon in your top menu for "News." Click it to get started.

    • You can now add your favorite RSS feeds from the left-hand panel.

Desktop & Mobile Setups

Nextcloud News can be synced with a wide range of clients across almost any platform you can imagine. See all the options on the official client list.

Nextcloud Notes

Nextcloud Notes is software for managing and syncing your notes across devices. First set up your client devices, so that Nextcloud will automatically keep your notes synced.

Available for:

  • Web Interface
  • Mobile
    • Android
    • iOS
  • Desktop:
    • Unix Terminal

NC App Setup

  1. Begin by downloading Notes from your Nextcloud service's App Store (Top-right menu -> Apps).

    
    Use the "Search" function to quickly find the App you are looking for
    
    
  2. Once installed/enabled, you will get a new icon in your top menu for "Notes." Click it to get started.

    • You can now use the web UI to record your notes.
    
    Markdown is supported
    
    

Desktop & Mobile Setups

The real beauty of Notes is being able to sync to your mobile devices for use on the go.

Nextcloud Notes (Android)

  1. Download the Nextcloud Notes app from your favorite app store (Aurora, F-Droid, or Play Store).

  2. On the opening screen, select your existing Nextcloud account. If one does not exist, make sure to start with your client setup or you can hit "Add Account," then create an app passcode QR under Nextcloud's main top-right menu -> Personal Settings -> Hamburger (3 lines) Menu > Security > Devices & Sessions > "Create new app password" and scan it to grant access.

  3. You existing notes will now sync, or you can create your first note to test!

Nextcloud Notes (iOS)

  1. Download the Nextcloud Notes app from the App Store.

  2. Enter your Nextcloud server URL from your server: Nextcloud -> Interfaces (LAN recommended).

  3. You will be redirected and asked for your username and password, both can be found on your server: Nextcloud -> Properties. Then Grant Access.

  4. You'll be returned to the setup screen, just tap "Done," your existing notes will now sync, or you can create your first note to test!

Nextcloud Photos

Nextcloud Photos is a basic gallery for viewing and managing your photos. First set up your client devices, so that Nextcloud will automatically keep your photos synced.

Available for:

  • Web Interface
  • Mobile
    • Android

NC App Setup

  1. Photos is included by default and there will be an icon in your top menu for "Photos." Click it and you will be in the web UI viewing your gallery.

Desktop & Mobile Setups

nc-photos (Android)

nc-photos is a modern mobile photo gallery with a grid-based interface reminiscent of Google Photos.

  1. First, install Photos (for Nextcloud) from the Google Play Store or from the GitLab repository. There is a ad-supported version and a paid version on the Play Store, but the GitLab APK is ad-free by default.

  2. At the welcome screen, you will be reminded not to delete a special folder that will be created in your Nextcloud file directory and asked to enter your server URL.

  3. Select your prefered interface for Nextcloud (.local:PORT, IP:PORT or .onion from StartOS's UI) and paste it into the field without http or https.

  4. Proceed to connect and authenticate automatically.

    • That's it! Photos will take some time to initially sync.

Memories (Android)

Memories the Android app is based on the Nextcloud Memories app and is a modern free and open source replacement for Google Photos.

  1. First, install Memories from the Google Play Store, F-Droid or from the GitHub repository.

  2. At the welcome screen, you will be reminded not to delete a special folder that will be created in your Nextcloud file directory and asked to enter your server URL.

  3. Copy the interface for Nextcloud (.local:PORT, IP:PORT from StartOS's UI) and paste it into the field. Tor is not supported.

  4. Check disable certificate verification which did not work on testing.

  5. Proceed to connect and authenticate automatically.

    • That's it! Photos will take some time to initially sync.

Les Pas (Android)

Les Pas is a great mobile gallery for viewing and organizing your photos, gifs, and videos.

  1. First, install Les Pas from your favorite app store (Aurora, F-Droid, or Play Store), or from the github repository.

  2. At the welcome screen, you will be asked to either enter your server URL or scan a QR code. In your Nextcloud instance, click the top-right menu -> Personal Settings -> Hamburger (3 lines) Menu > Security > Devices & Sessions > "Create new app password." Hit "Show QR Code" and then scan it with Les Pas.

  3. You'll be sent to your Nextcloud instance to log in and grant access to the app.

    • That's it! You're ready to view your photos with no third party involved!

Joplin

Joplin is an open source note-taking app. Capture your thoughts and securely access them from any device. First set up your client devices, so that Nextcloud will automatically keep your notes synced.

Clients available for:

  • Desktop

    • Linux
    • Mac
    • Windows
  • Mobile

    • Android
    • iOS

Connecting Joplin to Nextcloud (Mac Desktop Example)

This guide will go over how to connect Joplin running on a desktop machine to your Start9 server's Nextcloud over LAN.


This guide assumes your Nextcloud username is "embassy," replace with your username if different.

You will need your device set up to connect via LAN first.

  1. First go into Nextcloud on your server and click on the "Files" app icon.

    Click on Folders

  2. Click on the + icon, then "New folder".

    New Folder

  3. Create a new folder called "joplin" and click the arrow to the right.

    Joplin Directory

  4. Click on "Files settings" in the bottom left and copy the WebDAV link.

    Files Settings

    WedDAV Link

  5. Open up Joplin, click on "Joplin" in the top left and click "Preferences" (on Mac).

    Preferences

  6. Click on "Synchronisation".

    Click on Synchronisation

  7. Under "Synchronisation target" select "Nextcloud", paste the WebDAV and append onto the end of it "joplin" so the entire URL should look like this (replace xxxx with your unique Nextcloud LAN address): https://xxxx.local/remote.php/dav/files/embassy/joplin.

    Click on Synchronization

  8. Under "Nextcloud username" enter "embassy" (or your username).

  9. Under "Nextcloud password" enter your password.

  10. The username and password for your Nextcloud can be found in your server's UI by clicking on the Nextcloud service then clicking on "Properties".

    Select Nextcloud and enter URL

    Select Nextcloud and enter URL

  11. Now click "Show advanced settings".

    Select Nextcloud and enter URL

  12. Scroll down then check the box that says "Ignore TLS certificate errors".

    Select Nextcloud and enter URL

  13. Now scroll back up and select "Check sychronisation configuration" and you should see the following success message:

    Select Nextcloud and enter URL

  14. You have now connected your Joplin client to your Start9 server's Nextcloud and your notes will sync automatically!

Thunderbird

Content

Calendar Syncing

You can set up your devices using their integrations, but if you wish to use a standalone client for your Calendar and Contacts syncing, we recommend Mozilla's Thunderbird.

  1. Install the Calendar and Contacts apps in Nextcloud if they are not currently installed.

  2. Add your RootCA to your system and then configure Thunderbird.

  3. In Thunderbird, click on the calendar icon, then "New Address Book" in the bottom-left.

    thunderbird add calendar

  4. Choose "On the network," then click "Next".

    thunderbird add calendar checkbox

  5. Fill in the Username and Location fields with the credentials from Nextcloud > Properties on your Start9 server. Click "Find calendars".

    thunderbird add calendar checkbox

  6. Create a unique app password - In your Nextcloud WebUI, visit the top-right-hand menu and select "Personal Settings" -> "Security." At the bottom, under "Devices & Sessions," create a new app password with a name of your choice, such as "CalDAV." Copy the resulting password and paste it into Thunderbird.

    nextcloud app password

    thunderbird add password

  7. Check which calendars you want to integrate and click "Subscribe".

    thunderbird add calendar subscribe

Your Nextcloud calendar will now sync with Thunderbird. Click on the "Contacts" tab above to add your contacts.

Contact Syncing

  1. Install the Calendar and Contacts apps in Nextcloud if they are not currently installed.

  2. Add your RootCA to your system and then configure Thunderbird.

  3. Click on the Address Book icon, open the drop-down menu for "New Address Book" and click "Add CarDav Address Book".

    thunderbird add new contact book

  4. Fill in the Username and Location fields with the credentials from Nextcloud > Properties on your Start9 server. Click "Continue".

    thunderbird add new contact book

  5. Create a unique app password - In your Nextcloud WebUI, visit the top-right-hand menu and select "Personal Settings" -> "Security." At the bottom, under "Devices & Sessions," create a new app password with a name of your choice, such as "CalDAV." Copy the resulting password and paste it into Thunderbird.

    nextcloud app password

    thunderbird add password

Your Nextcloud contacts will now sync with Thunderbird.

Nostr

These guides will help you to setup tools to run a nostr relay and a nostr client.

Nostr RS Relay

Nostr is a simple, open protocol that enables global, decentralized, and censorship-resistant social media.


It is highly recommended that you run a private relay, not a public one. Private will be the default option when you open the config for the first time. You will not be able to save the config until you follow the instructions below.

Initial Config

  1. Install Nostr RS relay service from Start9 Registry on your server.

    nostr install

  2. In the service, page click CONFIGURE and add the pubkey in hex format to whitelist your client. Click save.

    nostr whitelist pubkey

  3. Now you will have a Nostr relay websocket URL available in Nostr RS Relay -> Properties.

Running a private relay

Private relays serve as a personal backup for your posts, follows, messages, settings, and more. Without a private relay, there is no assurance that this data will be preserved, and there is a risk of it disappearing unexpectedly. By utilizing a private relay, only the pubkeys on the whitelist are authorized to post and save content to your relay. To ensure functionality, it is essential to whitelist your own pubkey in hex format. The configuration settings will not permit saving until at least one pubkey is added to the whitelist. Some Nostr clients may offer the option to copy your hex pubkey, but if not, you can visit https://damus.io/key to convert your npub to hex.

Running a public relay

In contrast to a private relay, a public relay lacks a whitelist, permitting any pubkey to post. Running a public relay is not recommended unless you comprehend the associated risks and configure it with appropriate safeguards. The primary risk to be mindful of is the potential for malicious clients to spam your relay, leading to the saturation of your storage drive. While we have implemented fairly restrictive defaults in your configuration to mitigate this risk, it is crucial to acknowledge that you assume responsibility for managing this aspect on your own.

Testing your relay

If you want to test your private relay and verify whether it's storing all your notes, you can SSH into your server and execute the following command.

sudo podman exec nostr.embassy sqlite3 /data/nostr.db "SELECT content FROM event;" | grep -o 'content":"[^"]*' | awk -F: '{print $1":"$2}'

noStrudel

noStrudel is a web app for exploring the nostr protocol.

Using noStrudel on StartOS

  1. Install the noStrudel service from the Start9 registry on your server.

    install

  2. Click "Start".

    start

  3. When the service is ready click "Launch UI" to access noStrudel.

    launch

  4. Choose how to setup your relays and create a new account or access an existing account by using a nip-07 browser extension. If creating a new account, be sure to securely back up the private key, preferably using Vaultwarden on StartOS.

    sign in

  5. To connect to your own private relay, go to Relays -> App Relays, paste in your Nostr Relay Websocket URL (e.g. ws://address.onion) and click add. You can find this value in the Properties section of your Nostr RS Relay service.

    
    If you plan to connect to your own private relay, you must use either be running your own [LAN/Router VPN](/user-manual/connecting-remotely.md) or you must use [Tor browser](https://www.torproject.org/) on your system.  We recommend using Firefox which must be [configured to use Tor](/misc-guides/firefox-guides/tor.md).
    
    

    add relay

  6. To connect to your LND instance using NWC (Nostr Wallet Connect) for LN payments, go to Settings -> Lightning -> Connect wallet. Choose NWC and paste your pairing secret.

    connect wallet

Vaultwarden

Vaultwarden is a self-hosted password manager, which means your passwords physically live on your Start9 Server. Be sure to create backups and keep them safe! If you lose your Server or uninstall Vaultwarden, and you have not made a backup, all your passwords will be lost forever.

If you currently have a hosted account with Bitwarden, you can export your data from that account and import it to your Vaultwarden service on your Start9 Server using the built-in import/export features in any Bitwarden application!

Follow the guides below to get the most out of your Vaultwarden server:

Initial Setup

Web Vault

  1. Ensure Vaultwarden is running - click START on your Start9 Server if not:

    vaultwarden-start-service

  2. Once the health check turns green, click Launch UI:

    vaultwarden-launch-ui

  3. Time to create an account! Click Create account:

    vaultwarden-create-account

    
    You are creating an account with yourself on your own Vaultwarden website served from your own Vaultwarden server - there are no third parties involved here. 
    
    
  4. Enter an email address for login:

    vaultwarden-create-account-email

    
    This email address can be anything you like. It doesn't have to be real. It is simply a way for you to log into Vaultwarden from Bitwarden apps on your devices. Your Vaultwarden server won't ever email you.
    
    
    
    You cannot use this email address to reset your master password - it is simply used to create an account on your server. 
    
    
    
    Do not lose it - you will not be able to log in without it!
    
    
  5. Enter a name for the account, a strong password and (optionally) a password hint - then click Create account:

    vaultwarden-account-creation

    
    It is important to realize that this is the **Master password** for all your other passwords. Make it very strong, memorize it, write it down, and back it up to a safe place. If you lose it, you may lose access to all your passwords and your entire digital life.
    
    
  6. Now you can log in to your new password manager! Enter your email to login:

    vaultwarden-login-email

  7. Then your master password:

    vaultwarden-login-password

  8. We are greeted with our newly setup Vaultwarden password vault!

    vaultwarden-fresh-vault

  9. On the left, you can access Tools for reports and the password generator. You can also import data from other programs, such as LastPass, 1Password, or KeePass!

    vaultwarden-tools

  10. Account settings gives you all your options, including the ability to set up 2 factor authorization.

    vaultwarden-account-settings

  11. Now you're ready to start storing some passwords!

Storing your first password

  1. Back at the main page for your vault, let's do a quick example login. We'll start by creating a folder for it:

    vaultwarden-click-add-folder

  2. Name the folder and click Save:

    vaultwarden-add-folder

  3. Click New item:

    vaultwarden-add-item

  4. Now add the credentials and click Save:

    vaultwarden-add-new-login

    An entry can have multiple URLs - for example you may wish to enter both an onion address and a .local address for one of the services you have running on your server. We are increasing the numbers of ways in which you can connect to your services, soon they may even have simple .com addresses!

  5. And there we have it - our first set of login credentials.

    vaultwarden-new-login

Congratulations! You have setup your own self-hosted password manager and have added a set of login credentials to it!

Accessing the Admin Console

  1. You will find the Admin URL by heading to "Properties" on the Vaultwarden Service page.

    vaultwarden-interfaces

  2. Copy either of the addresses here and paste in the browser.

    vaultwarden-interfaces-both

  3. You will be prompted for your "Admin Token," which can be found on the same page.

    vaultwarden-admin-properties

  4. Paste it on Admin page:

    vaultwarden-admin-console-auth

  5. You're now logged in to the admin panel.

    vaultwarden-admin-console

    
    This **cannot** be used to reset passwords for accounts created on your Vaultwarden server.
    
    

Now you'll want to setup some client devices! Head here for instructions on how to do so.

Bitwarden Client Setup

Here you can learn how to setup your various devices and browsers to be able to access your Vaultwarden service.

We suggest you connect to Vaultwarden over VPN or Tor for the best experience… an experience where you can access synced passwords away from home as well as create and save new passwords. Over LAN your app and all your passwords will be cached and available after an initial sync when not connected to your Start9 Server but you would later need to connect via LAN to add or update passwords in your vault. Bitwarden requires an encrypted connection, so make sure you trust your root CA on all devices.

Contents

Browser Extension


If you intend on connecting via **Tor** (i.e using the .onion address) rather than VPN the Bitwarden browser extension will only work with a Tor enabled browser.

If you choose **Firefox with Tor**, you will need to [follow this guide](/misc-guides/firefox-guides/tor.md) to run Tor on your device and configure Firefox to use it. If using **Brave** you will just need to [setup Tor on your device](/user-manual/connecting-remotely.md#connecting-over-tor). With Tor Browser, everything will just work right out of the box.

We recommend using Firefox as it is the most compatible browser with Start9 Servers.

  1. In this example we will use Firefox, though these instructions will work just the same for Brave. First, install the Bitwarden browser extension.

  2. Head to the Interfaces tab in the Vaultwarden service on your Start9 Server.

    vaultwarden-interfaces

  3. Copy the preferred interface address for VPN/LAN or Tor:

    vaultwarden-interface-address

  4. Open Bitwarden extension and click the self-hosted dropdown menu and choose self-hosted. Paste your interface address to Server URL field and click save.

    vaultwarden-firefox-self-host

    vaultwarden-firefox-self-host

  5. Enter your credentials and the Bitwarden extension will be logged into your self-hosted Vaultwarden server!

Android

  1. Visit google play store and download the Bitwarden app.

  2. Head to the Interfaces tab in the Vaultwarden service on your Start9 Server:

    vaultwarden-interfaces

    
    If connecting via **Tor** rather than VPN (i.e using the .onion address) the Bitwarden app will only work if [Tor is enabled](/device-guides/android/tor.md) on your device and Bitwarden is added to Orbot's VPN apps list. You may need to hit the refresh button in the top left to get it to populate.
    
    
  3. Copy the preferred interface address for VPN/LAN or Tor:

    vaultwarden-tor-address

  4. Send that address to your phone.

  5. Open the Bitwarden app. Tap the self-hosted dropdown menu and choose self-hosted. Paste your interface address to Server URL field and tap save.

    
    For **Tor**, before you hit save:  If the Tor address you have copied begin with **http** - Please change this to **https** instead of **http**
    
    
  6. Tap 'Log In,' enter your credentials, and you can access your Bitwarden app / Vaultwarden server.

iOS

  1. Visit the App Store and download the Bitwarden app

  2. Head to the Interfaces tab in the Vaultwarden service on your Start9 Server.

    vaultwarden-interfaces

    
    If connecting via **Tor** rather than VPN (i.e using the .onion address) the Bitwarden app will only work if [Tor is enabled](/src/device-guides/android/tor.md) on your device and Bitwarden is added to Orbot's VPN apps list. You may need to hit the refresh button in the top left to get it to populate.
    
    
  3. Copy the preferred interface address for VPN/LAN or Tor:

    vaultwarden-tor-address

  4. Send that address to your phone.

  5. Open the Bitwarden app. Tap the self-hosted dropdown menu and choose self-hosted. Paste your interface address to Server URL field and tap save.

    
    For **Tor**, before you hit save:  If the Tor address you have copied begin with **http** - Please change this to **https** instead of **http**
    
    

    vaultwarden-iOS-log-in-screen

    vaultwarden-iOS-log-in-screen

  6. Tap Log In, enter your credentials, and you'll be able to access your Bitwarden app / Vaultwarden server!

Desktop Clients

Linux

  1. Install Bitwarden either by using a package manager like apt (we recommend against using snap) or download it from here.

  2. If you intend to use Tor, run the program with the flag --proxy-server=socks5://127.0.0.1:9050 behind it. You can run this from a terminal, and if you'd like to use a shortcut, edit that shortcut file to include the flag.

  3. Copy the preferred interface address for VPN/LAN or Tor:

    vaultwarden-tor-address

  4. Choose the Self-hosted option, paste the preferred interface address for VPN, LAN or Tor:

  5. Click save and log in.

MacOS

  1. Download the Bitwarden Desktop app.

  2. If you intend to use Tor, make sure Tor is running on your Mac. If you intend to use a VPN, make sure you have it running on your Mac.

  3. Copy the preferred interface address for VPN, LAN or Tor:

    vaultwarden-tor-address

  4. Click the Self-hosted option, paste the preferred interface address for VPN, LAN or Tor:

    vaultwarden-tor-address

    vaultwarden-tor-address

  5. Click save and log in.

Windows

  1. Download the Bitwarden Desktop app.

  2. If you intend to use Tor, make sure Tor is running on Windows. If you intend to use a VPN, make sure you have it running on your Mac.

  3. Copy the preferred interface address for VPN/LAN or Tor:

    vaultwarden-tor-address

  4. Click the Self-hosted option, paste the preferred interface address for VPN, LAN or Tor:

  5. Click save and log in.

Organizations in Vaultwarden

Creating an Organization

If you want to share passwords amongst friends or family, you can do so using the Organizations feature of Vaultwarden.

  1. Inside your Web Vault, click New Organization

  2. Give your organization a name and enter your email.

    You can enter whatever you want for email, even **fake@email.com**. Because you are self-hosting, the email is not used for anything at all.
    

Adding Others to Your Organization

   After you have completed signed up new members to your Vaultwarden server, it is highly recommended that you disable new user signups inside your `Vaultwarden Admin Dashboard` --> General Settings --> Allow new signups --> uncheck the box.
  1. Tell the user to create an account on your Vaultwarden server. This must be done before you invite them.

  2. Inside the Organization page, click Members --> Invite member

  3. Decide what permissions you want the member to have and click "Save". In the below example, the member will be a manager.

  4. The new member should automatically show as Needs confirmation. If the user shows as Invited, Remove their account by clicking the settings icon to the right of their email address, and make sure they create account before you invite them, as mentioned in Step 1. Once they show as Needs confirmation, select user checkbox and click the settings icon on the right and click "Confirm selected".

  5. You will be presented with a fingerprint phrase. The new member can verify this phrase inside their own dashboard, but because you are self-hosting and adding users manually, you can just click "Confirm".

The new member should now be able to see the organization in their own dashboard or client apps.

Firefox Guides

Trusting your Root CA (Firefox)

These guides apply to Firefox, Firefox ESR, Librewolf, and Thunderbird. Mozilla apps need to be configured to use the certificate store of your device. Please refer to their blog post for an explanation (TLDR: for security purposes).

Contents

Mac / Windows

  1. Open Firefox and enter about:config in the URL bar. Accept any warnings that appear.

  2. Search for security.enterprise_roots.enabled and set the value to "true".

  3. Restart Firefox

Debian / Ubuntu

  1. In the hamburger menu, click "Settings". Search for security devices and select "Security Devices..."

    trust ca 1

  2. When the Device Manager dialog window opens, click "Load".

    trust ca 2

  3. Give the Module Name a title, such as "System CA Trust Module". For the Module filename, paste in /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so and hit "OK".

    trust ca 3

    
    The path to p11-kit-trust.so will be slightly different if your processor's architecture is not x86_64.
    
  4. Verify that the new module shows up on the left hand side and click "OK" in the bottom right:

    trust ca 4

  5. Restart Firefox

Android / Graphene


The regular Firefox app will not work. You must use `Firefox Beta <a href="https://play.google.com/store/apps/details?id=org.mozilla.firefox_beta" target="_blank">Firefox Beta</a>.
  1. Go to Menu > Settings > About Firefox and tap the Firefox icon 5 times to enable "developer mode".

  2. Go back to Menu > Settings > Secret Settings (at the bottom), and tap "Use third party CA certificates".

Arch / Garuda / CentOS / Fedora

No special steps required.

Enabling Tor (Firefox)

Contents

All Platforms

  1. Ensure you have already followed instruction for running Tor on your platform.

  2. Open Firefox and enter about:config in the URL bar. Accept any warnings that appear.

  3. Search for dom.securecontext.allowlist_onions and set the value to "true".

Mac

  1. Ensure you have completed the steps under All Platforms.

  2. In the main hamburger menu, click "Settings".

  3. Using the search bar, enter proxy, then select Settings....

  4. Select both boxes: Use System Proxy Settings and Proxy DNS when using SOCKS v5.

  5. Click "OK".

  6. Restart Firefox.

  7. Test that Firefox can resolve .onion URLs by visiting Start9's Tor website: http://privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion.

Linux


If you cannot connect after following this guide, your Firefox may be installed in a jailed environment, such as an AppImage, Flatpak, or SNAP. Ubuntu uses a SNAP for Firefox, so you may experience issues on Ubuntu-based systems. Please install Firefox via an alternate method that does not isolate Firefox from the wider filesystem.
  1. Ensure you have completed the steps under All Platforms.

  2. You need a Proxy Auto Config file to inform Firefox how to resolve .onion URLs. You can get Start9's standard file from a terminal, by using the following command:

    wget -P ~/ https://start9.com/assets/proxy.pac
    
  3. Determine the full path of proxy.pac, which we will use later, by executing the following command in the terminal, and copying its output to your clipboard:

    echo file://$HOME/proxy.pac
    
  4. In the main hamburger menu, click "Settings".

  5. Using the search bar, enter proxy, then select Settings....

  6. Select Automatic proxy configuration URL, then paste the path copied from above. Be aware, the triple /// is intentional, and your path will be different from the one below - namely, YOUR_LINUX_USERNAME will be your actual linux username:

    file:///home/YOUR_LINUX_USERNAME/proxy.pac
    
  7. Select the box Proxy DNS when using SOCKS v5.

  8. Click OK.

  9. Restart Firefox.

  10. Test that Firefox can resolve .onion URLs by visiting Start9's Tor website: http://privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion.

Windows

  1. Ensure you have completed the steps under All Platforms.

  2. You need a Proxy Auto Config file to inform Firefox how to resolve .onion URLs. Click here to get the one offered by Start9. Save it somewhere you will not delete it, and remember where you save it. For example:

    C:\Program Files\Tor Browser\proxy.pac
    
  3. In the main hamburger menu, click "Settings".

  4. Using the search bar, enter proxy, then select Settings....

  5. Select the box Automatic proxy configuration URL, then paste in the path to your PAC file from earlier, prefixed with file:// and with all backslashes (\) replaced by forward slashes (/). For example:

    file://C:/Program Files/Tor Browser/proxy.pac
    
  6. Select the box Proxy DNS when using SOCKS v5.

  7. Click OK.

  8. Restart Firefox.

  9. Test that Firefox can resolve .onion URLs by visiting Start9's Tor website: http://privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion.

Android/Graphene

  1. Ensure you have completed the steps under All Platforms.

  2. You need a Proxy Auto Config file to inform Firefox how to resolve .onion URLs. Click here to get the one offered by Start9.

  3. Search for network.proxy.autoconfig_url, and set the value to file:///storage/emulated/0/Download/proxy.pac. This is the default location of a the proxy.pac file downloaded above, although your path may vary.

  4. Search for network.proxy.type into the search bar, and set the value to 2:

  5. Search for network.proxy.socks_remote_dns, and set the value to true.

  6. Search for network.http.referer.hideOnionSource and set the value to true

  7. (GrapheneOS users only): Head to Settings -> Apps -> Firefox Beta -> Permissions -> Photos and videos -> Configure Storage Scopes -> ADD FILE, then navigate to where you placed the proxy.pac file.

  8. Test that Firefox can resolve .onion URLs by visiting Start9's Tor website: http://privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion.

Thunderbird Guides

Contents

Trusting Your Root CA

  1. Ensure you have already trusted your Root CA.

  2. In the Thunderbird hamburger menu, click Settings.

  3. Using the search bar, enter config, then select Config Editor....

  4. Using the new search bar, search for security.enterprise_roots.enabled, and set the value to true.

Enabling Tor

Mac

  1. Once you have configured Mac for Tor, no additional steps are required.

Linux

  1. Ensure you have already configured Linux for Tor.

  2. You need a Proxy Auto Config file to inform Firefox how to resolve .onion URLs. You can get Start9's standard file from a terminal, by using the following command:

    wget -P ~/ https://start9.com/assets/proxy.pac
    
  3. Determine the full path of proxy.pac, which we will use later, by executing the following command in the terminal, and copying its output to your clipboard:

    echo file://$HOME/proxy.pac
    
  4. In the Thunderbird hamburger menu, click Settings.

  5. Using the search bar, enter proxy, then select Settings....

  6. Select Automatic proxy configuration URL, then paste the path copied from above. Be aware, the triple /// is intentional, and your path will be different from the one below - namely, YOUR_LINUX_USERNAME will be your actual linux username:

    file:///home/YOUR_LINUX_USERNAME/proxy.pac
    

Windows

  1. Ensure you have already configured Windows for Tor.

  2. You need a Proxy Auto Config file to inform Firefox how to resolve .onion URLs. Click here to get the one offered by Start9. Save it somewhere you will not delete it, and remember where you save it. For example:

    C:\Program Files\Tor Browser\proxy.pac
    
  3. In the Thunderbird hamburger menu, click Settings.

  4. Using the search bar, enter proxy, then select Settings....

  5. Select the box Automatic proxy configuration URL, then paste in the path to your PAC file from earlier, prefixed with file:// and with all backslashes (\) replaced by forward slashes (/). For example:

    file://C:/Program Files/Tor Browser/proxy.pac
    

Getting SMTP Credentials

There are several StartOS services that are capable of sending emails, such as BTCPay Server, Ghost, Gitea, Nextcloud, Synapse, and Vaultwarden, using third party email (SMTP) servers. The guides below are for using Gmail or Amazon SES for SMTP, but you may also use another third party provider of your choice.

Contents

Gmail

  1. Access your Google 2-step verification settings: https://myaccount.google.com/signinoptions/two-step-verification.

  2. Enable 2-Step verification if not already.

  3. Under "App Passwords" (bottom), add a new App Password.

  4. Choose a name for the new App Password. You may call it anything, such as "SMTP", then click "Create".

  5. A random 16-character password will be created and shown to you. This is your app password. Save it somewhere secure, such as your Vaultwarden password manager, then click "Done".

  6. Now you can use this SMTP account for any service that has the capability to send an email. The table below shows all the details you may need:

    ParameterValue
    Hostsmtp.gmail.com
    Port587
    EncryptionTLS
    Usernameyour-username@gmail.com
    Passwordyour App Password (form above)

Amazon SES

Refer to the Amazon SES docs.

Resetting Your Password

This guide should only be used if you have lost or forgotten your StartOS master password. If you are just wanting to change your password, that can be done through the main UI System > Change Password.

Contents

Raspberry Pi

  1. Simply re-flash the microSD card.

    
    When performing initial setup, be certain to select `Recover > Use Existing Drive`.
    
  2. Create a new password and complete setup. All your previous addresses and data will be preserved.

All Other Devices

  1. Download and flash the latest version of StartOS, using the appropriate flashing guide for your hardware.

    
    - When installing StartOS, be sure to select "Re-install OS, preserving data".
    
    - When performing initial setup (after installing StartOS), be certain to select `Recover > Use Existing Drive`.
    
  2. Create a new password and complete setup. All your previous addresses and data will be preserved.

Upgrading Your Raspberry Pi

Follow this guide to upgrade from a Raspberry Pi StartOS server to a Server One, Server Pure, or similar device.

Contents

From a Pi with External Drive

Use this section if your current StartOS Raspberry Pi uses an external drive over USB.

  1. Stop every service on your Raspberry Pi server.

  2. Shutdown your Raspberry Pi server and disconnect from power.

  3. Connect your new server to power and ethernet.

  4. Visit http://start.local on any computer on the same LAN.

  5. Connect your previous storage drive to any USB-3 or USB-C port on your new server.

  6. Select "Recover".

  7. Select "Transfer".

  8. On the "Transfer" screen, select the previous external storage drive.

  9. On the "Select Storage Drive" screen, select your new storage drive. This is the internal drive of the new server.

  10. Create a password for the new server. It can be the same as before.

  11. Your data will now transfer. This can take minutes to hours, depending on how much data you have.

  12. If you intend to re-purpose the Raspberry Pi as another StartOS server, be sure to first re-flash the microSD, then perform a fresh setup, which will wipe the SSD in the process. It is a good idea to wipe the SSD separately beforehand, just in case.

    
    _Do not_ power on the Raspberry Pi until you have successfully re-flashed the microSD. If you power it on as-is, it can cause serious problems, including loss of funds if you are running a lightning node.
    

From 2022 Embassy One (NASPi case)

Naspi

  1. Get a high quality USB-A to USB-A cable.

  2. Power down the old server, then pull out the micro SD card.

    Naspi microSD card

  3. Disconnect the USB adapter.

    Naspi Jameson Loop

  4. Connect one side of the USB-A cable to the lowest blue USB port on the old server, then the other side to a blue USB port on your new server.

    Naspi USB

  5. Power on the old server

  6. The two servers are now tethered together, and the NASPi is now powered on.

  7. Connect your new server to power and ethernet if not already and also power on.

  8. Visit http://start.local on any computer on the same LAN.

  9. Select "Recover".

  10. Select "Transfer".

  11. On the "Transfer" screen, Select the NASPi storage drive.

  12. On the "Select Storage Drive" screen, select your new storage drive. This is the internal drive of the new server.

  13. Create a password for the new server. It can be the same as before.

  14. Your data will now transfer. This can take minutes to hours, depending on how much data you have.

  15. If you intend to re-purpose the NASPi as another StartOS server, be sure to first reflash the microSD, then perform a fresh setup, which will wipe the SSD in the process.

    
    _Do not_ re-insert and power on the Raspberry Pi until you have successfully [re-flashed](../flashing-guides/startos/) the microSD. If you power it on with an unflashed microSD inserted, it can cause serious problems, including loss of funds if you are running a lightning node.
    

Migrating LND to StartOS


After migrating an LND wallet to StartOS, NEVER restart your old node. Turning on your old node can result in the broadcast of old channel states and potentially loss of funds!

This guide is for users seeking to migrate LND on-chain and lightning funds from a different node to StartOS easily and without closing channels. This migration will require two sets of hardware, your existing hardware you wish to migrate from, and the hardware running StartOS you are migrating to. Both devices must be running on the same LAN. The LND service on StartOS provides easy to use actions for users migrating from the below Node implementations:

  • Umbrel (Both 1.x and 0.5)
  • RaspiBlitz
  • myNode

Instructions

  1. First, you will need a fresh installation of LND on StartOS which has never been started. Starting the LND service will create a wallet; if there is an existing LND wallet on StartOS, LND will not allow any of the import actions to be run.

  2. Select the action corresponding to the node you are migrating from and fill out the corresponding IP and password(s). If you are unsure of the IP address of your node, you may need to check your router.

    LND Actions

  3. The migration action may take several minutes to complete. Once the action has completed and your old node has been unplugged, you may safely start LND on StartOS. Remember - NEVER restart your old node after the migration has completed!

Introduction

StartOS is a Server OS. It is a Linux distro that is optimized for administering servers. Mac, Windows, iOS, Android, and other Linux distros, such as Debian and Ubuntu, are optimized for administering clients, such as phones or laptops. Using these operating systems to administer a server requires "popping the hood" and using the command line. Server administration involves compiling software, permissioning file systems, editing configuration files, managing dependencies, configuring network interfaces, generating certificates, monitoring health, creating backups, etc etc. It is a serious undertaking that requires significant time and expertise. For developers and system administrators, StartOS provides huge time savings over traditional Linux workflows. For everyone else, it makes administering a server possible.

The StartOS graphical interface is a private website, accessible from a local monitor or remote web browser. Through it, users can discover, download, install, configure, monitor, back up, and generally manage any variety of self-hosted, open-source software.

What makes this experience possible is a unique package format that permits services/apps/nodes to take advantage of StartOS APIs. In its most basic form, a package is just a thin metadata wrapper around a service that allows it to be discovered, installed, and run on StartOS. Beyond that, StartOS APIs grant developers an incredible degree of creative capacity to define the end-user experience for their service. Developers can:

  • display instructions and tool tips
  • present alerts and warnings under certain conditions
  • run arbitrary code on install, update, and uninstall
  • represent configuration files as validated forms with all varieties of form inputs
  • define command line scripts and commands that present as buttons with optional inputs
  • write health checks that run on an interval and are optionally displayed
  • automatically install and configure dependencies
  • maintain state and optionally expose particular values to users or dependent services
  • grant users flexible networking options such as LAN (.local + IP/port), Tor (.onion), and clearnet
  • offer one-click, encrypted backups of targeted data
  • and more...

In the next section, we will explore the StartOS APIs and how to access them using type safe Start-SDK.

Environment Setup

StartOS server

You will need a StartOS server to test your package. Follow the flashing guide to install StartOS on a physical device or VM.

Docker

Docker is needed to convert the docker image to a StartOS image.

Make

Make is used streamline builds and produce an s9pk.

NodeJS

NodeJS is needed to compile the Typescript in your StartOS package.

start-cli

start-cli is needed to interact with StartOS from the command line.

  1. Clone the start-os repo

    https://github.com/Start9Labs/start-os.git
    
  2. Build start-cli

    make cli
    
  3. Initialize start-cli

    start-cli init
    

    This will generate a .startos directory inside your home directory. This directory will contain a newly-generated developer.key.pem, used to sign packages, as well as a default config.yaml, which can be edited to customize and streamline your developer experience.

Project Structure

/
├── assets/ (optional)
├── startos/
├── .gitignore
├── Dockerfile (optional)
├── icon.svg
├── instructions.md
├── LICENSE
├── Makefile
├── package-lock.json
├── package.json
├── README.md
└── tsconfig.json

.gitignore, Makefile, package-lock.json, package.json, and tsconfig.json

These are boilerplate files that need not be edited, except in special circumstances.

Dockerfile (optional)

It is recommended to pull an existing Docker image as shown in Hello World. If necessary, you can define a custom image using this Dockerfile.

icon.svg

This is the icon for your package. In most cases, it will be the upstream service icon. Maximum file size is 40 KiB. Supported extensions are .svg, .png, .jpg, and .webp.

instructions.md

This is your package instructions.

LICENSE

This is the software license for your package. In most cases, it will be the upstream license. If your package contains multiple upstream services with different licenses, you should select the more restrictive license.

README.md

This is largely boilerplate. Update as needed for your service, including replacing references to Hello World/Moon.

assets/ (optional)

Use the assets/ directory to package arbitrary files into your package. For example, an AI service may want to include a default LLM.

startos/

startos/
├── actions/
├── file-models/
├── versions/
├── backup.ts
├── dependencies.ts
├── index.ts
├── init.ts
├── interfaces.ts
├── main.ts
├── manifest.ts
├── sdk.ts
├── store.ts
└── utils.ts

The startos/ directory is where you take advantage of the StartOS SDK and APIs.

backups.ts

setupBackups() is where you define what volumes to back up as well as what directories or files to exclude from backups.

dependencies.ts

setupDependencies() is where you define any dependencies of this package, including their versions, whether or not they need to be running or simply installed, and which health checks, if any, need to be passing for this package to be satisfied.

index.ts

This file is just plumbing, used for exporting package functions to StartOS.

init.ts

  • setupInstall(): arbitrary code to run when the package is freshly installed. In this function, it is common to assign directory permissions or enter default values to the Store.
  • setupUninstall(): arbitrary code to run on package uninstall. It is most commonly used to undo changes made to dependency configs.

interfaces.ts

setupInterfaces() is where you define the service interfaces and determine how they are exposed. This function will execute on service install, update, and config save. It takes the user's config input as an argument, which will be null for install and update.

main.ts

setupMain() is where you define the daemons that define your service's runtime. Each daemon comes with a built-in health check that can optionally be displayed to the user. You can also use setupMain() to define arbitrary health checks in addition to those accompanying a daemon. A common use case for additional health checks is tracking and displaying a sync percentage.

manifest.ts

setupManifest() is where you define static metadata about the service, such as ID, name, description, release notes, helpful links, volumes, (software) images, hardware requirements, alerts, and dependencies.

sdk.ts

This file is plumbing, used to imbue the generic Start SDK with package-specific type information defined in manifest.ts and store.ts. The exported SDK is what should be used through the startos/ directory. It is a custom SDK just for this package.

store.ts

The Store is for persisting arbitrary data that are not persisted by the service itself. The three most common use cases of the Store are:

  1. Credentials for end user.
  2. Credentials for dependent services.
  3. Temporary state to be inspected at runtime, such as startup flags.
  4. Data that cannot be retrieved or derived from the service itself.

setupExposeStore() is where you determine which values from the Store to expose to other services running on StartOS. Values not explicitly exposed here will be kept private.

utils.ts

This file is for defining constants and functions specific to your package that are used throughout the code base. Many packages will not make use of this file.

actions/

actions/
├── index.ts
├── action1.ts
└── action2.ts

Actions are predefined scripts that display as buttons to the user. They accept arbitrary input and return structured data that can be optionally displayed masked or as QR codes. For example, a config.ts action might present a validated form that represents an underlying config file of the service, allowing them to configure the service without needing SSH or the command line. A resetPassword action could generate a new password, save it to the appropriate place in the file system or package store, and display it to the user.

Each action receives its own file and is also passed into Actions.of() in actions/index.ts

file-models/ (optional)

file-models/
├── config1.yaml.ts
└── config2.json.ts

In file-models/, create separate .ts files for each config file (.json, .toml, .yaml, .config) used by the upstream service. These .ts files add type safety to the upstream config files and provide a simple means of reading and writing them throughout the package codebase.

versions/

versions/
├── index.ts
├── v1_0_3_2.ts
└── v1_0_2_0.ts

In the versions/ directory, you will create a new file for each new package version. Here you will provide the version number, release notes, and define any migrations that should run. Note: migrations are only for migrating data that is not migrated by the upstream service itself. All versions must then be provided as arguments to VersionGraph.of() in index.ts with the MOST RECENT VERSION LISTED FIRST.

Quick Start

Environment Setup

Ensure you have completed every step of environment setup.

Generate your Package Repository

  1. Select a template:

    • Use Hello World if your service does not depend on another service.
    • Use Hello Moon if your service depends on at least one other service.
  2. Click Use this template > Create new repository. You must be signed into Github to see this button.

    use Github template

  3. Name your repository. The name should be [service-name]-startos. For example, NextCloud is nextcloud-startos and Lightning Terminal is lightning-terminal-startos.

  4. For the repository description, enter "StartOS package for [Service Name]".

  5. Make sure the repository is Public.

  6. Click "Create Repository".

Clone your Package Repository

From the command line of your local work machine, run the following commands:

git clone [your-repository-url]
cd [repository-name]
npm i

Build the s9pk

make

Install the s9pk

From the CLI

start-cli install -h <host> -s <path-to-s9pk>

You can eliminate the -h argument by hard-coding the host in ~/.startos/config.yaml.

From the GUI

From the GUI of your StartOS server, go to System > Sideload, upload the .s9pk file, and click "Install".

Common Issues

Contents

StartOS boots into "Diagnostic Mode"

If you encounter Diagnostic Mode, your best bet is stop clicking and contact support.

During initial setup, I am unable to connect to "start.local".

  1. Confirm that the server is plugged into power and Ethernet

  2. Confirm your phone/computer is not connected to a "Guest" network

  3. Confirm you are not using the Tor Browser.

  4. Confirm your phone/computer is not using a VPN, or that if you are, that it allows LAN connections, such as the examples below:

    • Mullvad - Go to Settings -> VPN Settings -> Local Network Sharing
    • ProtonVPN - Go to Preferences -> Connection -> Allow LAN Connections
  5. Very rarely, your firewall settings may block mDNS. In this case:

    • From your browser, navigate to your router configuration settings. 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 a device labeled start. Take note of the associated IP address and enter it into your browser's URL field to enter the setup.
  6. Log into your router (the directions for which can be found with a simple web search for your router model and 'how to log in'). Once you are in your router, find the device labeled "start", and visit its associated IP address, which will look something like: 192.168.1.9

I am unable to connect to my server's "custom-address.local" URL

  1. First, try :ref:these step <setup-troubleshoot>. In none resolve the issue, continue below.

  2. Hard refresh the browser:

    • Linux/Windows: ctrl+shift+R
    • macOS Firefox: cmd+shift+R
    • macOS Safari: cmd+option+E, then cmd+R
  3. Make sure you have successfully followed the :ref:connecting-lan instructions for your device.

  4. If you are using Windows, the problem is almost certainly with Bonjour. Follow the :ref:directions to reinstall <connecting-lan-windows>, even if you have already done so.

  5. If using Firefox from Mac, Windows or Android, ensure you have set security.enterprise_roots.enable to true in about:config per the :ref:instructions<ca-ff>

  6. Try connecting using your server's IP address or Tor address. If this works, it means your issue is specific to .local. Try clearing your browser cache and/or restarting your phone/laptop/router. If all fails, try restarting your server.

  7. Try connecting using a different browser on the same device. If this works, it means you need to clear cache on your current browser.

  8. Try connecting using a different device. If this works, it means you need to clear cache on your current browser and/or restart your current device.

  9. Try visiting start.local. Your server may be in diagnostic mode.

  10. Try restarting your router.

  11. Try restarting your server. Be patient and give it plenty of time to come back online.

I am unable to connect to my server's "xxxxxxxxxxxxxxxxxx.onion" URL

  1. Tor can be slow and unreliable. Often, the solution to poor connectivity is just to wait an hour and try again.
  2. Try connecting using the official Tor Browser. If this works, it means the issue is with (1) your current browser or native app, (2) the Tor daemon running on your phone/laptop. Try clearing cache and restarting things.
  3. Try connecting to your server using its "custom-address.local" URL or its IP address. If this works, it means the issue is specific to Tor on your server. Check out your Tor logs (System -> Tor Logs). If you see errors, such as Tor stuck bootstrapping, navigate to System -> Experimental Features -> Reset Tor.

Request Error

This means your client device failed to connect to the server. This can happen for a variety of reasons. The best course of action is:

  1. Check your local Internet connection.
  2. Hard refresh the browser.
  3. Clear the browser cache/history.
  4. Try using a different address for your server. For example, if you are using your .onion address, try using your .local or IP address instead. If you are using your .local address, try using your .onion or IP address.
  5. Try from another client device. If the second client works, then you know the issue is with your first client. If the seconds client does not work, then you know the issue is either with your clients' network or with your server.
  6. If after completing the steps above, you still cannot connect using any address from any client, then you will likely need to manually power cycle the server.
  7. If power cycling the server does not resolve the issue, please contact support.

Clock Sync Failure

This means your server was unable to sync its clock with the Internet using the Network Time Protocol (NTP). This is usually due to a firewall issue with your network/router. Make sure you are not blocking NTP. If the issue persists, please contact support.

Issue with a particular service

If a service is misbehaving or crashing, check the logs for that service. Look for any errors that might explain the problem. Often, the solution is to restart the service by clicking "Restart". If the issue persist, contact support.

Common Speaker Noises

The Server Pure (2023 and older) and and Server One (2022 and older) have an internal speaker. Below are the meanings of various noises.

  • bep: Server is starting up

  • chime: Server is ready

  • double/triple bep: Server is updating

  • flatline: Server initialization failed / no network connection

  • Beethoven's 5th: Something has gone wrong. Visit http://start.local to view Diagnostic Mode and contact support.

Contact

Please visit https://start9.com/contact for contact information.