> ## Documentation Index
> Fetch the complete documentation index at: https://second.tech/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Install Bark Wallet

Bark Wallet runs on your own hardware, and the app creates a wallet for you the first time it opens. Pick your platform.

<Tabs>
  <Tab title="Umbrel" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/umbrel-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=64e6658a441779c46ab880279997e573" width="490" height="240" data-path="images/bark-wallet/umbrel-logo.svg">
    You need:

    * A device running [umbrelOS](https://umbrel.com/umbrelos) 0.5 or later.

    <Steps>
      <Step title="Open the App Store">
        Open umbrelOS in your browser, at `http://umbrel.local` by default, and select **App Store** in the dock.
      </Step>

      <Step title="Find Bark Wallet">
        Search for "Bark Wallet", or browse the Bitcoin category. The same listing is on the web at [apps.umbrel.com/app/bark-wallet](https://apps.umbrel.com/app/bark-wallet).

        <Frame caption="One-click install from the official Umbrel App Store">
          <img src="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/umbrel-app-store.png?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=0f382dc60f349f8faf2c059d7067af57" alt="Screenshot of the Bark Wallet listing in the Umbrel App Store, with the Install button" width="1304" height="842" data-path="images/bark-wallet/umbrel-app-store.png" />
        </Frame>
      </Step>

      <Step title="Select Install">
        umbrelOS downloads and starts the app in the background.
      </Step>

      <Step title="Open the app">
        Select **Open** on the listing, or the new Bark Wallet icon on your umbrelOS home screen.
      </Step>
    </Steps>

    <Warning>
      Bark Wallet has no login of its own. Anyone who can sign in to your umbrelOS can open the wallet app and spend from it.
    </Warning>

    By default, Bark Wallet connects to Second's mainnet Ark server at `ark.second.tech`. A different server can't be configured yet.
  </Tab>

  <Tab title="Start9" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/start9-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=04a6b5fd51719d1b10be822af22a00a3" width="240" height="240" data-path="images/bark-wallet/start9-logo.svg">
    You need:

    * A device running [StartOS](https://start9.com/) 0.4.0 or later.

    <Steps>
      <Step title="Open the Marketplace">
        Select **Marketplace** in the top navigation bar.
      </Step>

      <Step title="Install Bark Wallet">
        Find **Bark Wallet** and select **Install**. The service appears on your **Services** page.

        <Frame caption="Bark Wallet in the Start9 Registry">
          <img src="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/start9-marketplace.png?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=19694039196757c78f279f816c94ca59" alt="Screenshot of the Bark Wallet listing in the Start9 Registry, with the Install button and the version panel" width="2880" height="1466" data-path="images/bark-wallet/start9-marketplace.png" />
        </Frame>
      </Step>

      <Step title="Run the Set UI Password task">
        The onboarding tasks sit on the service's **Dashboard**, under **Tasks**. This one generates your login password and displays it. Save it somewhere secure.
      </Step>

      <Step title="Acknowledge the Backup Safety task">
        Read and accept this disclaimer. With Bark, restoring an out-of-date copy of your wallet can cause permanent loss of bitcoin, so only ever restore your most recent backup. The [Wallet backups](/docs/bark-wallet/backup) page explains why.
      </Step>

      <Step title="Configure an external backup target">
        Run the **Configure Backups** task and enable at least one target on a different machine: Google Drive, Dropbox, Nextcloud, or SFTP.

        <Warning>
          Your seed phrase will be required to [recover from any backups](/docs/bark-wallet/backup) sent to this target.
        </Warning>
      </Step>

      <Step title="Start the service">
        Back on the service's **Dashboard**, select **Start**.

        <Frame caption="All tasks complete: start the service from its Dashboard">
          <img src="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/start9-dashboard.png?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=bb078d6b655ba185c4c54eb54c1ef1f1" alt="Screenshot of the Bark Wallet service Dashboard on StartOS, with the Stopped status, the Start button, and all tasks complete" width="2880" height="1470" data-path="images/bark-wallet/start9-dashboard.png" />
        </Frame>
      </Step>

      <Step title="Open UI and log in">
        Once the service is running, select **Open UI** and log in with the generated password.

        <Frame caption="Password protection blocks unauthorized access to the wallet app on your network">
          <img src="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/start9-login.png?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=3beade976d20936bb27a95b95d00aac1" alt="Screenshot of the Unlock Bark Wallet screen, asking for the password before showing the wallet app" width="2856" height="1456" data-path="images/bark-wallet/start9-login.png" />
        </Frame>
      </Step>
    </Steps>

    By default, Bark Wallet connects to Second's mainnet Ark server at `ark.second.tech`. A different server can't be configured yet.
  </Tab>

  <Tab title="Self-host" icon="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/docker-logo.svg?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=c41fb5ae02b7b346bc20c981d1dc3633" width="340" height="268" data-path="images/bark-wallet/docker-logo.svg">
    You need:

    * [Docker](https://docs.docker.com/get-started/get-docker/) with Docker Compose. On Windows, macOS, and Linux, [Docker Desktop](https://docs.docker.com/desktop/) includes both; on Linux, [Docker Engine](https://docs.docker.com/engine/install/) with the [Docker Compose plugin](https://docs.docker.com/compose/install/) also works.
    * [Git](https://git-scm.com/downloads).
    * Optionally, [Node.js](https://nodejs.org/) 22.12 or later, which gives you shorter npm commands. Docker does the work either way.

    <Accordion title="Already running your own Barkd?">
      You can run the web interface alone against an existing `barkd`, without Docker. This path needs [Node.js](https://nodejs.org/) 22.12 or later.

      <Steps>
        <Step title="Clone the repository and install the dependencies">
          ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
          git clone https://gitlab.com/ark-bitcoin/labs/bark-web.git
          cd bark-web
          npm install
          ```
        </Step>

        <Step title="Create your configuration">
          ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
          cp .env.byob.example .env.byob
          ```
        </Step>

        <Step title="Point it at your daemon">
          In `.env.byob`, set `BARKD_URL` and `BARKD_AUTH_TOKEN`, and match `BARK_NETWORK`, `ARK_SERVER`, and `CHAIN_SOURCE` to your daemon's network; the file ships signet defaults. The token stays server-side and never reaches the browser.
        </Step>

        <Step title="Start the interface">
          ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
          npm run dev:byob
          ```

          Then open [http://localhost:5173](http://localhost:5173).
        </Step>
      </Steps>
    </Accordion>

    ### Run the wallet app

    <Steps>
      <Step title="Clone the repository">
        ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
        git clone https://gitlab.com/ark-bitcoin/labs/bark-web.git
        cd bark-web
        ```
      </Step>

      <Step title="Start the stack on your network">
        Pick your network. Mainnet moves real bitcoin; signet is for testing with free bitcoin.

        <Tabs>
          <Tab title="Mainnet">
            <CodeGroup>
              ```bash Docker theme={"theme":{"light":"github-light","dark":"github-dark"}}
              docker compose --env-file .env.mainnet up --build
              ```

              ```bash npm theme={"theme":{"light":"github-light","dark":"github-dark"}}
              npm run dev:mainnet
              ```
            </CodeGroup>

            By default you'll connect to Second's Ark server at `ark.second.tech`.
          </Tab>

          <Tab title="Signet">
            <CodeGroup>
              ```bash Docker theme={"theme":{"light":"github-light","dark":"github-dark"}}
              docker compose --env-file .env.signet up --build
              ```

              ```bash npm theme={"theme":{"light":"github-light","dark":"github-dark"}}
              npm run dev:signet
              ```
            </CodeGroup>

            By default you'll connect to Second's signet Ark server.
          </Tab>
        </Tabs>

        Setup will take a few minutes during your first run. Leave the terminal running.

        <Note>
          The first start creates the Docker volume that will hold your wallet. A storage mirror (RAID, ZFS, or BTRFS) keeps a hot spare of your [VTXOs](/docs/learn/vtxo) through a disk failure. To use one, move Docker's storage onto the mirrored disk before the first start.

          * **Docker Engine:** set [`data-root`](https://docs.docker.com/engine/daemon/) in `/etc/docker/daemon.json`.
          * **Docker Desktop:** change **Disk image location** under [**Settings** > **Resources**](https://docs.docker.com/desktop/settings-and-maintenance/settings/).

          A mirror is not a backup, though. See [Wallet backups](/docs/bark-wallet/backup).
        </Note>
      </Step>

      <Step title="Open the wallet app">
        Go to [http://localhost:5173](http://localhost:5173). The app creates a wallet automatically on first launch.
      </Step>
    </Steps>

    <Tip>
      On signet, fund the wallet with free sats from [Second's faucet](https://signet.2nd.dev/).
    </Tip>

    ### Turn on password protection

    Out of the box the wallet app has no login. Anyone who can open the wallet page, on your machine or from any device on your local network, can spend from it. To enable password protection on the app, follow these steps.

    <Steps>
      <Step title="Create the password file">
        In the repository directory, create `.auth-dev/ui_password` containing only your password (replace `your-strong-password` with your preferred password in the command below).

        ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
        mkdir .auth-dev
        echo "your-strong-password" > .auth-dev/ui_password
        ```
      </Step>

      <Step title="Start the wallet app with password protection">
        <Tabs>
          <Tab title="Mainnet">
            <CodeGroup>
              ```bash Docker theme={"theme":{"light":"github-light","dark":"github-dark"}}
              docker compose -f docker-compose.yml -f docker-compose.auth.yml --env-file .env.mainnet up --build
              ```

              ```bash npm theme={"theme":{"light":"github-light","dark":"github-dark"}}
              npm run dev:mainnet:auth
              ```
            </CodeGroup>
          </Tab>

          <Tab title="Signet">
            <CodeGroup>
              ```bash Docker theme={"theme":{"light":"github-light","dark":"github-dark"}}
              docker compose -f docker-compose.yml -f docker-compose.auth.yml --env-file .env.signet up --build
              ```

              ```bash npm theme={"theme":{"light":"github-light","dark":"github-dark"}}
              npm run dev:signet:auth
              ```
            </CodeGroup>
          </Tab>
        </Tabs>
      </Step>
    </Steps>

    Once enabled, the next time you open the wallet page you'll be prompted to enter your password. Sessions last seven days, and five failed login attempts trigger an escalating lockout of up to 15 minutes.

    <Frame caption="With password protection on, the wallet app asks for your password first">
      <img src="https://mintcdn.com/second-0659a37d/3KiAlC1Xlv9QyI7k/images/bark-wallet/password-protection.png?fit=max&auto=format&n=3KiAlC1Xlv9QyI7k&q=85&s=e4ceb2163a9eb9af16b315fd3ff13acb" alt="Screenshot of the Unlock Bark Wallet screen, asking for the password before showing the wallet app" width="2876" height="1444" data-path="images/bark-wallet/password-protection.png" />
    </Frame>

    ### Open from other devices on your network

    The wallet app is reachable from any device on your network at your machine's local IP address, while the API and `barkd` stay private on your machine. Find the address with `ipconfig` on Windows, `ifconfig` on macOS, or `ip addr` on Linux, then go to `http://<your-machine-ip>:5173` on the other device. Every device talks to the same `barkd`, so the same wallet loads everywhere.
  </Tab>
</Tabs>

After installing the wallet app, the first thing to do is [back up your wallet](/docs/bark-wallet/backup).
