NOTE: Apart from
(and even then it's questionable, I'm Scottish). These are machine translated in languages I don't read. If they're terrible please contact me.
You can see how this translation was done in this article.
Friday, 13 September 2024
//Less than a minute
एक चीज जो मुझे अपने वर्तमान सेटअप के बारे में परेशान कर रही थी, वह थी गूगल अनिशिक डेटा प्राप्त करने के लिए उपयोग करना (यह क्या कम है?) तो मैं कुछ पाना चाहता था मैं स्व-host कि गूगल या किसी भी अन्य तीसरी पार्टी के लिए डेटा पारित नहीं किया गया था। मुझे पता चला उममी जो एक सरल, स्व- हस्ताक्षरित वेब समाधान है। यह गूगल विश्लेषण के लिए एक महान विकल्प है और यह आसान है ऊपर सेट करने के लिए।
[विषय
संस्थापन सरल है लेकिन वास्तव में जा रही करने के लिए एक उचित बिट ले लिया...
के रूप में मैं अपने मौजूदा डॉकeer-eeepe सेटअप में उममी जोड़ना चाहता था...... मैं मेरे लिए एक नई सेवा जोड़ने के लिए की जरूरत है docker-compose.yml
फ़ाइल. मैंने निम्न में फ़ाइल के तल में जोड़ा:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
env_file: .env
environment:
DATABASE_URL: ${DATABASE_URL}
DATABASE_TYPE: ${DATABASE_TYPE}
HASH_SALT: ${HASH_SALT}
APP_SECRET: ${APP_SECRET}
TRACKER_SCRIPT_NAME: getinfo
API_COLLECT_ENDPOINT: all
ports:
- "3000:3000"
depends_on:
- db
networks:
- app_network
restart: always
db:
image: postgres:16-alpine
env_file:
- .env
networks:
- app_network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
interval: 5s
timeout: 5s
retries: 5
volumes:
- /mnt/umami/postgres:/var/lib/postgresql/data
restart: always
cloudflaredumami:
image: cloudflare/cloudflared:latest
command: tunnel --no-autoupdate run --token ${CLOUDFLARED_UMAMI_TOKEN}
env_file:
- .env
restart: always
networks:
- app_network
इस डॉकer- क़िस्म.yml फ़ाइल में निम्न सेटअप है:
umami
जो उपयोग में आता है ghcr.io/umami-software/umami:postgresql-latest
छवि. इस सेवा का इस्तेमाल उमा एक अतिवादी सेवा चलाने के लिए किया जाता है।db
जो उपयोग में आता है postgres:16-alpine
छवि. यह सेवा पोस्टग्रेस डाटाबेस को चलाने के लिए प्रयोग में लिया जाता है जो कि उममी डाटा को स्टोर करने के लिए प्रयोग करता है.
इस सेवा के लिए नोट करें कि मैं इसे अपने सर्वर पर डिरेक्ट्री के लिए मैप कर रहा हूँ ताकि डेटा फिर से प्रारंभ करने के बीच बंद हो गया है. volumes:
- /mnt/umami/postgres:/var/lib/postgresql/data
आप इस निदेशक को अस्तित्व में होने की आवश्यकता होगी और आपके सर्वर पर डाकर उपयोक्ता द्वारा लिखने की जरूरत होगी (फिर से नहीं) तो 777 यहाँ है!___
chmod 777 /mnt/umami/postgres
cloudflaredumami
जो उपयोग में आता है cloudflare/cloudflared:latest
छवि. यह सेवा बादल के माध्यम से उमर सेवा को चलाने के लिए इस्तेमाल की जाती है ताकि इसे इंटरनेट से पहुँचा जा सके.इस समर्थन के लिए मैं भी अपने अद्यतन किया .env
निम्न में शामिल करने के लिए फ़ाइल:
CLOUDFLARED_UMAMI_TOKEN=<cloudflaretoken>
DATABASE_TYPE=postgresql
HASH_SALT=<salt>
POSTGRES_DB=postgres
POSTGRES_USER=<postgresuser>
POSTGRES_PASSWORD=<postgrespassword>
UMAMI_SECRET=<umamisecret>
APP_SECRET=${UMAMI_SECRET}
UMAMI_USER=${POSTGRES_USER}
UMAMI_PASS=${POSTGRES_PASSWORD}
DATABASE_URL=postgresql://${UMAMI_USER}:${UMAMI_PASS}@db:5432/${POSTGRES_DB}
यह विन्यास को वर्तमान विन्यास के लिए सेट करता है. <>
हैलीम को स्पष्ट रूप से आपके स्वयं के मूल्यों से बदलने की जरूरत है. वह cloudflaredumami
सेवा का इस्तेमाल बादल के माध्यम से उममी सेवा को चलाने के लिए किया जाता है ताकि इसे इंटरनेट से पहुँचा जा सके. यह PUSIBELTEEATH का उपयोग करने के लिए PULELELELELER है लेकिन उममी के लिए यह मुश्किल से बेस पथ बदलने के लिए एक पुनः की जरूरत है इसलिए मैं इसे अब के लिए रूट पथ के रूप में छोड़ दिया है.
इस के लिए बादलफुलर सुरंग सेट करने के लिए (जो कि जेsses - प्राप्तs. org के लिए इस्तेमाल किया गया है) मैं वेबसाइट उपयोग किया:
यह सुरंग उममी सेवा को सेट करता है और इसे इंटरनेट से एक्सेस करने की अनुमति देता है. ध्यान दीजिए, मैं इस पर ध्यान देता हूँ umami
डाकer- क़िस्म की फ़ाइल में सेवा (जैसा कि यह एक ही नेटवर्क पर है जो बादलोला सुरंग के रूप में एक वैध नाम है).
स्क्रिप्ट के लिए पथ सक्षम करने के लिए (नाम में बुलाया गया) getinfo
ऊपर मेरे सेटअप में, मैं मेरे एप्पल के लिए एक कॉन्फ़िग प्रविष्टि जोड़ा है
"Analytics":{
"UmamiPath" : "https://umamilocal.mostlylucid.net/getinfo",
"WebsiteId" : "32c2aa31-b1ac-44c0-b8f3-ff1f50403bee"
},
आप इन्हें अपने.env फ़ाइल में जोड़ सकते हैं तथा वातावरण चर को डाक- क़िस्म की फ़ाइल में भेज सकते हैं.
ANALYTICS__UMAMIPATH="https://umamilocal.mostlylucid.net/getinfo"
ANALYTICS_WEBSITEID="32c2aa31-b1ac-44c0-b8f3-ff1f50403bee"
mostlylucid:
image: scottgal/mostlylucid:latest
ports:
- 8080:8080
restart: always
environment:
...
- Analytics__UmamiPath=${ANALYTICS_UMAMIPATH}
- Analytics__WebsiteId=${ANALYTICS_WEBSITEID}
आप इस साइट को सेट जब उममी डाबोर्ड में वेबसाइट Id सेट किया. उममी सेवा के लिए डिफ़ॉल्ट उपयोक्ता उपयोक्ता नाम तथा पासवर्ड नहीं है admin
और umami
, आप सेटअप के बाद इन बदलने की जरूरत है.
संबद्ध विन्यास सी फ़ाइल के साथ:
public class AnalyticsSettings : IConfigSection
{
public static string Section => "Analytics";
public string? UmamiPath { get; set; }
}
यह फिर से मेरा POCO कॉन्फ़िग सामान उपयोग करता है (एओएओएओ कॉन्फ़िगरेशन सामान)यहाँविन्यास सेट करने के लिए () इसे मेरे कार्यक्रम में सेट करें.cs:
builder.Configure<AnalyticsSettings>();
और अंत में मेरे अंदर BaseController.cs
OnGet
विधि मैं निम्न को एक अजीब स्क्रिप्ट के लिए पथ सेट करने के लिए जोड़ा है:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!Request.IsHtmx())
{
ViewBag.UmamiPath = _analyticsSettings.UmamiPath;
ViewBag.UmamiWebsiteId = _analyticsSettings.WebsiteId;
}
base.OnActionExecuting(filterContext);
}
यह खाका फ़ाइल में प्रयोग किए जाने वाले स्क्रिप्ट के लिए पथ सेट करता है.
अंत में, मैं अपने खाका फ़ाइल में शामिल करने के लिए निम्नलिखित जोड़ा है:
<script defer src="@ViewBag.UmamiPath" data-website-id="@ViewBag.UmamiWebsiteId"></script>
इसमें पृष्ठ में स्क्रिप्ट सम्मिलित है तथा वेब साइट आईडी को मध्य सेवा के लिए सेट करता है.
अपने आप से मुलाकातों को एक पार करने के लिए आप अपने ब्राउज़र में निम्न भंडारण जोड़ सकते हैं:
क्रोमोसीसी उपकरण (Ctrl+STI I) आप इन्हें कंसोल में जोड़ सकते हैं:
localStorage.setItem("umami.disabled", 1)
यह सेट करने के लिए एक faffff का एक सा था लेकिन मैं परिणाम के साथ खुश हूँ. अब मैं एक आत्म-प्रयोगीय सेवा है जो गूगल या किसी भी अन्य तीसरी पार्टी में डेटा पारित नहीं करता है. यह सेट करने के लिए एक दर्द का एक सा है लेकिन एक बार यह यह यह इस्तेमाल करने के लिए बहुत आसान है. मैं परिणाम के साथ खुश हूँ और यह किसी के लिए सुझाव होगा किसी को भी किसी भी व्यक्ति के लिए एक आत्म-प्रयोगी समाधान की तलाश.