Quick Start
This guide will help you launch an IndexFlow instance, initialize your administrator account, connect a website, and run your first automated indexing pipeline.
1. Prerequisites
Before running IndexFlow, ensure you have the following installed on your machine or server:
- Rust toolchain (version 1.75.0 or later):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - SQLite3 build libraries
- Git
2. Clone and Build
Clone the IndexFlow-core repository and build the release binary:
# Clone the core repository
git clone https://github.com/IndexFlowing/IndexFlow-core.git
cd IndexFlow-core
# Create your local environment file
cp .env.example .env 2>/dev/null || cat << 'EOF' > .env
SERVER_HOST=0.0.0.0
SERVER_PORT=8080
DATABASE_URL=sqlite:indexflow.db?mode=rwc
DB_MAX_CONNECTIONS=5
WORKER_POLL_INTERVAL_SECS=2
SUBMIT_WORKER_INTERVAL_SECS=5
SUBMIT_WORKER_BATCH=10
JWT_SECRET=change-this-to-a-secure-random-string-in-production
DRY_RUN=true
RUST_LOG=indexflow_core=info,tower_http=info
EOF
# Build and run the service
cargo run --release
When startup succeeds, the console output will show:
INFO indexflow_core: config loaded host="0.0.0.0" port=8080 db="sqlite:indexflow.db?mode=rwc" dry_run=true
INFO indexflow_core: SQLite database connected with WAL mode (max_connections=5)
INFO indexflow_core: applying SQLite database migrations...
INFO indexflow_core: SQLite migrations applied elapsed_ms=12
INFO indexflow_core: IndexFlow Web Console is running at http://127.0.0.1:8080
3. Initialize the Administrator Account
When you launch IndexFlow on a fresh database, no administrator user exists:
- Open your browser and navigate to
http://localhost:8080. - The server detects that
admin_usersis empty and automatically redirects you to/setup. - Fill in your initial administrator username and password:
- Username:
admin - Password:
<your-secure-password>
- Username:
- Click Complete Setup & Launch. IndexFlow hashes the password with
bcrypt, creates the account, issues an HTTP-onlyif_tokencookie signed withJWT_SECRET, and redirects you to/settings.
4. Configure Your First Website
In the Settings view (/settings), configure your site details:
- Website Domain:
example.com(do not prefix withhttp://orhttps://). - Sitemap URL:
https://example.com/sitemap.xml. - Cloudflare WAF Token (Optional): If your website blocks automated scanners, enter a secret token here to append to the crawler User-Agent.
- Bing IndexNow Key (Optional): Enter a 32-character hexadecimal key for Bing push.
- Bing Webmaster API Key (Optional): Enter your API key from Bing Webmaster Tools.
- Google Service Account JSON (Optional): Paste the full JSON key file contents for Google Search Console and Indexing API access.
- Click Save Configuration.
5. Run the 4-Stage Lifecycle Pipeline
From the top navigation or sidebar, trigger each pipeline stage to process your URLs:
Step 1: Sync Sitemap (/sitemap)
Click Sync Sitemap. The background SyncWorker recursively downloads and parses your XML sitemap hierarchy, deduplicates URLs using SHA-256 hashes, calculates schedule priority scores, and populates the database.
Step 2: Technical SEO Quality Gate (/seo)
Click Run SEO Audit. The SeoAuditWorker concurrently evaluates discovered URLs (up to 30 concurrent workers) against strict quality standards (verifying HTTP 200 responses, canonical tag matching, noindex absence, and robots directives).
Step 3: Check Official Indexing Radar (/indexing)
- Click Sync Google Impressions to bulk-import confirmed indexed URLs from Search Console Search Analytics with zero URL Inspection quota cost.
- Click Start GSC Inspection or Start Bing Inspection to verify the remaining unconfirmed pages via official APIs.
Step 4: Active Engine Push (/submit)
Click Submit to All Engines. The PushWorker filters for URLs that passed the SEO gate and are not yet indexed, dispatching them in batches to Bing IndexNow and Google Indexing API.
6. Verify via REST API
You can verify the status of your instance using the health check endpoint:
curl http://localhost:8080/health
Expected JSON response:
{
"db": "sqlite-wal",
"service": "indexflow-core",
"status": "healthy"
}
To fetch live indexing metrics for your site:
curl "http://localhost:8080/api/v1/stats?site_id=1" \
-H "Cookie: if_token=<YOUR_JWT_TOKEN>"