No description
  • Python 67.3%
  • HTML 29.8%
  • CSS 1.9%
  • JavaScript 0.6%
  • Shell 0.2%
  • Other 0.2%
Find a file
Abby Bigaouette 6befb6fd7f Auth-mode UI: first-run picker and admin /settings/auth-mode edit
- New /setup page renders automatically on first run (zero users in
  DB). Operator picks LOCAL or EXE; LOCAL also collects the first
  admin's name/email; EXE redirects to /__exe.dev/login so the proxy
  auto-provisions the first user.
- New admin-only /settings/auth-mode form for ongoing changes, with
  a required "I confirm a reverse proxy is in front" checkbox before
  switching to EXE (without one, X-ExeDev-UserID is forgeable).
- AUTH MODE panel surfaced on the main /settings page above Onshape.
- auth_mode added to the DB overlay so changes persist and override
  OPAL_AUTH_MODE env at runtime; apply_db_overlay() rebuilds the
  active Settings after each save.
- /setup added to LOCAL_EXEMPT / EXE_EXEMPT so middleware doesn't
  bounce the first-run page.

Bundled into v1.3.2 so installs don't require editing .env to switch
auth modes — there is no .env on a stock install.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 02:17:46 -07:00
.github/workflows Bump version to 1.2.5 and unify version management 2026-05-13 17:35:27 -07:00
migrations Onshape settings UI: enable integration without editing .env 2026-05-26 01:42:23 -07:00
src/opal Auth-mode UI: first-run picker and admin /settings/auth-mode edit 2026-05-26 02:17:46 -07:00
tests Build report, expanded MCP procedure tools, hierarchical seed templates 2026-05-26 01:42:23 -07:00
.env.example exe auth oneshot any% 2026-02-18 23:37:49 -08:00
.gitignore Add new user welcome and onboarding flow 2026-03-21 09:43:45 -04:00
alembic.ini v0.3.0: Initial public release 2026-01-12 23:46:07 -08:00
CHANGELOG.md Pre-tag cleanup for v1.3.0 2026-05-17 06:17:14 -07:00
CLAUDE.md Enhance Onshape integration with multi-level BOM, part studio support, and document management 2026-02-27 00:38:12 -05:00
install.ps1 Bump version to 1.2.4 and auto-add to PATH on Windows install 2026-05-12 13:50:19 -07:00
install.sh install.sh: bypass api.github.com to avoid 403 rate limit 2026-05-26 01:49:39 -07:00
ISSUES_AUDIT.md v0.4.4: Fix inventory UI bugs (#36, #37) and add inventory form 2026-01-14 17:54:24 -08:00
LICENSE Create LICENSE 2026-04-06 06:41:30 -04:00
opal.spec Add standalone binary distribution with TUI launcher and auto-updater 2026-02-21 15:22:32 -08:00
OPAL_manual.md Prepare v1.3.0 2026-05-17 03:20:50 -07:00
pyproject.toml Onshape settings UI: enable integration without editing .env 2026-05-26 01:42:23 -07:00
README.md Update repo references to amorphous-engineering/OPAL and add CI workflow 2026-05-12 13:26:02 -07:00
uv.lock Onshape settings UI: enable integration without editing .env 2026-05-26 01:42:23 -07:00

OPAL

Operations, Procedures, Assets, Logistics

An enterprise resource planning system optimized for small teams and hardware projects.

Download

Install with a single command:

# macOS / Linux
curl -LsSf https://raw.githubusercontent.com/amorphous-engineering/OPAL/master/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/amorphous-engineering/OPAL/master/install.ps1 | iex

Or download manually from GitHub Releases:

Platform File
macOS (Apple Silicon) opal-macos-arm64
macOS (Intel) opal-macos-x86_64
Linux (x86_64) opal-linux-x86_64
Windows (x86_64) opal-windows-x86_64.exe

Run it. The launcher initializes the database on first launch, starts the server, and opens the web UI. No Python or dependencies required.

Features

  • Inventory & Procurement: Parts database, inventory tracking, purchase order management
  • Procedures: Versioned procedure templates with step-by-step execution
  • Issues: Manual and auto-created issue tracking
  • Onshape Integration: Bidirectional BOM and metadata sync with Onshape CAD
  • Local-first: Runs on a single laptop, accessible to network

Development Setup

# Install uv (if not installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install dependencies
uv sync

# Initialize database
uv run opal init

# Start server
uv run opal serve

Access the web UI at http://localhost:8080

Development

# Install with dev dependencies
uv sync --all-extras

# Run tests
uv run pytest

# Generate migration
uv run opal migrate generate --message "Description"

# Apply migrations
uv run opal migrate upgrade

Stack

  • Database: SQLite
  • Backend: Python 3.11+ with FastAPI
  • Frontend: HTMX + Jinja2 templates
  • Desktop App: Textual TUI launcher with auto-updater