> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kombify.io/llms.txt
> Use this file to discover all available pages before exploring further.

# अपने फ़ोन से फ़ोटो का बैकअप लें

> अपने फ़ोन को अपने फ़ोटो सर्वर से जोड़ें, ऐप के पहले स्टार्ट से लेकर पहली अपलोड की गई फ़ोटो तक।

export const PhotoGuideSummary = ({children, ...props}) => {
  const Tag = "summary";
  return <Tag {...props}>{children}</Tag>;
};

export const PhotoGuideStrong = ({children, ...props}) => {
  const Tag = "strong";
  return <Tag {...props}>{children}</Tag>;
};

export const PhotoGuideFooter = ({children, ...props}) => {
  const Tag = "footer";
  return <Tag {...props}>{children}</Tag>;
};

export const PhotoGuideFigure = ({children, ...props}) => {
  const Tag = "figure";
  return <Tag {...props}>{children}</Tag>;
};

export const PhotoGuideFigcaption = ({children, ...props}) => {
  const Tag = "figcaption";
  return <Tag {...props}>{children}</Tag>;
};

export const PhotoGuideDialog = ({children, ...props}) => {
  const Tag = "dialog";
  return <Tag {...props}>{children}</Tag>;
};

export const PhotoGuideDetails = ({children, ...props}) => {
  const Tag = "details";
  return <Tag {...props}>{children}</Tag>;
};

export const PhotoGuideAside = ({children, ...props}) => {
  const Tag = "aside";
  return <Tag {...props}>{children}</Tag>;
};

export const PhotoGuideArticle = ({children, ...props}) => {
  const Tag = "article";
  return <Tag {...props}>{children}</Tag>;
};

export const PhotoGuideIcon = ({name}) => {
  const icons = {
    icon0: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><rect height="20" rx="3" width="12" x="6" y="2"></rect><path d="M10 5h4M11 19h2"></path></svg>,
    icon1: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><rect height="7" rx="1.5" width="7" x="3" y="3"></rect><rect height="7" rx="1.5" width="7" x="14" y="3"></rect><rect height="7" rx="1.5" width="7" x="3" y="14"></rect><rect height="7" rx="1.5" width="7" x="14" y="14"></rect></svg>,
    icon2: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="M12 5v15M3 4c4-1 6 0 9 1 3-1 5-2 9-1v15c-4-1-6 0-9 1-3-1-5-2-9-1Z"></path></svg>,
    icon3: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="M6 8V3h12v5M6 17H3V8h18v9h-3M6 14h12v7H6Z"></path><path d="M17 11h.01"></path></svg>,
    icon4: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="m5 12 4 4L19 6"></path></svg>,
    icon5: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="M5 12h14M13 6l6 6-6 6"></path></svg>,
    icon6: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="M14 4h6v6m0-6L10 14"></path><path d="M10 4H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-5"></path></svg>,
    icon7: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="M16.7 1.8c0 2.1-1.7 4.4-3.7 4.2-.4-2.1 1.8-4.3 3.7-4.2ZM20.4 17.3c-.5 1.2-.8 1.7-1.5 2.7-1 1.5-2.4 3.3-4.2 3.3-1.6 0-2-1-4.1-.9-2.1 0-2.5 1-4.2.9-1.8-.1-3.1-1.7-4.1-3.2C-.5 15.9-.7 10.4 1 7.6c1.2-2 3.1-3.1 4.9-3.1 1.9 0 3.1 1 4.7 1 1.5 0 2.5-1 4.7-1 1.6 0 3.3.9 4.5 2.3-4 2.2-3.3 8 0 10.5Z" fill="currentColor" stroke="none" transform="translate(2 0) scale(.87)"></path></svg>,
    icon8: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="M5 12a7 7 0 0 1 14 0v6H5Zm2-6L5 3m12 3 2-3M2 12v5m20-5v5M8 18v4m8-4v4"></path><path d="M8.5 9h.01M15.5 9h.01"></path></svg>,
    icon9: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><rect height="7" rx="2" width="18" x="3" y="3"></rect><rect height="7" rx="2" width="18" x="3" y="14"></rect><path d="M7 6.5h.01M7 17.5h.01M16 6.5h2M16 17.5h2"></path></svg>,
    icon10: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"></circle><path d="M12 11v5M12 7h.01"></path></svg>,
    icon11: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"></circle><path d="m8 12 3 3 5-6"></path></svg>,
    icon12: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="M3 7h4l2-3h6l2 3h4v13H3Z"></path><circle cx="12" cy="13" r="4"></circle></svg>,
    icon13: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><circle cx="10.5" cy="10.5" r="6.5"></circle><path d="m16 16 5 5M7 10.5h7M10.5 7v7"></path></svg>,
    icon14: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="M2 8a16 16 0 0 1 20 0M5 12a11 11 0 0 1 14 0M8.5 16a5 5 0 0 1 7 0M12 20h.01"></path></svg>,
    icon15: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><rect height="14" rx="2" width="20" x="2" y="3"></rect><path d="M8 22h8M12 17v5"></path></svg>,
    icon16: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="m15 5-7 7 7 7"></path></svg>,
    icon17: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="M12 3 3 7v6c0 5 9 9 9 9s9-4 9-9V7Z"></path><path d="m8 12 3 3 5-6"></path></svg>,
    icon18: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="m12 3 2.8 6.2L21 12l-6.2 2.8L12 21l-2.8-6.2L3 12l6.2-2.8Z"></path></svg>,
    icon19: <svg aria-hidden="true" className="ico" fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.7" viewBox="0 0 24 24"><path d="m6 6 12 12M6 18 18 6"></path></svg>
  };
  return icons[name] || null;
};

export const PhotoGuide = ({children}) => {
  const rootRef = useRef(null);
  useEffect(() => {
    const root = rootRef.current;
    if (!root) return;
    const $ = (selector, scope = root) => scope.querySelector(selector);
    const $$ = (selector, scope = root) => Array.from(scope.querySelectorAll(selector));
    const byId = id => $('[id="' + id + '"]');
    const abort = new AbortController();
    const listen = (node, event, handler) => node && node.addEventListener(event, handler, {
      signal: abort.signal
    });
    const storageKey = 'kombify-photo-guide-v3';
    let current = 0;
    let completed = [false, false, false, false];
    let verified = [false, false, false];
    let toastTimer;
    try {
      const saved = JSON.parse(localStorage.getItem(storageKey) || 'null');
      if (Array.isArray(saved?.completed) && saved.completed.length === 4) completed = saved.completed.map(Boolean);
      if (Array.isArray(saved?.verified) && saved.verified.length === 3) verified = saved.verified.map(Boolean);
    } catch (_) {}
    if (!verified.every(Boolean)) completed[3] = false;
    const save = () => {
      try {
        localStorage.setItem(storageKey, JSON.stringify({
          completed,
          verified
        }));
      } catch (_) {}
    };
    const toast = text => {
      const node = $('#kpg-toast');
      node.textContent = text;
      node.hidden = false;
      clearTimeout(toastTimer);
      toastTimer = setTimeout(() => {
        node.hidden = true;
      }, 3800);
    };
    const updateProgress = () => {
      $('#kpg-progress-label').textContent = `4 में से ${completed.filter(Boolean).length} चरण पूरे हुए`;
      $$('.progress-meter span').forEach((node, i) => node.classList.toggle('done', completed[i]));
      $$('.step-tab').forEach((node, i) => {
        node.classList.toggle('done', completed[i]);
        $('.step-dot', node).textContent = completed[i] ? '✓' : String(i + 1);
      });
      $('#kpg-done-message').hidden = !completed[3];
    };
    const selectStep = (index, focus = false) => {
      current = Math.max(0, Math.min(3, index));
      $$('.step-tab').forEach((node, i) => {
        node.setAttribute('aria-selected', String(i === current));
        node.tabIndex = i === current ? 0 : -1;
      });
      $$('.guide-panel').forEach((node, i) => {
        node.hidden = i !== current;
      });
      $('#kpg-prev').disabled = current === 0;
      $('#kpg-next span').textContent = current === 3 ? completed[3] ? 'और विषय' : 'जाँच पूरी करें' : 'हो गया · आगे';
      if (focus) $('[data-step="' + current + '"]').focus();
    };
    $$('[data-step]').forEach(node => listen(node, 'click', () => selectStep(Number(node.dataset.step))));
    listen($('.step-tabs'), 'keydown', event => {
      if (!['ArrowRight', 'ArrowLeft', 'Home', 'End'].includes(event.key)) return;
      event.preventDefault();
      selectStep(event.key === 'Home' ? 0 : event.key === 'End' ? 3 : (current + (event.key === 'ArrowRight' ? 1 : 3)) % 4, true);
    });
    listen($('#kpg-prev'), 'click', () => selectStep(current - 1));
    listen($('#kpg-next'), 'click', () => {
      if (current < 3) {
        completed[current] = true;
        save();
        updateProgress();
        selectStep(current + 1, true);
      } else if (completed[3]) {
        $('#kpg-more').scrollIntoView({
          block: 'start'
        });
        $('.more-card').focus({
          preventScroll: true
        });
      } else if (verified.every(Boolean)) {
        completed[3] = true;
        save();
        updateProgress();
        selectStep(3);
        toast('आपकी जाँच इस ब्राउज़र में पूरी के रूप में चिह्नित हो गई है।');
      } else {
        toast('पहले अपने फ़ोटो सर्वर के तीनों बिंदु जाँच लें।');
        $('#kpg-verify-' + verified.indexOf(false)).focus();
      }
    });
    $$('.verify-list input').forEach((node, i) => {
      node.checked = verified[i];
      listen(node, 'change', () => {
        verified[i] = node.checked;
        if (!verified.every(Boolean)) completed[3] = false;
        save();
        updateProgress();
        selectStep(current);
      });
    });
    listen($('#kpg-reset-progress'), 'click', () => {
      completed = [false, false, false, false];
      verified = [false, false, false];
      $$('.verify-list input').forEach(node => {
        node.checked = false;
      });
      save();
      updateProgress();
      selectStep(0);
      toast('इस ब्राउज़र में आपकी प्रगति रीसेट हो गई है।');
    });
    listen($('#kpg-print'), 'click', () => window.print());
    const openDialog = id => {
      const dialog = byId(id);
      if (dialog && !dialog.open) dialog.showModal();
    };
    $$('[data-open]').forEach(node => listen(node, 'click', event => {
      event.preventDefault();
      openDialog(node.dataset.open);
    }));
    $$('[data-close]').forEach(node => listen(node, 'click', () => node.closest('dialog').close()));
    $$('dialog').forEach(dialog => listen(dialog, 'click', event => {
      if (event.target !== dialog) return;
      const rect = dialog.getBoundingClientRect();
      if (event.clientX < rect.left || event.clientX > rect.right || event.clientY < rect.top || event.clientY > rect.bottom) dialog.close();
    }));
    $$('[data-zoom]').forEach(node => listen(node, 'click', () => {
      const image = $('img', node.closest('figure'));
      $('#kpg-zoom-image').src = image.currentSrc || image.src;
      $('#kpg-zoom-image').alt = image.alt;
      $('#kpg-zoom-source').href = image.src;
      openDialog('kpg-zoom-dialog');
    }));
    $$('[data-reveal]').forEach(node => listen(node, 'click', () => {
      const details = byId(node.dataset.reveal);
      if (details) details.open = true;
    }));
    const checkImage = image => image.closest('.screen-figure').classList.toggle('image-unavailable', !image.complete || !image.naturalWidth);
    $$('.screen-image > img').forEach(image => {
      listen(image, 'load', () => checkImage(image));
      listen(image, 'error', () => checkImage(image));
      if (image.complete) checkImage(image);
    });
    const imageTimer = setTimeout(() => $$('.screen-image > img').forEach(checkImage), 7000);
    updateProgress();
    selectStep(0);
    return () => {
      abort.abort();
      clearTimeout(toastTimer);
      clearTimeout(imageTimer);
      $$('dialog[open]').forEach(dialog => dialog.close());
    };
  }, []);
  return <div className="kombify-photo-guide not-prose" lang="hi" ref={rootRef}>{children}</div>;
};

<PhotoGuide>
  <div className="guide-content" id="kpg-photo-guide-content">
    <div className="page-top">
      <div>
        <div className="intro-meta"><span><PhotoGuideIcon name="icon0" /> iPhone, iPad & Android</span><span><PhotoGuideIcon name="icon1" /> 4 छोटे चरण</span><span><PhotoGuideIcon name="icon2" /> पहले से किसी जानकारी की ज़रूरत नहीं</span></div>
      </div>

      <div className="page-tools">
        <button aria-label="गाइड प्रिंट करें" className="tool-button" id="kpg-print" type="button">
          <PhotoGuideIcon name="icon3" />
        </button>
      </div>
    </div>

    <div className="ready-strip"><strong>आपको क्या चाहिए</strong><span><PhotoGuideIcon name="icon4" /> चलता हुआ Immich सर्वर</span><span><PhotoGuideIcon name="icon4" /> आपके फ़ोटो सर्वर का पता और खाता</span><a data-reveal="kpg-no-server" href="#kpg-help">अभी सेट नहीं है? <PhotoGuideIcon name="icon5" /></a></div>

    <section aria-labelledby="kpg-apps-title" className="downloads" id="kpg-apps">
      <div className="section-top">
        <h2 id="kpg-apps-title">सबसे पहले सही ऐप लें।</h2><a className="small-link" href="https://immich.app" rel="noopener noreferrer" target="_blank">सीधे Immich से <PhotoGuideIcon name="icon6" /></a>
      </div>

      <div className="downloads-grid"><a className="download-card active" href="https://apps.apple.com/app/immich/id1613945652" rel="noopener noreferrer" target="_blank"><span className="platform-icon"><PhotoGuideIcon name="icon7" /></span><span className="download-text"><strong>iPhone & iPad</strong><small>iOS के लिए Immich</small><span className="store-name">App Store में खोलें <PhotoGuideIcon name="icon6" /></span></span></a><a className="download-card" href="https://play.google.com/store/apps/details?id=app.alextran.immich" rel="noopener noreferrer" target="_blank"><span className="platform-icon"><PhotoGuideIcon name="icon8" /></span><span className="download-text"><strong>Android</strong><small>Android के लिए Immich</small><span className="store-name">Google Play में खोलें <PhotoGuideIcon name="icon6" /></span></span></a><a className="download-card" href="https://docs.immich.app/install/docker-compose/" rel="noopener noreferrer" target="_blank"><span className="platform-icon"><PhotoGuideIcon name="icon9" /></span><span className="download-text"><strong>अभी तक फ़ोटो सर्वर नहीं है?</strong><small>ऑपरेटर के लिए</small><span className="store-name">सर्वर सेट करें <PhotoGuideIcon name="icon6" /></span></span></a></div>
      <p className="download-hint">नीचे के चरण iPhone या iPad उपयोग करते हैं। <a className="" href="https://docs.immich.app/features/mobile-backup/#android" rel="noopener noreferrer" target="_blank">Android के लिए नोट्स <PhotoGuideIcon name="icon6" /></a> · केवल ऐप सर्वर की जगह नहीं लेता।</p>
    </section>

    <section aria-labelledby="kpg-guide-title" className="guide-section" id="kpg-guide">
      <div className="guide-heading">
        <h2 id="kpg-guide-title">चरण-दर-चरण जोड़ें।</h2><span className="platform-label"><PhotoGuideIcon name="icon7" /> iPhone / iPad</span>
      </div>

      <div className="wizard">
        <div aria-label="सेटअप चरण" className="step-tabs" role="tablist"><button aria-controls="kpg-panel-0" aria-selected="true" className="step-tab" data-step="0" id="kpg-tab-0" role="tab" tabIndex="0" type="button"><span className="step-dot">1</span><span>कनेक्ट करें</span></button><button aria-controls="kpg-panel-1" aria-selected="false" className="step-tab" data-step="1" id="kpg-tab-1" role="tab" tabIndex="-1" type="button"><span className="step-dot">2</span><span>एल्बम चुनें</span></button><button aria-controls="kpg-panel-2" aria-selected="false" className="step-tab" data-step="2" id="kpg-tab-2" role="tab" tabIndex="-1" type="button"><span className="step-dot">3</span><span>अपलोड शुरू करें</span></button><button aria-controls="kpg-panel-3" aria-selected="false" className="step-tab" data-step="3" id="kpg-tab-3" role="tab" tabIndex="-1" type="button"><span className="step-dot">4</span><span>जाँचें</span></button></div>

        <PhotoGuideArticle aria-labelledby="kpg-tab-0" className="guide-panel" id="kpg-panel-0" role="tabpanel">
          <div className="panel-copy">
            <div className="step-kicker">चरण 01 / 04</div>
            <h3>अपने फ़ोटो का<br />पता दर्ज करें।</h3>
            <p className="step-intro">Immich ऐप खोलें। वह पहले पूछता है कि आप किस सर्वर से जुड़ना चाहते हैं।</p>
            <ol className="click-list"><li><span className="click-num">1</span><span><span className="key">Server Endpoint URL</span> में अपना Immich पता दर्ज करें।</span></li><li><span className="click-num">2</span><span><span className="key">Next</span> पर टैप करें और अपने <strong>Immich खाते</strong> से साइन इन करें।</span></li></ol>
            <div className="micro-note"><PhotoGuideIcon name="icon10" /><span>तस्वीर का पता केवल एक उदाहरण है। वह पता उपयोग करें जिससे आप ब्राउज़र में अपना फ़ोटो सर्वर खोलते हैं।</span></div>

            <PhotoGuideDetails>
              <PhotoGuideSummary>मुझे पता और खाता कहाँ से मिलेगा?</PhotoGuideSummary>
              <p>उस व्यक्ति से जिसने आपका फ़ोटो सर्वर सेट किया। यदि kombify सेटअप उसे पहले से चला रहा है, तो अपने Node Hub से फ़ोटो सेवा खोलें। आपका Immich खाता अपने-आप आपका kombify खाता नहीं है।</p>
            </PhotoGuideDetails>

            <div className="step-check"><PhotoGuideIcon name="icon11" /> इसके बाद आपको अपना फ़ोटो ओवरव्यू दिखता है।</div>
          </div>

          <div className="panel-visual">
            <span className="screenshot-tag"><PhotoGuideIcon name="icon12" /> वेंडर स्क्रीनशॉट</span>

            <PhotoGuideFigure className="screen-figure" data-asset="login">
              <div className="screen-image"><img alt="ऐप का पहला स्टार्ट" decoding="async" height="1000" referrerPolicy="no-referrer" src="https://docs.immich.app/assets/images/sign-in-phone-92be8a8eab0f72d121e8b62e6f69df17.webp" width="870" /><span className="annotation login-url" data-n="1" /><span className="annotation login-next" data-n="2" /><a className="image-fallback" href="https://docs.immich.app/assets/images/sign-in-phone-92be8a8eab0f72d121e8b62e6f69df17.webp" rel="noopener noreferrer" target="_blank"><PhotoGuideIcon name="icon6" /> वेंडर स्क्रीनशॉट खोलें<span>इसे लोड करने के लिए इंटरनेट कनेक्शन चाहिए।</span></a><button aria-label="स्क्रीनशॉट बड़ा करें: ऐप का पहला स्टार्ट" className="zoom-button" data-zoom="login" type="button"><PhotoGuideIcon name="icon13" /></button></div><PhotoGuideFigcaption>ऐप का पहला स्टार्ट · <a className="" href="https://docs.immich.app/features/mobile-app/" rel="noopener noreferrer" target="_blank">Immich <PhotoGuideIcon name="icon6" /></a></PhotoGuideFigcaption>
            </PhotoGuideFigure>
          </div>
        </PhotoGuideArticle>

        <PhotoGuideArticle aria-labelledby="kpg-tab-1" className="guide-panel" hidden={true} id="kpg-panel-1" role="tabpanel">
          <div className="panel-copy">
            <div className="step-kicker">चरण 02 / 04</div>
            <h3>चुनें कि कौन-सी फ़ोटो<br />अपलोड करनी हैं।</h3>
            <p className="step-intro">पहले परीक्षण के लिए एक छोटा एल्बम, जिसकी एक फ़ोटो आप गँवा सकें, काफ़ी है।</p>
            <ol className="click-list"><li><span className="click-num">1</span><span>ऊपर दाईं ओर <strong>क्लाउड आइकन</strong> खोलें। <span className="key">Backup Albums</span> के नीचे <span className="key">Select</span> पर टैप करें।</span></li><li><span className="click-num">2</span><span>अपना परीक्षण एल्बम चुनें। तस्वीर उदाहरण के रूप में <span className="key">Recents</span> को चिह्नित करती है।</span></li><li><span className="click-num">3</span><span>बैकअप व्यू में लौटने के लिए बैक तीर का उपयोग करें।</span></li></ol>
            <div className="micro-note"><PhotoGuideIcon name="icon10" /><span>ऐप को उन फ़ोटो तक पहुँचने दें जो आप चाहते हैं। सीमित फ़ोटो एक्सेस के साथ ऐप केवल वही तस्वीरें देखता है जो आपने उसके साथ साझा की हैं।</span></div>

            <PhotoGuideDetails>
              <PhotoGuideSummary>बाद में सभी नई फ़ोटो शामिल करनी हैं?</PhotoGuideSummary>
              <p>वह एल्बम चुनें जहाँ आपकी नई तस्वीरें आती हैं। अपलोड चालू करने से पहले उसका आकार जाँचें। बड़े एल्बम में ज़्यादा समय लगता है।</p>
            </PhotoGuideDetails>

            <div className="step-check"><PhotoGuideIcon name="icon11" /> बैकअप व्यू आपका चुना हुआ एल्बम दिखाता है।</div>
          </div>

          <div className="panel-visual">
            <span className="screenshot-tag"><PhotoGuideIcon name="icon12" /> वेंडर स्क्रीनशॉट</span>

            <PhotoGuideFigure className="screen-figure portrait" data-asset="albums">
              <div className="screen-image"><img alt="एल्बम चुनें" decoding="async" height="1000" referrerPolicy="no-referrer" src="https://docs.immich.app/assets/images/backup-album-selection-198b47e0b562cb00dcc5fbf0280bf6da.webp" width="609" /><span className="annotation album-mark" data-n="2" /><a className="image-fallback" href="https://docs.immich.app/assets/images/backup-album-selection-198b47e0b562cb00dcc5fbf0280bf6da.webp" rel="noopener noreferrer" target="_blank"><PhotoGuideIcon name="icon6" /> वेंडर स्क्रीनशॉट खोलें<span>इसे लोड करने के लिए इंटरनेट कनेक्शन चाहिए।</span></a><button aria-label="स्क्रीनशॉट बड़ा करें: एल्बम चुनें" className="zoom-button" data-zoom="albums" type="button"><PhotoGuideIcon name="icon13" /></button></div><PhotoGuideFigcaption>एल्बम चुनें · <a className="" href="https://docs.immich.app/features/mobile-app/" rel="noopener noreferrer" target="_blank">Immich <PhotoGuideIcon name="icon6" /></a></PhotoGuideFigcaption>
            </PhotoGuideFigure>
          </div>
        </PhotoGuideArticle>

        <PhotoGuideArticle aria-labelledby="kpg-tab-2" className="guide-panel" hidden={true} id="kpg-panel-2" role="tabpanel">
          <div className="panel-copy">
            <div className="step-kicker">चरण 03 / 04</div>
            <h3>अपलोड<br />चालू करें।</h3>
            <p className="step-intro">पहले अपलोड के लिए Wi-Fi पर रहें और ऐप खुला रखें।</p>
            <ol className="click-list"><li><span className="click-num">1</span><span>बैकअप व्यू में नीचे स्क्रोल करें।</span></li><li><span className="click-num">2</span><span><span className="key">Enable Backup</span> चालू करें। ऐप आपके चुने एल्बम की फ़ाइलें अपलोड करता है।</span></li><li><span className="click-num">3</span><span><span className="key">Remainder</span> के नीचे प्रगति देखें, जो अपलोड होने वाली बची फ़ाइलें गिनता है।</span></li></ol>
            <div className="micro-note"><PhotoGuideIcon name="icon14" /><span>डिफ़ॉल्ट रूप से Immich केवल Wi-Fi पर अपलोड करता है। बैकअप सेटिंग में गियर आइकन मोबाइल डेटा विकल्प रखता है।</span></div>

            <PhotoGuideDetails>
              <PhotoGuideSummary>ऐप बंद होने पर भी अपलोड करना है?</PhotoGuideSummary>
              <p>iOS में Immich के लिए Background App Refresh चालू करें। iOS तय करता है कि ऐप बैकग्राउंड में कब चल सकता है, इसलिए तुरंत अपलोड की गारंटी नहीं है। <a data-reveal="kpg-background" href="#kpg-help">चरण देखें</a>।</p>
            </PhotoGuideDetails>

            <div className="step-check"><PhotoGuideIcon name="icon11" /> आपके परीक्षण एल्बम के लिए कोई अपलोड बाकी नहीं है।</div>
          </div>

          <div className="panel-visual">
            <span className="screenshot-tag"><PhotoGuideIcon name="icon12" /> वेंडर स्क्रीनशॉट</span>

            <PhotoGuideFigure className="screen-figure tall" data-asset="enable">
              <div className="screen-image"><img alt="बैकअप चालू करें" decoding="async" height="1000" referrerPolicy="no-referrer" src="https://docs.immich.app/assets/images/enable-backup-button-590dec9774e09ecc6ec6f1ddeda37a3c.webp" width="508" /><span className="annotation enable-mark" data-n="2" /><a className="image-fallback" href="https://docs.immich.app/assets/images/enable-backup-button-590dec9774e09ecc6ec6f1ddeda37a3c.webp" rel="noopener noreferrer" target="_blank"><PhotoGuideIcon name="icon6" /> वेंडर स्क्रीनशॉट खोलें<span>इसे लोड करने के लिए इंटरनेट कनेक्शन चाहिए।</span></a><button aria-label="स्क्रीनशॉट बड़ा करें: बैकअप चालू करें" className="zoom-button" data-zoom="enable" type="button"><PhotoGuideIcon name="icon13" /></button></div><PhotoGuideFigcaption>बैकअप चालू करें · <a className="" href="https://docs.immich.app/features/mobile-app/" rel="noopener noreferrer" target="_blank">Immich <PhotoGuideIcon name="icon6" /></a></PhotoGuideFigcaption>
            </PhotoGuideFigure>
          </div>
        </PhotoGuideArticle>

        <PhotoGuideArticle aria-labelledby="kpg-tab-3" className="guide-panel" hidden={true} id="kpg-panel-3" role="tabpanel">
          <div className="panel-copy">
            <div className="step-kicker">चरण 04 / 04</div>
            <h3>क्या आपकी फ़ोटो<br />सचमुच पहुँची?</h3>
            <p className="step-intro">किसी दूसरे डिवाइस के ब्राउज़र में अपना Immich पता खोलें और उसी खाते से साइन इन करें।</p>
            <div className="verify-list"><label><input id="kpg-verify-0" type="checkbox" /><span>मैं फ़ोटो ओवरव्यू में अपनी परीक्षण फ़ोटो देख सकता/सकती हूँ।</span></label><label><input id="kpg-verify-1" type="checkbox" /><span>फ़ोटो पूरे व्यू में खुलती है।</span></label><label><input id="kpg-verify-2" type="checkbox" /><span>ऐप परीक्षण एल्बम के लिए कोई अपलोड बाकी नहीं दिखाता।</span></label></div>
            <div className="done-message" hidden={true} id="kpg-done-message">आपकी पुष्टि सहेज ली गई है। आपका पहला अपलोड जाँचा जा चुका है।</div>
            <div className="micro-note"><PhotoGuideIcon name="icon10" /><span>केवल उसी पर टिक करें जिसे आपने खुद जाँचा है। यह गाइड आपके फ़ोटो सर्वर को नहीं पढ़ती।</span></div>
            <div className="step-check"><PhotoGuideIcon name="icon11" /> अब आप और एल्बम जोड़ सकते हैं।</div>
          </div>

          <div className="panel-visual verify-visual">
            <span className="screenshot-tag">योजनाबद्ध जाँच</span>

            <div className="flow-device">
              <div className="flow-node">
                <PhotoGuideIcon name="icon0" />
              </div>

              <span className="flow-arrow">
                <PhotoGuideIcon name="icon5" />
              </span>

              <div className="flow-node">
                <PhotoGuideIcon name="icon15" />

                <span className="check-stamp">
                  <PhotoGuideIcon name="icon4" />
                </span>
              </div>
            </div>

            <div className="flow-labels"><span>आपका iPhone</span><span>आपका फ़ोटो सर्वर</span></div>
            <div className="flow-caption">एक फ़ोटो। दोनों डिवाइस पर।</div>
            <div className="flow-sub">ब्राउज़र में जाँचें, केवल अपने फ़ोन के ऐप में नहीं।</div>
          </div>
        </PhotoGuideArticle>

        <div className="wizard-bottom">
          <div className="progress-note">
            <span id="kpg-progress-label">4 में से 0 चरण पूरे हुए</span>

            <div aria-hidden="true" className="progress-meter">
              <span />

              <span />

              <span />

              <span />
            </div>
          </div>

          <button className="prev" disabled={true} id="kpg-prev" type="button"><PhotoGuideIcon name="icon16" /> वापस</button><button className="next" id="kpg-next" type="button"><span>हो गया · अगला</span><PhotoGuideIcon name="icon5" /></button>
        </div>
      </div>

      <p className="provenance-inline">Immich से रेफ़रेंस तस्वीरें · अंग्रेज़ी मेनू · kombify के परीक्षण कैप्चर नहीं। <a data-reveal="kpg-sources-detail" href="#kpg-sources">तस्वीरों के स्रोत और तारीख़</a></p>
    </section>

    <PhotoGuideAside aria-label="बैकअप के बारे में महत्वपूर्ण नोट" className="warning">
      <PhotoGuideIcon name="icon17" />

      <div>
        <PhotoGuideStrong>आपकी फ़ोटो अपलोड हो गईं। यह अभी बैकअप नहीं है।</PhotoGuideStrong>
        <p>फ़ोटो फ़ाइलों <em>और</em> Immich डेटाबेस का बैकअप किसी अलग जगह भी लें। <a data-open="kpg-backup-dialog" href="#kpg-more">देखें कि क्या बैकअप लेना है</a>। फ़िलहाल अपने ओरिजिनल रखें।</p>
      </div>
    </PhotoGuideAside>

    <section aria-labelledby="kpg-more-title" className="more-section" id="kpg-more">
      <div className="section-top">
        <h2 id="kpg-more-title">आगे क्या।</h2>
      </div>

      <div className="more-grid"><button className="more-card" data-open="kpg-backup-dialog" type="button"><span className="more-icon green"><PhotoGuideIcon name="icon17" /></span><span><strong>अपनी फ़ोटो को और सुरक्षित करें</strong><small>पूर्ण बैकअप में क्या शामिल होना चाहिए।</small></span><PhotoGuideIcon name="icon5" /></button><button className="more-card" data-open="kpg-ai-dialog" type="button"><span className="more-icon"><PhotoGuideIcon name="icon18" /></span><span><strong>AI के साथ या उसके बिना उपयोग करें</strong><small>फ़ोटो खोज और चेहरा पहचान पर निर्णय लें।</small></span><PhotoGuideIcon name="icon5" /></button></div>
    </section>

    <section aria-labelledby="kpg-faq-title" className="faq-section" id="kpg-help">
      <h2 id="kpg-faq-title">अटक गए?</h2>

      <PhotoGuideDetails className="faq" id="kpg-no-server">
        <PhotoGuideSummary>मेरे पास अभी तक Immich सर्वर नहीं है।</PhotoGuideSummary>
        <div className="answer">ऐप मौजूदा Immich इंस्टॉलेशन से जुड़ता है। आप फ़ोटो सेवा को kombify StackKit से डिप्लॉय कर सकते हैं या सर्वर मैन्युअल रूप से सेट कर सकते हैं। <a className="" href="/hi/guides/stackkits/use-cases/photos">kombify से शुरू करें <PhotoGuideIcon name="icon6" /></a> · <a className="" href="https://docs.immich.app/install/docker-compose/" rel="noopener noreferrer" target="_blank">आधिकारिक मैन्युअल इंस्टॉलेशन <PhotoGuideIcon name="icon6" /></a>।</div>
      </PhotoGuideDetails>

      <PhotoGuideDetails className="faq">
        <PhotoGuideSummary>मेरा फ़ोटो पता नहीं खुलता।</PhotoGuideSummary>
        <div className="answer">पहले वही पता ब्राउज़र में आज़माएँ। यदि आपका सर्वर केवल आपके घरेलू नेटवर्क पर चलता है, तो अपने फ़ोन को उस Wi-Fi से या आपके सेट किए निजी एक्सेस से जोड़ें। वर्तनी और सर्वर की पहुँच जाँचें। प्रमाणपत्र की चेतावनियों को बायपास न करें। <a className="" href="https://docs.immich.app/administration/reverse-proxy/" rel="noopener noreferrer" target="_blank">ऑपरेटर के लिए नोट्स <PhotoGuideIcon name="icon6" /></a>।</div>
      </PhotoGuideDetails>

      <PhotoGuideDetails className="faq" id="kpg-background">
        <PhotoGuideSummary>फ़ोटो केवल तब अपलोड होती हैं जब ऐप खुला हो।</PhotoGuideSummary>
        <div className="answer">iPhone पर <strong>Settings → General → Background App Refresh</strong> खोलें। सुविधा की अनुमति दें और Immich के लिए चालू करें। iOS फिर भी तय करता है कि बैकग्राउंड कार्य कब और कितनी देर चलेंगे। पहले बड़े अपलोड के लिए ऐप खुला रखें। <a className="" href="https://docs.immich.app/features/mobile-backup/#ios" rel="noopener noreferrer" target="_blank">वेंडर गाइड <PhotoGuideIcon name="icon6" /></a>।</div>
      </PhotoGuideDetails>

      <PhotoGuideDetails className="faq">
        <PhotoGuideSummary>मेरा ऐप तस्वीरों से अलग दिखता है।</PhotoGuideSummary>
        <div className="answer">तस्वीरें अंग्रेज़ी Immich दस्तावेज़ीकरण से हैं। भाषा, ऑपरेटिंग सिस्टम और ऐप संस्करण आपको दिखने वाली चीज़ बदल देते हैं। सर्वर को आँख मूँदकर अपडेट करने के बजाय जाँचें कि कौन-से सर्वर और ऐप संस्करण साथ चलते हैं। <a className="" href="https://docs.immich.app/features/mobile-app/" rel="noopener noreferrer" target="_blank">वर्तमान ऐप गाइड <PhotoGuideIcon name="icon6" /></a> · <a className="" href="https://docs.immich.app/install/upgrading/" rel="noopener noreferrer" target="_blank">अपग्रेड नोट्स <PhotoGuideIcon name="icon6" /></a>।</div>
      </PhotoGuideDetails>
    </section>

    <PhotoGuideFooter className="footline">
      <div className="attribution"><strong>Immich फ़ोटो ऐप है। kombify उसे डिप्लॉय करने और उपयोग करने में आपकी मदद करता है।</strong><br />kombify Immich नहीं बनाता। <a className="" href="https://immich.app" rel="noopener noreferrer" target="_blank">वेंडर <PhotoGuideIcon name="icon6" /></a> · <a className="" href="https://docs.immich.app" rel="noopener noreferrer" target="_blank">दस्तावेज़ीकरण <PhotoGuideIcon name="icon6" /></a> · <a className="" href="https://github.com/immich-app/immich/blob/main/LICENSE" rel="noopener noreferrer" target="_blank">AGPLv3 लाइसेंस <PhotoGuideIcon name="icon6" /></a></div><button className="reset" id="kpg-reset-progress" type="button">प्रगति रीसेट करें</button>
    </PhotoGuideFooter>

    <section className="source-section" id="kpg-sources">
      <PhotoGuideDetails id="kpg-sources-detail">
        <PhotoGuideSummary>तस्वीरों के स्रोत, जाँचे गए लिंक और तारीख़</PhotoGuideSummary>

        <div className="source-content">
          <p><strong>रेफ़रेंस तस्वीरें · 16 सितंबर 2026।</strong> चरणों की तस्वीरें आधिकारिक Immich दस्तावेज़ीकरण के वास्तविक रेफ़रेंस व्यू हैं। ये दोबारा बनाई गई ऐप स्क्रीन नहीं हैं और kombify रोलआउट के नतीजे नहीं हैं। पतले बैंगनी मार्कर इस गाइड ने जोड़े हैं।</p>
          <p>वेंडर तस्वीरें अपना सटीक ऐप संस्करण नहीं बतातीं। भाषा, ऑपरेटिंग सिस्टम और ऐप संस्करण अलग हो सकते हैं। kombify रोलआउट परीक्षणों के कैप्चर अभी शामिल नहीं हैं।</p>
          <p>आपकी प्रगति केवल इसी ब्राउज़र में सहेजी जाती है। यह गाइड कोई खाता नहीं जोड़ती, कोई पासवर्ड नहीं माँगती और कोई अपलोड नहीं चलाती। एम्बेड की गई वेंडर तस्वीरों के लिए इंटरनेट कनेक्शन चाहिए।</p>
          <div className="source-links"><a className="" href="https://docs.immich.app/features/mobile-app/" rel="noopener noreferrer" target="_blank">ऐप और सेटअप <PhotoGuideIcon name="icon6" /></a><a className="" href="https://docs.immich.app/features/mobile-backup/" rel="noopener noreferrer" target="_blank">मोबाइल अपलोड <PhotoGuideIcon name="icon6" /></a><a className="" href="https://docs.immich.app/administration/backup-and-restore/" rel="noopener noreferrer" target="_blank">बैकअप और रीस्टोर <PhotoGuideIcon name="icon6" /></a><a className="" href="https://docs.immich.app/features/searching/" rel="noopener noreferrer" target="_blank">AI खोज <PhotoGuideIcon name="icon6" /></a><a className="" href="https://docs.immich.app/assets/images/sign-in-phone-92be8a8eab0f72d121e8b62e6f69df17.webp" rel="noopener noreferrer" target="_blank">तस्वीर: ऐप स्टार्ट <PhotoGuideIcon name="icon6" /></a><a className="" href="https://docs.immich.app/assets/images/backup-album-selection-198b47e0b562cb00dcc5fbf0280bf6da.webp" rel="noopener noreferrer" target="_blank">तस्वीर: एल्बम चयन <PhotoGuideIcon name="icon6" /></a><a className="" href="https://docs.immich.app/assets/images/enable-backup-button-590dec9774e09ecc6ec6f1ddeda37a3c.webp" rel="noopener noreferrer" target="_blank">तस्वीर: बैकअप <PhotoGuideIcon name="icon6" /></a></div>
        </div>
      </PhotoGuideDetails>

      <div className="dim">kombify की गाइड · तस्वीरें और ट्रेडमार्क उनके संबंधित स्वामियों के हैं।</div>
    </section>
  </div>

  <PhotoGuideDialog aria-labelledby="kpg-backup-title" id="kpg-backup-dialog">
    <div className="dialog-header">
      <h2 id="kpg-backup-title">आपके बैकअप में क्या शामिल होना चाहिए?</h2><button aria-label="बंद करें" className="dialog-close" data-close="" type="button"><PhotoGuideIcon name="icon19" /></button>
    </div>

    <div className="dialog-body">
      <p>फ़ोन से अपलोड आपको हार्डवेयर विफलता या आपके फ़ोटो सर्वर पर डेटा हानि से नहीं बचाता।</p>
      <ol className="simple-steps"><li><strong>फ़ोटो और वीडियो फ़ाइलों का बैकअप लें।</strong> केवल थंबनेल का नहीं।</li><li><strong>Immich डेटाबेस का भी बैकअप लें।</strong> उसमें एल्बम असाइनमेंट और अन्य मेटाडेटा रहता है। स्वचालित डेटाबेस एक्सपोर्ट में कोई फ़ोटो नहीं होती।</li><li><strong>प्रति को अलग रखें और रीस्टोर का परीक्षण करें।</strong> उसी डिस्क पर दूसरी डायरेक्टरी काफ़ी नहीं है।</li></ol><a className="primary-link" href="/hi/guides/stackkits/back-up-and-restore">kombify StackKits से बैकअप लें <PhotoGuideIcon name="icon6" /></a>
      <p className="fineprint">Immich खुद चला रहे हैं? <a className="" href="https://docs.immich.app/administration/backup-and-restore/" rel="noopener noreferrer" target="_blank">आधिकारिक Immich बैकअप गाइड <PhotoGuideIcon name="icon6" /></a>। वेंडर गाइड नए टैब में खुलती है।</p>
    </div>
  </PhotoGuideDialog>

  <PhotoGuideDialog aria-labelledby="kpg-ai-title" id="kpg-ai-dialog">
    <div className="dialog-header">
      <h2 id="kpg-ai-title">आपकी फ़ोटो, AI के साथ या उसके बिना।</h2><button aria-label="बंद करें" className="dialog-close" data-close="" type="button"><PhotoGuideIcon name="icon19" /></button>
    </div>

    <div className="dialog-body">
      <p><strong>AI विश्लेषण के बिना।</strong> यह गाइड अपलोड, फ़ोटो व्यू और एल्बम को कवर करती है। ये स्मार्ट खोज और चेहरा पहचान के बिना भी काम करते हैं।</p>
      <p><strong>AI विश्लेषण के साथ।</strong> Immich, उदाहरण के लिए, खोज शब्दों से तस्वीरें ढूँढ सकता है और लोगों को समूहित कर सकता है। इन सुविधाओं को आप सर्वर प्रशासन में कॉन्फ़िगर करते हैं।</p>
      <p>यह प्रोसेसिंग चलेगी या नहीं और कहाँ चलेगी, यह आपका इंस्टॉलेशन तय करता है। नया विश्लेषण बंद करने से मौजूदा विश्लेषण नतीजे नहीं हटते।</p><a className="primary-link" href="https://docs.immich.app/features/searching/" rel="noopener noreferrer" target="_blank">Immich में खोज और विकल्प <PhotoGuideIcon name="icon6" /></a>
      <p className="fineprint"><a className="" href="https://docs.immich.app/features/facial-recognition/" rel="noopener noreferrer" target="_blank">चेहरा पहचान <PhotoGuideIcon name="icon6" /></a> · <a className="" href="https://docs.immich.app/FAQ/#how-can-i-disable-machine-learning" rel="noopener noreferrer" target="_blank">AI बंद करें <PhotoGuideIcon name="icon6" /></a>। यह गाइड कोई सेटिंग नहीं बदलती।</p>
    </div>
  </PhotoGuideDialog>

  <PhotoGuideDialog aria-labelledby="kpg-zoom-title" className="zoom-dialog" id="kpg-zoom-dialog">
    <div className="dialog-header">
      <h2 id="kpg-zoom-title">वेंडर स्क्रीनशॉट</h2><button aria-label="तस्वीर बंद करें" className="dialog-close" data-close="" type="button"><PhotoGuideIcon name="icon19" /></button>
    </div>

    <div className="zoom-content"><img alt="" id="kpg-zoom-image" /><a href="https://docs.immich.app" id="kpg-zoom-source" rel="noopener noreferrer" target="_blank">वेंडर से मूल तस्वीर खोलें <PhotoGuideIcon name="icon6" /></a></div>
  </PhotoGuideDialog>

  <div className="toast" hidden={true} id="kpg-toast" role="status" />
</PhotoGuide>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.