4.3 KiB
Caramel CRM
A simple, secure, and GOBD-compliant invoicing and customer management tool for small businesses and freelancers.
Caramel CRM is an open-source web application designed for small businesses, freelancers, and non-balancing partnerships (GbRs). It provides an easy-to-use, secure, and GOBD-compliant solution for invoicing and customer management. Since 2025, e-invoicing has become mandatory in Germany, and Caramel CRM aims to bridge the gap for small businesses unprepared for this transition.
- Self-hosted: Run it on any web hosting service.
- GOBD-compliant: Ensures legal compliance for invoicing.
- ZUGFeRD/XRechnung/Factur-X support: Standardized e-invoicing formats.
- AI-assisted CRM: Helps with customer care and acquisition.
- User-friendly: Designed for non-technical users.
Status
Current Status: Prototype
Caramel CRM is currently in the prototype phase. It provides basic invoicing and customer management features but is not yet GOBD-compliant. This project has just started development and has applied for the Prototype Fund.
⚠️ Warning
Do not use this software in production environments yet!
- The prototype is not GOBD-compliant and lacks essential security audits.
- Data loss or legal non-compliance may occur.
- Use only for testing and development purposes.
Installation
Prerequisites
- PHP 8.1+
- Composer
- Node.js (for frontend assets)
- SQLite/MySQL/PostgreSQL
Steps
- Clone the repository:
git clone http://code.tooloop.de/Tooloop/Caramel-CRM.git cd Caramel-CRM - Create empty database:
touch database/database.sqlite - Install dependencies:
composer install npm install - Set up the environment:
cp .env.example .env php artisan key\:generate - Run migrations and seeders:
php artisan migrate --seed - Build frontend assets:
npm run dev - Start the development server:
php artisan serve
Configuration
Edit the .env file to configure your database, mail settings, and other environment-specific variables.
Running the scheduler
Some tasks need to be done in regular interval, e. g. syncing data with an axternal CalDAV server.
Therfor the command artisan schedule:run should be called every 5 minutes.
You can choose between one of three updating methods by editing the app.cron_method value in the database table settings:
| Value | Description |
|---|---|
cron |
If you can, configure a CRON job in the OS |
webcron |
Some hosting prividers provide a feature to call a HTTP-request in regular intervals. |
request |
If both of the above are not possible in your setup, you can choose request. The web UI will then regularly call the /webcron route from your browser. |
Webcron
Configure a unique token in your .envfile:
...
WEBCRON_SECRET=<YOUR_TOKEN>
...
Then make sure this URL is called every 5 minutes:
http(s)://<YOUR-URL>/webcron?token=<YOUR_TOKEN>
CRON
Add this line in your crontab by typing crontab -e:
5 * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Usage
- Access the application at http://localhost:8000.
- Log in with the default admin credentials (see .env for details).
- Start creating invoices and managing customers.
Contributing
We welcome contributions!
License
Caramel CRM is open-source software licensed under the MIT License.
Contact
For questions or feedback, get in touch :-)
See all contact information on our wbsite at Tooloop Multimedia. or find us in the Projekt-Matrix channel: #caramel-crm:matrix.org
