Pin OMATERM/omadots to native-frozen forks (upstream went Docker-only)
Upstream omacom-io/omaterm deleted the native install path on 2026-06-01 and went Docker-only (omaterm.org/install now installs Docker + a container launcher). That would split this headless box into a host (Once/once-add/ omarchy-send) and a container (agents) with the baked CLAUDE.md/skill unseen by an in-container agent. Instead, keep the unified-host native install by sourcing OMATERM from a pinned fork: - All 7 install-native.sh URLs -> 28allday/omaterm @native-frozen (self-consistent: its setup_git_checkout clones the same frozen branch). - dotfiles pinned via 28allday/omadots @native-frozen. - Native first-login flow unchanged (mktemp + /dev/tty sed + exec bash -l OMATERM-last closer); only the source moved off the deleted upstream path. - AI agents still come live from mise, so they stay current. Updated the rationale comment, baked CLAUDE.md, and README fork disclosure. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
307901c0d2
commit
f280e8a5f7
2 changed files with 22 additions and 15 deletions
|
|
@ -8,8 +8,11 @@ or `dd`) and you get a reproducible, minimal Arch server that's ready for
|
||||||
self-hosting in minutes.
|
self-hosting in minutes.
|
||||||
|
|
||||||
> **Not affiliated with OMATERM or Once.** `omalocal` is an *ISO builder*. It
|
> **Not affiliated with OMATERM or Once.** `omalocal` is an *ISO builder*. It
|
||||||
> bundles and runs the official upstream installers; it does not vendor or fork
|
> bundles and runs the official upstream installers. The one exception: since
|
||||||
> them.
|
> upstream OMATERM went Docker-only (2026-06), omalocal installs OMATERM from a
|
||||||
|
> pinned fork ([`28allday/omaterm`](https://github.com/28allday/omaterm), branch
|
||||||
|
> `native-frozen`) that preserves the native, host-level install. AI agents are
|
||||||
|
> still pulled live from mise, so they stay current.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
30
omalocal.sh
30
omalocal.sh
|
|
@ -406,7 +406,7 @@ cat <<'BANNER'
|
||||||
and messaging (the firewall already opens 53317).
|
and messaging (the firewall already opens 53317).
|
||||||
|
|
||||||
Installers (run any of these later if you skip):
|
Installers (run any of these later if you skip):
|
||||||
curl -fsSL https://raw.githubusercontent.com/omacom-io/omaterm/refs/heads/master/install-native.sh | bash
|
curl -fsSL https://raw.githubusercontent.com/28allday/omaterm/native-frozen/install-native.sh | bash
|
||||||
curl https://get.once.com | ONCE_INTERACTIVE=false sh
|
curl https://get.once.com | ONCE_INTERACTIVE=false sh
|
||||||
curl -fsSL https://raw.githubusercontent.com/28allday/omarchy-send/main/install.sh | bash
|
curl -fsSL https://raw.githubusercontent.com/28allday/omarchy-send/main/install.sh | bash
|
||||||
|
|
||||||
|
|
@ -419,7 +419,7 @@ case "$ans" in
|
||||||
echo
|
echo
|
||||||
echo " Skipped. To set up later, run:"
|
echo " Skipped. To set up later, run:"
|
||||||
echo " curl https://get.once.com | ONCE_INTERACTIVE=false sh"
|
echo " curl https://get.once.com | ONCE_INTERACTIVE=false sh"
|
||||||
echo " curl -fsSL https://raw.githubusercontent.com/omacom-io/omaterm/refs/heads/master/install-native.sh | bash"
|
echo " curl -fsSL https://raw.githubusercontent.com/28allday/omaterm/native-frozen/install-native.sh | bash"
|
||||||
echo
|
echo
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|
@ -486,12 +486,16 @@ esac
|
||||||
# OMATERM now also installs the AI agents itself (node, opencode, claude-code,
|
# OMATERM now also installs the AI agents itself (node, opencode, claude-code,
|
||||||
# codex, gemini are in its mise.packages), so there's no separate agent step.
|
# codex, gemini are in its mise.packages), so there's no separate agent step.
|
||||||
#
|
#
|
||||||
# We call install-native.sh directly rather than omaterm.org/install: the vanity
|
# We pull install-native.sh from our PINNED FORK (28allday/omaterm, branch
|
||||||
# URL is now a dispatcher that interactively asks "native or Docker?" — which would
|
# `native-frozen`), NOT upstream. As of 2026-06-01 upstream omacom-io/omaterm
|
||||||
# stall this otherwise unattended first-run flow. install-native.sh is the native
|
# deleted the native install path and went Docker-only (omaterm.org/install now
|
||||||
# branch of that dispatcher, is self-contained (it clones the omaterm repo into its
|
# installs Docker + an `omaterm` container launcher), which would split this
|
||||||
# own tmpdir), and is exactly what a headless Arch box wants. Same URL pattern the
|
# headless box into a host (Once/once-add/omarchy-send) + container (agents)
|
||||||
# dispatcher itself uses; override the branch with OMATERM_REF if needed.
|
# world. native-frozen is the last good native installer, self-consistent (its
|
||||||
|
# internal `setup_git_checkout` clones the fork's own native-frozen branch, so
|
||||||
|
# the package lists/configs match) — it installs OMATERM + its AI agents
|
||||||
|
# natively on the host, keeping everything on one PATH. Agents still come live
|
||||||
|
# from mise, so they stay current. See project memory for the freeze rationale.
|
||||||
#
|
#
|
||||||
# OMATERM's installer ends by exec'ing `bash -l`, whose .bashrc auto-starts tmux
|
# OMATERM's installer ends by exec'ing `bash -l`, whose .bashrc auto-starts tmux
|
||||||
# (omadots aliases `t`='tmux attach || tmux new -s Work'). Its exact closer is
|
# (omadots aliases `t`='tmux attach || tmux new -s Work'). Its exact closer is
|
||||||
|
|
@ -518,19 +522,19 @@ if [ "$setup_server" = 1 ]; then
|
||||||
echo " into your new shell."
|
echo " into your new shell."
|
||||||
echo
|
echo
|
||||||
omaterm_installer="$(mktemp)"
|
omaterm_installer="$(mktemp)"
|
||||||
if curl -fsSL https://raw.githubusercontent.com/omacom-io/omaterm/refs/heads/master/install-native.sh -o "$omaterm_installer"; then
|
if curl -fsSL https://raw.githubusercontent.com/28allday/omaterm/native-frozen/install-native.sh -o "$omaterm_installer"; then
|
||||||
# Neutralise the /dev/tty redirect on OMATERM's final `exec bash -l`.
|
# Neutralise the /dev/tty redirect on OMATERM's final `exec bash -l`.
|
||||||
sed -i 's@exec bash -l </dev/tty >/dev/tty 2>&1@exec bash -l@' "$omaterm_installer"
|
sed -i 's@exec bash -l </dev/tty >/dev/tty 2>&1@exec bash -l@' "$omaterm_installer"
|
||||||
# No </dev/tty here: let OMATERM (and its closing exec) inherit our pts fds.
|
# No </dev/tty here: let OMATERM (and its closing exec) inherit our pts fds.
|
||||||
bash "$omaterm_installer" || {
|
bash "$omaterm_installer" || {
|
||||||
echo " OMATERM install did not complete — retry later with:"
|
echo " OMATERM install did not complete — retry later with:"
|
||||||
echo " curl -fsSL https://raw.githubusercontent.com/omacom-io/omaterm/refs/heads/master/install-native.sh | bash"
|
echo " curl -fsSL https://raw.githubusercontent.com/28allday/omaterm/native-frozen/install-native.sh | bash"
|
||||||
}
|
}
|
||||||
rm -f "$omaterm_installer"
|
rm -f "$omaterm_installer"
|
||||||
else
|
else
|
||||||
rm -f "$omaterm_installer"
|
rm -f "$omaterm_installer"
|
||||||
echo " Could not download the OMATERM installer — retry later with:"
|
echo " Could not download the OMATERM installer — retry later with:"
|
||||||
echo " curl -fsSL https://raw.githubusercontent.com/omacom-io/omaterm/refs/heads/master/install-native.sh | bash"
|
echo " curl -fsSL https://raw.githubusercontent.com/28allday/omaterm/native-frozen/install-native.sh | bash"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
OMALOCAL_FIRSTRUN
|
OMALOCAL_FIRSTRUN
|
||||||
|
|
@ -717,7 +721,7 @@ Installed by `omalocal.sh`, a single-script patcher that takes a stock Arch ISO
|
||||||
On the user's first interactive login a self-removing `~/.bash_profile` hook offers to set up the server. Once is installed first; OMATERM is installed last because its installer ends with `exec bash -l` and drops the user straight into their new shell:
|
On the user's first interactive login a self-removing `~/.bash_profile` hook offers to set up the server. Once is installed first; OMATERM is installed last because its installer ends with `exec bash -l` and drops the user straight into their new shell:
|
||||||
|
|
||||||
- **Once** (https://once.com) — `curl https://get.once.com | ONCE_INTERACTIVE=false sh` — Basecamp's self-hosted app deployment platform.
|
- **Once** (https://once.com) — `curl https://get.once.com | ONCE_INTERACTIVE=false sh` — Basecamp's self-hosted app deployment platform.
|
||||||
- **Omaterm** (https://omaterm.org) — `curl -fsSL https://raw.githubusercontent.com/omacom-io/omaterm/refs/heads/master/install-native.sh | bash` — terminal-first toolkit: starship, neovim, tmux, mise, docker, lazygit, yay, plus AI agents (claude-code, codex, opencode, gemini), etc. OMATERM installs the AI agents itself (they're in its `mise.packages`), so there's no separate agent step. We call `install-native.sh` directly because `omaterm.org/install` is now a dispatcher that interactively prompts native-vs-Docker; the native branch is what a headless Arch box wants.
|
- **Omaterm** (https://omaterm.org) — `curl -fsSL https://raw.githubusercontent.com/28allday/omaterm/native-frozen/install-native.sh | bash` — terminal-first toolkit: starship, neovim, tmux, mise, docker, lazygit, yay, plus AI agents (claude-code, codex, opencode, gemini), etc. OMATERM installs the AI agents itself (they're in its `mise.packages`), so there's no separate agent step. We pull `install-native.sh` from our pinned fork (`28allday/omaterm`, branch `native-frozen`) because upstream went Docker-only on 2026-06-01 and deleted the native path; the frozen fork keeps OMATERM + its agents installed natively on the host (one PATH alongside `once`/`once-add`/`omarchy-send`), rather than in a separate container. Agents still come live from mise.
|
||||||
|
|
||||||
If the user declined, install them manually with those same two commands.
|
If the user declined, install them manually with those same two commands.
|
||||||
|
|
||||||
|
|
@ -1118,7 +1122,7 @@ echo " ssh $USERNAME@<this-host-ip> (or ssh $USERNAME@$HOSTNAME)"
|
||||||
echo
|
echo
|
||||||
echo " On your first login you'll be offered the omalocal setup. To set"
|
echo " On your first login you'll be offered the omalocal setup. To set"
|
||||||
echo " them up manually at any time:"
|
echo " them up manually at any time:"
|
||||||
echo " curl -fsSL https://raw.githubusercontent.com/omacom-io/omaterm/refs/heads/master/install-native.sh | bash"
|
echo " curl -fsSL https://raw.githubusercontent.com/28allday/omaterm/native-frozen/install-native.sh | bash"
|
||||||
echo " curl https://get.once.com | ONCE_INTERACTIVE=false sh"
|
echo " curl https://get.once.com | ONCE_INTERACTIVE=false sh"
|
||||||
echo "=================================================================="
|
echo "=================================================================="
|
||||||
echo
|
echo
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue