Skip to content

Configuration

Inkvoice is configured through environment variables. Copy .env.example to .env to get started.

Required

VariableDefaultDescription
ADMIN_USERadminInitial admin username
ADMIN_PASSchangemeInitial admin password
JWT_SECRETJWT signing secret (min 32 characters)

WARNING

Always set a strong JWT_SECRET in production. The default is only suitable for development.

Database

VariableDefaultDescription
DATABASE_PATH./data/invoice.dbPath to the SQLite database file

The database is created automatically on first run. Back it up by copying this file.

Server

VariableDefaultDescription
PORT3000Server port
HOST0.0.0.0Server bind address

Security

VariableDefaultDescription
SESSION_TTL3600JWT token lifetime in seconds
COOKIE_SECUREtrueUse secure cookies (set to false for HTTP in development)
ENABLE_HSTSfalseEnable HSTS header
RATE_LIMIT_ENABLEDtrueEnable login rate limiting
RATE_LIMIT_MAX_ATTEMPTS5Max failed login attempts before lockout
RATE_LIMIT_WINDOW900Rate limit window in seconds (15 min)

CORS

VariableDefaultDescription
ALLOWED_ORIGINShttp://localhost:5173,http://localhost:3000Comma-separated allowed origins

Only needed if running the frontend dev server separately from the backend.

Email (SMTP)

Optional. Enables sending invoices and quotes by email.

VariableDefaultDescription
SMTP_HOSTSMTP server hostname
SMTP_PORT587SMTP server port
SMTP_USERSMTP username
SMTP_PASSSMTP password
SMTP_FROMSender email address
SMTP_SECUREfalseUse TLS (set to true for port 465)

Stripe (Online Payments)

Optional. Enables customers to pay invoices online via Stripe.

VariableDefaultDescription
STRIPE_SECRET_KEYStripe secret key (sk_...)
STRIPE_PUBLISHABLE_KEYStripe publishable key (pk_...)
STRIPE_WEBHOOK_SECRETStripe webhook signing secret (whsec_...)

See Online Payments for setup instructions.

PDF Generation

VariableDefaultDescription
CHROME_PATH(auto-detected)Path to Chrome/Chromium binary

Chrome Headless Shell is bundled in the Docker image. Only set this if running outside Docker with a custom Chrome installation.

Demo Mode

VariableDefaultDescription
DEMO_MODEfalseEnable demo mode with sample data and periodic resets

Released under the MIT License.