Skip to content

Deploying SolidInvoice

Introduction

SolidInvoice is a sophisticated open-source invoicing application built for freelancers, small businesses, and agencies. It provides a complete solution for creating professional quotes, converting them to invoices, tracking payments, and managing client relationships—all through a modern, user-friendly interface.

Unlike basic invoicing tools, SolidInvoice offers a comprehensive workflow from initial client contact through final payment, with features that rival expensive commercial alternatives.

Key features of SolidInvoice include:

  • Professional Invoices: Create beautiful, customizable invoices
  • Quoting System: Send quotes that convert to invoices with one click
  • Client Management: Maintain detailed client records and history
  • Payment Tracking: Monitor invoice status and payment history
  • Recurring Invoices: Automate regular billing cycles
  • Multi-Currency: Support for international clients
  • Tax Management: Configure tax rates and automatic calculations
  • Email Integration: Send invoices directly to clients
  • Payment Gateways: Accept online payments (Stripe, PayPal)
  • PDF Generation: Professional PDF invoices for download
  • Reports: Financial reports and insights
  • API Access: RESTful API for integrations
  • Multi-User: Team access with role-based permissions
  • Open Source: MIT license with active development

This guide walks through deploying SolidInvoice on Klutch.sh using Docker.

Why Deploy SolidInvoice on Klutch.sh

Deploying SolidInvoice on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh handles the build and deployment process.

Cost Effective: No monthly fees for invoicing software.

Data Privacy: Client and financial data stays on your infrastructure.

HTTPS by Default: Secure access for you and your clients.

Persistent Storage: Invoices and data survive restarts.

Custom Domains: Professional branding with your own domain.

Always Available: 24/7 access to your invoicing system.

Prerequisites

Before deploying SolidInvoice on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your configuration
  • A MySQL or PostgreSQL database
  • SMTP credentials for sending invoices
  • Basic familiarity with Docker and PHP
  • (Optional) Payment gateway API keys

Deploying SolidInvoice on Klutch.sh

    Create a GitHub Repository

    Create a new GitHub repository for your SolidInvoice deployment.

    Create Your Dockerfile

    Create a Dockerfile:

    FROM php:8.2-apache
    RUN apt-get update && apt-get install -y \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libzip-dev \
    libicu-dev \
    unzip \
    git \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install gd pdo pdo_mysql zip intl opcache
    RUN a2enmod rewrite
    COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
    WORKDIR /var/www/html
    RUN git clone https://github.com/SolidInvoice/SolidInvoice.git .
    RUN composer install --no-dev --optimize-autoloader
    RUN chown -R www-data:www-data /var/www/html \
    && chmod -R 755 /var/www/html
    ENV APP_ENV=prod
    ENV DATABASE_URL=${DATABASE_URL}
    ENV MAILER_DSN=${MAILER_DSN}
    ENV APP_SECRET=${APP_SECRET}
    EXPOSE 80
    CMD ["apache2-foreground"]

    Push Your Repository to GitHub

    Commit and push your Dockerfile.

    Create a Database

    Set up a MySQL or PostgreSQL database for SolidInvoice.

    Configure SMTP

    Obtain SMTP credentials for sending invoice emails.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project.

    Create a New App

    Create a new app and connect your GitHub repository.

    Configure Environment Variables

    Add the following environment variables:

    VariableValue
    DATABASE_URLmysql://user:pass@host/dbname
    MAILER_DSNsmtp://user:pass@smtp.example.com:587
    APP_SECRETYour generated secret key
    APP_ENVprod

    Configure HTTP Settings

    Set the traffic type to HTTP and configure the internal port to 80.

    Attach Persistent Storage

    Add persistent volumes:

    Mount PathRecommended SizePurpose
    /var/www/html/var2 GBApplication cache and logs
    /var/www/html/public/uploads5 GBUploaded files

    Deploy Your Application

    Click Deploy to start the build process.

    Run Installation

    Access the installation wizard at your app URL to complete setup.

    Configure Your Business

    Enter your business details, logo, and payment settings.

Initial Configuration

After installation:

  1. Business Profile: Add your company name, address, and logo
  2. Invoice Template: Customize your invoice appearance
  3. Tax Rates: Configure applicable tax rates
  4. Payment Methods: Set up payment gateway integrations
  5. Email Templates: Customize email notifications

Using SolidInvoice

With SolidInvoice deployed, your workflow is:

  1. Add Clients: Create client records with contact details
  2. Create Quotes: Send professional quotes for approval
  3. Convert to Invoice: Turn approved quotes into invoices
  4. Send Invoices: Email invoices directly to clients
  5. Track Payments: Record and monitor payment status

Payment Gateway Setup

To accept online payments:

Stripe:

  1. Get API keys from Stripe Dashboard
  2. Configure in SolidInvoice settings

PayPal:

  1. Create PayPal Business account
  2. Configure API credentials

Additional Resources

Conclusion

Deploying SolidInvoice on Klutch.sh gives you a professional invoicing solution without recurring subscription costs. From quotes to payments, manage your entire billing workflow with a powerful, self-hosted application.

For freelancers and businesses seeking control over their invoicing system and data, SolidInvoice provides enterprise-level features in an accessible, open-source package.