Waiting for environment to be ready. It can take a few minutes

python3 run.py --logs

enketo_express_1 | -------------
enketo_express_1 |
enketo_express_1 | pm2 launched in no-daemon mode (you can add DEBUG="*" env variable to get more messages)
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: Launching in no daemon mode
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [PM2] Starting /srv/src/enketo_express/app.js in fork_mode (1 instance)
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: App [enketo:0] starting in -fork mode-
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: App [enketo:0] online
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [PM2] Done.
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: ┌─────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
enketo_express_1 | │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
enketo_express_1 | ├─────┼───────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
enketo_express_1 | │ 0 │ enketo │ default │ 2.5.6 │ fork │ 26 │ 0s │ 0 │ online │ 0% │ 29.7mb │ root │ disabled │
enketo_express_1 | └─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [–no-daemon] Continue to stream logs
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [–no-daemon] Exit on target PM2 exit pid=1
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [PM2] This PM2 is not UP TO DATE
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [PM2] Upgrade to version 4.5.4
enketo_express_1 | 14:25:01 PM2 | [PM2] This PM2 is not UP TO DATE
enketo_express_1 | 14:25:01 PM2 | [PM2] Upgrade to version 4.5.4
enketo_express_1 | 14:25:02 0|enketo | Worker 7 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:02 0|enketo | Worker 1 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:02 0|enketo | Worker 6 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 18 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 21 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 13 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 27 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 26 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 20 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 24 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 29 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 28 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 11 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 22 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 9 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 23 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 3 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 25 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 19 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 32 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 10 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 12 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 8 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 15 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 2 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 14 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 31 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 5 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 16 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 17 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 30 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 4 ready for duty at port 8005! (environment: production)

I have a lot of logs.

Can you do the python part?

  1. yes. I’ve modifiy a file.
  2. python3 run.py --logs

root@kobo:/home/kobo/kobo-install# python3 run.py --logs
Attaching to kobofe_kobocat_1, kobofe_kpi_1, kobofe_nginx_1, kobofe_enketo_express_1
enketo_express_1 |
enketo_express_1 | -------------
enketo_express_1 |
enketo_express_1 | /\\\\\\_/\\/\\/\\\\_
enketo_express_1 | _/\/////////\_/\\\
/\\\/\///////\_
enketo_express_1 | /\_
/\_/\//\_/\//\_/////\_
enketo_express_1 | _/\\\\\\/
/\\///\/\/
/\_
/\/
enketo_express_1 | /\/////////
/\_
///\/
/\_/\//_____
enketo_express_1 | /\_
/\_////\_/\//_____
enketo_express_1 | /\_
/\_/\_/\/________
enketo_express_1 | /\_/\_/\_/\\\\\\\_
enketo_express_1 | _////////////////////////
enketo_express_1 |
enketo_express_1 |
enketo_express_1 | Runtime Edition
enketo_express_1 |
enketo_express_1 | PM2 is a Production Process Manager for Node.js applications
enketo_express_1 | with a built-in Load Balancer.
enketo_express_1 |
enketo_express_1 | Start and Daemonize any application:
enketo_express_1 | $ pm2 start app.js
enketo_express_1 |
enketo_express_1 | Load Balance 4 instances of api.js:
enketo_express_1 | $ pm2 start api.js -i 4
enketo_express_1 |
enketo_express_1 | Monitor in production:
enketo_express_1 | $ pm2 monitor
enketo_express_1 |
enketo_express_1 | Make pm2 auto-boot at server restart:
enketo_express_1 | $ pm2 startup
enketo_express_1 |
enketo_express_1 | To go further checkout:
enketo_express_1 | http://pm2.io/
enketo_express_1 |
enketo_express_1 |
enketo_express_1 | -------------
enketo_express_1 |
enketo_express_1 | pm2 launched in no-daemon mode (you can add DEBUG="*" env variable to get more messages)
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: Launching in no daemon mode
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [PM2] Starting /srv/src/enketo_express/app.js in fork_mode (1 instance)
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: App [enketo:0] starting in -fork mode-
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: App [enketo:0] online
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [PM2] Done.
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: ┌─────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
enketo_express_1 | │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
enketo_express_1 | ├─────┼───────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
enketo_express_1 | │ 0 │ enketo │ default │ 2.5.6 │ fork │ 26 │ 0s │ 0 │ online │ 0% │ 29.7mb │ root │ disabled │
enketo_express_1 | └─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [–no-daemon] Continue to stream logs
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [–no-daemon] Exit on target PM2 exit pid=1
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [PM2] This PM2 is not UP TO DATE
enketo_express_1 | 2021-02-05T14:25:01: PM2 log: [PM2] Upgrade to version 4.5.4
enketo_express_1 | 14:25:01 PM2 | [PM2] This PM2 is not UP TO DATE
enketo_express_1 | 14:25:01 PM2 | [PM2] Upgrade to version 4.5.4
enketo_express_1 | 14:25:02 0|enketo | Worker 7 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:02 0|enketo | Worker 1 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:02 0|enketo | Worker 6 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 18 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 21 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 13 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 27 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 26 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 20 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 24 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 29 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 28 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 11 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 22 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 9 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 23 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 3 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 25 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 19 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 32 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 10 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 12 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 8 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 15 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 2 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 14 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 31 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 5 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 16 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 17 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 30 ready for duty at port 8005! (environment: production)
enketo_express_1 | 14:25:03 0|enketo | Worker 4 ready for duty at port 8005! (environment: production)
nginx_1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
nginx_1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
nginx_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
nginx_1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
nginx_1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
nginx_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
nginx_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-init-kobo-nginx.sh
nginx_1 | Creating includes directory
nginx_1 | Overwriting default nginx configuration
nginx_1 | Clearing out any default configurations
nginx_1 | Proxying to kpi through uWSGI.
nginx_1 | Proxying to kobocat through uWSGI.
nginx_1 | /docker-entrypoint.sh: Configuration complete; ready for start up
kpi_1 | KoBoForm initializing…
kpi_1 | Waiting for container mongo.
kpi_1 | 2021/02/05 14:25:03 Waiting for: tcp://mongo.xxxxxxx.private:27017
kpi_1 | 2021/02/05 14:25:03 Connected to tcp://mongo.xxxxxxx.private:27017
kpi_1 | Container mongo up.
kpi_1 | Waiting for container postgres.
kpi_1 | 2021/02/05 14:25:03 Waiting for: tcp://postgres.xxxxxxx.private:5432
kpi_1 | 2021/02/05 14:25:03 Connected to tcp://postgres.xxxxxxx.private:5432
kpi_1 | Container postgres up.
kpi_1 | Waiting for Postgres service.
kpi_1 | postgres.xxxxxxx.private:5432 - accepting connections
kpi_1 | Postgres service running; ensuring koboform database exists and has PostGIS extensions…
kpi_1 | ERROR: database “koboform” already exists
kpi_1 | You are now connected to database “koboform” as user “kobo”.
kpi_1 | NOTICE: extension “postgis” already exists, skipping
kpi_1 | CREATE EXTENSION
kpi_1 | NOTICE: extension “postgis_topology” already exists, skipping
kpi_1 | CREATE EXTENSION
kpi_1 | NOTICE: extension “fuzzystrmatch” already exists, skipping
kpi_1 | CREATE EXTENSION
kpi_1 | NOTICE: extension “postgis_tiger_geocoder” already exists, skipping
kpi_1 | CREATE EXTENSION
kpi_1 | Postgres database koboform ready for use!
kpi_1 | Running migrations…
kpi_1 | Operations to perform:
kpi_1 | Apply all migrations: admin, auth, authtoken, contenttypes, database, django_celery_beat, django_digest, external_integrations, help, hook, hub, kpi, oauth2_provider, registration, reversion, sessions, taggit
kpi_1 | Running migrations:
kpi_1 | No migrations to apply.
kpi_1 | Your models have changes that are not yet reflected in a migration, and so won’t be applied.
kpi_1 | Run ‘manage.py makemigrations’ to make new migrations, and then re-run ‘manage.py migrate’ to apply them.
kpi_1 | Creating superuser…
kpi_1 | User already exists.
kpi_1 | Copying static files to nginx volume…
kpi_1 | Cleaning up Celery PIDs…
kpi_1 | KoBoForm initialization completed.
kpi_1 | Running kpi container with uWSGI application server.
kpi_1 | [uWSGI] getting INI configuration from /srv/src/kpi/uwsgi.ini
kobocat_1 | *** Running /etc/my_init.d/00_regen_ssh_host_keys.sh…
kobocat_1 | *** Running /etc/my_init.d/01_wait_for_mongo.bash…
kobocat_1 | Waiting for container mongo.
kobocat_1 | 2021/02/05 14:25:01 Waiting for host: tcp://mongo.xxxxxxx.private:27017
kobocat_1 | 2021/02/05 14:25:01 Connected to tcp://mongo.xxxxxxx.private:27017
kobocat_1 | Container mongo up.
kobocat_1 | *** Running /etc/my_init.d/02_wait_for_postgres.bash…
kobocat_1 | Waiting for container postgres.
kobocat_1 | 2021/02/05 14:25:01 Waiting for host: tcp://postgres.xxxxxxx.private:5432
kobocat_1 | 2021/02/05 14:25:01 Connected to tcp://postgres.xxxxxxx.private:5432
kobocat_1 | Container postgres up.
kobocat_1 | Waiting for Postgres service.
kobocat_1 | postgres.xxxxxxx.private:5432 - accepting connections
kobocat_1 | Postgres service running; ensuring kobocat database exists and has PostGIS extensions…
kobocat_1 | ERROR: database “kobocat” already exists
kobocat_1 | You are now connected to database “kobocat” as user “kobo”.
kobocat_1 | CREATE EXTENSION
kobocat_1 | NOTICE: extension “postgis” already exists, skipping
kobocat_1 | NOTICE: extension “postgis_topology” already exists, skipping
kobocat_1 | CREATE EXTENSION
kobocat_1 | NOTICE: extension “fuzzystrmatch” already exists, skipping
kobocat_1 | CREATE EXTENSION
kobocat_1 | NOTICE: extension “postgis_tiger_geocoder” already exists, skipping
kobocat_1 | CREATE EXTENSION
kobocat_1 | Postgres database kobocat ready for use!
kobocat_1 | *** Running /etc/my_init.d/03_wait_for_kpi.bash…
kobocat_1 | Waiting for container kpi.
kobocat_1 | 2021/02/05 14:25:01 Waiting for host: tcp://kpi:8000
kobocat_1 | 2021/02/05 14:25:11 Connected to tcp://kpi:8000
kobocat_1 | Container kpi up.
kobocat_1 | Waiting for kpi web service.
kobocat_1 | kpi web service ready.
kobocat_1 | *** Running /etc/my_init.d/10_init_kobocat.bash…
kobocat_1 | KoBoCAT intializing…
kobocat_1 | Synchronizing database.
kobocat_1 | Your environment is:“onadata.settings.kc_environ”
kobocat_1 | Operations to perform:
kobocat_1 | Synchronize unmigrated apps: gis, staticfiles, admindocs, messages, django_extensions, readonly, humanize, export, django_nose, rest_framework, libs, corsheaders, survey_report, sms_support, pure_pagination
kobocat_1 | Apply all migrations: authtoken, oauth2_provider, reversion, django_celery_beat, admin, guardian, sessions, sites, auth, viewer, django_digest, contenttypes, api, taggit, registration, logger, main, restservice
kobocat_1 | Synchronizing apps without migrations:
kobocat_1 | Creating tables…
kobocat_1 | Running deferred SQL…
kobocat_1 | Installing custom SQL…
kobocat_1 | Running migrations:
kobocat_1 | No migrations to apply.
kobocat_1 | Your models have changes that are not yet reflected in a migration, and so won’t be applied.
kobocat_1 | Run ‘manage.py makemigrations’ to make new migrations, and then re-run ‘manage.py migrate’ to apply them.
kobocat_1 | Running migrations.
kobocat_1 | Your environment is:“onadata.settings.kc_environ”
kobocat_1 | Operations to perform:
kobocat_1 | Synchronize unmigrated apps: gis, staticfiles, admindocs, messages, django_extensions, readonly, humanize, export, django_nose, rest_framework, libs, corsheaders, survey_report, sms_support, pure_pagination
kobocat_1 | Apply all migrations: authtoken, oauth2_provider, reversion, django_celery_beat, admin, guardian, sessions, sites, auth, viewer, django_digest, contenttypes, api, taggit, registration, logger, main, restservice
kobocat_1 | Synchronizing apps without migrations:
kobocat_1 | Creating tables…
kobocat_1 | Running deferred SQL…
kobocat_1 | Installing custom SQL…
kobocat_1 | Running migrations:
kobocat_1 | No migrations to apply.
kobocat_1 | Your models have changes that are not yet reflected in a migration, and so won’t be applied.
kobocat_1 | Run ‘manage.py makemigrations’ to make new migrations, and then re-run ‘manage.py migrate’ to apply them.
kobocat_1 | KoBoCat tmp clean-up cron installed
kobocat_1 | KoBoCAT media automatic backups disabled.
kobocat_1 | KoBoCAT initialization complete.
kobocat_1 | *** Running /etc/my_init.d/10_syslog-ng.init…
kobocat_1 | Feb 5 14:25:25 kobocat syslog-ng[156]: syslog-ng starting up; version=‘3.5.6’
kobocat_1 | Feb 5 14:25:26 kobocat syslog-ng[156]: EOF on control channel, closing connection;
kobocat_1 | *** Running /etc/my_init.d/11_sync_static.bash…
kobocat_1 | Collecting static files…
kobocat_1 | Your environment is:“onadata.settings.kc_environ”
kobocat_1 | Done
kobocat_1 | Resetting ownership of media directory…
kobocat_1 | Done.
kobocat_1 | %%%%%%% NOTICE %%%%%%%
kobocat_1 | % To avoid long delays, we no longer reset ownership recursively
kobocat_1 | % every time this container starts. If you have trouble with
kobocat_1 | % permissions, please run the following command inside the
kobocat_1 | % kobocat container:
kobocat_1 | % chown -R “wsgi” “/srv/src/kobocat”
kobocat_1 | %%%%%%%%%%%%%%%%%%%%%%
kobocat_1 | Syncing to nginx folder…
kobocat_1 | Done
kobocat_1 | *** Running /etc/rc.local…
kobocat_1 | *** Booting runit daemon…
kobocat_1 | *** Runit started as PID 208
kobocat_1 | Feb 5 14:25:29 kobocat cron[217]: (CRON) INFO (pidfile fd = 3)
kobocat_1 | Feb 5 14:25:29 kobocat cron[217]: (CRON) INFO (Running @reboot jobs)
kobocat_1 | Running kobocat container with uWSGI application server.
kobocat_1 | *** Starting uWSGI 2.0.18 (64bit) on [Fri Feb 5 14:25:29 2021] ***
kobocat_1 | compiled with version: 5.4.0 20160609 on 11 June 2019 18:32:31
kobocat_1 | os: Linux-4.15.0-122-generic #124-Ubuntu SMP Thu Oct 15 13:03:05 UTC 2020
kobocat_1 | nodename: kobocat
kobocat_1 | machine: x86_64
kobocat_1 | clock source: unix
kobocat_1 | pcre jit disabled
kobocat_1 | detected number of CPU cores: 32
kobocat_1 | current working directory: /etc/service/uwsgi_wrong_port_warning
kobocat_1 | detected binary path: /usr/local/bin/uwsgi
kobocat_1 | setuid() to 1000
kobocat_1 | *** WARNING: you are running uWSGI without its master process manager ***
kobocat_1 | your memory page size is 4096 bytes
kobocat_1 | detected max file descriptor number: 1048576
kobocat_1 | lock engine: pthread robust mutexes
kobocat_1 | thunder lock: disabled (you can enable it with --thunder-lock)
kobocat_1 | uwsgi socket 0 bound to TCP address :8000 fd 3
kobocat_1 | Python version: 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609]
kobocat_1 | *** Python threads support is disabled. You can enable it with --enable-threads ***
kobocat_1 | Python main interpreter initialized at 0x12c0fc0
kobocat_1 | your server socket listen backlog is limited to 100 connections
kobocat_1 | your mercy for graceful operations on workers is 60 seconds
kobocat_1 | mapped 72920 bytes (71 KB) for 1 cores
kobocat_1 | *** Operational MODE: single process ***
kobocat_1 | WSGI app 0 (mountpoint=’’) ready in 0 seconds on interpreter 0x12c0fc0 pid: 218 (default app)
kobocat_1 | *** uWSGI is running in multiple interpreter mode ***
kobocat_1 | spawned uWSGI worker 1 (and the only) (pid: 218, cores: 1)
kobocat_1 | [uWSGI] getting INI configuration from /srv/src/kobocat/docker/kobocat.ini
kobocat_1 | Feb 5 14:50:01 kobocat CRON[343]: (root) CMD (find /tmp/ -mmin +60 -print -delete >/dev/null 2>&1)
kobocat_1 | Feb 5 15:17:01 kobocat CRON[346]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)

I need the output of ./run.py --info , not ./run.py --logs.
Your app starts successfully. Something is wrong with your configuration.

1 Like

Sorry

root@kobo:/home/kobo/kobo-install# ./run.py --info
Date: Fri, 05 Feb 2021 15:50:20 GMT
Server: Apache/2.4.29 (Ubuntu)
Content-Length: 452
Content-Type: text/html; charset=iso-8859-1

╔════════════════════════════════════════════════════════════════════╗
║ ║
║ KoBoToolbox could not start! ║
║ Please try python3 run.py --logs to see the logs. ║
║ ║
╚════════════════════════════════════════════════════════════════════╝
root@kobo:/home/kobo/kobo-install#

Is koboml.xxxx.com the domain name for KPI?
Your proxy must use the same domains you saved in kobo-install configuration.

1 Like

Yes it the same.

Where do you want to install?
[/home/kobo/kobo-docker]:
Please confirm path [/home/kobo/kobo-docker]
1) Yes
2) No
[1]:
Do you want to see advanced options?
1) Yes
2) No
[2]:
What kind of installation do you need?
1) On your workstation
2) On a server
[2]:
Public domain name? [xxxxxx.com]:
KPI sub domain? [koboml]:
KoBoCat sub domain? [kc]:
Enketo Express sub domain name? [ee]:
Do you want to use HTTPS?
1) Yes
2) No
[1]:
╔════════════════════════════════════════════════════════════════════╗
║ ║
║ Please note that certificates must be installed on a reverse-proxy ║
║ or a load balancer.kobo-install can install one, if needed. ║
║ ║
╚════════════════════════════════════════════════════════════════════╝
Auto-install HTTPS certificates with Let’s Encrypt?
1) Yes
2) No - Use my own reverse-proxy/load-balancer
[2]:
Internal port used by reverse proxy is 8080.

Can you try curl -I -H 'Host: komoml.xxxx.com' -H 'X-Forwarded-Proto: https' http://127.0.0.1/service_health/ ?

What does it say?

1 Like

I had 8080 port because ans NGINX use this port

root@kobo:/home/# curl -I -H ‘Host: koboml.xxxx.com’ -H ‘X-Forwarded-Proto: https’ http://127.0.0.1:8080/service_health/
HTTP/1.1 200 OK
Server: nginx/1.19.6
Date: Fri, 05 Feb 2021 16:19:52 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 331
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
Vary: Accept-Language, Cookie, Origin
Content-Language: en

I had ```
ProxyPreserveHost on

After this have:

root@kobo:/home/scoulibaly# curl -I https://koboml.orangemali.com/
HTTP/1.1 302 Found
Date: Fri, 05 Feb 2021 16:48:32 GMT
Server: nginx/1.19.6
Content-Type: text/html; charset=utf-8
Location: /accounts/login/?next=/
X-Frame-Options: SAMEORIGIN
Vary: Accept-Language,Cookie,Origin
Content-Language: en
Cache-Control: max-age=0, no-cache, no-store, must-revalidate
Pragma: no-cache

It seems that everything works as expected…

If you try in your browser: https://koboml.xxxx.com/service_health/

Can you also try the curl command without -I?

curl -H ‘Host: [koboml.xxxx.com](http://koboml.xxxx.com/)’ -H ‘X-Forwarded-Proto: https’ http://127.0.0.1:8080/service_health/

1 Like

OK KPI

Mongo: OK in 0.0204 seconds
Postgres: OK in 0.0126 seconds
Enketo [http://ee.orangemali.internal]: OK in 0.989 seconds
KoBoCAT [http://kc.orangemali.internal]: OK in 0.0246 seconds

----BEGIN KOBOCAT RESPONSE----
OK

Mongo: OK in 0.00214 seconds
Postgres: OK in 0.00547 seconds

---- END KOBOCAT RESPONSE ----

So everything works as expected now.

1 Like

Yes,
Thank you very much.
But if I try to open it doesn’t work

Hello, I’m trying to install using kobo-install but it always get crashed when starting the kobotoolbox. I’m using normal installation with workstation and advanced options for dev mode. I’m trying to make some changes in the kpi but I can’t even install in the normal way.

When I try using workstation without advanced options it remains every time in wait another 600 seconds and the mongo container keeps restarting but not working.

Thank you

Hello @SantiTamariz ,

Can you provide more details please? The logs, the version of docker and compose, the OS where you’ve installed kobo-install and obviously, the version of kobo-install

2 Likes

Hello @nolive ,

Could this problem be due to the new MacOs software update.
I’m using the last kobo-install code from the GitHub

Thank you,

This is what I get when I try to use the advanced options with developer mode for the workstation installation.

[+] Running 1/0
⠿ kobomaintenance Warning: No resource found to remove 0.0s
[+] Running 5/5
⠿ Container kobofe-kobocat-1 Removed 2.9ss
⠿ Container kobofe-nginx-1 Removed 0.3ss
⠿ Container kobofe-kpi-1 Removed 2.5ss
⠿ Container kobofe-enketo_express-1 Removed 10.4ss
⠿ Network kobofe_kobo-fe-network Removed 0.2ss
[+] Running 5/5
⠿ Container kobobe-redis_cache-1 Removed 1.0ss
⠿ Container kobobe-mongo-1 Removed 0.2ss
⠿ Container kobobe-postgres-1 Removed 1.6ss
⠿ Container kobobe-redis_main-1 Removed 1.5ss
⠿ Network kobobe_kobo-be-network Removed 0.1ss
Launching environment
[+] Running 5/5
⠿ Network kobobe_kobo-be-network Created 0.1ss
⠿ Container kobobe-redis_cache-1 Started 3.2ss
⠿ Container kobobe-postgres-1 Started 3.3ss
⠿ Container kobobe-mongo-1 Started 3.2ss
⠿ Container kobobe-redis_main-1 Started 1.8ss
Waiting for PostgreSQL database to be up & running…
WARN[0000] network kobo-be-network: network.external.name is deprecated in favor of network.name
[+] Running 1/1
⠿ Network kobofe_kobo-fe-network Created 0.1ss
[+] Running 0/1
⠿ kpi Error 3.6s5s

Hello @SantiTamariz,

In Docker Desktop, be sure to uncheck “Use Docker compose v2” as kobo-install is not yet compatible with it.

I’m using latest version of macOS (Monterey) and a latest version of Docker Desktop (4.5) and it’s working.

Are you using an Intel chip or an Apple M1 chip?

1 Like

I have just uncheck it, I will say something to you after restarting it
And I’m using intel chip on mi Mac