Skip to content

IntelliSOFT-Consulting/ig-docker-compose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kenya FHIR Implementation Guides Docker Setup

This Docker Compose setup provides a complete environment for running multiple Kenya FHIR Implementation Guides with nginx reverse proxy and SSL certificate management.

Services Included

  • kenya-core-fhir-ig - Kenya Core FHIR IG (accessible at igkenyacore.intellisoftkenya.com)
  • kps-fhir-ig - Kenya Patient Summary FHIR IG (accessible at igpatientsummary.intellisoftkenya.com)
  • eprescription-fhir-ig - Kenya ePrescription IG (accessible at igeprescriptions.intellisoftkenya.com)
  • laborders-fhir-ig - Kenya Lab Orders IG (accessible at iglborders.intellisoftkenya.com)
  • kenya-claims-fhir-ig - Kenya Claims FHIR IG (accessible at igeclaims.intellisoftkenya.com)
  • nginx - Reverse proxy with SSL termination

Prerequisites

  1. Ensure Docker and Docker Compose are installed
  2. Make sure the Dockerfile locations exist:
    • /opt/Kenya-core-FHIR-IG
    • /opt/Kenya-Patient-Summary-FHIR-IG
    • /opt/Kenya-ePrescription-IG
    • /opt/Kenya-LabOrder-IG

Setup Instructions

1. SSL Certificate Setup

Upload your wildcard SSL certificates to the ssl directory:

Required files:

  • ssl/star_intellisoftkenya_com.crt (certificate file)
  • ssl/star_intellisoftkenya_com.key (private key file)

Upload methods:

# Option 1: SCP upload
scp your-cert.crt root@45.79.116.94:/opt/ig-docker-compose/ssl/star_intellisoftkenya_com.crt
scp your-cert.key root@45.79.116.94:/opt/ig-docker-compose/ssl/star_intellisoftkenya_com.key

# Option 2: Direct copy to ssl/ directory
# Copy files directly to the ssl/ folder

Verify certificates:

# Run the SSL setup script to verify
./setup-ssl.sh

2. DNS Configuration

Ensure all subdomains are properly configured in your DNS:

  • igkenyacore.intellisoftkenya.com → Your server IP
  • igpatientsummary.intellisoftkenya.com → Your server IP
  • igeprescriptions.intellisoftkenya.com → Your server IP
  • iglborders.intellisoftkenya.com → Your server IP
  • igeclaims.intellisoftkenya.com → Your server IP

Update email in docker-compose.yml:

  • Edit docker-compose.yml and replace your-email@intellisoftkenya.com with your actual email address

2. Initial Setup and Deployment

With SSL certificates in place, start the services:

# Start all services
./start.sh

# Or manually start
docker-compose up -d

3. Verify Deployment

Check that all services are running:

# View service status
docker-compose ps

# Check nginx logs
docker-compose logs nginx

# Test SSL certificates
curl -I https://igkenyacore.intellisoftkenya.com

4. Running the Services

# Build and start all services
docker-compose up -d

# View logs
docker-compose logs -f

# Stop services
docker-compose down

# Rebuild specific service
docker-compose build kenya-core-fhir-ig
docker-compose up -d kenya-core-fhir-ig

Service Access

Once running, the services will be accessible at:

  • Kenya Core FHIR IG: https://igkenyacore.intellisoftkenya.com
  • Kenya Patient Summary: https://igpatientsummary.intellisoftkenya.com
  • Kenya ePrescription: https://igeprescriptions.intellisoftkenya.com
  • Kenya Lab Orders: https://iglborders.intellisoftkenya.com
  • Kenya Claims: https://igeclaims.intellisoftkenya.com

SSL Certificate Renewal

Since you're using pre-provided certificates, renewal depends on your certificate provider.

For manual renewal:

  1. Obtain new certificates from your provider
  2. Replace files in ssl/ directory:
    • ssl/star_intellisoftkenya_com.crt
    • ssl/star_intellisoftkenya_com.key
  3. Restart nginx: docker-compose restart nginx

For automated renewal: Set up a script to automatically fetch and deploy new certificates from your provider.

Troubleshooting

Common Issues:

  1. Build failures: Ensure Dockerfiles exist at specified paths
  2. SSL certificate issues: Check domain DNS settings and firewall
  3. Service not accessible: Check nginx configuration and container logs

Useful Commands:

# Check container status
docker-compose ps

# View specific service logs
docker-compose logs -f nginx
docker-compose logs -f kenya-core-fhir-ig

# Restart specific service
docker-compose restart nginx

# Shell into container
docker-compose exec nginx sh

Network Configuration

All services communicate through the fhir-network bridge network. Only nginx exposes ports to the host (80, 443).

Security Considerations

  • SSL/TLS encryption is enforced
  • Security headers are configured in nginx
  • Services are isolated in Docker network
  • Consider implementing authentication if needed

Customization

Adding New Services

  1. Add service definition to docker-compose.yml
  2. Add corresponding location block in nginx/conf.d/fhir-ig.conf
  3. Restart services

Custom nginx Configuration

Modify nginx/nginx.conf or add new files to nginx/conf.d/ for custom configurations.

About

FHIR IGs configs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages