本文へ移動
cccskills
無料GitHub で公開

actonos-build

Skill for building ActonOS: Web UI → Go binary → Docker image → ISO. Covers the entire build pipeline.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md4.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

ActonOS Build Skill

Use this skill when building ActonOS artifacts: the frontend, Go binary, Docker image, or bare-metal ISO.

Build Pipeline Overview

make deps → make lint → make test → make test-race (Linux CI) → make build-web → make build → make docker → make iso
TargetWhat It DoesOutput
make depsInstall Go + Node dependencies—
make lintRun Go vet, gofmt, golangci-lint, ESLint—
make testRun all tests (unit + integration)build/coverage.out
make test-raceRun the Linux CGO race detectorRequired CI gate
make build-webBuild React frontend (Vite production)web/dist/
make buildBuild full actond binary (includes web)build/actond
make build-onlyBuild Go binary only (skip web rebuild)build/actond
make dockerBuild Docker imageactonos/actonos:VERSION
make isoBuild bare-metal installation ISObuild/ActonOS-vVERSION.iso
make allFull pipeline: lint → test → buildbuild/actond

Build Variables

The Go binary embeds version metadata via linker flags (-ldflags):

LDFLAGS := -s -w \
    -X main.Version=$(VERSION) \
    -X main.GitCommit=$(GIT_COMMIT)$(GIT_DIRTY) \
    -X main.BuildTime=$(BUILD_TIME)

These are read from:

  • VERSION file → main.Version
  • git rev-parse --short HEAD → main.GitCommit
  • date -u → main.BuildTime

Step-by-Step: Full Production Build

1. Build the Frontend

make build-web
# Runs: cd web && npm run build
# Output: web/dist/ (compressed static assets)

The frontend is built with Vite and produces gzip/brotli compressed assets that are embedded into the Go binary via go:embed.

2. Build the Go Binary

make build
# Runs: CGO_ENABLED=0 go build -trimpath -ldflags '...' -o build/actond ./cmd/actond/

Critical: Always build with CGO_ENABLED=0 for a fully static binary.

3. Cross-Compilation

# Linux AMD64 (default target for MiniPC/Docker)
GOOS=linux GOARCH=amd64 make build

# Linux ARM64 (for ARM-based devices)
GOOS=linux GOARCH=arm64 make build

4. Build Docker Image

make docker
# Output: actonos/actonos:VERSION and actonos/actonos:latest

The Dockerfile uses multi-stage build:

  1. Stage 1: Build Go binary
  2. Stage 2: Build frontend
  3. Stage 3: Alpine minimal runtime image (<35 MB)

5. Build ISO (Bare-metal)

# Requires: Debian/Ubuntu host with live-build and debootstrap
make iso
# Runs: bash scripts/build-iso.sh
# Output: build/ActonOS-vVERSION.iso

go:embed Integration

The built frontend assets are embedded into the Go binary:

// internal/server/static.go
//go:embed all:../../../web/dist
var embeddedAssets embed.FS

The layered_fs.go module implements a layered filesystem that checks /data/overrides/ before falling back to embedded assets, allowing runtime UI customization.

Verifying a Build

# Check binary version
./build/actond --version

# Check binary size
ls -lh build/actond

# Check it's truly static (no dynamic linking)
file build/actond
# Expected: "ELF 64-bit LSB executable, x86-64, statically linked"

# Quick smoke test
./build/actond --data-dir=./dev-data --log-level=debug &
curl http://localhost:8080/api/health
kill %1

Common Build Issues

IssueCauseSolution
web/dist not foundFrontend not builtRun make build-web first
CGO requiredUsing mattn/go-sqlite3Use modernc.org/sqlite instead
go:embed pattern matches no filesEmpty web/dist/Build frontend first
Binary not staticCGO_ENABLED=1Set CGO_ENABLED=0
Docker build OOMLow memory during Go buildIncrease Docker memory limit

Reference Files

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Skill for developing AI agent engine components in internal/agent/. Covers the ReAct loop, swarm delegation, planning, verification, memory reflection, and cron automation.

日本語の概要は準備中です。原文の説明を表示しています。

actonos/actonos802026年8月31日 更新

Skill for developing REST API endpoints in internal/server/. Covers routing, request validation, WebSocket streaming, and API conventions.

日本語の概要は準備中です。原文の説明を表示しています。

actonos/actonos802026年8月31日 更新

Skill for developing messaging channel adapters via WASM Plugins and managing routing, session state, pairing codes, and accounts in internal/channels/.

日本語の概要は準備中です。原文の説明を表示しています。

actonos/actonos802026年8月31日 更新

Skill for developing the ActonOS React 19 + Tailwind v4 frontend adhering to the official DESIGN.md specification. Covers design tokens, component decomposition, zero-hardcoded-text i18n, and go:embed delivery.

日本語の概要は準備中です。原文の説明を表示しています。

actonos/actonos802026年8月31日 更新

Skill for creating ActonOS releases. Covers version bumping, changelog management, git tagging, Docker image publishing, and ISO creation.

日本語の概要は準備中です。原文の説明を表示しています。

actonos/actonos802026年8月31日 更新

Skill for initial ActonOS project setup, environment verification, and dependency installation.

日本語の概要は準備中です。原文の説明を表示しています。

actonos/actonos802026年8月31日 更新

actonos のスキルをすべて見る

このスキルの問題を報告する