Sign inSign up

code42dev/nexo

By code42dev

•Updated 14 days ago

Image
0

2.4K

code42dev/nexo repository overview

⁠Nexo — AI-operated project management

Kanban that an AI agent can run end-to-end. Boards (projects) hold cards on a fixed development flow, grouped into cycles (sprints) and modules (epics), with checklists, tags, comments, assignees, custom fields and relations. The same API drives the web UI, a CLI, and AI agents over MCP.

Ships as a single self-contained Go binary that embeds the React web UI and its own API docs — no external runtime, no database server. State lives in one SQLite file.

docker run -d -p 8090:8090 -v nexo-data:/data code42dev/nexo:latest

Open http://localhost:8090⁠ and log in with admin / admin.


⁠Why

  • Zero-config — one container, one volume, works offline. No Postgres, no Redis.
  • Multi-arch — linux/amd64 and linux/arm64 (Apple Silicon included).
  • Agent-native — every capability is an HTTP endpoint and an MCP tool (~75 tools), so Claude Code and other agents can operate the whole system.
  • Batteries included — board / list / calendar / timeline views, weighted status+checklist progress, multi-user with per-board membership, a small CRM, custom fields, automation rules and webhooks.

⁠Quick start

docker run

docker run -d --name nexo -p 8090:8090 -v nexo-data:/data code42dev/nexo:latest

docker compose

services:
  nexo:
    image: code42dev/nexo:latest
    ports:
      - "127.0.0.1:8090:8090"   # localhost only; drop the 127.0.0.1 to expose
    environment:
      NEXO_ADMIN_USER: admin
      NEXO_ADMIN_PASS: admin
    volumes:
      - nexo-data:/data

volumes:
  nexo-data:
docker compose up -d

⁠Configuration

Env varDefaultWhat it does
NEXO_ADDR:8090Listen address.
NEXO_DB/data/nexo.dbSQLite file path (keep it under the volume).
NEXO_ADMIN_USERadminSeeded on the first boot of an empty DB.
NEXO_ADMIN_PASSadminSeeded admin password. Override for any exposed deploy.

Passwords are hashed with PBKDF2-HMAC-SHA256 (per-user salt). More users are created in-app under Settings → Usuários (admin-only) or via POST /v1/users.

⁠Data & volumes

The database is a single SQLite file at /data/nexo.db, and /data is a volume — your data survives restarts, upgrades and re-creates.

# Back up
docker cp nexo:/data/nexo.db ./nexo-backup.db

# Where the volume lives on disk
docker volume inspect nexo-data

# Reset everything (deletes the database)
docker compose down -v

⁠Get an API token

Every /v1/* call needs Authorization: Bearer <token>. Log in to get one:

curl -s -X POST http://localhost:8090/v1/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"admin"}'
# → {"token":"a1b2c3..."}   ← this is YOUR_SECRET_TOKEN
TOKEN=$(curl -s -X POST http://localhost:8090/v1/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin","password":"admin"}' \
  | sed -E 's/.*"token":"([^"]+)".*/\1/')

curl -s http://localhost:8090/v1/boards -H "Authorization: Bearer $TOKEN"

Tokens last 30 days; POST /v1/logout revokes one.

⁠API docs & AI agents

⁠Tags

  • latest — most recent build from main.
  • YYYY-MM-DD — dated, immutable snapshots (e.g. 2026-07-28).

Both are multi-arch (linux/amd64, linux/arm64).

⁠Security notes

The admin / admin default exists for zero-config local use. Before exposing Nexo on any network, override NEXO_ADMIN_PASS and bind to localhost or put it behind a reverse proxy with TLS.


Made with Go + SQLite + React. Single binary, single file, single container.

Tag summary

Content type

Image

Digest

sha256:6d80f5d8c…

Size

11.1 MB

Last updated

14 days ago

docker pull code42dev/nexo