syntaxis/docs/installation-quickstart.md

330 lines
7.9 KiB
Markdown
Raw Permalink Normal View History

# Installation Quick Reference
## One-Command Installation
```bash
curl -sSL https://raw.githubusercontent.com/core/syntaxis/main/install.sh | bash
```
Done! Everything is installed and ready to use.
---
## What Gets Installed
| Component | Source | Method | Time |
|-----------|--------|--------|------|
| Rust toolchain | https://sh.rustup.rs | Pre-compiled bootstrap | 30-60s |
| NuShell | crates.io | Compiled from Rust source | 1-2 min |
| Just | crates.io | Compiled from Rust source | 1-2 min |
| workspace binaries | This repo | Compiled from Rust source | 5-10 min |
| Configuration | This repo | Copied to ~/.config/ | <1 min |
**Total installation time:** 15-30 minutes (mostly network + compilation)
---
## The Bootstrap Architecture (Simple Explanation)
```
1. You run: curl ... | bash
2. Install script downloads pre-compiled Rust (100MB)
3. Rust can now compile source code
4. Rust compiles NuShell, Just, and our workspace binaries
5. Everything works! ✅
```
**Key insight:** We don't pre-compile NuShell or workspace binaries in the repository. Instead, we let Rust (which we just installed) compile them from source. This keeps the repository small (~500MB) while still enabling one-command installation.
---
## Installation Locations
| What | Where | Why |
|------|-------|-----|
| Rust | `~/.rustup/` | Managed by rustup |
| Cargo packages | `~/.cargo/bin/` | Standard cargo location |
| workspace binaries | `~/.cargo/bin/` | From `cargo install` |
| Configuration | `~/.config/core/` | XDG Base Directory spec |
| Data files | `~/.local/share/core/` | XDG Base Directory spec |
| Logs | `~/.local/state/core/` | XDG Base Directory spec |
---
## First-Time Setup After Installation
### 1. Reload shell (to update PATH)
```bash
source ~/.bashrc # or ~/.zshrc, ~/.config/fish/config.fish
```
### 2. Verify installation
```bash
workspace --help
syntaxis-tui --version
which syntaxis-dashboard
```
### 3. Check configuration
```bash
ls -la ~/.config/core/
```
### 4. Start using
```bash
# CLI
workspace create-project --name my-project
# TUI
syntaxis-tui
# Dashboard (web UI)
syntaxis-dashboard
```
---
## Architecture Detection (Automatic)
The installer automatically detects your system and downloads the correct pre-compiled Rust:
| Your System | Detection | Rust Version Downloaded |
|-------------|-----------|------------------------|
| M1/M2/M3 Mac | `uname -m` = arm64 | rust-*-aarch64-apple-darwin |
| Intel Mac | `uname -m` = x86_64 | rust-*-x86_64-apple-darwin |
| Linux ARM 64-bit | `uname -m` = aarch64 | rust-*-aarch64-unknown-linux-gnu |
| Linux Intel 64-bit | `uname -m` = x86_64 | rust-*-x86_64-unknown-linux-gnu |
| Windows | `uname -s` = MINGW64 | rust-*-x86_64-pc-windows-gnu |
You don't need to specify anything - it's all automatic!
---
## Troubleshooting Installation
### Problem: Installation takes too long
**Cause:** Compilation on slow machine or network
**Solution:** Installation is 5-10 minutes for compilation + 30-60 seconds for downloads
- On first install: Complete rebuild (slower)
- On subsequent installs: Incremental (faster)
### Problem: "command not found: workspace"
**Cause:** Shell didn't reload PATH
**Solution:**
```bash
source ~/.bashrc # or ~/.zshrc
which workspace # should show ~/.cargo/bin/workspace
```
### Problem: "curl: command not found"
**Cause:** System doesn't have curl installed
**Solution:** Install curl first:
```bash
# macOS
brew install curl
# Ubuntu/Debian
sudo apt-get install curl
# Fedora/CentOS
sudo yum install curl
```
### Problem: Rust installation fails
**Cause:** Network issue or unsupported architecture
**Solution:** Install Rust manually:
```bash
# Visit https://rustup.rs/ for detailed instructions
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
---
## Installation Options
### Standard (Default)
```bash
curl -sSL https://raw.githubusercontent.com/.../install.sh | bash
```
Installs everything with prompts.
### Unattended (No prompts)
```bash
bash install.sh --unattended
```
Perfect for scripts and CI/CD.
### Custom install location
```bash
bash install.sh --prefix /opt/workspace
```
Install to custom directory instead of home.
### Configuration only
```bash
bash install.sh --config-only
```
Deploy configuration files (binaries already installed).
### Dry run (preview without changes)
```bash
bash install.sh --dry-run
```
See what would be installed without making changes.
### Full help
```bash
bash install.sh --help
```
See all available options.
---
## System Requirements
### Before Installation
You only need these (on every system):
- `bash` shell (for running installer)
- `curl` (for downloading files)
- `tar` & `gzip` (for extracting archives)
- `uname` (for detecting system)
- `git` (for cloning repository)
### After Installation
You'll have:
- Rust 1.91+ (with cargo, rustfmt, clippy)
- NuShell 0.90+
- Just 1.30+
- workspace binaries (CLI, TUI, Dashboard)
---
## How Bootstrap Compiler Works (Detail)
### The Problem
Rust is written in Rust. To compile Rust, you need Rust. Circular dependency!
### The Solution
Rust publishes pre-compiled binaries on https://static.rust-lang.org/dist/
**How our installer uses this:**
```bash
# 1. Download installer script
curl https://sh.rustup.rs
# 2. Script detects your system
uname -s # Darwin
uname -m # arm64
# Constructs: aarch64-apple-darwin
# 3. Download pre-compiled Rust for that architecture
# From: https://static.rust-lang.org/dist/
# File: rust-1.91.1-aarch64-apple-darwin.tar.gz (100MB)
# 4. Extract and install to ~/.rustup/
# 5. NOW you have a working rustc!
rustc --version # rustc 1.91.1
```
### Why Pre-Compiled Only for Rust?
We could pre-compile EVERYTHING, but:
- **Repository would be 5GB+** (instead of 500MB)
- **Updates would take hours** (rebuild all 50+ architectures)
- **Maintenance nightmare** (new Rust version every week)
Instead, we:
- Pre-compile ONLY rustc (the minimal dependency)
- Use rustc to compile everything else from source
- Keep repository small
- Get automatic updates when you reinstall
---
## Why This Architecture Is Elegant
```
BOOTSTRAP COMPILER
ONE pre-compiled binary (rustc)
Can compile ANYTHING from source
┌───────────────┬─────────────┬──────────────┐
↓ ↓ ↓ ↓
NuShell Just workspace Others
(1-2 min) (1-2 min) (5-10 min)
Everything ready!
```
This is why:
- Installation is fast (not 4+ hours)
- We don't need 5GB repository
- Works on any of 50+ architectures
- Automatic updates (Rust updates → new binaries available)
---
## For More Details
- **[BOOTSTRAP_EXPLAINED.md](./BOOTSTRAP_EXPLAINED.md)** - Technical deep-dive with 12 levels of explanation
- **[BOOTSTRAP_DIAGRAMS.md](./BOOTSTRAP_DIAGRAMS.md)** - Visual diagrams and flowcharts
- **[docs/installation-guide.md](./docs/installation-guide.md)** - Step-by-step setup guide
- **[docs/configuration.md](./docs/configuration.md)** - Configuration reference
---
## Common Tasks After Installation
### Initialize a new project
```bash
workspace create-project --name my-project
```
### Start the TUI (Terminal UI)
```bash
syntaxis-tui
```
### Start the Web Dashboard
```bash
syntaxis-dashboard
# Open http://localhost:3000 in browser
```
### Run CLI commands
```bash
workspace --help
workspace list-projects
workspace list-tasks --project my-project
```
### Check configuration
```bash
cat ~/.config/core/syntaxis-api.toml
```
### Uninstall
```bash
# Remove binaries
rm -f ~/.cargo/bin/workspace*
# Remove configuration
rm -rf ~/.config/core/
# Remove Rust (if you only installed it for workspace)
rustup self uninstall
```
---
**Installation should be simple. If it's not, something went wrong. Check the troubleshooting section or open an issue.**