﻿{"id":1581,"date":"2026-10-23T09:57:27","date_gmt":"2026-10-23T02:57:27","guid":{"rendered":"https:\/\/sangnguyen.drayddns.com\/?p=1581"},"modified":"2026-10-23T15:58:54","modified_gmt":"2026-10-23T08:58:54","slug":"huong-dan-cai-dat-imich-nhu-google-photo-tren-win-linux-mint","status":"publish","type":"post","link":"https:\/\/sangnguyen.drayddns.com\/index.php\/2026\/10\/23\/huong-dan-cai-dat-imich-nhu-google-photo-tren-win-linux-mint\/","title":{"rendered":"H\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t immich (nh\u01b0 google photo) tr\u00ean win linux mint"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">D\u01b0\u1edbi \u0111\u00e2y l\u00e0 t\u00e0i li\u1ec7u h\u01b0\u1edbng d\u1eabn chi ti\u1ebft c\u00e1c b\u01b0\u1edbc tri\u1ec3n khai m\u00e1y ch\u1ee7 l\u01b0u tr\u1eef \u1ea3nh Immich t\u1eeb con s\u1ed1 0 tr\u00ean h\u1ec7 \u0111i\u1ec1u h\u00e0nh Linux Mint, bao g\u1ed3m c\u1ea3 c\u1ea5u h\u00ecnh xu\u1ea5t b\u1ea3n ra Internet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1.C\u00e0i \u0111\u1eb7t Docker v\u00e0 Docker Compose:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Immich b\u1eaft bu\u1ed9c ph\u1ea3i ch\u1ea1y qua m\u00f4i tr\u01b0\u1eddng Docker. M\u1edf Terminal tr\u00ean m\u00e1y \u1ea3o Linux Mint v\u00e0 ch\u1ea1y c\u00e1c l\u1ec7nh sau \u0111\u1ec3 c\u00e0i \u0111\u1eb7t:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install docker.io docker-compose-plugin -y\nsudo systemctl enable --now docker\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><em>C\u00e1ch x\u00e1c minh:<\/em> Ch\u1ea1y l\u1ec7nh docker &#8211;version. N\u1ebfu h\u1ec7 th\u1ed1ng tr\u1ea3 v\u1ec1 th\u00f4ng tin phi\u00ean b\u1ea3n, qu\u00e1 tr\u00ecnh c\u00e0i \u0111\u1eb7t m\u00f4i tr\u01b0\u1eddng \u0111\u00e3 ho\u00e0n t\u1ea5t.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2.T\u1ea1o th\u01b0 m\u1ee5c v\u00e0 t\u1ea3i file c\u1ea5u h\u00ecnh Immich:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">T\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c ri\u00eang \u0111\u1ec3 ch\u1ee9a to\u00e0n b\u1ed9 d\u1eef li\u1ec7u v\u00e0 c\u1ea5u h\u00ecnh, sau \u0111\u00f3 di chuy\u1ec3n v\u00e0o th\u01b0 m\u1ee5c n\u00e0y:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/immich-app &amp;&amp; cd ~\/immich-app\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ti\u1ebfp theo, t\u1ea3i 2 file c\u1ea5u h\u00ecnh c\u1ed1t l\u00f5i tr\u1ef1c ti\u1ebfp t\u1eeb kho l\u01b0u tr\u1eef ch\u00ednh th\u1ee9c c\u1ee7a nh\u00e0 ph\u00e1t tri\u1ec3n:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -O docker-compose.yml https:\/\/github.com\/immich-app\/immich\/releases\/latest\/download\/docker-compose.yml\nwget -O .env https:\/\/github.com\/immich-app\/immich\/releases\/latest\/download\/example.env\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.Ch\u1ec9nh s\u1eeda th\u00f4ng s\u1ed1 l\u01b0u tr\u1eef (.env):<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">B\u1ea1n c\u1ea7n khai b\u00e1o v\u1ecb tr\u00ed l\u01b0u \u1ea3nh th\u1ef1c t\u1ebf v\u00e0 m\u1eadt kh\u1ea9u c\u01a1 s\u1edf d\u1eef li\u1ec7u. M\u1edf file .env b\u1eb1ng tr\u00ecnh so\u1ea1n th\u1ea3o nano:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano .env<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00ecm v\u00e0 s\u1eeda 2 d\u00f2ng quan tr\u1ecdng nh\u1ea5t:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UPLOAD_LOCATION=.\/library (\u0110\u00e2y l\u00e0 n\u01a1i \u1ea3nh s\u1ebd \u0111\u01b0\u1ee3c l\u01b0u l\u1ea1i, b\u1ea1n c\u00f3 th\u1ec3 gi\u1eef nguy\u00ean \u0111\u1ec3 l\u01b0u trong th\u01b0 m\u1ee5c immich-app\/library ho\u1eb7c tr\u1ecf \u0111\u01b0\u1eddng d\u1eabn t\u1edbi m\u1ed9t \u1ed5 c\u1ee9ng dung l\u01b0\u1ee3ng l\u1edbn kh\u00e1c).<\/li>\n\n\n\n<li>DB_PASSWORD=thay_bang_mat_khau_bao_mat_cua_ban<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nh\u1ea5n Ctrl + O <img loading=\"lazy\" decoding=\"async\" width=\"13\" height=\"22\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAWBAMAAADp1AsXAAAAAXNSR0IArs4c6QAAACRQTFRFAAAAAAAAADqQOgAAOjqQOpDbkGaQ25A62\/\/\/\/7Zm\/9uQ\/\/\/bDJ1cQQAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAE1pY3Jvc29mdCBPZmZpY2V\/7TVxAAAAJklEQVQYV2NgoABsa4Bo5vSAGlLUwLBYEAQCIAJAPrI8TD0FVgIANTkGOzDEopsAAAAASUVORK5CYII=\">\u00a0nh\u1ea5n Enter \u0111\u1ec3 l\u01b0u, sau \u0111\u00f3 nh\u1ea5n Ctrl + X \u0111\u1ec3 tho\u00e1t.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4.Kh\u1edfi ch\u1ea1y h\u1ec7 th\u1ed1ng m\u00e1y ch\u1ee7:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Trong th\u01b0 m\u1ee5c ~\/immich-app, ch\u1ea1y l\u1ec7nh sau \u0111\u1ec3 Docker t\u1ef1 \u0111\u1ed9ng t\u1ea3i c\u00e1c b\u1ed9 ph\u1eadn c\u1ea5u th\u00e0nh (AI Machine Learning, Database, Redis, Server) v\u00e0 kh\u1edfi \u0111\u1ed9ng:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bash<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>C\u00e1ch x\u00e1c minh:<\/em> L\u1ea7n ch\u1ea1y \u0111\u1ea7u ti\u00ean s\u1ebd m\u1ea5t kho\u1ea3ng 3\u20135 ph\u00fat \u0111\u1ec3 t\u1ea3i d\u1eef li\u1ec7u. Sau khi ho\u00e0n t\u1ea5t, g\u00f5 l\u1ec7nh sudo docker ps. N\u1ebfu th\u1ea5y c\u00e1c container hi\u1ec3n th\u1ecb tr\u1ea1ng th\u00e1i <strong>Up<\/strong> v\u00e0 m\u1edf c\u1ed5ng 2283, m\u00e1y ch\u1ee7 \u0111\u00e3 v\u1eadn h\u00e0nh th\u00e0nh c\u00f4ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5.Thi\u1ebft l\u1eadp t\u00e0i kho\u1ea3n Qu\u1ea3n tr\u1ecb vi\u00ean (Admin):<\/strong><\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>M\u1edf tr\u00ecnh duy\u1ec7t web tr\u00ean m\u00e1y t\u00ednh n\u1ed9i b\u1ed9, truy c\u1eadp \u0111\u1ecba ch\u1ec9: http:\/\/&lt;IP_M\u00e1y_\u1ea3o_Linux_Mint>:2283.<\/li>\n\n\n\n<li>B\u1ea5m <strong>Getting Started<\/strong> <img loading=\"lazy\" decoding=\"async\" width=\"13\" height=\"22\" src=\"blob:https:\/\/sangnguyen.drayddns.com\/2fb3dedc-8198-4c15-9e2d-eb2a0fe4c02b\">\u00a0\u0110i\u1ec1n Email, M\u1eadt kh\u1ea9u v\u00e0 T\u00ean ng\u01b0\u1eddi d\u00f9ng \u0111\u1ec3 t\u1ea1o t\u00e0i kho\u1ea3n qu\u1ea3n tr\u1ecb \u0111\u1ea7u ti\u00ean.<\/li>\n\n\n\n<li>\u0110\u0103ng nh\u1eadp v\u00e0o h\u1ec7 th\u1ed1ng \u0111\u1ec3 v\u00e0o giao di\u1ec7n th\u01b0 vi\u1ec7n \u1ea3nh ch\u00ednh.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6.Xu\u1ea5t b\u1ea3n ra m\u1ea1ng Internet \u0111\u1ec3 truy c\u1eadp t\u1eeb xa:<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u1ec3 \u0111i\u1ec7n tho\u1ea1i c\u00f3 th\u1ec3 t\u1ef1 \u0111\u1ed9ng sao l\u01b0u \u1ea3nh khi \u0111i ra ngo\u00e0i d\u00f9ng 4G, c\u1ea5u h\u00ecnh h\u1ec7 th\u1ed1ng m\u1ea1ng nh\u01b0 sau:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tr\u00ean Router DrayTek:<\/strong> V\u00e0o m\u1ee5c <strong>NAT<\/strong> <img loading=\"lazy\" decoding=\"async\" width=\"13\" height=\"22\" src=\"blob:https:\/\/sangnguyen.drayddns.com\/5d5283a1-c0de-465c-bea7-74b55cb18d3d\">\u00a0<strong>Port Redirection<\/strong>. M\u1edf m\u1ed9t lu\u1ed3ng chuy\u1ec3n ti\u1ebfp c\u1ed5ng ngo\u00e0i (WAN Port 2283) tr\u1ecf th\u1eb3ng v\u1ec1 IP n\u1ed9i b\u1ed9 c\u1ee7a m\u00e1y \u1ea3o Linux Mint (Private Port 2283).<\/li>\n\n\n\n<li><strong>Tr\u00ean Firewall FortiGate:<\/strong> T\u1ea1o m\u1ed9t quy t\u1eafc <strong>Firewall Policy<\/strong> cho ph\u00e9p l\u01b0u l\u01b0\u1ee3ng m\u1ea1ng \u0111i t\u1eeb giao di\u1ec7n ngo\u00e0i (WAN) v\u00e0o IP c\u1ee7a m\u00e1y \u1ea3o th\u00f4ng qua c\u1ed5ng 2283.<\/li>\n\n\n\n<li><strong>Tr\u00ean \u1ee8ng d\u1ee5ng \u0111i\u1ec7n tho\u1ea1i:<\/strong> T\u1ea3i app Immich tr\u00ean iOS\/Android, nh\u1eadp Server URL theo \u0111\u1ecbnh d\u1ea1ng http:\/\/&lt;t\u00ean_mi\u1ec1n_drayddns_c\u1ee7a_b\u1ea1n>:2283 c\u00f9ng t\u00e0i kho\u1ea3n v\u1eeba t\u1ea1o \u0111\u1ec3 b\u1eaft \u0111\u1ea7u \u0111\u1ed3ng b\u1ed9.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu h\u1ec7 th\u1ed1ng b\u1ecb gi\u1eadt lag khi t\u1ea3i h\u00e0ng ch\u1ee5c Gigabyte d\u1eef li\u1ec7u trong l\u1ea7n sao l\u01b0u \u0111\u1ea7u ti\u00ean, h\u00e3y truy c\u1eadp v\u00e0o web qu\u1ea3n tr\u1ecb <img loading=\"lazy\" decoding=\"async\" width=\"13\" height=\"22\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAWBAMAAADp1AsXAAAAAXNSR0IArs4c6QAAACRQTFRFAAAAAAAAADqQOgAAOjqQOpDbkGaQ25A62\/\/\/\/7Zm\/9uQ\/\/\/bDJ1cQQAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAE1pY3Jvc29mdCBPZmZpY2V\/7TVxAAAAJklEQVQYV2NgoABsa4Bo5vSAGlLUwLBYEAQCIAJAPrI8TD0FVgIANTkGOzDEopsAAAAASUVORK5CYII=\">\u00a0<strong>Administration<\/strong> <img loading=\"lazy\" decoding=\"async\" width=\"13\" height=\"22\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAWBAMAAADp1AsXAAAAAXNSR0IArs4c6QAAACRQTFRFAAAAAAAAADqQOgAAOjqQOpDbkGaQ25A62\/\/\/\/7Zm\/9uQ\/\/\/bDJ1cQQAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAE1pY3Jvc29mdCBPZmZpY2V\/7TVxAAAAJklEQVQYV2NgoABsa4Bo5vSAGlLUwLBYEAQCIAJAPrI8TD0FVgIANTkGOzDEopsAAAAASUVORK5CYII=\">\u00a0<strong>System Settings<\/strong> <img loading=\"lazy\" decoding=\"async\" width=\"13\" height=\"22\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAWBAMAAADp1AsXAAAAAXNSR0IArs4c6QAAACRQTFRFAAAAAAAAADqQOgAAOjqQOpDbkGaQ25A62\/\/\/\/7Zm\/9uQ\/\/\/bDJ1cQQAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAE1pY3Jvc29mdCBPZmZpY2V\/7TVxAAAAJklEQVQYV2NgoABsa4Bo5vSAGlLUwLBYEAQCIAJAPrI8TD0FVgIANTkGOzDEopsAAAAASUVORK5CYII=\">\u00a0<strong>Job Settings<\/strong> \u0111\u1ec3 kh\u1ed1ng ch\u1ebf s\u1ed1 lu\u1ed3ng x\u1eed l\u00fd AI (Concurrency) xu\u1ed1ng m\u1ee9c 1 ho\u1eb7c 2 \u0111\u1ec3 tr\u00e1nh l\u00e0m tr\u00e0n RAM v\u00e0 qu\u00e1 t\u1ea3i CPU c\u1ee7a m\u00e1y \u1ea3o.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 t\u00e0i li\u1ec7u h\u01b0\u1edbng d\u1eabn chi ti\u1ebft c\u00e1c b\u01b0\u1edbc tri\u1ec3n khai m\u00e1y ch\u1ee7 l\u01b0u tr\u1eef \u1ea3nh Immich t\u1eeb con s\u1ed1 0 tr\u00ean h\u1ec7 \u0111i\u1ec1u h\u00e0nh Linux Mint, bao g\u1ed3m c\u1ea3 c\u1ea5u h\u00ecnh xu\u1ea5t b\u1ea3n ra Internet. 1.C\u00e0i \u0111\u1eb7t Docker v\u00e0 Docker Compose: Immich b\u1eaft bu\u1ed9c ph\u1ea3i ch\u1ea1y qua m\u00f4i tr\u01b0\u1eddng Docker. M\u1edf Terminal [&#8230;]\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1581","post","type-post","status-publish","format-standard","hentry","category-chia-se-hoac-kien-thuc-cntt"],"_links":{"self":[{"href":"https:\/\/sangnguyen.drayddns.com\/index.php\/wp-json\/wp\/v2\/posts\/1581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sangnguyen.drayddns.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sangnguyen.drayddns.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sangnguyen.drayddns.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sangnguyen.drayddns.com\/index.php\/wp-json\/wp\/v2\/comments?post=1581"}],"version-history":[{"count":3,"href":"https:\/\/sangnguyen.drayddns.com\/index.php\/wp-json\/wp\/v2\/posts\/1581\/revisions"}],"predecessor-version":[{"id":1591,"href":"https:\/\/sangnguyen.drayddns.com\/index.php\/wp-json\/wp\/v2\/posts\/1581\/revisions\/1591"}],"wp:attachment":[{"href":"https:\/\/sangnguyen.drayddns.com\/index.php\/wp-json\/wp\/v2\/media?parent=1581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sangnguyen.drayddns.com\/index.php\/wp-json\/wp\/v2\/categories?post=1581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sangnguyen.drayddns.com\/index.php\/wp-json\/wp\/v2\/tags?post=1581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}