OS. Ubuntu 18.04,
Python : 3.8
Trying to install kobo on my own server with kobo-install.
All goes ok until its waiting for environment to be ready. It can take a few minutes.
Tried multiple times but its stuck there.
Checked my logs with : python3 run.py --logs . No issue there.
kobocat_1 | KoBoCAT intializing...
kobocat_1 | Waiting for container `mongo`.
kobocat_1 | wait-for-it: waiting 40 seconds for mongo.103.175.192.63.sslip.private:27017
kobocat_1 | wait-for-it: mongo.103.175.192.63.sslip.private:27017 is available after 0 seconds
kobocat_1 | Container `mongo` up.
kobocat_1 | Waiting for container `postgres`.
kobocat_1 | wait-for-it: waiting 20 seconds for postgres.103.175.192.63.sslip.private:5432
kobocat_1 | wait-for-it: postgres.103.175.192.63.sslip.private:5432 is available after 0 seconds
kobocat_1 | Container `postgres` up.
kobocat_1 | Waiting for Postgres service.
kobocat_1 | postgres.103.175.192.63.sslip.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 | 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 | Postgres database kobocat ready for use!
kobocat_1 | Running migrations...
kobocat_1 | Your environment is:"onadata.settings.prod"
kobocat_1 | Operations to perform:
kobocat_1 | Apply all migrations: admin, api, auth, authtoken, contenttypes, django_celery_beat, django_digest, guardian, logger, main, oauth2_provider, restservice, reversion, sessions, sites, taggit, viewer
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 | Setting up cron tasks...
kobocat_1 | KoBoCAT tmp clean-up cron installed
kobocat_1 | KoBoCAT media automatic backups disabled.
kobocat_1 | Collecting static files...
kobocat_1 | Your environment is:"onadata.settings.prod"
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 "kobo" "/srv/src/kobocat"
kobocat_1 | %%%%%%%%%%%%%%%%%%%%%%
kobocat_1 | Syncing to nginx folder...
kobocat_1 | Done
kobocat_1 | Cleaning up Celery PIDs...
kobocat_1 | KoBoCAT initialization complete.
kobocat_1 | Running `KoBoCAT` container with uWSGI application server.
kobocat_1 | *** Starting uWSGI 2.0.19.1 (64bit) on [Mon May 30 10:35:51 2022] ***
kobocat_1 | compiled with version: 10.2.1 20210110 on 28 April 2022 14:47:59
kobocat_1 | os: Linux-4.15.0-180-generic #189-Ubuntu SMP Wed May 18 14:13:57 UTC 2022
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: 4
kobocat_1 | current working directory: /etc/service/uwsgi_wrong_port_warning
kobocat_1 | detected binary path: /opt/venv/bin/uwsgi
kobocat_1 | setgid() to 1000
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: 3.8.13 (default, Apr 20 2022, 02:14:10) [GCC 10.2.1 20210110]
kobocat_1 | [uWSGI] getting INI configuration from /srv/src/kobocat/docker/kobocat.ini
kobocat_1 | *** Python threads support is disabled. You can enable it with --enable-threads ***
kobocat_1 | Python main interpreter initialized at 0x561eadacf5e0
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 0x561eadacf5e0 pid: 94 (default app)
kobocat_1 | *** uWSGI is running in multiple interpreter mode ***
kobocat_1 | spawned uWSGI worker 1 (and the only) (pid: 94, cores: 1)
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 `kobocat` through uWSGI.
nginx_1 | Proxying to `kpi` through uWSGI.
nginx_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
nginx_1 | /docker-entrypoint.sh: Configuration complete; ready for start up
kpi_1 | KoBoForm initializing...
kpi_1 | Waiting for container `mongo`.
kpi_1 | wait-for-it: waiting 40 seconds for mongo.103.175.192.63.sslip.private:27017
kpi_1 | wait-for-it: mongo.103.175.192.63.sslip.private:27017 is available after 0 seconds
kpi_1 | Container `mongo` up.
kpi_1 | Waiting for container `postgres`.
kpi_1 | wait-for-it: waiting 20 seconds for postgres.103.175.192.63.sslip.private:5432
kpi_1 | wait-for-it: postgres.103.175.192.63.sslip.private:5432 is available after 0 seconds
kpi_1 | Container `postgres` up.
kpi_1 | Waiting for Postgres service.
kpi_1 | postgres.103.175.192.63.sslip.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, mfa, oauth2_provider, registration, reversion, sessions, taggit, trench
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 | Restore permissions on Celery logs folder
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
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 | 2022-05-30T10:35:41: PM2 log: Launching in no daemon mode
enketo_express_1 | 2022-05-30T10:35:41: PM2 log: [PM2] Starting /srv/src/enketo_express/app.js in fork_mode (1 instance)
enketo_express_1 | 2022-05-30T10:35:41: PM2 log: App [enketo:0] starting in -fork mode-
enketo_express_1 | 2022-05-30T10:35:41: PM2 log: App [enketo:0] online
enketo_express_1 | 2022-05-30T10:35:41: PM2 log: [PM2] Done.
enketo_express_1 | 2022-05-30T10:35:41: 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 │ 3.1.0 │ fork │ 22 │ 0s │ 0 │ online │ 0% │ 29.8mb │ root │ disabled │
enketo_express_1 | └─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
enketo_express_1 | 2022-05-30T10:35:41: PM2 log: [--no-daemon] Continue to stream logs
enketo_express_1 | 2022-05-30T10:35:41: PM2 log: [--no-daemon] Exit on target PM2 exit pid=1
enketo_express_1 | 10:35:42 0|enketo | Worker 1 ready for duty at port 8005! (environment: production)
enketo_express_1 | 10:35:43 0|enketo | Worker 3 ready for duty at port 8005! (environment: production)
enketo_express_1 | 10:35:43 0|enketo | Worker 4 ready for duty at port 8005! (environment: production)
enketo_express_1 | 10:35:43 0|enketo | Worker 2 ready for duty at port 8005! (environment: production)
python3 run.py
Network kobofe_kobo-fe-network is external, skipping
Removing network kobomaintenance_kobo-maintenance-network
WARNING: Network kobomaintenance_kobo-maintenance-network not found.
Stopping nginx-certbot_nginx_ssl_proxy_1 ... done
Removing nginx-certbot_nginx_ssl_proxy_1 ... done
Network kobofe_kobo-fe-network is external, skipping
Removing network nginx-certbot_default
Stopping kobofe_kpi_1 ... done
Stopping kobofe_nginx_1 ... done
Stopping kobofe_kobocat_1 ... done
Stopping kobofe_enketo_express_1 ... done
Removing kobofe_kpi_1 ... done
Removing kobofe_nginx_1 ... done
Removing kobofe_kobocat_1 ... done
Removing kobofe_enketo_express_1 ... done
Removing network kobofe_kobo-fe-network
Network kobobe_kobo-be-network is external, skipping
Stopping kobobe_postgres_1 ... done
Stopping kobobe_redis_cache_1 ... done
Stopping kobobe_mongo_1 ... done
Stopping kobobe_redis_main_1 ... done
Removing kobobe_postgres_1 ... done
Removing kobobe_redis_cache_1 ... done
Removing kobobe_mongo_1 ... done
Removing kobobe_redis_main_1 ... done
Removing network kobobe_kobo-be-network
Launching environment
Creating network "kobobe_kobo-be-network" with driver "bridge"
Creating kobobe_mongo_1 ... done
Creating kobobe_redis_cache_1 ... done
Creating kobobe_redis_main_1 ... done
Creating kobobe_postgres_1 ... done
Waiting for PostgreSQL database to be up & running...
Creating network "kobofe_kobo-fe-network" with driver "bridge"
Creating kobofe_kpi_run ... done
The PostgreSQL database is running!
Creating kobofe_kpi_run ... done
Creating kobofe_kobocat_1 ... done
Creating kobofe_kpi_1 ... done
Creating kobofe_enketo_express_1 ... done
Creating kobofe_nginx_1 ... done
Creating network "nginx-certbot_default" with the default driver
Creating nginx-certbot_nginx_ssl_proxy_1 ... done
Creating nginx-certbot_certbot_1 ... done
Waiting for environment to be ready. It can take a few minutes.
............