feat: fix buiild
This commit is contained in:
34
README.md
34
README.md
@@ -61,11 +61,37 @@ python -m uframe deploy page.uf # compile + copy to NomadNet pages
|
|||||||
### Docker
|
### Docker
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd frontend && npm install && npm run build && cd ..
|
# 1. Build the frontend
|
||||||
docker compose up --build
|
cd frontend
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# 2. Build and start all services
|
||||||
|
docker compose up --build -d
|
||||||
```
|
```
|
||||||
|
|
||||||
App at http://localhost:8080. Add Tailscale: `tailscale serve --bg https+insecure://localhost:8080`
|
This starts two containers:
|
||||||
|
|
||||||
|
- **micronomicon** — the web IDE + API on <http://localhost:8080>
|
||||||
|
- **nomadnet** — NomadNet node serving your published `.mu` pages
|
||||||
|
|
||||||
|
Pages published through the IDE are written to a shared volume that NomadNet reads from. The Docker socket is mounted read-only so the IDE can restart NomadNet when needed.
|
||||||
|
|
||||||
|
To follow logs: `docker compose logs -f`
|
||||||
|
|
||||||
|
To stop: `docker compose down`
|
||||||
|
|
||||||
|
To expose over Tailscale: `tailscale serve --bg https+insecure://localhost:8080`
|
||||||
|
|
||||||
|
#### Deploy a page via CLI (into the running stack)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd backend && source .venv/bin/activate
|
||||||
|
python -m uframe deploy page.uf --dest "$(docker volume inspect micronomicon_pages -f '{{.Mountpoint}}')"
|
||||||
|
```
|
||||||
|
|
||||||
|
Or use the web IDE at <http://localhost:8080> and click **Publish**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -187,7 +213,7 @@ banner "My Node" "Mesh Network" # use library component
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd backend && source .venv/bin/activate
|
cd backend && source .venv/bin/activate
|
||||||
python -m pytest uframe/tests/ -v # 42 tests
|
python -m pytest uframe/tests/ -v # 91 tests
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ export default function BacklinkIndicator({ backlinks }: Props) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Popover>
|
<Popover>
|
||||||
<PopoverTrigger asChild>
|
<PopoverTrigger
|
||||||
<Button variant="ghost" size="sm" className="text-xs text-muted-foreground h-7 px-2">
|
render={<Button variant="ghost" size="sm" className="text-xs text-muted-foreground h-7 px-2" />}
|
||||||
← {backlinks.length} backlink{backlinks.length !== 1 ? "s" : ""}
|
>
|
||||||
</Button>
|
← {backlinks.length} backlink{backlinks.length !== 1 ? "s" : ""}
|
||||||
</PopoverTrigger>
|
</PopoverTrigger>
|
||||||
<PopoverContent className="w-64 p-2" align="end">
|
<PopoverContent className="w-64 p-2" align="end">
|
||||||
<p className="text-xs font-semibold text-muted-foreground mb-2 px-1">
|
<p className="text-xs font-semibold text-muted-foreground mb-2 px-1">
|
||||||
|
|||||||
@@ -189,11 +189,6 @@ function renderFormTag(inner: string): string {
|
|||||||
return `<span style="color:#d4a8f8;border:1px solid rgba(212,168,248,0.3);border-radius:3px;padding:0 4px">${esc(placeholder || "...")}</span>`;
|
return `<span style="color:#d4a8f8;border:1px solid rgba(212,168,248,0.3);border-radius:3px;padding:0 4px">${esc(placeholder || "...")}</span>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Render a form element line as a styled badge. */
|
|
||||||
function renderForm(line: string): string {
|
|
||||||
const inner = escapeHtml(line);
|
|
||||||
return `<span style="color:#d4a8f8;background:rgba(212,168,248,0.08);border:1px solid rgba(212,168,248,0.3);border-radius:3px;padding:0 4px;font-size:0.9em">${inner}</span>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function renderMicron(source: string): string {
|
export function renderMicron(source: string): string {
|
||||||
const lines = source.split("\n");
|
const lines = source.split("\n");
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ export default function EditorView() {
|
|||||||
override: [uframeCommandSource, uframeValueHintSource],
|
override: [uframeCommandSource, uframeValueHintSource],
|
||||||
icons: false,
|
icons: false,
|
||||||
activateOnTyping: true,
|
activateOnTyping: true,
|
||||||
maxOptions: 50,
|
|
||||||
}),
|
}),
|
||||||
keywordHoverTooltip,
|
keywordHoverTooltip,
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user