# ColorLex architecture (federation install model)

This is the ColorLex operator record of the intended architecture.
It is not a second copy of Lupopedia PRDs.

Normative Lupopedia sources:

- Semantic OS explanation: `../lupopedia/what_is_lupopedia.md`
- Subdirectory installer: Lupopedia PRD 27
- Domain-scoped color lookup: Lupopedia PRD 90
- Color registry tables: Lupopedia PRD 01_B (development)
- Header / KEY grammar: Lupopedia PRD 16_C

ColorLex pages stay at this vhost root. The Lupopedia OS on this host lives in `lupopedia/`.

---

## 1. Lupopedia is the OS

Lupopedia is not an app, plugin, CMS, theme, or framework.

It is the Semantic OS. It installs into a domain as a subdirectory, the same way Crafty Syntax, phpBB, Joomla, MediaWiki, or WordPress historically lived under a folder:

```text
theirdomain.com/lupopedia/
```

On this host that path is:

```text
colorlex.com/lupopedia/
```

Lighter than those products in the install sense: PHP, files, PDO, no Composer, no npm, no Docker, no CI/CD, no build step. Federated, color-aware, and identity-aware.

---

## 2. ColorLex.com is domain node 3

ColorLex is the domain identity. Lupopedia is the OS installed inside it.

On colorlex.com, ColorLex is Lupopedia federation node 3. It is:

- the public color registry for this domain
- the HEX6 identity surface for artifacts registered here
- the artifact color lookup node for colorlex.com
- the reference domain people use to see a live Lupopedia color node

It is not Node 0. Node 0 remains the OS / global federation root inside Lupopedia doctrine. ColorLex is the dedicated color node on this host.

```text
/                  ColorLex document root (node 3 landing)
/lupopedia/        Lupopedia Semantic OS (subdirectory install)
```

ColorLex is not the OS. The OS is not the ColorLex landing app.

---

## 3. Thousands of domains install Lupopedia

Any domain can install Lupopedia through the auto-installer ecosystem (not one brand):

- FTP
- zip extraction
- cPanel / DirectAdmin / Plesk / InterWorx
- Softaculous, Installatron, Fantastico, AMPPS, Webuzo, cPanel Site Software
- host-specific catalogs
- manual upload of the OS tree

After install:

```text
theirdomain.com/lupopedia/
```

That domain becomes its own federation node. It does not become ColorLex. It does not become lupopedia.com. It does not become Node 0.

By default the install is **unregistered Node 1** (a category, not one machine). Registration with lupopedia.com is optional and assigns Node ID >= 2. ColorLex.com is registered node 3. See [federation-registration-model.md](federation-registration-model.md).

POWERED_BY display for artifacts on that domain names **that domain**, not ColorLex, not lupopedia.com, not Node 0.

Handshake form used on ColorLex today (not a KEY):

```text
lupopedia poweredby [GroupColor] [ColorName]
```

PRD 90 display grammar also includes domain in the POWERED_BY signature. Do not advertise another node's domain as the local authority.

---

## 4. Associative name to HEX6 happens locally

This is federation, not centralization.

PRD 90 canonical relation:

```text
DOMAIN + COLOR.NAME.<NICKNAME> -> COLOR.HEX6.<HEX6>
```

Every Lupopedia install is:

- a local registry
- a local color resolver
- a local artifact host
- a local authority for names registered on that domain

So `goldenwolf` on `theirdomain.com` may map to HEX6 `FFD27A`, while `goldenwolf` on `colorlex.com` may map to HEX6 `E8C45A`.

Do not guess. Do not borrow another domain's mapping. Do not average conflicting colors. HEX6 storage has no `#`. HEX5 is not a color format.

Node 0 is the registry / directory, not a copy of domain databases. Local color registries, page maps, chats, and monthly path totals stay on the domain. See [local-data-model.md](local-data-model.md).

Do not collapse those local registries into one Docker/CI/SaaS database. That breaks federation. See [why-modern-stack-breaks-lupopedia.md](why-modern-stack-breaks-lupopedia.md).

---

## 5. Installer philosophy (Crafty Syntax lineage)

Crafty Syntax was PHP, simple, FTP-friendly, cPanel-friendly, self-contained, no frameworks, no Composer, no Node, no Docker.

Lupopedia is that install philosophy with constitutional identity, federation, color, and PRD-first doctrine.

ColorLex.com is the reference domain for the color node: the example install, the public registry people can see, the place to register colors for artifacts on node 3.

Every other domain that installs Lupopedia becomes its own node.

---

## 6. Intended flow (not all live yet)

1. Someone owns a domain.
2. They install Lupopedia at `/lupopedia/`.
3. That install becomes a local color authority for that domain.
4. They register associative names to HEX6 for their artifacts.
5. Lookup is domain-scoped.
6. Optional register with lupopedia.com (Node >= 2). Local data still stays local.
7. ColorLex remains node 3 (the public color registry node).

Color lookup URL shape is **not finalized**. Candidate public paths (choose one later; do not treat this list as routing law):

```text
theirdomain.com/color.name/goldenwolf
theirdomain.com/color/goldenwolf
theirdomain.com/lupopedia/color/goldenwolf
```

Pretty extra roots such as `/color.name/`, `/lookup/`, `/word/`, `/artifact/` are future OS routing. They are not ColorLex landing routes today. ColorLex `index.html` stays the vhost entry. Links stay relative-path safe.

---

## 7. What is live vs later

Live now on colorlex.com:

- ColorLex landing at `/`
- operator docs in `docs/`
- Lupopedia OS tree in `lupopedia/`

Not live yet:

- public color registration
- public color lookup API
- pretty color URL routes
- optional lupopedia.com directory listing for registered nodes
- Softaculous-style auto installer (later catalog listing; not Softaculous-only)

---

See also:

- [intent-statement.md](intent-statement.md)
- [local-data-model.md](local-data-model.md)
- [federation-registration-model.md](federation-registration-model.md)
- [why-modern-stack-breaks-lupopedia.md](why-modern-stack-breaks-lupopedia.md)
- [auto-installer-ecosystem.md](auto-installer-ecosystem.md)
- [explaining-lupopedia-to-modern-ides.md](explaining-lupopedia-to-modern-ides.md)
- [overview.md](overview.md)
- [colorlex-purpose.md](colorlex-purpose.md)
- [federation-node-3.md](federation-node-3.md)
- [routing-basics.md](routing-basics.md)
- [installation-notes.md](installation-notes.md)

Home: [../index.html](../index.html)
