Notes on Installing and Running the vultisig-windows Development Application
This guide will help you set up the development environment for the vultisig-windows application, including downloading dependencies and configuring the project.
Prerequisites and Dependencies
You will need several tools and dependencies to run the application:
-
Git
-
Purpose: Used to clone repositories from GitHub.
-
Installation: Download from Git for Windows or install it using a package manager like Chocolatey (choco install git).
-
-
Go (Golang)
-
Purpose: Go is required because vultisig-windows is built using the Wails framework, which relies on Go for backend development.
-
Installation: Download from Go's official site or install using a package manager (choco install golang).
-
-
Node.js and npm (Node Package Manager)
-
Purpose: Used to manage JavaScript dependencies and run frontend builds. npm comes with Node.js.
-
Installation: Download from Node.js or use a package manager (choco install nodejs).
-
-
Protobuf (Protocol Buffers)
-
Purpose: Used for serializing structured data. The vultisig project uses Protocol Buffers for defining message formats shared between projects like iOS, Android, and Windows.
-
Installation: Download the latest Protocol Buffers compiler (protoc) from Google's protobuf releases.
-
-
Buf
-
Purpose: This tool helps manage protobuf schemas, format, lint, and generate code.
-
Installation: Follow the installation instructions on the Buf documentation.
-
-
Wails
-
Purpose: A webview-based application framework used to create desktop applications using Go and a frontend framework (in this case, Vite and Vue).
-
Installation: Follow the installation steps on the Wails documentation.
-
Key Files
Here's a breakdown of some of the key configuration and build files in the vultisig-windows project:
-
wails.json
-
Location: Root directory of the project.
-
Purpose: Configuration file for the Wails framework. It defines the Wails-specific settings like build commands, frontend URL, etc.
-
-
build.json
-
Location: frontend/ directory.
-
Purpose: Defines the build steps and dependencies for the frontend part of the application, ensuring correct configuration of Vue components and related assets.
-
-
package.json
-
Location: frontend/ directory.
-
Purpose: Lists the frontend dependencies and scripts. This file tells npm what packages need to be installed and what commands are available (e.g., npm run dev for development, npm run build for production).
-
Step-by-Step Installation and Running the Application
-
Clone the Repository
- Use Git to clone the project:
In terminal type: git clone https://github.com/vultisig/vultisig-windows.git
Navigate into the project directory:
cd vultisig-windows
cd frontend
- Install npm dependencies
npm install
- You need to separately understand and install the protobuf files
git clone https://github.com/vultisig/commondata.git
cd commondata
buf format ---write
buf lint && buf build
buf generate
- Hopefully no errors, now you are ready. Go back to the base directory
cd C:\ProgramData\vultisig-windows
wails dev
It took me two days to resolve the protobuf files issue as I had no idea what that was, or that it was a separate process. But once I got there all quite easy! Enjoy!