darroyo
05604a8f12
Makefile: frontend/install uses npm ci, frontend/build depends on frontend/install
CI / test (push) Failing after 12m51s
2026-07-31 15:15:25 -04:00
darroyo
0d6c8c7989
Add embedded Vue SPA admin panel with go:embed
...
CI / test (push) Failing after 13m11s
This is the complete fix for the missing /admin/ route and frontend serving:
Backend:
- internal/web/web.go: new package with go:embed for web/dist/
- internal/api/router.go: add routes for /admin/, /admin/*, /assets/*
- internal/db/db.go: fix SQLite DSN parsing (sqlite:///path -> path)
Build system:
- Makefile: new 'embed-prep' target copies web/dist to internal/web/dist
- make build now runs embed-prep -> frontend/build automatically
Deployment:
- deploy/llamalink.service: remove invalid --host/--port flags,
add EnvironmentFile=/etc/llamalink/env
Verified:
- /health returns 200
- /admin/ serves Vue SPA HTML
- /assets/* serves CSS and JS files from embedded FS
- sqlite:///./llamalink.db works correctly
2026-07-31 14:47:15 -04:00
darroyo
a54b134e87
CI: fix upload coverage for Gitea Actions
...
CI / test (push) Successful in 22m22s
Release / build (false, amd64, darwin) (push) Failing after 10m29s
Release / build (false, amd64, windows) (push) Failing after 10m20s
Release / build (false, arm64, darwin) (push) Failing after 10m25s
Release / build (true, amd64, linux) (push) Failing after 10m57s
Release / build (true, arm64, linux) (push) Failing after 10m34s
Release / release (push) Has been skipped
Use if: always() + continue-on-error: true instead of if-no-files-found: warn
Gitea Actions may not fully support all upload-artifact@v4 options
v2026.07.30
2026-07-30 22:53:27 -04:00
darroyo
fb5ae6ceb5
Fix staticcheck SA4000 in TestDurationHelpers
...
CI / test (push) Failing after 12m33s
Compare against expected values (300s, 20s, 5s) instead of self-comparison
2026-07-30 18:14:51 -04:00
darroyo
c2feb1bc75
Fix CI: add if-no-files-found=warn to coverage upload, add config tests
...
CI / test (push) Failing after 12m39s
- .github/workflows/ci.yml: upload-artifact if-no-files-found=warn
- internal/config/config_test.go: 93.5% coverage smoke tests for Load,
env overrides, URL helpers, duration helpers, Logger, boolEnv
2026-07-30 17:42:28 -04:00
darroyo
f775c2f67e
Fix golangci-lint errcheck and unused errors
...
CI / test (push) Failing after 12m57s
- manager.go: add _ = to syscall.Kill and proc.Signal calls (6 fixes)
- chat.go: add _ = to c.Writer.WriteString calls (9 fixes)
- webhook.go: remove unused webhookSecret field
2026-07-30 17:20:34 -04:00
darroyo
e9c81f7c30
CI: upgrade golangci-lint v1.61.0 -> v1.64.8
...
CI / test (push) Failing after 12m53s
Fixes x/tools v0.24.0 compilation error with Go 1.25+
2026-07-30 16:56:05 -04:00
darroyo
0f3ea42eed
Fix CI: replace curl install with go install for golangci-lint
...
CI / test (push) Failing after 12m52s
curl install script has stale SHA256 hash for latest version (v2.12.2).
Using go install pins version and avoids hash verification issues.
2026-07-30 15:53:13 -04:00
darroyo
cfcf9dbeec
Fix CI: update Go version to 1.25, use specific package paths
...
CI / test (push) Failing after 12m36s
- .github/workflows/ci.yml: go-version '1.23' -> '1.25' to match go.mod
- All go build/vet/test/lint: use ./cmd/... ./internal/... instead of ./...
to avoid picking up Go packages in node_modules/ (flatted)
- Makefile: same fix for test target
2026-07-30 14:48:16 -04:00
darroyo
a58b203b16
Add package-lock.json and fix TypeScript build errors
...
CI / test (push) Failing after 12m1s
- web/frontend/package.json: remove invalid @nuxtjs/tailwindcss (Nuxt-only package)
- web/frontend/src/router/index.ts: prefix unused 'from' param with _
- web/frontend/src/views/ApiKeys.vue: remove unused 'Check' import
- .gitignore: add *.tsbuildinfo, vite.config.js, vite.config.d.ts
- web/frontend/package-lock.json: generated via npm install (required for CI npm ci)
2026-07-30 14:26:59 -04:00
darroyo
f88b8e099b
Add .deb packaging, GitHub Actions CI/CD, and release workflows
...
CI / test (push) Failing after 17m30s
- Makefile: add 'deb' and 'release' targets; fix migrate/create syntax
- scripts/build-deb.sh: build .deb with systemd unit, postinst/prerm/postrm
- .github/workflows/ci.yml: go build, test, lint on PR/push to main
- .github/workflows/release.yml: multi-platform build (linux/darwin/windows
× amd64/arm64), .deb for Linux, tarballs, draft GitHub Release on tag v*
- README.md: add CI/Release badges, Install section with .deb and binary
release instructions
2026-07-30 12:42:10 -04:00
darroyo
4c9ed3c24b
Initial commit: LlamaLink Go rewrite
...
Complete rewrite from Python/FastAPI to Go/Gin:
- Go backend: auth (API keys + bcrypt), llama.cpp subprocess manager,
hot-swap multi-model, rate limiting, quota system, webhooks
- Vue 3 SPA admin panel (src/) with Tailwind CSS
- Deployment: Docker multi-stage, docker-compose, nginx, systemd
- GORM/SQLite models: ApiKey, Model, UsageLog, Quota, Webhook
- REST API: /api/v1/admin/* (keys, models, chat, usage, health)
- Embedded frontend via go:embed (build output at web/dist/)
Removed legacy Python artifacts (app/, tests/, pyproject.toml, etc.)
2026-07-30 10:58:55 -04:00