syntaxis/docs/installation.md
Jesús Pérez 9cef9b8d57 refactor: consolidate configuration directories
Merge _configs/ into config/ for single configuration directory.
Update all path references.

Changes:
- Move _configs/* to config/
- Update .gitignore for new patterns
- No code references to _configs/ found

Impact: -1 root directory (layout_conventions.md compliance)
2025-12-26 18:36:23 +00:00

393 lines
8.2 KiB
Markdown

```
╔═════════════════════════════════╗
║ ┏━┓ ╻ ╻ ┏┓╻ ╺┳╸ ┏━┓ ╻ ╻ ╻ ┏━┓ ║
║ ┗━┓ ┗┳┛ ┃┗┫ ┃ ┣━┫ ┏╋┛ ┃ ┗━┓ ║
║ ┗━┛ ╹ ╹ ╹ ╹ ╹ ╹ ╹ ╹ ╹ ┗━┛ ║
║ ▲ Systematic Orchestration ║
║ ■ Perfectly Arranged ║
║ syntaxis.dev ║
╚═════════════════════════════════╝
```
# Installation Guide
Complete guide for installing syntaxis on any system.
## Quick Install (Recommended)
The one-liner installer handles everything:
```bash
curl -sSL https://raw.githubusercontent.com/core/syntaxis/main/install.sh | bash
```
**Installation time:** 15-30 minutes (first-time build takes longest)
## What Gets Installed
### Binaries (to ~/.cargo/bin)
- `workspace` - CLI tool for project management
- `syntaxis-tui` - Terminal user interface
- `syntaxis-dashboard` - Web dashboard (runs on localhost:3000)
### Configurations (to ~/.config/core/)
- `syntaxis-api.toml` - Main configuration file
- `features/*.toml` - 11 feature-specific configs:
- auth.toml (authentication)
- cache.toml (caching settings)
- database.toml (database configuration)
- health.toml (health checks)
- metrics.toml (monitoring)
- multi_tenant.toml (multi-tenancy)
- rate_limit.toml (rate limiting)
- projects.toml (project management)
- tasks.toml (task tracking)
- phases.toml (phase lifecycle)
- audit.toml (audit trail)
### Data Directories
- `~/.local/share/core/` - Runtime data and databases
- `~/.syntaxis/` - Installation tracking manifest
## Installation Methods
### Method 1: Curl One-Liner (Easiest)
```bash
curl -sSL https://raw.githubusercontent.com/core/syntaxis/main/install.sh | bash
```
This is safe because:
1. You can inspect the script first: `curl -sSL ... -o install.sh && cat install.sh`
2. The script logs all operations to `~/.syntaxis/install.log`
3. Failed installations are rolled back automatically
### Method 2: Download First, Then Run
```bash
# Download the installer
curl -sSL https://raw.githubusercontent.com/core/syntaxis/main/install.sh -o install.sh
# Inspect it
less install.sh
# Run it
bash install.sh
```
### Method 3: Clone Repository and Install Manually
For developers or those with specific requirements:
```bash
# Clone the repository
git clone https://github.com/core/syntaxis.git
cd syntaxis
# Run the installer from the repo
bash install.sh
# Or use just commands
just build
just install-cli all
```
## Installation Options
### Unattended Mode (No Prompts)
```bash
bash install.sh --unattended
```
Uses all defaults without asking for confirmation.
### Custom Installation Directory
```bash
bash install.sh --prefix /opt/workspace
```
Installs to a custom location instead of `~/.local/share/core/`.
### Skip Dependency Installation
```bash
bash install.sh --skip-deps
```
Assumes Rust, NuShell, and Just are already installed. Only builds and installs workspace binaries.
### Config Only
```bash
bash install.sh --config-only
```
Only deploys configurations without building binaries. Useful for updating config files.
### Dry Run (Preview)
```bash
bash install.sh --dry-run
```
Shows what would be installed without making any actual changes.
### Keep Build Artifacts
```bash
bash install.sh --keep-build
```
By default, build artifacts are removed to save disk space. Use this flag to keep them.
### Skip Tests
```bash
bash install.sh --no-verify
```
Skips test verification (faster, not recommended for production).
### Help
```bash
bash install.sh --help
```
Shows all available options.
## Supported Platforms
### Operating Systems
- ✅ macOS (Intel and Apple Silicon)
- ✅ Ubuntu/Debian Linux
- ✅ Fedora/RHEL Linux
- ✅ Arch Linux
- ✅ WSL2 (Windows Subsystem for Linux)
### Architectures
- ✅ x86_64 (Intel/AMD)
- ✅ aarch64 (ARM64, Apple Silicon)
### Rust Versions
- ✅ 1.75+ (Current stable recommended)
## Post-Installation
### 1. Reload Your Shell
```bash
# For bash
source ~/.bashrc
# For zsh
source ~/.zshrc
# For fish
source ~/.config/fish/config.fish
```
### 2. Verify Installation
```bash
# Test CLI
workspace --help
# Test TUI version
syntaxis-tui --version
# Find dashboard binary
which syntaxis-dashboard
# Check config location
echo $WORKSPACE_CONFIG_DIR
```
### 3. Create Your First Project
```bash
workspace project create my-first-project
```
### 4. Launch the TUI
```bash
syntaxis-tui
```
### 5. Start the Web Dashboard
```bash
cd ~/.local/share/syntaxis
just run-dashboard
```
Dashboard runs on http://localhost:3000
## Customizing Configuration
After installation, configurations are at `~/.config/core/`:
```bash
# Edit main configuration
nano ~/.config/core/syntaxis-api.toml
# Edit specific feature config
nano ~/.config/core/features/database.toml
# Environment variable overrides
export WORKSPACE_SERVER_PORT=8081
export WORKSPACE_LOG_LEVEL=debug
```
See [docs/configuration.md](./docs/configuration.md) for all available options.
## Troubleshooting
### Command Not Found
```bash
# Problem: workspace command not found
# Solution 1: Reload shell
source ~/.bashrc
# Solution 2: Check PATH
echo $PATH | grep .cargo/bin
# Solution 3: Check if binary exists
ls -la ~/.cargo/bin/workspace*
```
### Build Failures
```bash
# Check if Rust is installed
rustc --version
# Update Rust
rustup update
# Clean and retry
cargo clean
bash install.sh
```
### Missing Dependencies
```bash
# For macOS - install Xcode tools
xcode-select --install
# For Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y build-essential pkg-config libsqlite3-dev
# For Fedora/RHEL
sudo dnf install -y gcc gcc-c++ make pkg-config sqlite-devel
# For Arch
sudo pacman -S --noconfirm base-devel pkg-config sqlite
```
### Permission Errors
```bash
# Installer should NOT require sudo for user installation
# If you see permission errors, check your home directory permissions
ls -ld ~
chmod u+w ~
# Never run installer with sudo!
bash install.sh # Correct
sudo bash install.sh # Wrong!
```
### Clean Reinstall
```bash
# Remove old installation
rm -rf ~/.cargo/bin/workspace*
rm -rf ~/.config/syntaxis
rm -rf ~/.local/share/syntaxis
rm -rf ~/.syntaxis
# Reinstall
bash install.sh
```
## Installation Log
All installation details are logged to:
```bash
~/.syntaxis/install.log
```
Check this file if installation fails:
```bash
tail -100 ~/.syntaxis/install.log
```
## Environment Variables
After installation, these environment variables are set:
```bash
# Configuration directory
WORKSPACE_CONFIG_DIR="$HOME/.config/syntaxis"
# Data directory
WORKSPACE_DATA_DIR="$HOME/.local/share/syntaxis"
# Optional: Manual overrides
export WORKSPACE_SERVER_PORT=8080
export WORKSPACE_LOG_LEVEL=debug
export WORKSPACE_DATABASE_PATH="/custom/path.db"
```
## Uninstalling
To uninstall syntaxis:
```bash
# Remove binaries
rm ~/.cargo/bin/workspace*
# Remove configurations (optional - keep for reinstall)
rm -rf ~/.config/syntaxis
# Remove data and cache
rm -rf ~/.local/share/syntaxis
# Remove installation tracking
rm -rf ~/.syntaxis
```
The project repository can be left as-is for future reinstalls.
## Development Installation
For contributing to syntaxis:
```bash
# Clone repository
git clone https://github.com/core/syntaxis.git
cd syntaxis
# Install tools
rustup default 1.75
cargo install just
# Build everything
just build
# Run all tests
just test
# Run specific test
cargo test -p syntaxis-core
# Build and run CLI
just run-cli --help
# Build and run TUI
just run-tui
# Build and run dashboard
just run-dashboard
```
See [DEVELOPMENT.md](./DEVELOPMENT.md) in the root for more development details.
## Next Steps
1. **Read the Quick Start Guide**: [docs/installation-guide.md](./docs/installation-guide.md)
2. **Configure Your System**: [docs/configuration.md](./docs/configuration.md)
3. **Understand Wrappers**: [WRAPPER_DESIGN.md](./WRAPPER_DESIGN.md)
4. **Use the CLI**: `workspace --help`
5. **Join the Community**: https://github.com/core/syntaxis
## Getting Help
- **GitHub Issues**: https://github.com/core/syntaxis/issues
- **Documentation**: https://github.com/core/syntaxis
- **Installation Log**: `~/.syntaxis/install.log`
---
**Happy installing! 🚀**