KURPOD mobile & desktop apps

Installation

How to install Kurpod. It's just a single binary that runs a web server.


Quick Start

# Add tap and install
brew tap srv1n/kurpod https://github.com/srv1n/kurpod.git
brew install kurpod

# Start server (defaults to port 3000 and ./blobs directory)
kurpod_server

# Access at http://localhost:3000
# โ†’ Need a different port or storage location? See the
#   "Configuration & Usage" section below for all flags.

Troubleshooting Homebrew Cache Issues:

# If you get "already installed" with old version or SHA256 mismatch:
brew update                    # Refresh formula from tap
brew reinstall kurpod         # Force reinstall latest version

# If that doesn't work, clear cache:
brew cleanup -s               # Clear all caches
brew uninstall kurpod        # Remove old version
brew install kurpod          # Fresh install

Uninstall:

# Remove KURPOD
brew uninstall kurpod

# Remove tap (optional - removes the formula repository)
brew untap srv1n/kurpod

# Clean up any remaining dependencies
brew autoremove

Option 2: Docker (Cross-platform)

# Run latest version
docker run -p 3000:3000 -v ./data:/app/data ghcr.io/srv1n/kurpod-server:latest

# Open browser to http://localhost:3000

Cleanup:

# Stop and remove running container
docker stop $(docker ps -q --filter ancestor=ghcr.io/srv1n/kurpod)
docker rm $(docker ps -aq --filter ancestor=ghcr.io/srv1n/kurpod)

# Remove downloaded image
docker rmi ghcr.io/srv1n/kurpod-server:latest

# Remove all unused images, containers, and volumes (optional)
docker system prune -a --volumes

Option 3: Auto-Install Script

# Auto-install for Linux/macOS
curl -L https://github.com/srv1n/kurpod/releases/latest/download/install.sh | bash

# Then run
kurpod_server

Uninstall:

# Remove from user installation directory
rm -f ~/.local/bin/kurpod_server

# Or remove from system-wide installation
sudo rm -f /usr/local/bin/kurpod_server

# Clean up PATH entries in shell profile (if added manually)
# Edit ~/.bashrc or ~/.zshrc and remove the ~/.local/bin PATH export line

Option 4: Manual Download

Download the appropriate binary for your platform from the releases page.

Cleanup:

# Remove the binary from wherever you placed it
rm -f /path/to/kurpod_server

# If you moved it to a system directory
sudo rm -f /usr/local/bin/kurpod_server

# Remove any data files created (optional - this deletes your encrypted blobs!)
# rm -rf ./blobs/
# rm -f ./storage.blob

Option 5: Home Assistant Add-on (In Progress)

KURPOD can be installed as a Home Assistant add-on for easy integration into your smart home. Simply add the repo https://github.com/srv1n/kurpod in Home Assistant and install the "Kurpod" add-on. (Runs on Raspberry Pi and other Home Assistant systems.)

Note: This integration is currently in development and will be available soon.


Supported Platforms

Desktop & Server

  • Linux: x86_64, ARM64 (including Raspberry Pi with 64-bit OS) [Limited testing]
  • macOS: Intel and Apple Silicon (M1/M2/M3) (Tested fully)
  • Windows: x86_64 and ARM64 [Not tested, but should work]

Container

  • Docker: Multi-architecture images (~4.8MB)
  • Platforms: linux/amd64, linux/arm64

Detailed Installation Options

Docker Installation

Basic Usage

# Pull and run latest version
docker run -p 3000:3000 ghcr.io/srv1n/kurpod-server:latest

# With persistent storage
mkdir -p ./kurpod-data
docker run -p 3000:3000 -v ./kurpod-data:/app/data ghcr.io/srv1n/kurpod-server:latest

# Custom port and configuration
docker run -p 8080:8080 -v ./kurpod-data:/app/data ghcr.io/srv1n/kurpod-server:latest --port 8080

Docker Compose

# docker-compose.yml
version: '3.8'
services:
  kurpod:
    image: ghcr.io/srv1n/kurpod-server:latest
    ports:
      - "3000:3000"
    volumes:
      - ./data:/app/data
    restart: unless-stopped
    command: ["--port", "3000", "--blob", "/app/data/storage.blob"]

Available Tags

  • latest - Latest stable release
  • v1.0.0 - Specific version tags
  • main - Development builds (not recommended for production)

Binary Installation

Linux / macOS (Install Script)

# Download auto-installer
curl -sSf https://github.com/srv1n/kurpod/releases/latest/download/install.sh | bash

# Or manual download and extract
wget https://github.com/srv1n/kurpod/releases/latest/download/kurpod-v1.0.0-linux-x86_64.tar.gz
tar -xzf kurpod-v1.0.0-linux-x86_64.tar.gz
chmod +x kurpod_server
./kurpod_server

Windows

  1. Download kurpod-v*-windows-x86_64.zip from releases
  2. Extract the ZIP file
  3. Run kurpod_server.exe
  4. Open browser to http://localhost:3000

Build from Source

Prerequisites

  • Rust 1.70+ (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)
  • Bun 1.0+ (curl -fsSL https://bun.sh/install | bash)
  • Git for cloning the repository

Build Steps

# Clone repository
git clone https://github.com/srv1n/kurpod.git
cd kurpod

# Build frontend and server
./build.sh

# Run development server
./run.sh

# Or run release build
cargo build --release -p kurpod_server
./target/release/kurpod_server

Configuration & Usage

Running it

Once installed:

  1. Run kurpod_server (or kurpod_server.exe on Windows)
  2. Open http://localhost:3000 in your browser
  3. Create a volume and start using it

Default port is 3000. Change with --port 8080 if needed.

Command Line Options

# Basic usage (uses ./blobs directory)
kurpod_server

# Specify custom blob file
kurpod_server --blob /secure/path/storage.blob

# Custom port
kurpod_server --port 8080

# Custom data directory
kurpod_server --data-dir /opt/kurpod/data

# Bind to specific interface
kurpod_server --host 127.0.0.1 --port 3000

# Show all options
kurpod_server --help

Environment Variables

# Port configuration
export KURPOD_PORT=3000

# Data directory
export KURPOD_DATA_DIR=/opt/kurpod/data

# Log level (error, warn, info, debug, trace)
export RUST_LOG=kurpod_server=info,encryption_core=info

๐Ÿ”’ Security Verification

Binary Verification

All release binaries are signed and include SHA256 checksums:

# Download checksums
wget https://github.com/srv1n/kurpod/releases/latest/download/SHA256SUMS

# Verify download
sha256sum -c SHA256SUMS

# GPG verification (Linux binaries)
gpg --verify kurpod_server.asc kurpod_server

Code Signing

  • macOS: Binaries are signed with Apple Developer ID and notarized
  • Linux: Binaries include detached GPG signatures
  • Windows: Authenticode signing planned for v1.0

Troubleshooting

Can't connect?

  • Check firewall (port 3000)
  • Make sure nothing else is using that port
  • Look at the terminal output for errors

Binary won't run?

  • Linux/macOS: chmod +x kurpod_server
  • macOS: Allow in Security preferences
  • Windows: Allow in Windows Defender

Homebrew issues?

  • Make sure you have Homebrew installed: brew --version
  • Update Homebrew: brew update
  • Try reinstalling: brew uninstall kurpod && brew install kurpod

Docker issues?

  • Make sure Docker is running: docker --version
  • Check if port 3000 is already in use: lsof -i :3000
  • Try a different port: docker run -p 8080:3000 -v ./data:/app/data ghcr.io/srv1n/kurpod-server:latest

Next steps

That's it. You're running Kurpod. Create a volume and start using it. Remember: this is beta software - don't trust it with anything you can't afford to lose.