330 lines
7.9 KiB
Markdown
330 lines
7.9 KiB
Markdown
|
|
# 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.**
|
||
|
|
|