Gramps web setup help (Gtk error)

Looking for some help setting up gramps web on a laptop running Ubuntu 24.04.1 LTS.

Installed I have:
Docker version 27.3.1, build ce12230
Docker Compose version v2.29.7

Following the guide, I have a folder called gramps_web, within it I have an exact copy of the docker-compose.yml file.

When I run docker compose up -d I get the ¨welcome to nginx¨ screen instead of gramps. This could be due to me trying to use the lets encrypt yml before, but I made sure to remove all containers/volume/images before doing this, as shown here:

main@MyServer:~/Servers/gramps_web$ docker container ls
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
main@MyServer:~/Servers/gramps_web$ docker volume ls
DRIVER    VOLUME NAME
main@MyServer:~/Servers/gramps_web$ docker image ls
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

The logs from running docker compose up,shown below, seem seem to have a few errors in them. One keeps coming up about Gtk, but when checking what version I have installed I have 3+

$gtk-launch --version
3.24.41

Does the version have to be exactly 3.0 to work? What am I missing?

main@MyServer:~/Servers/gramps_web$ docker compose up
[+] Running 28/28
 ✔ grampsweb_celery Pulled                                                                                               342.4s 
   ✔ ca4e5d672725 Pull complete                                                                                           38.9s 
   ✔ 7bd12a4f20dd Pull complete                                                                                           39.3s 
   ✔ 7aeeaee85011 Pull complete                                                                                          325.5s 
   ✔ 35778c9a3f54 Pull complete                                                                                          325.9s 
   ✔ 8537c2894831 Pull complete                                                                                          326.3s 
   ✔ 0c687eb97ad9 Pull complete                                                                                          326.6s 
   ✔ afdb8ff6eabb Pull complete                                                                                          327.0s 
   ✔ 13288036fbe9 Pull complete                                                                                          327.4s 
   ✔ dfb83c994de9 Pull complete                                                                                          327.7s 
   ✔ df48aa17966e Pull complete                                                                                          328.0s 
   ✔ c91bed672a73 Pull complete                                                                                          328.4s 
   ✔ 57546825fbe0 Pull complete                                                                                          328.7s 
   ✔ a8bef00e3db9 Pull complete                                                                                          329.1s 
   ✔ 6abaefe838c2 Pull complete                                                                                          329.5s 
   ✔ 3e2488e4d284 Pull complete                                                                                          336.1s 
   ✔ 9a5a2e240f0a Pull complete                                                                                          336.5s 
   ✔ f8db05b78abd Pull complete                                                                                          338.9s 
 ✔ grampsweb Pulled                                                                                                      342.1s 
 ✔ grampsweb_redis Pulled                                                                                                 48.8s 
   ✔ 4abcf2066143 Pull complete                                                                                           41.2s 
   ✔ c2661f85a1bf Pull complete                                                                                           41.5s 
   ✔ 0611bc6c6d86 Pull complete                                                                                           42.1s 
   ✔ 578a5efeb667 Pull complete                                                                                           42.5s 
   ✔ c2293df0c14d Pull complete                                                                                           44.9s 
   ✔ 6e8fa819d47a Pull complete                                                                                           45.2s 
   ✔ 4f4fb700ef54 Pull complete                                                                                           45.5s 
   ✔ adc873d1b16b Pull complete                                                                                           45.9s 
[+] Running 12/12
 ✔ Network gramps_web_default              Created                                                                         1.0s 
 ✔ Volume "gramps_web_gramps_index"        Created                                                                         0.5s 
 ✔ Volume "gramps_web_gramps_thumb_cache"  Created                                                                         0.2s 
 ✔ Volume "gramps_web_gramps_cache"        Created                                                                         0.2s 
 ✔ Volume "gramps_web_gramps_secret"       Created                                                                         0.3s 
 ✔ Volume "gramps_web_gramps_db"           Created                                                                         0.3s 
 ✔ Volume "gramps_web_gramps_media"        Created                                                                         0.2s 
 ✔ Volume "gramps_web_gramps_tmp"          Created                                                                         0.3s 
 ✔ Volume "gramps_web_gramps_users"        Created                                                                         0.3s 
 ✔ Container grampsweb_redis               Created                                                                         6.2s 
 ✔ Container grampsweb_celery              Created                                                                         1.4s 
 ✔ Container gramps_web-grampsweb-1        Created                                                                         1.4s 
Attaching to grampsweb-1, grampsweb_celery, grampsweb_redis
grampsweb_redis   | 1:C 31 Oct 2024 13:16:18.442 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
grampsweb_redis   | 1:C 31 Oct 2024 13:16:18.442 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
grampsweb_redis   | 1:C 31 Oct 2024 13:16:18.443 * Redis version=7.2.4, bits=64, commit=00000000, modified=0, pid=1, just started
grampsweb_redis   | 1:C 31 Oct 2024 13:16:18.443 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
grampsweb_redis   | 1:M 31 Oct 2024 13:16:18.443 * monotonic clock: POSIX clock_gettime
grampsweb_redis   | 1:M 31 Oct 2024 13:16:18.560 * Running mode=standalone, port=6379.
grampsweb_redis   | 1:M 31 Oct 2024 13:16:18.561 * Server initialized
grampsweb_redis   | 1:M 31 Oct 2024 13:16:18.561 * Ready to accept connections tcp
grampsweb_celery  | ls: cannot access '/app/indexdir/*.db': No such file or directory
grampsweb-1       | ls: cannot access '/app/indexdir/*.db': No such file or directory
grampsweb-1       | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb-1       |   from gi.repository import Gtk
grampsweb_celery  | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb_celery  |   from gi.repository import Gtk
grampsweb_celery  | 
grampsweb_celery  | (__main__.py:12): Gtk-CRITICAL **: 13:16:23.226: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb-1       | 
grampsweb-1       | (__main__.py:12): Gtk-CRITICAL **: 13:16:23.226: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb_celery  | INFO:gramps_webapi:Rebuilding search index ...
grampsweb-1       | INFO:gramps_webapi:Rebuilding search index ...
grampsweb_celery  | INFO:gramps_webapi:Done building search index.
grampsweb-1       | INFO:gramps_webapi:Done building search index.
grampsweb-1       | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb-1       |   from gi.repository import Gtk
grampsweb-1       | 
grampsweb-1       | (__main__.py:14): Gtk-CRITICAL **: 13:16:27.344: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb_celery  | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb_celery  |   from gi.repository import Gtk
grampsweb_celery  | 
grampsweb_celery  | (__main__.py:14): Gtk-CRITICAL **: 13:16:27.365: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb-1       | INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
grampsweb-1       | INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
grampsweb_celery  | INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
grampsweb_celery  | INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
grampsweb-1       | INFO  [alembic.runtime.migration] Running upgrade  -> c89728e71264, empty message
grampsweb-1       | INFO  [alembic.runtime.migration] Running upgrade c89728e71264 -> e5e738d09fa7, Added configuration table
grampsweb-1       | INFO  [alembic.runtime.migration] Running upgrade e5e738d09fa7 -> e176543c72a8, Add tree column to User
grampsweb-1       | INFO  [alembic.runtime.migration] Running upgrade e176543c72a8 -> 66e56620891a, Add trees table
grampsweb-1       | INFO  [alembic.runtime.migration] Running upgrade 66e56620891a -> 22c8d1fba959, Add trees.enabled
grampsweb-1       | INFO  [alembic.runtime.migration] Running upgrade 22c8d1fba959 -> b0582f54029c, Use BigInt for usage_media
grampsweb-1       | INFO  [alembic.runtime.migration] Running upgrade b0582f54029c -> 84960b7d968c, Use BigInt for quota_media
grampsweb-1       | [2024-10-31 13:16:30 +0000] [18] [INFO] Starting gunicorn 22.0.0
grampsweb-1       | [2024-10-31 13:16:30 +0000] [18] [INFO] Listening at: http://0.0.0.0:5000 (18)
grampsweb-1       | [2024-10-31 13:16:30 +0000] [18] [INFO] Using worker: sync
grampsweb-1       | [2024-10-31 13:16:30 +0000] [19] [INFO] Booting worker with pid: 19
grampsweb-1       | [2024-10-31 13:16:30 +0000] [20] [INFO] Booting worker with pid: 20
grampsweb-1       | [2024-10-31 13:16:30 +0000] [22] [INFO] Booting worker with pid: 22
grampsweb-1       | [2024-10-31 13:16:30 +0000] [23] [INFO] Booting worker with pid: 23
grampsweb-1       | [2024-10-31 13:16:30 +0000] [24] [INFO] Booting worker with pid: 24
grampsweb-1       | [2024-10-31 13:16:30 +0000] [25] [INFO] Booting worker with pid: 25
grampsweb-1       | [2024-10-31 13:16:30 +0000] [26] [INFO] Booting worker with pid: 26
grampsweb-1       | [2024-10-31 13:16:30 +0000] [27] [INFO] Booting worker with pid: 27
grampsweb_celery  | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb_celery  |   from gi.repository import Gtk
grampsweb_celery  | 
grampsweb_celery  | (celery:1): Gtk-CRITICAL **: 13:16:33.511: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb_celery  | /usr/local/lib/python3.11/dist-packages/celery/platforms.py:829: SecurityWarning: You're running the worker with superuser privileges: this is
grampsweb_celery  | absolutely not recommended!
grampsweb_celery  | 
grampsweb_celery  | Please specify a different user using the --uid option.
grampsweb_celery  | 
grampsweb_celery  | User information: uid=0 euid=0 gid=0 egid=0
grampsweb_celery  | 
grampsweb_celery  |   warnings.warn(SecurityWarning(ROOT_DISCOURAGED.format(
grampsweb_celery  |  
grampsweb_celery  |  -------------- celery@c03926018aa2 v5.4.0 (opalescent)
grampsweb_celery  | --- ***** ----- 
grampsweb_celery  | -- ******* ---- Linux-6.8.0-47-generic-x86_64-with-glibc2.36 2024-10-31 13:16:34
grampsweb_celery  | - *** --- * --- 
grampsweb_celery  | - ** ---------- [config]
grampsweb_celery  | - ** ---------- .> app:         default:0x74a2118e2d50 (.default.Loader)
grampsweb_celery  | - ** ---------- .> transport:   redis://grampsweb_redis:6379/0
grampsweb_celery  | - ** ---------- .> results:     redis://grampsweb_redis:6379/0
grampsweb_celery  | - *** --- * --- .> concurrency: 2 (prefork)
grampsweb_celery  | -- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
grampsweb_celery  | --- ***** ----- 
grampsweb_celery  |  -------------- [queues]
grampsweb_celery  |                 .> celery           exchange=celery(direct) key=celery
grampsweb_celery  |                 
grampsweb_celery  | 
grampsweb_celery  | [tasks]
grampsweb_celery  |   . gramps_webapi.api.tasks.check_repair_database
grampsweb_celery  |   . gramps_webapi.api.tasks.delete_objects
grampsweb_celery  |   . gramps_webapi.api.tasks.export_db
grampsweb_celery  |   . gramps_webapi.api.tasks.export_media
grampsweb_celery  |   . gramps_webapi.api.tasks.generate_report
grampsweb_celery  |   . gramps_webapi.api.tasks.import_file
grampsweb_celery  |   . gramps_webapi.api.tasks.import_media_archive
grampsweb_celery  |   . gramps_webapi.api.tasks.media_ocr
grampsweb_celery  |   . gramps_webapi.api.tasks.search_reindex_full
grampsweb_celery  |   . gramps_webapi.api.tasks.search_reindex_incremental
grampsweb_celery  |   . gramps_webapi.api.tasks.send_email_confirm_email
grampsweb_celery  |   . gramps_webapi.api.tasks.send_email_new_user
grampsweb_celery  |   . gramps_webapi.api.tasks.send_email_reset_password
grampsweb_celery  |   . gramps_webapi.api.tasks.upgrade_database_schema
grampsweb_celery  | 
grampsweb_celery  | [2024-10-31 13:16:34,328: WARNING/MainProcess] /usr/local/lib/python3.11/dist-packages/celery/worker/consumer/consumer.py:508: CPendingDeprecationWarning: The broker_connection_retry configuration setting will no longer determine
grampsweb_celery  | whether broker connection retries are made during startup in Celery 6.0 and above.
grampsweb_celery  | If you wish to retain the existing behavior for retrying connections on startup,
grampsweb_celery  | you should set broker_connection_retry_on_startup to True.
grampsweb_celery  |   warnings.warn(
grampsweb_celery  | 
grampsweb_celery  | [2024-10-31 13:16:34,390: INFO/MainProcess] Connected to redis://grampsweb_redis:6379/0
grampsweb_celery  | [2024-10-31 13:16:34,395: WARNING/MainProcess] /usr/local/lib/python3.11/dist-packages/celery/worker/consumer/consumer.py:508: CPendingDeprecationWarning: The broker_connection_retry configuration setting will no longer determine
grampsweb_celery  | whether broker connection retries are made during startup in Celery 6.0 and above.
grampsweb_celery  | If you wish to retain the existing behavior for retrying connections on startup,
grampsweb_celery  | you should set broker_connection_retry_on_startup to True.
grampsweb_celery  |   warnings.warn(
grampsweb_celery  | 
grampsweb_celery  | [2024-10-31 13:16:34,407: INFO/MainProcess] mingle: searching for neighbors
grampsweb_celery  | [2024-10-31 13:16:35,427: INFO/MainProcess] mingle: all alone
grampsweb_celery  | [2024-10-31 13:16:35,449: INFO/MainProcess] celery@c03926018aa2 ready.
grampsweb-1       | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb-1       |   from gi.repository import Gtk
grampsweb-1       | 
grampsweb-1       | (gunicorn:26): Gtk-CRITICAL **: 13:16:35.521: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb-1       | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb-1       |   from gi.repository import Gtk
grampsweb-1       | 
grampsweb-1       | (gunicorn:27): Gtk-CRITICAL **: 13:16:36.569: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb-1       | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb-1       |   from gi.repository import Gtk
grampsweb-1       | 
grampsweb-1       | (gunicorn:24): Gtk-CRITICAL **: 13:16:37.797: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb-1       | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb-1       |   from gi.repository import Gtk
grampsweb-1       | 
grampsweb-1       | (gunicorn:23): Gtk-CRITICAL **: 13:16:38.004: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb-1       | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb-1       |   from gi.repository import Gtk
grampsweb-1       | 
grampsweb-1       | (gunicorn:19): Gtk-CRITICAL **: 13:16:38.104: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb-1       | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb-1       |   from gi.repository import Gtk
grampsweb-1       | 
grampsweb-1       | (gunicorn:20): Gtk-CRITICAL **: 13:16:38.463: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb-1       | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb-1       |   from gi.repository import Gtk
grampsweb-1       | 
grampsweb-1       | (gunicorn:25): Gtk-CRITICAL **: 13:16:38.567: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
grampsweb-1       | /usr/local/lib/python3.11/dist-packages/gramps/plugins/tool/check.py:51: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
grampsweb-1       |   from gi.repository import Gtk
grampsweb-1       | 
grampsweb-1       | (gunicorn:22): Gtk-CRITICAL **: 13:16:38.785: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

You can ignore the Gtk error. The Gtk version on your machine anyway doesn’t matter. Your problem must be something else.

Hey David,

I reinstalled Ubuntu just to start fresh so that I’m only dealing with gramps_web. I’ve looked into the nginx logs and it says

nginx.1 | nginx: [emerg] invalid server name or wildcard “…” on 0.0.0.0:80

Do I need a server name if I want to connect to my server by IP alone? Can I remove the VIRTUAL_HOST line from the .yml?

I set up my hostname using DDNS and I can access GrampsWeb using that hostname. When I attempt to connect to my server using my external IP it fails.