Go version API server | CLI client | Skills for AI Agents
Available at http://localhost:3000/admin. Password is SECRET_KEY or ADMIN_KEY if set.
The composer supports optional meta fields for title and created. created can be submitted as date-only or date with time.
Suggested shell variables:
export POST_BASE_URL="https://example.com"
export POST_TOKEN="your-secret-key"For details, see API documentation
Required:
LINKS_REDIS_URL: 'redis://...' or 'rediss://...' URL for Redis connectionSECRET_KEY: API tokenADMIN_KEY: Password for admin GUI login
Prerequisites:
- Node.js 24+
- Redis (a valid Redis URL. Get a free one at https://redis.com/)
- S3-compatible storage (Required for file uploads)
# Install dependencies
npm install
# Run the default local regression suite: unit + both local smoke suites
npm test
# Run only the quick unit suite
npm run test:quick
# Run only unit tests
npm run test:unit
# Run both local smoke suites without re-running unit tests
npm run test:smoke:local
# Run only the local admin/web smoke suite
npm run test:smoke:web:local
# Run only the local API smoke suite
npm run test:smoke:api:local
# Configure environment variables
cp .env.example .env.local
# Build admin UI and start local server (http://localhost:3000)
npm start
# Bump the package version
npm run version:bump -- patch
# or
npm run version:bump -- 1.4.0
# Create a release tag after the version bump commit
git tag -a v1.4.0 -m "v1.4.0"
# Visit admin UI at <http://localhost:3000/admin>Env:
- Required:
LINKS_REDIS_URL,SECRET_KEY - Optional:
ADMIN_KEY(only for/adminGUI login; if missing, GUI login falls back toSECRET_KEY) LINKS_REDIS_URLshould use:rediss://...for TLS-enabled providers (recommended for Upstash and other managed Redis)redis://...only for non-TLS Redis
- If you see socket-closed errors when using
redis://, switch torediss:// - Optional:
MAX_CONTENT_SIZE_KB(default 500),MAX_FILE_SIZE_MB(default 10),S3_ENDPOINT,S3_ACCESS_KEY_ID,S3_SECRET_ACCESS_KEY,S3_BUCKET_NAME,S3_REGION,S3_FORCE_PATH_STYLE S3_FORCE_PATH_STYLEdefaults totruewhenS3_ENDPOINTis set. Set it tofalseonly if your provider requires bucket subdomains instead of path-style requests.
npm test: default local regression chain. Runstest:quick,test:smoke:web:local, andtest:smoke:api:local.npm run test:all: compatibility alias fornpm test.npm run test:quick: runs only the unit test suite.npm run test:smoke:local: runs the local admin/web smoke suite and the local API smoke suite.npm run test:smoke:web:local: starts the local app with a dedicated Redis DB and exercises/admin,/api/admin, and the main JSON API with shell assertions.npm run test:smoke:api:local: starts the local app with a dedicated Redis DB and runs the API-focused smoke suite in test/functional/smoke-api.sh.npm run test:smoke:web:vercel: reserved for environments wherevercel devis available. It is not part of the default test chain.
MIT Licence
© Mirtle together with OpenAI Codex

