opnform-host-nginx/UPDATED_RESTART_INSTRUCTION...

2.3 KiB

Updated Restart Instructions for OpnForm

Changes Made

  1. Removed health check from api-nginx - This was causing the "starting" status
  2. Fixed PHP-FPM health check - Changed to check process existence
  3. Made services accessible externally - Changed ports from localhost-only to all interfaces

Step-by-Step Restart Process

1. Stop ALL OpnForm Containers

In your Docker web interface:

  • Select ALL OpnForm containers
  • Click "Stop"
  • Wait for all to fully stop

2. Remove the api-nginx Container (Important!)

  • Select the opnform-api-nginx container
  • Click "Remove" or "Delete"
  • This ensures it recreates with the new configuration

3. Start Containers in Order

Start each container and wait for it to be ready before starting the next:

  1. opnform-db - Wait until "healthy"
  2. opnform-redis - Wait until "healthy"
  3. opnform-api - Wait until "healthy" (may take 90 seconds)
  4. opnform-api-nginx - Should show "running" (no health check now)
  5. opnform-api-worker - Wait until running
  6. opnform-api-scheduler - Wait until running
  7. opnform-client - Wait until "healthy"

4. Verify Everything Works

Check nginx is actually running:

Look at the logs for opnform-api-nginx. You should see:

Configuration complete; ready for start up

Test the services:

5. If api-nginx Still Shows Issues

Check if PHP-FPM is running in the API container:

  1. Go to the opnform-api container
  2. Check the logs - should show: fpm is running, pid 1
  3. If PHP-FPM isn't running, the API container needs to be restarted

6. Common Issues

Port already in use:

  • Make sure no other services are using ports 7654 or 7655
  • Check with: netstat -tlnp | grep -E '7654|7655' on the host

Cannot connect to API:

  • Ensure firewall allows ports 7654 and 7655
  • Try accessing locally first: curl http://localhost:7654/api/health

nginx won't start:

  • Check logs for configuration errors
  • Verify the api-nginx.conf file exists

Security Reminder

Services are now exposed on all network interfaces (0.0.0.0). For production:

  • Configure firewall rules to restrict access
  • Set up your host nginx with SSL as planned
  • Or change back to 127.0.0.1 after testing