Step 1 — Clone and Install
First, clone the repository to your local machine:
Navigate into the project directory:
Install all the required dependencies:
Step 2 — Set up Convex (Development)
In Terminal 1, start the Convex dev server:
Setup Process
- 1.You will be prompted to log in to Convex.
- 2.Select Create a new project and name it
ciphra. - 3.Convex automatically creates
.env.localin your project root.
Step 3 — Run in Development
In Terminal 2, start the Tauri dev build:
🚀 The app window will open. Create accounts, add documents and images — everything is fully functional in development mode.
Step 4 — Get Production Keys
To prepare your production environment, go to your Convex Dashboard and open your ciphra project. Follow these exact steps:
- 1Change from the Development tab to the Production tab (top left).
- 2Go to Settings > General.
- 3Click Generate a production key. Add a name (e.g., "production") and click Create.
- 4Copy your production key and save it somewhere safe. You will need it later for the Windows/Linux build step.
Example: prod:f********************************** - 5Finally, copy your Convex URL and Site URL from the box at the top right of the dashboard.
Now, create a .env.production file in your project root and paste those URLs:
Step 5 — Generate Signing Keys
Tauri requires all distributed builds to be cryptographically signed. Generate your key pair by running:
Key Generation Process
- You will be prompted to enter a password. Make sure to choose a strong one.
- The CLI will output a Public Key and a Private Key.
- Important: Save your password, public key, and private key somewhere very safe (like a password manager). You will need them for future updates.
Once you have generated and saved your keys, create an .env file in your project root and add them:
Environment File Summary
After completing the setup, you should have exactly 3 environment files in the root of your project. Here is a summary to ensure everything is configured correctly:
Connects your app to the Convex development database.
Auto-generated by Convex CLI.Connects your app to the live Convex production database.
Manually created by you in Step 4.Stores cryptographic keys for signing desktop app releases.
Must remain completely private.Step 6 — Build Prerequisites
Before compiling the native desktop applications, ensure your operating system has the necessary build tools. While Node.js and Rust are required across all platforms, Linux needs a few extra packages.
🪟 Windows
Windows builds are straightforward. As long as you have the Rust toolchain (which includes the Visual Studio C++ Build Tools) and Node.js installed, no extra system libraries are needed. You are ready to build!
🐧 Linux
Linux requires specific WebKit and GTK development packages to render the Tauri webview correctly. See the exact terminal commands below for your specific distribution.
Step 7 — Windows Build
Now it's time to compile the desktop application for Windows.
$env: syntax. This means you must run them in PowerShell. Open PowerShell in your project root before continuing.1. Deploy Convex to Production
First, set your production deploy key (obtained in Step 4):
Next, push your schema and backend functions to the live database:
2. Set Signing Keys
Load your private key (generated in Step 5) into the environment:
Load the password for your private key:
3. Compile the Application
Run the final Tauri build command. This step will take a few minutes as it compiles the Rust binaries and webview bindings.
📦 Build Output
- MSIWindows Installer
msi/Ciphra_x.x.x_x64_en-US.msi - NSISStandalone Setup Executable
nsis/Ciphra_x.x.x_x64-setup.exe
Step 8 — Linux Build
Finally, compile the native desktop application for Linux distributions.
export syntax. Also, if you already deployed your Convex backend during the Windows build, you can skip Step 1 here.1. Deploy Convex (If not done already)
Set your production deploy key and push your backend schema:
2. Set Signing Keys
Export your private key and password into the active terminal session:
3. Compile the Application
Run the final Tauri build. This will generate AppImage, DEB, and RPM packages.
Troubleshooting: If you encounter AppImage packaging errors, run this alternative command instead:
📦 Build Output
- APPIMAGEUniversal Linux App
appimage/Ciphra_x.x.x_amd64.AppImage - DEBUbuntu / Debian
deb/Ciphra_x.x.x_amd64.deb - RPMFedora / openSUSE
rpm/Ciphra-x.x.x-1.x86_64.rpm