Documentation

InfraPilot Docs

Everything you need to install, configure, and operate InfraPilot on your infrastructure.

Quick Start

Get InfraPilot running on your server in under 5 minutes. You need Docker and Docker Compose installed.

1. Run the one-line installer

curl -fsSL https://infrapilot.sh/install.sh | bash

2. Open the dashboard

Navigate to http://your-server:3000 in your browser. The setup wizard will guide you through the initial configuration.

3. Activate your license

Get a free Community license at infrapilot.sh/signup. Enter your license key in the dashboard under Settings → License.

Requirements: Linux server with Docker 20.10+, Docker Compose v2+, and at least 512 MB available RAM.

Installation

Option A — Automated installer (recommended)

curl -fsSL https://infrapilot.sh/install.sh | bash

Downloads the latest release, creates the directory structure, and starts the stack automatically.

Option B — Manual Docker Compose

# Clone the repository

git clone https://github.com/infrapilotsh/infrapilot.git

cd infrapilot


# Copy environment template

cp .env.example .env

# Edit .env and set your values


# Start the stack

docker compose up -d

System requirements

OSLinux (Ubuntu 20.04+, Debian 11+, RHEL 8+ recommended)
Docker20.10 or newer
Docker Composev2.0 or newer (plugin)
RAM512 MB minimum, 1 GB recommended
Disk2 GB for installation + log storage
Ports3000 (dashboard), 80/443 (Nginx proxy)

Configuration

InfraPilot is configured through a .env file in the installation directory.

Core environment variables

DATABASE_URLrequired
PostgreSQL connection string
REDIS_URLrequired
Redis connection string
NEXTAUTH_SECRETrequired
32+ character random secret for session signing
NEXTAUTH_URLrequired
Public URL of the dashboard (e.g. https://infra.example.com)
SMTP_HOST
SMTP server hostname for transactional emails
SMTP_PORT
SMTP server port (default: 587)
SMTP_USER
SMTP authentication username
SMTP_PASS
SMTP authentication password
STRIPE_SECRET_KEY
Stripe secret key for billing (optional)

Nginx & SSL

InfraPilot manages Nginx configuration through its visual interface. To expose your dashboard over HTTPS, add a reverse proxy entry pointing to localhost:3000 and enable Let's Encrypt. SSL certificates are renewed automatically 30 days before expiry.

Licensing

Community

Free

Up to 3 agents

  • Core monitoring
  • Container management
  • Basic alerting
  • Community support

Professional

$29/mo

Up to 10 agents

  • Everything in Community
  • Advanced analytics
  • RBAC
  • Email support

Enterprise

Contact us

Unlimited agents

  • Everything in Professional
  • SSO/SAML
  • Audit logging
  • SLA + dedicated support

Activating your license

  1. Sign up at infrapilot.sh/signup to receive a license key via email.
  2. In the InfraPilot dashboard, go to Settings → License.
  3. Paste your license key and click Activate.
  4. The dashboard will confirm activation and unlock the features for your tier.

Agent Setup

The InfraPilot agent is a lightweight Go binary that runs on each server you want to monitor. It communicates with the central dashboard over a secure WebSocket connection.

Installing the agent

# Install on target server

curl -fsSL https://infrapilot.sh/agent.sh | bash


# Configure with your dashboard URL and agent token

infrapilot-agent configure \

--dashboard-url https://infra.example.com \

--token YOUR_AGENT_TOKEN


# Start as a systemd service

systemctl enable --now infrapilot-agent

Getting your agent token

In the dashboard, go to Settings → Agents → Add Agent. A unique token will be generated for each server you connect. Tokens are tied to your license and count toward your agent limit.

Agent tokens grant monitoring access to your server. Keep them secret and rotate immediately if compromised via Settings → Agents.

Security

Best practices

  • Run InfraPilot behind a reverse proxy with HTTPS — never expose port 3000 directly
  • Use a strong, unique NEXTAUTH_SECRET (32+ random characters)
  • Enable two-factor authentication (Settings → Security → 2FA)
  • Restrict dashboard access via your firewall to trusted IP ranges when possible
  • Rotate agent tokens periodically and immediately if a server is decommissioned
  • Keep InfraPilot updated — run `docker compose pull && docker compose up -d` regularly

Reporting vulnerabilities

Found a security issue? Please disclose responsibly by emailing security@infrapilot.sh. We aim to acknowledge reports within 24 hours and resolve critical issues within 72 hours.

Troubleshooting

Dashboard won't start — 'database connection refused'

Ensure the database container is healthy before the app container starts. Run `docker compose ps` to check container status. If the db shows as unhealthy, check `docker compose logs db`.

License activation fails with 'key not found'

Check that you copied the full key without extra spaces. License keys are case-sensitive. If the issue persists, contact support@infrapilot.sh with your account email.

Agent is offline / not appearing in dashboard

Verify the agent can reach your dashboard URL on port 443 (or 80). Check `systemctl status infrapilot-agent` and `journalctl -u infrapilot-agent -n 50` for error messages. Firewall rules between agent server and dashboard are the most common cause.

Nginx proxy not routing traffic correctly

Confirm the container target port matches what the service actually listens on. Use `docker compose logs nginx` to inspect routing errors. Check that SSL certificates are valid via Settings → Security.

High memory usage

InfraPilot retains recent log data in memory for fast search. Adjust the LOG_RETENTION_MB env variable (default: 256) in your .env to reduce memory pressure. Container will automatically prune older entries.

Forgot dashboard admin password

Use the CLI reset tool: `docker compose exec app infrapilot reset-password --email your@email.com`. A reset link will be sent to your registered email address.

Still need help?

Can't find what you're looking for? Open an issue on GitHub or reach out to our support team.