# Binary Deployment

QuickDapp builds self-contained executables that include the server, all dependencies, and static assets. Upload the single file to your server and run it—no Node.js or Bun runtime required.

# Building

bun run build

This creates binaries for multiple platforms in dist/binaries/:

  • quickdapp-linux-x64 — Linux servers (x64)
  • quickdapp-linux-arm64 — Linux servers (ARM64)
  • quickdapp-darwin-x64 — macOS (Intel)
  • quickdapp-darwin-arm64 — macOS (Apple Silicon)
  • quickdapp-windows-x64.exe — Windows

# Running

Make the binary executable and run it:

chmod +x quickdapp-linux-x64
NODE_ENV=production ./quickdapp-linux-x64

The binary reads environment variables from .env, .env.production, and .env.production.local in order.

# Server Deployment

Upload the binary and environment file to your server:

scp dist/binaries/quickdapp-linux-x64 user@server:/opt/quickdapp/
scp .env.production user@server:/opt/quickdapp/.env

ssh user@server
cd /opt/quickdapp
chmod +x quickdapp-linux-x64
NODE_ENV=production ./quickdapp-linux-x64

For background execution:

nohup NODE_ENV=production ./quickdapp-linux-x64 > quickdapp.log 2>&1 &

# Platform Notes

macOS: You may need to remove the quarantine attribute on first run:

xattr -d com.apple.quarantine quickdapp-darwin-x64

Windows: Run from Command Prompt with environment variables:

set NODE_ENV=production
quickdapp-windows-x64.exe

# Security

Set proper file permissions:

chmod 750 quickdapp-linux-x64  # Execute for owner/group only
chmod 640 .env                 # Read for owner/group only

Consider running as a dedicated non-root user:

sudo useradd -r -s /bin/false quickdapp
sudo chown quickdapp:quickdapp quickdapp-linux-x64
sudo -u quickdapp ./quickdapp-linux-x64