<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Cách cài đặt và sử dụng PhotoPrism trên Raspberry Pi</title>
<meta name="description" content="Cách cài đặt và sử dụng PhotoPrism trên Raspberry Pi - Savefile - Tin Tức -...">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Cách cài đặt và sử dụng PhotoPrism trên Raspberry Pi">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;cach-cai-dat-va-su-dung-photoprism-tren-raspberry-pi-8357.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-cai-dat-va-su-dung-photoprism-tren-raspberry-pi-8357.html">
<link rel="shortcut icon" href="https://nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-cai-dat-va-su-dung-photoprism-tren-raspberry-pi-8357.html">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://nguoicodonvn2008.info/">https://nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Cách cài đặt và sử dụng PhotoPrism trên Raspberry Pi</h1>
		<ul class="list-inline">
			<li>Thứ tư - 15/05/2024 23:54</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Cách cài đặt và sử dụng PhotoPrism trên Raspberry Pi" src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-1.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<div class="content-detail textview" itemprop="articleBody">
<p>Trong thế giới của các trình quản lý ảnh tự host có thể chạy trên Raspberry Pi, PhotoPrism là một trong những công cụ mạnh mẽ nhất. Nó tự hào có chức năng tìm kiếm ấn tượng, khả năng nhận dạng khuôn mặt và thậm chí là cung cấp bản đồ thế giới hiển thị các vị trí mà ảnh của bạn được chụp! PhotoPrism cũng dễ dàng cài đặt trên Raspberry Pi.</p>

<h2>Cách cài đặt PhotoPrism trên Raspberry Pi</h2>

<p>Bước đầu tiên để thiết lập và chạy PhotoPrism trên Raspberry Pi là cài đặt Docker Compose, một công cụ được thiết kế để xác định và chạy các ứng dụng Docker đa container.</p>

<p>Để bắt đầu, cần thêm key và kho lưu trữ GPG chính thức của Docker vào nguồn phần mềm Raspberry Pi:</p>

<div class="codebar"></div>

<pre class="language- language-none prettyprint" id="pre0">
<code># Update your package lists
sudo apt-get update
# Install packages to allow apt to use a repository over HTTPS
sudo apt-get install ca-certificates curl
# Create a directory for Docker&#039;s keyring
sudo install -m 0755 -d /etc/apt/keyrings
# Download Docker&#039;s official GPG key
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
# Add the Docker repository
echo \
  &quot;deb &#91;arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc&#93; https://download.docker.com/linux/debian \
  $(. /etc/os-release &amp;&amp; echo &quot;$VERSION_CODENAME&quot;) stable&quot; | \
  sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null
# Update your package lists again after adding the Docker repository
sudo apt-get update</code></pre>

<p>Sau khi kho Docker được thêm vào, có thể tiến hành cài đặt Docker cùng với các thành phần thiết yếu khác, bao gồm Docker Compose:</p>

<div class="codebar"></div>

<pre class="language- language-none prettyprint" id="pre1">
<code>sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin</code></pre>

<p>Sau khi cài đặt Docker, bạn nên thêm người dùng của mình vào nhóm Docker để có thể thực thi các lệnh Docker mà không cần sử dụng sudo:</p>

<div class="codebar"></div>

<pre class="language- language-none prettyprint" id="pre2">
<code>sudo usermod -aG docker $USER</code></pre>

<p>Cuối cùng, hãy xác minh rằng Docker đã được cài đặt chính xác. Sau đó, bạn có thể chạy các container với tư cách là người dùng thông thường:</p>

<div class="codebar"></div>

<pre class="language- language-none prettyprint" id="pre3">
<code>docker run hello-world</code></pre>

<figure><img alt="Docker Hello World Container đang chạy trong Terminal" class="lazy lightbox loaded" data-i="0" data-src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-1.jpg" data-was-processed="true" height="530" src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-1.jpg" style="height: 516px; width: 696px;" width="714" />
<figcaption>Docker Hello World Container đang chạy trong Terminal</figcaption>
</figure>

<p>Bây giờ, Docker Compose đã được cài đặt, đã đến lúc cài đặt PhotoPrism. Quá trình này rất đơn giản và bao gồm việc tải xuống file docker-compose.yml, thực hiện một số thay đổi đối với file và chạy lệnh để khởi động ứng dụng và service cơ sở dữ liệu.</p>

<p>Tải file docker-compose.yml xuống bất kỳ thư mục nào bạn muốn bằng lệnh sau:</p>

<div class="codebar"></div>

<pre class="language- language-none prettyprint" id="pre4">
<code>wget https://dl.photoprism.app/docker/docker-compose.yml</code></pre>

<p>Mở file trong trình soạn thảo văn bản ưa thích (có thể sử dụng nano nếu đang truy cập Raspberry Pi từ xa thông qua <a data-type="internal" href="https://quantrimang.com/cong-nghe/tim-hieu-ve-ssh-154483" title="SSH là gì?">SSH</a>) và thay đổi tất cả mật khẩu giữ chỗ mặc định (“insecure”) thành mật khẩu bảo mật, đặc biệt là PHOTOPRISM_ADMIN_PASSWORD.</p>

<figure>
<div class="adbro-animated adbro-md" id="adbro" style="position: relative; display: block; overflow: hidden; width: 696px; height: 459px; top: 0px; margin-bottom: -459px; margin-right: auto; margin-left: auto; z-index: 1;">
<div class="adbro-vietjetair">
<div class="adbro-vietjetair__block adbro-takeover-replay">
<div class="adbro-vietjetair__block-img adbro-vietjetair__block-img--1">&nbsp;</div>

<div class="adbro-vietjetair__block-img adbro-vietjetair__block-img--2">&nbsp;</div>

<div class="adbro-vietjetair__block-img adbro-vietjetair__block-img--3">&nbsp;</div>

<div class="adbro-vietjetair__block-text">&nbsp;</div>

<div class="adbro-vietjetair__block-logo">&nbsp;</div>

<div class="adbro-vietjetair__block-btn">&nbsp;</div>

<div class="adbro-close">&nbsp;</div>
</div>

<div class="adbro-vietjetair__container">
<div class="adbro-vietjetair__bg">&nbsp;</div>

<div class="adbro-vietjetair__side adbro-vietjetair__side--1">
<div class="adbro-vietjetair__text adbro-vietjetair__text--1">&nbsp;</div>

<div class="adbro-vietjetair__img">&nbsp;</div>
</div>

<div class="adbro-vietjetair__side adbro-vietjetair__side--2">
<div class="adbro-vietjetair__text adbro-vietjetair__text--2">&nbsp;</div>
</div>

<div class="adbro-vietjetair__side adbro-vietjetair__side--3">
<div class="adbro-vietjetair__text adbro-vietjetair__text--3">&nbsp;</div>
</div>

<div class="adbro-vietjetair__logo">&nbsp;</div>

<div class="adbro-vietjetair__btn">&nbsp;</div>
</div>

<div class="adbro-replay">&nbsp;</div>
</div>

<div class="adbro-vietjetair-round" style="display: block;">
<div class="adbro-vietjetair-round__img adbro-vietjetair-round__img--1">&nbsp;</div>

<div class="adbro-vietjetair-round__img adbro-vietjetair-round__img--2">&nbsp;</div>

<div class="adbro-vietjetair-round__img adbro-vietjetair-round__img--3">&nbsp;</div>

<div class="adbro-vietjetair-round__btn">&nbsp;</div>

<div class="adbro-close">&nbsp;</div>
</div>

<div class="adbro-icon" id="adbro-info-handler">&nbsp;</div>

<div class="adbro-close" data-block="false" data-block-reason="0">&nbsp;</div>

<div class="adbro-link adbro-moat-beacon">&nbsp;</div>

<ul class="adbro-feedback" style="opacity: 0;visibility: hidden;">
	<li class="adbro-feedback__item" data-block-reason="4" data-trans-vn="Che nội dung">&nbsp;</li>
	<li class="adbro-feedback__item" data-block-reason="2" data-trans-vn="Không quan tâm">&nbsp;</li>
	<li class="adbro-feedback__item" data-block-reason="3" data-trans-vn="Không phù hợp">&nbsp;</li>
	<li class="adbro-feedback__item" data-block-reason="1" data-trans-vn="Thấy quá nhiều">&nbsp;</li>
</ul>
</div>
<img alt="Mật khẩu mặc định của Photoprism" class="lazy lightbox loaded" data-adbro-processed="true" data-i="1" data-src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-2.jpg" data-was-processed="true" height="528" src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-2.jpg" style="height: 459px; width: 696px;" width="800" />
<figcaption>Mật khẩu mặc định của Photoprism</figcaption>
</figure>

<p>Điều chỉnh đường dẫn mount volume để trỏ đến vị trí muốn lưu trữ ảnh và dữ liệu của PhotoPrism. Ví dụ, nếu có một ổ cứng ngoài được mount, chẳng hạn như <strong>/media/david/extdrive</strong>, bạn có thể cấu hình nó như sau:</p>

<div class="codebar"></div>

<pre class="language- language-none prettyprint" id="pre5">
<code>services:
  photoprism:
    volumes:
      - &quot;/media/david/extdrive/Photos:/photoprism/originals&quot;  # Where PhotoPrism will store original media files
      - &quot;/media/david/extdrive/PhotoPrismStorage:/photoprism/storage&quot;  # Used for PhotoPrism&#039;s cache, database, and sidecar files

  mariadb:
    volumes:
      - &quot;/media//extdrive/PhotoPrismDatabase:/var/lib/mysql&quot;  # Database storage for MariaDB</code></pre>

<p>Với file docker-compose.yml được cấu hình, bạn đã sẵn sàng khởi chạy PhotoPrism. Điều hướng đến thư mục chứa file docker-compose.yml và chạy lệnh sau:</p>

<div class="codebar"></div>

<pre class="language- language-none prettyprint" id="pre6">
<code>docker compose up -d</code></pre>

<figure><img alt="Docker Photoprism đang chạy" class="lazy lightbox loaded" data-i="2" data-src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-3.jpg" data-was-processed="true" height="529" src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-3.jpg" style="height: 514px; width: 696px;" width="716" />
<figcaption>Docker Photoprism đang chạy</figcaption>
</figure>

<h2>Sử dụng PhotoPrism trên Raspberry Pi</h2>

<p>Sau khi Docker và PhotoPrism thiết lập và chạy trên Raspberry Pi, bạn có thể bắt đầu quản lý và xem ảnh của mình thông qua giao diện web của PhotoPrism. Mở trình duyệt web ưa thích và điều hướng đến <em>http://&lt;your-raspberry-pi-ip&gt;:2342/</em> để truy cập giao diện người dùng PhotoPrism. Thay thế <em>&lt;your-raspberry-pi-ip&gt;</em> bằng địa chỉ IP thực của Raspberry Pi hoặc nếu đang làm việc trực tiếp từ chính Pi, có thể sử dụng <em>http://localhost:2342/.</em></p>

<p>Ở màn hình đăng nhập, nhập tên người dùng <strong>admin</strong> và mật khẩu bạn đặt cho <strong>PHOTOPRISM_ADMIN_PASSWORD</strong> trong quá trình thiết lập. Sau khi đăng nhập, bạn sẽ được chào đón bởi bảng điều khiển PhotoPrism.</p>

<figure><img alt="Nút upload lên PhotoPrism" class="lazy lightbox loaded" data-i="3" data-src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-4.jpg" data-was-processed="true" height="436" src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-4.jpg" style="height: 379px; width: 696px;" width="800" />
<figcaption>Nút upload lên PhotoPrism</figcaption>
</figure>

<p>Để bắt đầu thêm ảnh vào thư viện, hãy nhấp vào nút upload nằm ở góc trên bên phải của giao diện. Điều này cho phép chọn ảnh từ máy tính và upload chúng trực tiếp lên thư viện PhotoPrism của Raspberry Pi.</p>

<figure><img alt="Photoprism đã upload ảnh lên" class="lazy lightbox loaded" data-i="4" data-src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-5.jpg" data-was-processed="true" height="436" src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-5.jpg" style="height: 379px; width: 696px;" width="800" />
<figcaption>Photoprism đã upload ảnh lên</figcaption>
</figure>

<p>Vì có thể có rất nhiều ảnh cần upload, bạn nên thiết lập thư mục nhập trên Raspberry Pi. Để làm điều đó, cần dừng các container PhotoPrism đang chạy để sửa đổi file docker-compose.yml:</p>

<div class="codebar"></div>

<pre class="language- language-none prettyprint" id="pre7">
<code>docker compose stop</code></pre>

<p>Bây giờ, hãy chỉnh sửa file docker-compose.yml để bao gồm volume mount cho thư mục nhập:</p>

<div class="codebar"></div>

<pre class="language- language-none prettyprint" id="pre8">
<code>services:
  photoprism:
    volumes:
      - &quot;/media/david/extdrive/Import:/photoprism/import&quot;</code></pre>

<p>Thư mục này sẽ hoạt động như một khu vực lưu trữ ảnh trước khi bạn nhập chúng vào thư viện chính của mình. Sau khi thực hiện những thay đổi này, hãy lưu file và khởi động lại PhotoPrism:</p>

<div class="codebar"></div>

<pre class="language- language-none prettyprint" id="pre9">
<code>docker compose up -d</code></pre>

<p>Bây giờ, bạn có thể di chuyển ảnh vào thư mục nhập, điều hướng đến <strong>Library -&gt; Import</strong> trong giao diện người dùng web PhotoPrism và bắt đầu quá trình nhập.</p>

<figure><img alt="Nút Import trong PhotoPrism" class="lazy lightbox loaded" data-i="5" data-src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-6.jpg" data-was-processed="true" height="436" src="https://st.quantrimang.com/photos/image/2024/05/15/su-dung-photoprism-tren-raspberry-pi-6.jpg" style="height: 379px; width: 696px;" width="800" />
<figcaption>Nút Import trong PhotoPrism</figcaption>
</figure>

<p>Để bảo vệ những bức ảnh quý giá, điều cần thiết là phải thường xuyên sao lưu thiết bị lưu trữ PhotoPrism. Bằng cách đó, bạn có thể dễ dàng khôi phục trong trường hợp có bất kỳ sự cố không mong muốn hoặc lỗi phần cứng nào.</p>
</div>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-cai-dat-va-su-dung-photoprism-tren-raspberry-pi-8357.html" title="Cách cài đặt và sử dụng PhotoPrism trên Raspberry Pi">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/cach-cai-dat-va-su-dung-photoprism-tren-raspberry-pi-8357.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<script src="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://nguoicodonvn2008.info",
            "logo": "https://nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>