mirror of
https://github.com/mulgadc/spinifex.git
synced 2026-10-19 10:52:04 +00:00
125 lines
2.5 KiB
Markdown
125 lines
2.5 KiB
Markdown
---
|
|
title: "Source Install"
|
|
description: "Build Spinifex from source for development, custom builds, or contributing."
|
|
category: "Getting Started"
|
|
tags:
|
|
- install
|
|
- source
|
|
- development
|
|
resources:
|
|
- title: "Spinifex Repository"
|
|
url: "https://github.com/mulgadc/spinifex"
|
|
- title: "Go Downloads"
|
|
url: "https://go.dev/dl/"
|
|
---
|
|
|
|
# Source Installation
|
|
|
|
> Build Spinifex from source for development, custom builds, or contributing.
|
|
|
|
## Table of Contents
|
|
|
|
- [Overview](#overview)
|
|
- [Instructions](#instructions)
|
|
- [Troubleshooting](#troubleshooting)
|
|
|
|
---
|
|
|
|
## Overview
|
|
|
|
This guide builds Spinifex from source. For production deployments, the [binary installer](/docs/install) is recommended.
|
|
|
|
**Requirements:**
|
|
|
|
- Ubuntu 22.04+ / Debian 12+
|
|
- Go 1.26.1+
|
|
- GCC, make, pkg-config
|
|
- QEMU/KVM, OVN/Open vSwitch, AWS CLI v2, dhcpcd-base
|
|
|
|
## Instructions
|
|
|
|
## Step 1. Install Dependencies
|
|
|
|
```bash
|
|
mkdir -p ~/Development/mulga && cd ~/Development/mulga
|
|
git clone https://github.com/mulgadc/spinifex.git
|
|
sudo make -C spinifex quickinstall
|
|
export PATH=$PATH:/usr/local/go/bin
|
|
```
|
|
|
|
## Step 2. Clone and Build
|
|
|
|
```bash
|
|
cd spinifex
|
|
./scripts/clone-deps.sh
|
|
./scripts/dev-setup.sh
|
|
```
|
|
|
|
Confirm `./bin/spx` exists.
|
|
|
|
## Step 3. Setup OVN
|
|
|
|
If your WAN interface is already a bridge (e.g. `br-wan`), setup-ovn.sh auto-detects it:
|
|
|
|
```bash
|
|
./scripts/setup-ovn.sh --management
|
|
```
|
|
|
|
If your WAN is a physical NIC, choose one:
|
|
|
|
```bash
|
|
# Dedicated WAN NIC (not your SSH connection):
|
|
./scripts/setup-ovn.sh --management --wan-bridge=br-wan --wan-iface=eth1
|
|
|
|
# Single-NIC host (SSH-safe macvlan):
|
|
./scripts/setup-ovn.sh --management --macvlan --wan-iface=enp0s3
|
|
```
|
|
|
|
## Step 4. Initialize
|
|
|
|
```bash
|
|
sudo ./bin/spx admin init --node node1 --nodes 1
|
|
```
|
|
|
|
Save the admin credentials printed during init.
|
|
|
|
## Step 5. Start Services
|
|
|
|
```bash
|
|
./scripts/start-dev.sh
|
|
```
|
|
|
|
## Step 6. Verify
|
|
|
|
```bash
|
|
export AWS_PROFILE=spinifex
|
|
aws ec2 describe-instance-types
|
|
```
|
|
|
|
If this returns a list of available instance types, your installation is working.
|
|
|
|
**Congratulations! Spinifex is installed from source.**
|
|
|
|
Continue to [Setting Up Your Cluster](/docs/setting-up-your-cluster) to import an AMI, create a VPC, and launch your first instance.
|
|
|
|
## Troubleshooting
|
|
|
|
### Go Not Found in PATH
|
|
|
|
```bash
|
|
export PATH=$PATH:/usr/local/go/bin
|
|
```
|
|
|
|
### ./bin/spx Missing After Build
|
|
|
|
```bash
|
|
./scripts/dev-setup.sh
|
|
```
|
|
|
|
### CA Certificate Not Trusted
|
|
|
|
```bash
|
|
sudo cp ~/spinifex/config/ca.pem /usr/local/share/ca-certificates/spinifex-ca.crt
|
|
sudo update-ca-certificates
|
|
```
|