विषय पर बढ़ें

इंस्टॉल

यह पेज उस व्यक्ति के लिए है जो घर के लिए Evey चलाएगा। आपको एक कंप्यूटर या NAS चाहिए जो हमेशा चालू रहे, और जिस पर Docker इंस्टॉल हो। इसमें तीन कदम हैं:

  1. एक फ़ाइल सेव करें, compose फ़ाइल।
  2. एक कमांड से Evey शुरू करें।
  3. ब्राउज़र में Evey खोलें।

उसके बाद पहला सेटअप विज़ार्ड आगे का काम संभाल लेता है।

Evey एक ही कंटेनर में चलता है। उसका डेटाबेस और सर्च इंजन उसी के अंदर हैं, इसलिए कुछ और इंस्टॉल नहीं करना, कोई .env फ़ाइल नहीं लिखनी, और मेमोरी या CPU की कोई सेटिंग नहीं।

इसी पेज वाली फ़ाइल इस्तेमाल करें, Git रिपॉज़िटरी वाली नहीं

Git रिपॉज़िटरी के रूट में जो docker-compose.yml है, वह एक अलग सेटअप है, डेवलपर्स और एडवांस्ड इंस्टॉल के लिए: उसे एक .env फ़ाइल चाहिए और वह कुछ और सर्विसें भी चलाती है। उसके बारे में एडवांस्ड डिप्लॉयमेंट में लिखा है।

आपको क्या चाहिए

  • एक कंप्यूटर या NAS जो हमेशा चालू रहे, x86-64 प्रोसेसर (Intel या AMD) वाला। ARM64 मशीनों के लिए एक रिलीज़ टैग चाहिए, जो अभी मौजूद नहीं है: देखें ARM मशीनें।
  • Compose v2 के साथ Docker। कमांड है docker compose, बीच में स्पेस के साथ, पुराना docker-compose नहीं।
  • आपका मीडिया फ़ोल्डर: जहाँ आपकी फ़िल्में, सीरीज़, गाने या फ़ोटो रखे हैं।
  • Evey के अपने डेटा के लिए डिस्क पर थोड़ी जगह (डेटाबेस, पोस्टर और इमेज, सर्च इंडेक्स)। नीचे दी गई compose फ़ाइल इसे evey-data नाम के फ़ोल्डर में रखती है, फ़ाइल के ठीक बगल में।

Evey आपके घर के नेटवर्क पर सादे HTTP से जवाब देता है। घर के बाहर से देखने के लिए HTTPS चाहिए, जिसे आप बाद में जोड़ सकते हैं: रिमोट एक्सेस और HTTPS।

कदम 1: compose फ़ाइल सेव करें

Evey के लिए एक फ़ोल्डर बनाएँ, जैसे evey, और उसमें यह फ़ाइल docker-compose.yml नाम से सेव करें। सिर्फ़ एक लाइन बदलें: आपके मीडिया का पाथ (वह लाइन जिस पर 5 लिखा है)। जैसे, अगर आपकी फ़िल्में /srv/media में हैं, तो लाइन - /srv/media:/media हो जाएगी।

docker-compose.yml
services:
  evey:
    image: eveyproject/evey:latest # (1)!
    container_name: evey-server
    ports:
      - "9091:9091" # (2)!
    volumes:
      - ./evey-data:/data # (3)!
      - evey-cache:/cache # (4)!
      - /path/to/your/media:/media # (5)!
    stop_grace_period: 60s # (6)!
    restart: unless-stopped

volumes:
  evey-cache:
  1. Evey का वर्ज़न। latest सबसे नई रिलीज़ है। किसी तय वर्ज़न पर बने रहने के लिए 0.1.0 जैसा रिलीज़ टैग या sha-<commit> टैग इस्तेमाल करें: देखें बैकअप और अपडेट।
  2. पोर्ट। बाईं तरफ़ वाला नंबर वह है जो आप ब्राउज़र में और ऐप में टाइप करेंगे। 9091 ही रहने दें, जब तक कोई दूसरा प्रोग्राम उसे पहले से इस्तेमाल न कर रहा हो।
  3. Evey का अपना डेटा: डेटाबेस, कुंजियाँ, अपने-आप बने पासवर्ड, सर्च इंडेक्स, पोस्टर और इमेज, लॉग, बैकअप, प्लगइन। इसी फ़ोल्डर का बैकअप लेना है।
  4. बदले हुए वीडियो, छोटे किए गए फ़ोटो और संगीत के कवर का कैश। इसे कभी भी मिटाया जा सकता है, यह अपने-आप फिर से भर जाता है। पोस्टर के रूप इसमें नहीं हैं: वे evey-data/artworks में रहते हैं।
  5. आपका मीडिया। /path/to/your/media की जगह असली फ़ोल्डर लिखें। Evey के अंदर इस फ़ोल्डर का नाम /media है। Evey इसमें लिख सकता है, और यह जान-बूझकर है, ताकि आपके कहने पर मीडिया स्वास्थ्य किसी फ़ाइल को ठीक कर सके। इसे read-only बनाने के लिए आखिर में :ro जोड़ दें: तब Evey वहाँ नहीं लिख सकता, और रिपेयर नहीं हो पाते।
  6. कंटेनर रुकते समय डेटाबेस को ठीक से बंद होने का समय देता है। Docker के अपने 10 सेकंड बड़े कलेक्शन के लिए कम पड़ते हैं।

कदम 2: Evey शुरू करें

टर्मिनल में, उस फ़ोल्डर के अंदर जिसमें फ़ाइल है:

docker compose up -d

Evey बैकग्राउंड में शुरू हो जाता है। वह क्या कर रहा है यह देखने के लिए docker compose logs -f evey चलाएँ; देखना बंद करने के लिए Ctrl+C दबाएँ, Evey चलता रहेगा।

पहली बार शुरू होने पर Evey evey-data में अपने पासवर्ड और अपना डेटाबेस बनाता है। आपको कुछ भी तैयार नहीं करना।

कदम 3: ब्राउज़र में Evey खोलें

पता ऐसे बनता है: http://, फिर उस मशीन का पता जिस पर Docker चल रहा है, फिर :9091:

आपका ब्राउज़र कहाँ है कौन सा पता टाइप करें
उसी मशीन पर जिस पर Docker चल रहा है http://localhost:9091
घर के किसी दूसरे कंप्यूटर या फ़ोन पर http:// + Docker वाली मशीन का IP पता + :9091, जैसे http://192.168.1.20:9091
घर के बाहर अभी नहीं। इसके लिए HTTPS और एक पब्लिक पता चाहिए: देखें रिमोट एक्सेस और HTTPS।

Docker वाली मशीन का IP पता जानने के लिए, अपने राउटर में जुड़े हुए डिवाइस की लिस्ट देखें, या Linux पर ip a, Windows पर ipconfig, macOS पर ifconfig चलाएँ। अगर आपने कदम 1 में पोर्ट बदला था, तो 9091 की जगह ports: लाइन में बाईं तरफ़ वाला नंबर लिखें।

पहली बार यह पता सेटअप विज़ार्ड खोलता है। आगे पहला सेटअप पढ़ें। विज़ार्ड पूरा होने के बाद, यही पता साइन-इन पेज खोलता है।

यह पता लिखकर रख लें

घर में सबको इसकी ज़रूरत पड़ेगी। Android और Android TV ऐप अपनी पहली स्क्रीन पर ठीक यही पता माँगते हैं, http:// और पोर्ट के साथ: ऐप कनेक्ट करें।

आपका डेटा कहाँ रखा जाता है

जगह इसमें क्या है क्या आप इसे मिटा सकते हैं?
./evey-data डेटाबेस, कुंजियाँ, अपने-आप बने पासवर्ड, सर्च इंडेक्स, टाइमलाइन की छोटी तस्वीरें, पोस्टर और इमेज, लॉग, बैकअप, प्लगइन नहीं। इसे खोने का मतलब है हर खाता, देखने का इतिहास और हर सेटिंग खो देना। बस एक चीज़ अलग है: इसके अंदर meili/, यानी सर्च इंडेक्स। evey admin reindex-search कमांड उसे डेटाबेस से फिर से बना देती है।
evey-cache वॉल्यूम बदले हुए वीडियो, छोटे किए गए फ़ोटो और संगीत के कवर (पोस्टर के रूप evey-data/artworks में हैं) हाँ। यह अपने-आप फिर से भर जाता है।
आपके मीडिया फ़ोल्डर आपकी फ़ाइलें Evey इन्हें कभी नहीं मिटाता। Evey में कोई टाइटल हटाने से वह लाइब्रेरी से हटता है, डिस्क से नहीं।

Evey आपके मीडिया फ़ोल्डर में सिर्फ़ तीन हालात में लिखता है:

  • कोई रिपेयर जो आप मीडिया स्वास्थ्य से शुरू करते हैं (असली फ़ाइल बैकअप के तौर पर रखी जाती है);
  • OpenSubtitles से डाउनलोड किया गया कोई सबटाइटल (फ़िल्म के बगल में एक .subtitles फ़ोल्डर में सेव होता है);
  • एक छोटी टेस्ट फ़ाइल, जो तुरंत मिटा दी जाती है, और यह जाँचती है कि Evey को अब भी नई फ़ाइलें दिख रही हैं।

आम बदलाव

इनमें से हर बदलाव उसी फ़ाइल में बस कुछ लाइनों का है।

दूसरा मीडिया फ़ोल्डर। volumes: के नीचे - /other/path:/media2 जोड़ें। तीसरा /media3 होगा, और इसी तरह आगे।

एक ही मशीन पर दूसरा Evey। उसे दूसरा container_name और दूसरे होस्ट पोर्ट दें, वरना docker compose up शुरू होने से मना कर देता है (नाम पहले से इस्तेमाल में है)।

दूसरा पोर्ट। सिर्फ़ बाईं तरफ़ वाला नंबर बदलें, जैसे "8080:9091"। फिर ब्राउज़र में और ऐप में :8080 टाइप करें।

फ़ाइलों का मालिक कौन है। Evey अपने-आप आपके मीडिया फ़ोल्डर के मालिक को अपना लेता है, ताकि रिपेयर फ़ाइलों में लिख सकें। खुद चुनने के लिए, environment: के नीचे PUID और PGID जोड़ें, उन नंबरों के साथ जो id -u और id -g से मिलते हैं। कंटेनर सिर्फ़ यह लागू करने के लिए root के रूप में शुरू होता है; Evey खुद कभी root के रूप में नहीं चलता।

वीडियो बदलने के लिए ग्राफ़िक्स कार्ड। कंटेनर को कार्ड का एक्सेस दें: देखें हार्डवेयर एक्सेलेरेशन।

आप कौन-सा वर्ज़न चलाते हैं। यह image: लाइन तय करती है:

image: आपको क्या मिलता है
eveyproject/evey:latest सबसे नई रिलीज़; हर docker compose pull आपको अगली रिलीज़ पर ले जाता है
eveyproject/evey:0.1 उस माइनर लाइन का सबसे नया फ़िक्स (0.1.0, 0.1.1, ...), कभी नया माइनर वर्ज़न नहीं
eveyproject/evey:0.1.0 ठीक वही रिलीज़, जब तक आप लाइन नहीं बदलते
eveyproject/evey:sha-<commit> एक सटीक बिल्ड, यही अकेला टैग है जो कभी नहीं हिलता
eveyproject/evey:master डेवलपमेंट ब्रांच, हर push पर दोबारा बनती है: परीक्षण के लिए, उस सर्वर के लिए नहीं जिस पर आप निर्भर हैं

रिलीज़ नंबर सेमांटिक वर्ज़निंग का पालन करते हैं और 0.1.0 से शुरू होते हैं; 0.x लाइन पब्लिक बीटा है। वर्ज़न बदलने के लिए लाइन बदलें, फिर docker compose pull && docker compose up -d चलाएँ; आपका डेटा ./evey-data में ही रहता है। चल रहा वर्ज़न एडमिन → डैशबोर्ड में, /healthz पर, और docker exec evey-server evey version से दिखता है। बिना प्रत्यय वाला टैग पूरी इमेज है, जिसमें सभी प्लगइन रनटाइम (Python, Node.js, PHP, Ruby और Lua) होते हैं; -nodejs और -lean हल्के बिल्ड हैं जिनमें इनमें से कम रनटाइम होते हैं (विवरण)।

आप पहले से रिवर्स प्रॉक्सी चलाते हैं (एक प्रोग्राम जो आपकी सर्विसों के आगे HTTPS लगाता है): देखें रिमोट एक्सेस और HTTPS।

NAS पर (Synology Container Manager, QNAP Container Station)
  • पहली बार शुरू करने से पहले evey-data फ़ोल्डर बना लें। Docker की कमांड लाइन के उलट, ये इंटरफ़ेस ऐसा फ़ोल्डर माउंट करने से मना कर देते हैं जो मौजूद नहीं है। और कुछ बनाने की ज़रूरत नहीं।
  • PUID और PGID में NAS का वह यूज़र डालें जो मीडिया का मालिक है (SSH से id <user>; Synology पर आमतौर पर 1026 के आसपास, ग्रुप 100)। NAS के शेयर अक्सर root के होते हैं, और Evey root को अपने-आप कभी नहीं अपनाता।
  • Quick Sync वाला Intel NAS: हार्डवेयर एक्सेलेरेशन में बताई गई devices: और group_add: लाइनें जोड़ें।

Evey अपने-आप क्या सेट करता है

ये चीज़ें आपको सेट नहीं करनी:

  • सर्वर एक साथ कितना वीडियो बदल सकता है। जब पहली बार काम कम होता है, तब वह मशीन को नाप लेता है।
  • ग्राफ़िक्स कार्ड। आपने कंटेनर को जो कार्ड दिया है, Evey उसे पहचानता है और एक असली कन्वर्ज़न करके उसे जाँचता है।
  • हर डिवाइस कोई फ़ाइल कैसे चलाता है। यह हर प्लेबैक पर तय होता है: देखें Evey प्लेबैक का तरीका कैसे चुनता है।
  • घर के बाहर से एक्सेस। तब तक बंद, जब तक आप सर्वर को कोई पब्लिक पता नहीं देते।

जो सेटिंग्स आप शायद बाद में बदलना चाहें (सर्वर का नाम, कामों का शेड्यूल, सीमाएँ, API कुंजियाँ), वे एडमिन पैनल में हैं, compose फ़ाइल में नहीं। जो थोड़े-बहुत एनवायरनमेंट वेरिएबल हैं, उनकी लिस्ट कॉन्फ़िगरेशन रेफ़रेंस में है।