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=prodENV 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:
| Variable | Value |
|---|---|
DATABASE_URL | mysql://user:pass@host/dbname |
MAILER_DSN | smtp://user:pass@smtp.example.com:587 |
APP_SECRET | Your generated secret key |
APP_ENV | prod |
Configure HTTP Settings
Set the traffic type to HTTP and configure the internal port to 80.
Attach Persistent Storage
Add persistent volumes:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/var/www/html/var | 2 GB | Application cache and logs |
/var/www/html/public/uploads | 5 GB | Uploaded 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:
- Business Profile: Add your company name, address, and logo
- Invoice Template: Customize your invoice appearance
- Tax Rates: Configure applicable tax rates
- Payment Methods: Set up payment gateway integrations
- Email Templates: Customize email notifications
Using SolidInvoice
With SolidInvoice deployed, your workflow is:
- Add Clients: Create client records with contact details
- Create Quotes: Send professional quotes for approval
- Convert to Invoice: Turn approved quotes into invoices
- Send Invoices: Email invoices directly to clients
- Track Payments: Record and monitor payment status
Payment Gateway Setup
To accept online payments:
Stripe:
- Get API keys from Stripe Dashboard
- Configure in SolidInvoice settings
PayPal:
- Create PayPal Business account
- Configure API credentials
Additional Resources
- SolidInvoice GitHub Repository
- SolidInvoice Documentation
- SolidInvoice Official Website
- Klutch.sh Persistent Volumes
- Klutch.sh Deployments
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.