Big-Link-Man/docs/CLI_COMMAND_REFERENCE.md

9.4 KiB

CLI Command Reference

Comprehensive documentation for all CLI commands.

Table of Contents


System

config

Show current configuration

No options required.

Example:

uv run python main.py config

health

Check system health

No options required.

Example:

uv run python main.py health

models

List available AI models

No options required.

Example:

uv run python main.py models

User Management

add-user

Create a new user (requires admin authentication)

Options:

  • --username

    • Type: STRING | Username for the new user
  • --password

    • Type: STRING | Password for the new user
  • --role

    • Type: Choice: Admin, User | Role for the new user
  • --admin-user

    • Type: STRING | Admin username for authentication
  • --admin-password

    • Type: STRING | Admin password for authentication

Example:

uv run python main.py add-user

delete-user

Delete a user by username (requires admin authentication)

Options:

  • --username

    • Type: STRING | Username to delete
  • --admin-user

    • Type: STRING | Admin username for authentication
  • --admin-password

    • Type: STRING | Admin password for authentication
  • --yes

    • Type: BOOL | Flag (boolean) | Confirm the action without prompting.

Example:

uv run python main.py delete-user

list-users

List all users (requires admin authentication)

Options:

  • --admin-user

    • Type: STRING | Admin username for authentication
  • --admin-password

    • Type: STRING | Admin password for authentication

Example:

uv run python main.py list-users

Site Management

attach-domain

Attach a domain to an existing Storage Zone (requires admin)

Options:

  • --name

    • Type: STRING | Site name
  • --domain

    • Type: STRING | Custom domain (FQDN, e.g., www.example.com)
  • --storage-name

    • Type: STRING | Existing Storage Zone name
  • --admin-user

    • Type: STRING | Admin username for authentication
  • --admin-password

    • Type: STRING | Admin password for authentication

Example:

uv run python main.py attach-domain

get-site

Get detailed information about a site deployment (requires admin)

Options:

  • --domain

    • Type: STRING | Custom domain to lookup
  • --admin-user

    • Type: STRING | Admin username for authentication
  • --admin-password

    • Type: STRING | Admin password for authentication

Example:

uv run python main.py get-site

list-sites

List all site deployments (requires admin)

Options:

  • --admin-user

    • Type: STRING | Admin username for authentication
  • --admin-password

    • Type: STRING | Admin password for authentication

Example:

uv run python main.py list-sites

provision-site

Provision a new site with Storage Zone and Pull Zone (requires admin)

Options:

  • --name

    • Type: STRING | Site name
  • --domain

    • Type: STRING | Custom domain (FQDN, e.g., www.example.com)
  • --storage-name

    • Type: STRING | Storage Zone name (must be globally unique)
  • --region

    • Type: Choice: DE, NY, LA, SG, SYD | Storage region
  • --admin-user

    • Type: STRING | Admin username for authentication
  • --admin-password

    • Type: STRING | Admin password for authentication

Example:

uv run python main.py provision-site

remove-site

Remove a site deployment record (requires admin)

Options:

  • --domain

    • Type: STRING | Custom domain to remove
  • --admin-user

    • Type: STRING | Admin username for authentication
  • --admin-password

    • Type: STRING | Admin password for authentication
  • --yes

    • Type: BOOL | Flag (boolean) | Confirm the action without prompting.

Example:

uv run python main.py remove-site

sync-sites

Sync existing bunny.net sites with custom domains to database (requires admin)

Options:

  • --admin-user

    • Type: STRING | Admin username for authentication
  • --admin-password

    • Type: STRING | Admin password for authentication
  • --dry-run

    • Type: BOOL | Flag (boolean) | Show what would be imported without making changes

Example:

uv run python main.py sync-sites

Project Management

ingest-cora

Ingest a CORA .xlsx report and create a new project

Options:

  • --file, -f (required)

    • Type: Path (must exist) | Path to CORA .xlsx file
  • --name, -n (required)

    • Type: STRING | Project name
  • --money-site-url, -m

  • --custom-anchors, -a

    • Type: STRING | Comma-separated list of custom anchor text (optional)
  • --tier1-branded-ratio, -t

    • Type: FLOAT | Ratio of branded anchor text for tier1 (optional, only prompts if provided)
  • --tier1-branded-plus-ratio, -bp

    • Type: FLOAT | Ratio of branded+ anchor text for tier1 (optional, applied to remaining slots after branded)
  • --random-deployment-targets, -r

    • Type: INT | Number of random deployment targets to select (default: random 2-3)
  • --username, -u

    • Type: STRING | Username for authentication
  • --password, -p

    • Type: STRING | Password for authentication

Example:

uv run python main.py ingest-cora --file path/to/file.xlsx --name "My Project"

ingest-simple

Ingest a simple spreadsheet and create a new project

Expected spreadsheet format:

  • First row: Headers (main_keyword, project_name, related_searches, entities)
  • Second row: Data values

Required columns: main_keyword, project_name, related_searches, entities

  • main_keyword: Single phrase keyword
  • project_name: Name for the project
  • related_searches: Comma-delimited list (e.g., "term1, term2, term3")
  • entities: Comma-delimited list (e.g., "entity1, entity2, entity3")

Optional columns (with defaults):

  • word_count: Default 1500
  • term_frequency: Default 3

Options:

  • --file, -f (required)

    • Type: Path (must exist) | Path to simple .xlsx spreadsheet file
  • --name, -n

    • Type: STRING | Project name (overrides project_name from spreadsheet if provided)
  • --money-site-url, -m

  • --username, -u

    • Type: STRING | Username for authentication
  • --password, -p

    • Type: STRING | Password for authentication

Example:

uv run python main.py ingest-simple --file path/to/file.xlsx

list-projects

List all projects for the authenticated user

Options:

  • --username, -u

    • Type: STRING | Username for authentication
  • --password, -p

    • Type: STRING | Password for authentication

Example:

uv run python main.py list-projects

Content Generation

generate-batch

Generate content batch from job file

Options:

  • --job-file, -j (required)

    • Type: Path (must exist) | Path to job JSON file
  • --username, -u

    • Type: STRING | Username for authentication
  • --password, -p

    • Type: STRING | Password for authentication
  • --debug

    • Type: BOOL | Flag (boolean) | Save AI responses to debug_output/
  • --continue-on-error

    • Type: BOOL | Flag (boolean) | Continue processing if article generation fails
  • --model, -m

    • Type: STRING | Default: gpt-4o-mini | AI model to use (gpt-4o-mini, x-ai/grok-4-fast)

Example:

uv run python main.py generate-batch --file path/to/file.xlsx --debug

Deployment

deploy-batch

Deploy all content in a batch to cloud storage

Options:

  • --batch-id, -b (required)

    • Type: INT | Project/batch ID to deploy
  • --username, -u

    • Type: STRING | Username for authentication
  • --password, -p

    • Type: STRING | Password for authentication
  • --continue-on-error

    • Type: BOOL | Flag (boolean) | Continue if file fails (default: True)
  • --dry-run

    • Type: BOOL | Flag (boolean) | Preview what would be deployed

Example:

uv run python main.py deploy-batch --batch-id 1

verify-deployment

Verify deployed URLs return 200 OK status

Options:

  • --batch-id, -b (required)

    • Type: INT | Project/batch ID to verify
  • --sample, -s

    • Type: INT | Number of random URLs to check (default: check all)
  • --timeout, -t

    • Type: INT | Default: 10 | Request timeout in seconds (default: 10)

Example:

uv run python main.py verify-deployment --batch-id 1

Export article URLs with optional link details for a project and tier

Options:

  • --project-id, -p (required)

    • Type: INT | Project ID to get links for
  • --tier, -t (required)

    • Type: STRING | Tier to filter (e.g., "1" or "2+" for tier 2 and above)
  • --with-anchor-text

    • Type: BOOL | Flag (boolean) | Include anchor text used for tiered links
  • --with-destination-url

    • Type: BOOL | Flag (boolean) | Include destination URL that the article links to

Example:

uv run python main.py get-links --project-id 1 --tier 1

Other Commands

create-job

Create a job file from an existing project ID

discover-s3-buckets

Discover and register AWS S3 buckets as site deployments