Prerequisites
Before you begin, ensure you have the following installed:- PHP 8.2 or higher with extensions:
sqlite3,pdo,mbstring,xml,curl,zip,gd - Composer (PHP package manager)
- Node.js 18+ and npm
- Git
Installation steps
Run the setup script
Nguhöe EHR includes a convenient setup script that handles everything:This command will:
- Install PHP dependencies via
composer install - Copy
.env.exampleto.env - Generate application encryption key
- Run database migrations
- Install JavaScript dependencies via
npm install - Build frontend assets
What's happening behind the scenes?
What's happening behind the scenes?
The From
composer setup script runs these commands in sequence:composer.json:50-57Start the development server
Launch all development services with one command:This starts four concurrent processes:You should see output like:
- Laravel server on
http://localhost:8000 - Queue worker for background jobs
- Log viewer (Laravel Pail)
- Vite dev server for hot module replacement
The dev server uses
concurrently to run multiple processes. You’ll see color-coded output from each service.Create your first user
Open your browser to Then run:
http://localhost:8000 and click “Register” to create your first account.The first registered user will need to be manually assigned the admin role. In a new terminal:For development, you can also use database seeders to create test data. See the Installation guide for production user setup.
Default configuration
The quick start uses these default settings:| Setting | Value | Location |
|---|---|---|
| Database | SQLite (database/database.sqlite) | .env:23 |
| Queue | Database driver | .env:38 |
| Cache | Database | .env:40 |
| Session | Database | .env:30 |
| Log driver (development) | .env:50 | |
| App URL | http://localhost | .env:5 |
SQLite is perfect for development and small deployments. For production, see the Installation guide for MySQL or PostgreSQL setup.
Exploring the features
Patient management
Create your first patient record:- Navigate to Patients in the sidebar
- Click Add New Patient
- Fill in the patient information
- Save the record
- Personal information (name, ID, birth date, gender)
- Contact details (phone, email, address)
- Medical history (antecedents, allergies, chronic diseases)
- Current medications
- File attachments
Scheduling appointments
Book an appointment:- Go to Appointments
- Click Schedule Appointment
- Select patient and doctor
- Choose date and time
- Add reason for visit
- Confirm booking
Creating consultations
Consultations can only be created by users with the doctor or admin role.
- Navigate to Consultations
- Click New Consultation
- Select patient (optionally link to appointment)
- Record vital signs
- Document reason for visit and clinical findings
- Add diagnosis and treatment plan
- Save consultation
Generating prescriptions
Create a prescription from a consultation:- Open a consultation record
- Click Create Prescription
- Add medications with:
- Medication name
- Dosage
- Frequency
- Duration
- Add general instructions
- Save and generate PDF
Development workflow
Running tests
Nguhöe EHR uses Pest for testing:Code formatting
Format PHP code with Laravel Pint:Type checking
Check TypeScript types:Linting
Lint JavaScript/TypeScript:Troubleshooting
Port 8000 already in use
Port 8000 already in use
If port 8000 is already in use, you can specify a different port:Don’t forget to update
APP_URL in .env to match.Database file not found
Database file not found
If you see a database error, create the SQLite file manually:
Vite manifest error
Vite manifest error
If you see “Unable to locate file in Vite manifest”, rebuild assets:Or ensure
npm run dev is running in a separate terminal.Permission denied errors
Permission denied errors
Ensure proper permissions on storage and cache directories:
Composer dependencies fail
Composer dependencies fail
If Composer install fails, try:Note: Only use this for development if you can’t upgrade PHP immediately.
Next steps
Now that you have Nguhöe EHR running:Production installation
Deploy Nguhöe EHR to production with proper security and optimization
Configuration
Customize the system for your clinic’s needs
User management
Set up staff accounts and configure roles
Backup configuration
Configure automated backups for data protection