الاستضافة الذاتية10 دقيقة قراءة

استضافة تاريخ GPS الخاص بك مع Dawarich على VPS

في ديسمبر 2023، أعلنت Google عن إنهاء تخزين بيانات Timeline على خوادمها: تنتقل بيانات المواقع إلى الجهاز، وتُحذف البيانات المستضافة على جانب Google نهائيًا. سنوات من الرحلات والمحطات والذكريات الجغرافية تختفي مع الحساب أو الهاتف. لاستعادة السيطرة على هذا التاريخ والحفاظ عليه بصورة دائمة، توجد حل مفتوح المصدر يعمل على أي خادم VPS مع Docker — واسمه Dawarich.

ما الذي غيّرته Google Timeline — وماذا ستخسر

في 12 ديسمبر 2023، أعلنت Google أن تاريخ المواقع لن يُخزَّن بعد الآن في سحابة Google: يجب على كل مستخدم نقل بياناته إلى جهازه قبل موعد نهائي، وبعده تحذف خوادم Google كل شيء دون إمكانية الاسترداد. على Android، هذا يعني أن Timeline لا يوجد إلا طالما يوجد هاتفك — استبدال أو إعادة ضبط أو حذف حساب يمحو سنوات من الرحلات في ثوانٍ.

بعيدًا عن الخسارة التقنية، يكشف هذا الحدث عن تبعية هيكلية: حين تقرر خدمة سحابية تغيير قواعدها، تتبعها بياناتك — أو تختفي.

ما تخاطر بخسارته دون بديل

  • سنوات من تاريخ الرحلات: إجازات وتنقلات مهنية وعادات يومية مرتبطة بالموقع.
  • خرائط الكثافة والإحصاءات المبنية على تلك البيانات — زيارات المدن والمسافات المقطوعة.
  • استمرارية التتبع إذا فُقد هاتفك أو سُرق أو أُعيد ضبطه.
  • إمكانية مقاطعة موقعك مع صورك أو تقاويمك.
  • الوصول إلى التاريخ عبر الويب، وهي ميزة أُزيلت مع الترحيل المحلي.
  • أي سيطرة على مدة الاحتفاظ: تفرض Google الآن حذفًا تلقائيًا بعد 3 أشهر افتراضيًا.

Dawarich — تاريخ GPS ذاتي السيادة

Dawarich تطبيق ويب مفتوح المصدر (‎AGPL-3.0، أكثر من 10,000 نجمة على GitHub) مصمم خصيصًا لاستبدال Google Timeline على بنيتك التحتية الخاصة. يستوعب بيانات Google Takeout (بصيغة ‎JSON) وملفات ‎GPX و‎KML، ويخزنها في قاعدة بيانات PostgreSQL تديرها بنفسك.

تعرض خريطته رحلاتك كنقاط أو مسارات، مع طبقة heatmap وإحصاءات التنقل والبحث حسب الفترة أو الموقع. يتيح التكامل مع OwnTracks وOverland تتبعًا مستمرًا في الوقت الفعلي من هاتفك دون المرور بأي خدمة طرف ثالث. تعرض واجهة برمجة Dawarich أيضًا نقطة نهاية متوافقة مع Overland مما يبسط الإعداد على الجهاز المحمول.

ما يمكن لـ Dawarich فعله

  • استيراد تصدير Google Takeout بصيغة ‎JSON وكذلك ملفات ‎GPX و‎KML.
  • عرض التاريخ الكامل على خريطة تفاعلية مع طبقات heatmap والمسارات.
  • إحصاءات التنقل: الدول المزارة والمدن والمسافة المقطوعة لكل فترة.
  • التتبع الفوري عبر تطبيقي OwnTracks و‎Overland للجوال (iOS وAndroid).
  • واجهة برمجية مفتوحة لتصدير بياناتك أو مقاطعتها مع أدوات أخرى.
  • إدارة متعددة المستخدمين: لكل فرد من الأسرة مساحته المعزولة.
  • الترميز الجغرافي العكسي عبر Photon أو Nominatim أو Geoapify أو LocationIQ — حسب اختيارك دون تبعية مفروضة.

المتطلبات قبل النشر

يعمل Dawarich بسهولة على خادم VPS متوسط. إليك ما تحتاجه:

موارد الخادم. يكفي 1 إلى 2 vCPU و2 غيغابايت من الذاكرة العشوائية للاستخدام الشخصي. إذا كنت تدير عدة سنوات من البيانات أو عدة مستخدمين، فـ 4 غيغابايت أكثر ملاءمة للترميز الجغرافي وتوليد خرائط الكثافة.

التخزين. بيانات المواقع خفيفة (نصوص وإحداثيات)، لكن الاستيراد الضخم من Google Takeout قد يبلغ مئات الميغابايتات. يحسّن SSD NVMe سرعة البحث والفهرسة بشكل ملحوظ. خطط لـ 10 غيغابايتات على الأقل، أكثر حسب حجم أرشيفاتك.

البرامج. Docker Engine و‎docker compose الإصدار 2 مثبتان على الخادم، وعنوان IPv4 مخصص، واسم نطاق (مثل ‎geo.example.com) لتأمين الوصول عبر HTTPS.

تثبيت Dawarich على خادم VPS

01

تحديث الخادم وتثبيت Docker

اتصل عبر SSH بخادم VPS، ثم حدّث الحزم بـ ‎apt update && apt upgrade -y. ثبّت Docker Engine باتباع الإجراء الرسمي لتوزيعتك (Ubuntu أو Debian). تحقق من التثبيت بـ ‎docker --version و‎docker compose version.

02

إنشاء دليل العمل

أنشئ دليلًا مخصصًا، مثلًا ‎mkdir -p /opt/dawarich && cd /opt/dawarich. هنا سيعيش ملف ‎docker-compose.yml وملف ‎.env.

03

إنشاء ملف docker-compose.yml

أنشئ ملف ‎docker-compose.yml مع الخدمات التالية: ‎dawarich_app (واجهة الويب وواجهة البرمجة)، و‎dawarich_sidekiq (معالج المهام الخلفية)، و‎dawarich_db (PostgreSQL). إليك البنية الأساسية — عدّل كلمة المرور والمفتاح السري:

services:
  dawarich_app:
    image: freikin/dawarich:latest
    environment:
      - APPLICATION_HOST=geo.example.com
      - DATABASE_HOST=dawarich_db
      - DATABASE_NAME=dawarich
      - DATABASE_USERNAME=dawarich
      - DATABASE_PASSWORD=كلمة_مرور_قوية
      - SECRET_KEY_BASE=مفتاح_سري_طويل_64_حرفا
      - MIN_MINUTES_SPENT_IN_CITY=60
    ports:
      - "3000:3000"
    depends_on:
      - dawarich_db
    volumes:
      - dawarich_public:/var/app/public
  dawarich_sidekiq:
    image: freikin/dawarich:latest
    command: sidekiq
    environment:
      - DATABASE_HOST=dawarich_db
      - DATABASE_NAME=dawarich
      - DATABASE_USERNAME=dawarich
      - DATABASE_PASSWORD=كلمة_مرور_قوية
      - SECRET_KEY_BASE=مفتاح_سري_طويل_64_حرفا
    depends_on:
      - dawarich_db
      - dawarich_app
  dawarich_db:
    image: postgres:17-alpine
    environment:
      POSTGRES_USER: dawarich
      POSTGRES_PASSWORD: كلمة_مرور_قوية
      POSTGRES_DB: dawarich
    volumes:
      - dawarich_db:/var/lib/postgresql/data
volumes:
  dawarich_public:
  dawarich_db:
04

تشغيل الحاويات

شغّل الحزمة بـ ‎docker compose up -d. سيقوم Docker بتنزيل الصور وتشغيل الحاويات الثلاث. تحقق من التشغيل بـ ‎docker compose ps — يجب أن تُظهر الخدمات الثلاث الحالة ‎Up.

05

إعداد الوكيل العكسي و SSL

أشر نطاقك ‎geo.example.com إلى عنوان IP الخادم، ثم اضبط وكيلًا عكسيًا (Nginx أو Caddy) لعرض Dawarich عبر HTTPS. مع Caddy الإعداد بسيط: ‎geo.example.com { reverse_proxy localhost:3000 }. يحصل Caddy تلقائيًا على شهادة Let's Encrypt ويجددها. مع Nginx استخدم ‎certbot لإنشاء الشهادة واضبط كتلة ‎server تمرر الطلبات إلى ‎localhost:3000.

06

إنشاء أول حساب مسؤول

افتح ‎https://geo.example.com في متصفحك واتبع معالج التسجيل لإنشاء حساب المسؤول. اختر كلمة مرور قوية: يعرض Dawarich محتملًا سنوات من تاريخ تنقلاتك. بعد تسجيل الدخول، استكشف الإعدادات لاختيار مزود الترميز الجغرافي المفضل.

07

فتح المنافذ الضرورية فقط

على جدار الحماية (أو ‎ufw على الخادم)، اسمح فقط بالمنفذين 80 و443 من الخارج. يجب ألا يُكشف المنفذ 3000 مباشرةً — يصل إليه الوكيل العكسي فقط داخليًا. تحقق بـ ‎ufw status قبل الشروع في الاستيراد.

استيراد تاريخك من Google Takeout

استيراد Google Takeout هو الخطوة المحورية لاسترداد بياناتك قبل أن تحذفها Google من خوادمها.

التصدير من Google. انتقل إلى ‎takeout.google.com، ألغِ تحديد جميع الخدمات وحدد سجل الموقع فقط. اختر صيغة ‎JSON (وليس ‎KML) لاستيراد كامل في Dawarich. تُعدّ Google أرشيفًا ‎.zip يُرسل بالبريد الإلكتروني أو يُودع في Drive — حسب الحجم قد يستغرق ذلك عدة ساعات.

تحديد موقع ملف التاريخ. بعد تنزيل الأرشيف وفك ضغطه، يوجد ملف التاريخ في ‎Takeout/Location History (Timeline)/Records.json. هذا هو الملف الذي ستستورده في Dawarich.

الاستيراد في Dawarich. في الواجهة، انتقل إلى Imports، انقر New import، اختر ملف ‎Records.json، حدد نوع المصدر Google Phone وابدأ الاستيراد. حسب حجم الأرشيف (عدة غيغابايتات لسنوات من البيانات)، قد تستغرق معالجة Sidekiq من دقائق إلى عدة ساعات. تابع التقدم في تبويب Background jobs.

التتبع الفوري مع OwnTracks أو Overland

بعد استيراد التاريخ السابق، اضبط التتبع الفوري لكي يرسل هاتفك موقعه مباشرةً إلى Dawarich دون وسيط.

OwnTracks (iOS وAndroid) عميل تتبع مواقع مفتوح المصدر. في إعدادات التطبيق، اختر وضع HTTP، أدخل عنوان URL ‎https://geo.example.com/api/v1/owntracks/points وأضف مفتاح API الخاص بـ Dawarich في رؤوس المصادقة. يرسل OwnTracks تحديثات بفترات قابلة للضبط.

Overland (iOS) بديل خفيف مصمم للتتبع المستمر بكفاءة في البطارية. في Dawarich، احصل على نقطة نهاية Overland من Settings → Integrations والصقها في تطبيق Overland على iPhone. يدير التطبيق تلقائيًا الإرسال المؤجل حين يكون الشبكة غير متاح.

النسخ الاحتياطي والتحديثات

بيانات موقعك تمثل سنوات من حياتك الرقمية: انسخ احتياطيًا حجم Docker ‎dawarich_db بانتظام بـ ‎docker exec dawarich_db pg_dump -U dawarich dawarich > backup.sql. لتحديث Dawarich، نفّذ ‎docker compose pull && docker compose up -d — يتم تحديث قاعدة البيانات تلقائيًا عند البدء. راجع ‎CHANGELOG.md في المستودع قبل أي تحديث: المشروع نشط وبعض الإصدارات تُغيّر مخطط البيانات.

لماذا يُحدث خادم VPS بصلاحية root فارقًا

معظم خطط الاستضافة المشتركة تحظر Docker وصلاحية root والمنافذ الشبكية الاعتباطية. يتطلب Dawarich الثلاثة: منسق حاويات، وصول مباشر إلى نظام الملفات لتخزين الاستيرادات، وحرية كشف منفذ HTTP.

خادم VPS بصلاحية root كاملة وعنوان IPv4 مخصص وSSD NVMe يمنحك بالضبط ما تحتاجه: قدرة المعالجة لفهرسة سنوات من التاريخ، وعرض النطاق لاستقبال تحديثات OwnTracks المستمرة، والاستمرارية حتى لا تعيد تشغيل الاستيراد من أرشيف Google Takeout.

مع ServOrbit، تشغل VPS على Ubuntu أو Debian، تحصل على صلاحية root فورية، ويمكن تثبيت Docker في أقل من خمس دقائق — الباقي يعتمد على ملف ‎docker-compose.yml الخاص بك، وليس على واجهة مقيّدة.

للمضي قُدُمًا

يتكامل Dawarich بشكل طبيعي مع الأدوات الأخرى في بنيتك التحتية المستضافة ذاتيًا. إذا كنت تخزن صورك بالفعل على Immich، فإحداثيات GPS صورك وتاريخ Dawarich يغطيان الخريطة ذاتها. إذا كنت تزامن الملفات بين الأجهزة مع Syncthing، يمكنك تصدير مسارات ‎GPX من Dawarich ومشاركتها مع أي جهاز. وإذا كان Docker جديدًا عليك، يغطي دليل البدء مع Docker على VPS التثبيت النظيف على خادم جديد. لأدوات تتبع الميزانية وتطبيقات البيانات الشخصية الأخرى، يتبع Actual Budget على VPS المنطق ذاته للسيادة.

خادم VPS لتخزين سنوات من تاريخ GPS

يعمل Dawarich على أي خادم VPS مع Docker وصلاحية root وSSD NVMe. لا تغادر أي بيانات موقع بنيتك التحتية.

مقالات ذات صلة

استضافة Immich على خادمك الافتراضي الخاص (VPS)
الاستضافة الذاتية7 دقيقة قراءة

استضافة Immich على خادمك الافتراضي الخاص (VPS)

استضف Immich على خادمك الافتراضي (VPS): بديل مُستضاف ذاتيًا لـGoogle Photos مع نسخ احتياطي من الجوال والتعرّف على الوجوه وSSL عبر Docker. يتضمّن دليل الترقية إلى v3.

قراءة المقال ←
استضافة Syncthing على خادم VPS الخاص بك
الاستضافة الذاتية3 دقيقة قراءة

استضافة Syncthing على خادم VPS الخاص بك

زامن ملفاتك دون سحابة خارجية: انشر Syncthing على خادم VPS كعقدة ترحيل دائمة. دليل الاستضافة الذاتية ندّ-لندّ.

قراءة المقال ←
تثبيت Docker على VPS: قاعدة نظيفة لتطبيقاتك
التطوير3 دقيقة قراءة

تثبيت Docker على VPS: قاعدة نظيفة لتطبيقاتك

جهّز VPS موثوقًا بـ Docker: العزل، وCompose، والأحجام (volumes)، والشبكة، وأفضل الممارسات للنشر دون ارتجال.

قراءة المقال ←
استضافة Actual Budget على VPS: بديل YNAB الخاص بك
الاستضافة الذاتية4 دقيقة قراءة

استضافة Actual Budget على VPS: بديل YNAB الخاص بك

استضف Actual Budget على خادم VPS — تطبيق ميزانية صفرية برخصة MIT، مع مزامنة بنكية، ووصول من أجهزة متعددة، ومزامنة مشفّرة طرفًا لطرف. بلا اشتراك.

قراءة المقال ←

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـ العربية والفرنسية والإنجليزية.