OwnTracks data not being processed by Sidekiq, database relations issue?
OS & Hardware Running Unraid 6.12.13 ( Slackware 15.0 x86_64 )
Dell PowerEdge R730 CPU: Intel Xeon E5-2630L v3 (32) @ 2.900GHz GPU: Matrox Electronics Systems Ltd. G200eR2 RAM: 62 GiB
Version Dawarich ( app & sidekiq ), 0.24.1 Docker version 24.0.9, build 2936816 | - redis:latest | - postgres:16-bullseye
FROM tensorchord/pgvecto-rs-binary:pg16-v0.2.0-amd64 as pgvectorsbinary
FROM postgres:16-bullseye
RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8
ENV TZ=Europe/Amsterdam
# Avoid stuck build due to user prompt
ARG DEBIAN_FRONTEND=noninteractive
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN dpkg-reconfigure -f noninteractive tzdata
# Debian 11 <= /etc/apt/sources.list
RUN if [ -f "/etc/apt/sources.list" ]; then sed -i 's/deb.debian.org/ftp.nl.debian.org/g' /etc/apt/sources.list; fi
# Debian 12 > /etc/apt/sources.list.d/debian.sources
RUN if [ -f "/etc/apt/sources.list.d/debian.sources" ]; then sed -i 's/deb.debian.org/ftp.nl.debian.org/g' /etc/apt/sources.list.d/debian.sources; fi
RUN apt-get -qq update
RUN apt-get -qq update --fix-missing
RUN apt-get -qq install -y --no-install-recommends ca-certificates postgresql-16-postgis-3 postgresql-16-postgis-3-scripts
RUN apt-get -qq autoclean -y
RUN apt-get -qq autoremove -y
RUN rm -rf /var/lib/apt/lists/*
RUN mkdir -p /docker-entrypoint-initdb.d
COPY --from=pgvectorsbinary /pgvecto-rs-binary-release.deb /tmp/vectors.deb
RUN apt-get -qq install -y /tmp/vectors.deb && rm -f /tmp/vectors.deb
RUN cp -a /usr/lib/postgresql/16/lib/vectors.so /usr/share/postgresql/16/extension/
COPY ./load-extensions.sh /docker-entrypoint-initdb.d/
CMD ["postgres"]
load-extensions.sh
#!/bin/sh
psql -a -b -e -v ON_ERROR_STOP=1 --username=postgres -no-password -c 'CREATE EXTENSION IF NOT EXISTS pg_trgm;'
psql -a -b -e -v ON_ERROR_STOP=1 --username=postgres -no-password -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
psql -a -b -e -v ON_ERROR_STOP=1 --username=postgres -no-password -c 'CREATE EXTENSION IF NOT EXISTS postgis_topology;'
psql -a -b -e -v ON_ERROR_STOP=1 --username=postgres -no-password -c 'CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder;'
psql -a -b -e -v ON_ERROR_STOP=1 --username=postgres -no-password -c 'CREATE EXTENSION IF NOT EXISTS postgis_raster;'
psql -a -b -e -v ON_ERROR_STOP=1 --username=postgres -no-password -c 'CREATE EXTENSION IF NOT EXISTS postgis_sfcgal;'
psql -a -b -e -v ON_ERROR_STOP=1 --username=postgres -no-password -c 'CREATE EXTENSION IF NOT EXISTS address_standardizer;'
psql -a -b -e -v ON_ERROR_STOP=1 --username=postgres -no-password -c 'CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;'
psql -a -b -e -v ON_ERROR_STOP=1 --username=postgres -no-password -c 'CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder;'
psql -a -b -e -v ON_ERROR_STOP=1 --username=postgres -no-password -c 'ALTER SYSTEM SET shared_preload_libraries = "vectors.so"'
| -- Extensions:
bash /docker-entrypoint-initdb.d/load-extensions.sh
CREATE EXTENSION IF NOT EXISTS pg_trgm;
NOTICE: extension "pg_trgm" already exists, skipping
CREATE EXTENSION IF NOT EXISTS postgis;
NOTICE: extension "postgis" already exists, skipping
CREATE EXTENSION IF NOT EXISTS postgis_topology;
NOTICE: extension "postgis_topology" already exists, skipping
CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder;
NOTICE: extension "postgis_tiger_geocoder" already exists, skipping
CREATE EXTENSION IF NOT EXISTS postgis_raster;
NOTICE: extension "postgis_raster" already exists, skipping
CREATE EXTENSION IF NOT EXISTS postgis_sfcgal;
NOTICE: extension "postgis_sfcgal" already exists, skipping
CREATE EXTENSION IF NOT EXISTS address_standardizer;
NOTICE: extension "address_standardizer" already exists, skipping
CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;
NOTICE: extension "fuzzystrmatch" already exists, skipping
CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder;
NOTICE: extension "postgis_tiger_geocoder" already exists, skipping
ALTER SYSTEM SET shared_preload_libraries = "vectors.so"
Describe the bug I use OwnTracks ( 2.5.3 via Google Play Store, Android ) , and no points show up when pushing them manually ( for testing ) I noticed that Sidekiq is having issues processing the points, making relations to:
- users
- points
To Reproduce
- Start up a fresh 0.24.1 Dawarich ( app & sidekiq ) with
redis:latestand the mentioned dockerfile for postgres. - Login with demo
- Change user credentials
- Regenerate api key
- Link to OwnTracks
docker logs -f -t $(docker ps | grep -i 'Dawarich-Sidekiq' | awk '{print $1}')- Push a location and see the error
Expected behavior That my location is tracked as expected by the usage of Dawarich
Screenshots Not applicable
Logs dawarich_app
2025-02-21T10:44:55.608460463Z 11:44:55 web.1 | D, [2025-02-21T11:44:55.607962 #21] DEBUG -- : User Load (63.6ms) SELECT "users".* FROM "users" WHERE "users"."api_key" = $1 LIMIT $2 [["api_key", "[FILTERED]"], ["LIMIT", 1]]
2025-02-21T10:44:55.609276949Z 11:44:55 web.1 | D, [2025-02-21T11:44:55.608953 #21] DEBUG -- : ↳ app/controllers/api_controller.rb:16:in 'ApiController#current_api_user'
2025-02-21T10:44:55.616016838Z 11:44:55 web.1 | I, [2025-02-21T11:44:55.615624 #21] INFO -- : Enqueued Owntracks::PointCreatingJob (Job ID: 8a5bfe8c-4e9a-4030-a26f-38a8cf9aa1d4) to Sidekiq(default) with arguments: #<ActionController::Parameters {"_type" => "location", "BSSID" => "XX:XX:XX:XX:XX:XX", "SSID" => "WifiSSIDName", "_id" => "464b36e7", "acc" => 11, "alt" => 58, "batt" => 78, "bs" => 1, "cog" => 0, "conn" => "w", "created_at" => 1740134695, "lat" => 52.masked, "lon" => 6.masked, "m" => 0, "t" => "u", "tid" => "1s", "topic" => "owntracks/user/mymobilephone", "tst" => 1740134693, "vac" => 1, "vel" => 0, "api_key" => "b1108017fd4ec928masked", "controller" => "api/v1/owntracks/points", "action" => "create", "point" => #<ActionController::Parameters {"topic" => "owntracks/user/mymobilephone", "created_at" => 1740134695} permitted: true>} permitted: true>, 1
2025-02-21T10:44:55.617026236Z 11:44:55 web.1 | I, [2025-02-21T11:44:55.616718 #21] INFO -- : ↳ app/controllers/api/v1/owntracks/points_controller.rb:5:in 'Api::V1::Owntracks::PointsController#create'
2025-02-21T10:44:55.617581150Z 11:44:55 web.1 | I, [2025-02-21T11:44:55.617275 #21] INFO -- : {"method":"POST","path":"/api/v1/owntracks/points","format":"html","controller":"Api::V1::Owntracks::PointsController","action":"create","status":200,"allocations":4854,"duration":111.44,"view":0.23,"db":77.4}
2025-02-21T10:44:55.771792150Z 11:44:55 web.1 | D, [2025-02-21T11:44:55.771262 #21] DEBUG -- : User Load (1.3ms) SELECT "users".* FROM "users" WHERE "users"."api_key" = $1 LIMIT $2 [["api_key", "[FILTERED]"], ["LIMIT", 1]]
2025-02-21T10:44:55.773541704Z 11:44:55 web.1 | D, [2025-02-21T11:44:55.773119 #21] DEBUG -- : ↳ app/controllers/api_controller.rb:16:in 'ApiController#current_api_user'
2025-02-21T10:44:55.778058346Z 11:44:55 web.1 | I, [2025-02-21T11:44:55.776997 #21] INFO -- : Enqueued Owntracks::PointCreatingJob (Job ID: 02fe02d4-0f68-4637-b5e9-734adc5025be) to Sidekiq(default) with arguments: #<ActionController::Parameters {"_type" => "status", "_id" => "8141e698", "android" => #<ActionController::Parameters {"hib" => 1, "bo" => 0, "loc" => 0, "ps" => 0, "wifi" => 1} permitted: true>, "topic" => "owntracks/user/mymobilephone/status", "api_key" => "b1108017fd4ec928masked", "controller" => "api/v1/owntracks/points", "action" => "create", "point" => #<ActionController::Parameters {"topic" => "owntracks/user/mymobilephone/status"} permitted: true>} permitted: true>, 1
2025-02-21T10:44:55.778526975Z 11:44:55 web.1 | I, [2025-02-21T11:44:55.778190 #21] INFO -- : ↳ app/controllers/api/v1/owntracks/points_controller.rb:5:in 'Api::V1::Owntracks::PointsController#create'
2025-02-21T10:44:55.782031885Z 11:44:55 web.1 | I, [2025-02-21T11:44:55.781708 #21] INFO -- : {"method":"POST","path":"/api/v1/owntracks/points","format":"html","controller":"Api::V1::Owntracks::PointsController","action":"create","status":200,"allocations":1298,"duration":32.15,"view":3.23,"db":1.33}
dawarich_sidekiq, see attached sidekiq-logs.txt file
Additional context
Not applicable, I did try bin/rails db:migrate and rake data:migrate to be sure all migrations are done and that seems to be the case:
docker exec -it $(docker ps | grep 'Dawarich-app' | awk '{print $1}') /bin/sh
/var/app # bin/rails db:migrate
[dotenv] Loaded .env.development
D, [2025-02-21T12:03:41.331046 #383] DEBUG -- : (1.1ms) SELECT pg_try_advisory_lock(1300285682869233375)
D, [2025-02-21T12:03:41.356180 #383] DEBUG -- : ActiveRecord::SchemaMigration Load (3.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
D, [2025-02-21T12:03:41.406214 #383] DEBUG -- : ActiveRecord::InternalMetadata Load (2.4ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 [[nil, "environment"]]
D, [2025-02-21T12:03:41.410698 #383] DEBUG -- : (0.6ms) SELECT pg_advisory_unlock(1300285682869233375)
D, [2025-02-21T12:03:41.420904 #383] DEBUG -- : ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
/var/app # rake data:migrate
[dotenv] Loaded .env.development
D, [2025-02-21T12:03:50.046681 #393] DEBUG -- : (2.1ms) SELECT pg_try_advisory_lock(1300285682869233375)
D, [2025-02-21T12:03:50.071405 #393] DEBUG -- : DataMigrate::DataSchemaMigration Load (3.4ms) SELECT "data_migrations"."version" FROM "data_migrations" ORDER BY "data_migrations"."version" ASC
D, [2025-02-21T12:03:50.095340 #393] DEBUG -- : ActiveRecord::InternalMetadata Load (4.7ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 [[nil, "environment"]]
D, [2025-02-21T12:03:50.128651 #393] DEBUG -- : (0.7ms) SELECT pg_advisory_unlock(1300285682869233375)
D, [2025-02-21T12:03:50.130598 #393] DEBUG -- : DataMigrate::DataSchemaMigration Load (0.4ms) SELECT "data_migrations"."version" FROM "data_migrations" ORDER BY "data_migrations"."version" ASC
I've gone this way, since I already had redis ( nothing special configured ) and PostgreSQL running ( added extensions to debian base image ) , but taking the default compose file from https://dawarich.app/docs/intro#setup-your-dawarich-instance works as expected/ so probably something wrong with the PostgreSQL docker file I'm using. Will have to debug myself.
Please update to the most recent version and check if your issue persists. Coordinate with updating guides to not miss anything important
Closing due to no activity