A comprehensive ERP (Enterprise Resource Planning) solution for NethServer 8, powered by ERPNext - the world's best 100% open source ERP software.
- Overview
- Features
- Installation
- Configuration
- Available ERPNext Modules
- Management
- Advanced Usage
- Backup & Restore
- Troubleshooting
- Development
- Contributing
- License
NS8 ERPNext is a containerized NethServer 8 application that provides a complete business management solution. Built on the robust Frappe framework, ERPNext offers modules for accounting, inventory management, CRM, human resources, manufacturing, and much more.
The module consists of several interconnected services:
- Frontend: Nginx web server serving the ERPNext web interface
- Backend: Frappe/ERPNext application server
- Database: MariaDB for data persistence
- Cache: Redis for caching and session management
- Queue System: Background job processing with Redis queues
- WebSocket: Real-time communication support
- Scheduler: Automated task execution
- π’ Complete ERP Solution: Accounting, inventory, CRM, HR, manufacturing, and more
- π SSL/TLS Support: Automatic Let's Encrypt certificate generation
- π Multi-language Support: Available in German, English, Spanish, and Portuguese
- π Custom Module Selection: Choose which ERPNext modules to install
- π§ Easy Configuration: Web-based setup through NethServer UI
- π± Responsive Design: Mobile-friendly interface
- π High Performance: Optimized container architecture
- πΎ Backup Integration: Built-in backup and restore functionality
- NethServer 8 cluster
- Domain name pointing to your server
- Sufficient resources (recommended: 4GB RAM, 2 CPU cores)
add-module ghcr.io/geniusdynamics/erpnext:latest 1The output will return the instance name:
{
"module_id": "erpnext1",
"image_name": "erpnext",
"image_url": "ghcr.io/geniusdynamics/erpnext:latest"
}Configure your ERPNext instance using the NethServer web interface or API:
- Navigate to Applications > ERPNext
- Click Settings
- Configure the following:
- Hostname (FQDN): Your domain name (e.g.,
erp.company.com) - Let's Encrypt Certificate: Enable for automatic SSL
- Force HTTPS: Redirect HTTP to HTTPS
- ERPNext Modules: Select modules to install
- Hostname (FQDN): Your domain name (e.g.,
api-cli run configure-module --agent module/erpnext1 --data - <<EOF
{
"host": "erp.company.com",
"http2https": true,
"lets_encrypt": true,
"erpSelectedModules": ["erpnext", "hrms"]
}
EOF| Parameter | Type | Description | Default |
|---|---|---|---|
host |
string | Fully qualified domain name | Required |
http2https |
boolean | Enable HTTP to HTTPS redirection | false |
lets_encrypt |
boolean | Enable Let's Encrypt certificate | false |
erpSelectedModules |
array | List of ERPNext modules to install | [] |
The following modules can be selected during configuration:
- ERPNext (
erpnext) - Core ERP functionality - HRMS (
hrms) - Human Resource Management System
- Education (
education) - Educational institution management - Employee Self Service (
employee_self_service) - Employee portal - Expenses (
erpnext_expenses) - Expense management - Payments (
payments) - Payment processing
- Paystack (
frappe_paystack) - Paystack payment gateway - M-Pesa Payments (
frappe_mpsa_payments) - Mobile money integration - Kenya Compliance (
kenya_compliance) - Kenyan tax compliance - WhatsApp Integration (
whatsapp) - WhatsApp business integration
api-cli run get-configuration --agent module/erpnext1api-cli run update-module --data '{
"module_url": "ghcr.io/geniusdynamics/erpnext:latest",
"instances": ["erpnext1"],
"force": true
}'After configuration, access your ERPNext instance at:
https://your-domain.com
Default administrator credentials will be provided during the initial setup process.
ERPNext provides extensive command-line tools for management. Access them via:
-
SSH into the module container:
ssh erpnext1@localhost
-
Execute bench commands:
podman exec backend bench list-apps podman exec backend bench migrate podman exec backend bench update podman exec backend bench backup
| Command | Description |
|---|---|
bench list-apps |
List installed applications |
bench migrate |
Run database migrations |
bench update |
Update the system |
bench backup |
Create system backup |
bench restore |
Restore from backup |
bench new-site |
Create new site |
For complete command reference, see the Frappe Bench Documentation.
The module uses several environment variables stored in /home/erpnext1/.config/state/:
TRAEFIK_HOST- Configured hostnameTRAEFIK_HTTP2HTTPS- HTTPS redirect settingTRAEFIK_LETS_ENCRYPT- Let's Encrypt statusTCP_PORT- Assigned TCP portERP_NEXT_MODULES- Selected modules
The module integrates with NethServer's backup system. Backups include:
- ERPNext database
- File attachments
- Configuration files
- Custom applications
Create a manual backup:
api-cli run app-backup --agent module/erpnext1api-cli run restore-backup --agent module/erpnext1 --data '{
"repository": "backup-repo-name",
"path": "backup-path"
}'Enable debug mode for troubleshooting:
-
Check module environment:
runagent -m erpnext1 env
-
Enter debug shell:
runagent -m erpnext1
-
View container logs:
podman logs backend podman logs frontend podman logs mariadb-app
- Check container status:
podman ps - Verify port availability:
netstat -tlnp | grep ${TCP_PORT} - Review logs:
journalctl --user -u erp-next.service
- Verify MariaDB service:
systemctl --user status mariadb-app.service - Check database logs:
podman logs mariadb-app
- Verify DNS resolution
- Check Let's Encrypt rate limits
- Review Traefik logs
Control individual services:
# Start/stop main service
systemctl --user start erp-next.service
systemctl --user stop erp-next.service
# Restart specific components
systemctl --user restart backend.service
systemctl --user restart frontend.service
systemctl --user restart mariadb-app.serviceTo completely remove the ERPNext instance:
remove-module --no-preserve erpnext1Run the test suite:
./test-module.sh <NODE_ADDR> ghcr.io/geniusdynamics/erpnext:latestTests are implemented using Robot Framework and validate:
- Module installation
- Configuration
- Service startup
- Web interface accessibility
- Basic functionality
- Node.js (LTS version)
- Python 3
- Buildah/Podman
- NethServer 8 development environment
# Build container images
./build-images.sh
# Build UI components
cd ui
yarn install
yarn buildThe module includes a Vue.js-based web interface. For UI development:
cd ui
yarn install
yarn serveSee UI Development Guide for detailed instructions.
ns8-erpnext/
βββ imageroot/ # Module runtime files
β βββ actions/ # API actions
β βββ bin/ # Executable scripts
β βββ systemd/ # Service definitions
β βββ events/ # Event handlers
βββ ui/ # Web interface
β βββ src/ # Vue.js components
β βββ public/ # Static assets
βββ tests/ # Test suites
βββ build-images.sh # Build script
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Ensure all tests pass
- Submit a pull request
The module supports multiple languages through Weblate:
- π¬π§ English (default)
- π©πͺ German
- πͺπΈ Spanish
- π΅πΉ Portuguese
To contribute translations, visit the Weblate project page.
This project is licensed under the GPL-3.0 License.
- Community Support: NethServer Community
- Documentation: NethServer Docs
- Bug Reports: GitHub Issues
ERPNext β’ NethServer 8 β’ Open Source ERP