FreelanceERP (ferp) is a minimalist ERP for freelancers.
A lightweight Node.js application with an Express backend and a plain JavaScript frontend.
It manages clients, invoices, and payments with an embedded SQLite database — no external dependencies required.
Docker image: zabradocker/ferp:1.0.0
Goal: simplicity, portability, autonomy.
Designed as a lightweight alternative to tools like Akaunting or InvoiceShelf — ideal for independent IT freelancers who prefer control and speed over complexity.
You can quickly test the app using the published Docker image:
docker run --name ferp -dit -p 3001:3001 zabradocker/ferp:1.0.0Or Or use the provided docker-compose.yaml:
docker-compose up -dThen access the app at http://localhost:3001
Optional environment variables (with defaults):
PORT=3001
DB_DIR=/opt/data
JSON_SIZE_LIMIT=16mb
#
ERP_AUTH_USER=admin
ERP_AUTH_PASSWORD=admin123
ERP_AUTH_EMAIL=admin@freelance-erp.local
#
SESSION_SECRET=change-this-secret-key-in-production
NODE_ENV= # production or devIf you expose the app over the internet, consider using certificate-based authentication (mTLS) to restrict access to trusted clients only.
If you’re using Traefik as a reverse proxy, enable it easily with: clientAuthType: RequireAndVerifyClientCert
Run the app locally from the src directory.
-
Install Node.js >= 18
-
From the project directory:
# for development
npm install
# for production
npm install --omit=dev- (Optional) Create a .env file (defaults shown):
PORT=3001
DB_DIR=./
JSON_SIZE_LIMIT=16mb
#
ERP_AUTH_USER=admin
ERP_AUTH_PASSWORD=admin123
ERP_AUTH_EMAIL=admin@freelance-erp.local
#
SESSION_SECRET=change-this-secret-key-in-production
NODE_ENV= # production or dev
- Run the app
npm run start
