diff --git a/db/clickhouse/schema.sql b/db/clickhouse/schema.sql index 396d300a..d9831f57 100644 --- a/db/clickhouse/schema.sql +++ b/db/clickhouse/schema.sql @@ -122,7 +122,7 @@ CREATE TABLE umami.website_event_stats_hourly min_time SimpleAggregateFunction(min, DateTime('UTC')), max_time SimpleAggregateFunction(max, DateTime('UTC')), tag SimpleAggregateFunction(groupArrayArray, Array(String)), - distinct_id, + distinct_id String, created_at Datetime('UTC') ) ENGINE = AggregatingMergeTree @@ -213,7 +213,7 @@ FROM (SELECT min(created_at) min_time, max(created_at) max_time, arrayFilter(x -> x != '', groupArray(tag)) tag, - distinct_id String, + distinct_id, toStartOfHour(created_at) timestamp FROM umami.website_event GROUP BY website_id, diff --git a/next.config.ts b/next.config.ts index b57a65a9..4e0561b7 100644 --- a/next.config.ts +++ b/next.config.ts @@ -17,7 +17,7 @@ const disableLogin = process.env.DISABLE_LOGIN; const disableUI = process.env.DISABLE_UI; const faviconURL = process.env.FAVICON_URL; const forceSSL = process.env.FORCE_SSL; -const frameAncestors = process.env.ALLOWED_FRAME_URLS; +const frameAncestors = process.env.ALLOWED_FRAME_URLS ?? ''; const privateMode = process.env.PRIVATE_MODE; const trackerScriptName = process.env.TRACKER_SCRIPT_NAME; const trackerScriptURL = process.env.TRACKER_SCRIPT_URL; diff --git a/src/lib/detect.ts b/src/lib/detect.ts index cb7674a4..f2c9d9fb 100644 --- a/src/lib/detect.ts +++ b/src/lib/detect.ts @@ -130,7 +130,7 @@ export async function getLocation(ip: string = '', headers: Headers, hasPayloadI ); } - const result = globalThis[MAXMIND].get(ip); + const result = globalThis[MAXMIND].get(ip?.split(':')[0]); if (result) { const country = result.country?.iso_code ?? result?.registered_country?.iso_code; diff --git a/src/tracker/index.js b/src/tracker/index.js index 55f0a136..2d9dd18e 100644 --- a/src/tracker/index.js +++ b/src/tracker/index.js @@ -150,6 +150,7 @@ try { const res = await fetch(endpoint, { + keepalive: true, method: 'POST', body: JSON.stringify({ type, payload }), headers: {