{"id":113,"date":"2026-07-07T07:07:25","date_gmt":"2026-07-06T22:07:25","guid":{"rendered":"https:\/\/grit.kr\/?p=113"},"modified":"2026-07-07T07:08:02","modified_gmt":"2026-07-06T22:08:02","slug":"teslamate-docker-%ec%97%85%eb%8d%b0%ec%9d%b4%ed%8a%b8-postgres18","status":"publish","type":"post","link":"https:\/\/grit.kr\/?p=113","title":{"rendered":"teslamate docker \uc5c5\ub370\uc774\ud2b8 Postgres18"},"content":{"rendered":"<p>\uc548\ub155\ud558\uc138\uc694! \uc624\ub298\uc740 \uc2dc\ub180\ub85c\uc9c0 NAS\uc758 Docker(Container Manager) \ud658\uacbd\uc5d0\uc11c \uc6b4\uc601 \uc911\uc778 <strong>\ud14c\uc2ac\ub77c\uba54\uc774\ud2b8(TeslaMate)<\/strong>\uc758 \ub370\uc774\ud130\ubca0\uc774\uc2a4(PostgreSQL)\ub97c \ucd5c\uc2e0 <strong>v18<\/strong> \ubc84\uc804\uc73c\ub85c \uc548\uc804\ud558\uac8c \uc5c5\uadf8\ub808\uc774\ub4dc\ud558\uace0, \uae30\uc874\uc758 \uc228\uaca8\uc9c4 \uac00\uc0c1 \ub4dc\ub77c\uc774\ube0c(Named Volume) \ubc29\uc2dd\uc744 \ud30c\uc77c \uc2a4\ud14c\uc774\uc158\uc5d0\uc11c \ub208\uc73c\ub85c \uc9c1\uc811 \uad00\ub9ac\ud560 \uc218 \uc788\ub294 <strong>\ubb3c\ub9ac \ud3f4\ub354(Bind Mount)<\/strong> \ubc29\uc2dd\uc73c\ub85c \uc804\ud658\ud558\ub294 \uc644\ubcbd\ud55c \uac00\uc774\ub4dc\ub97c \uacf5\uc720\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc9c1\uc811 \uc791\uc5c5\ud558\uba74\uc11c \ub9c8\uc8fc\ud560 \uc218 \uc788\ub294 \ub300\ud45c\uc801\uc778 \uc624\ub958(\uc720\uc800 \uad8c\ud55c \ubd88\uc77c\uce58, \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc138\uc158 \ub77d, \uadf8\ub77c\ud30c\ub098 \ub85c\uadf8\uc778 \ucc28\ub2e8) \ud574\uacb0 \ubc29\ubc95\uae4c\uc9c0 \ud55c\ubc29\uc5d0 \uc815\ub9ac\ud574 \ub450\uc5c8\uc73c\ub2c8 \ucc9c\ucc9c\ud788 \ub530\ub77c\uc640 \ubcf4\uc138\uc694!<\/p>\n<hr \/>\n<h2>\ud83d\udccc \uc900\ube44\ubb3c \ubc0f \uc0ac\uc804 \ud655\uc778<\/h2>\n<ul>\n<li>\uc2dc\ub180\ub85c\uc9c0 NAS\uc758 <strong>SSH \uae30\ub2a5<\/strong>\uc744 \ucf2d\ub2c8\ub2e4. (\uc2dc\ub180\ub85c\uc9c0 \uc81c\uc5b4\ud310 \u27a1\ufe0f \ud130\ubbf8\ub110 \ubc0f SNMP \u27a1\ufe0f SSH \uc11c\ube44\uc2a4 \ud65c\uc131\ud654 \uccb4\ud06c)<\/li>\n<li>\ud130\ubbf8\ub110 \ud504\ub85c\uadf8\ub7a8(Putty\ub098 Mac \ud130\ubbf8\ub110 \ub4f1)\uc73c\ub85c NAS\uc5d0 \uc811\uc18d\ud55c \ub4a4, \uc544\ub798 \uba85\ub839\uc5b4\ub97c \uccd0\uc11c \ucd5c\uace0 \uad00\ub9ac\uc790 \uad8c\ud55c\uc744 \uc5bb\uc2b5\ub2c8\ub2e4. (\ub0b4 \uc2dc\ub180\ub85c\uc9c0 \ube44\ubc00\ubc88\ud638 \uc785\ub825)\n<pre><code class=\"language-bash\">sudo -i<\/code><\/pre>\n<p>        <em>(\uc774\uac78 \uba3c\uc800 \uce58\uba74 \uc55e\uc73c\ub85c \ubaa8\ub4e0 \uba85\ub839\uc5b4 \uc55e\uc5d0 `sudo`\ub97c \uc77c\uc77c\uc774 \uc548 \ubd99\uc5ec\ub3c4 \ub3fc\uc11c \uc544\uc8fc \ud3b8\ud569\ub2c8\ub2e4!)<\/em>\n    <\/li>\n<li>\ud14c\uc2ac\ub77c\uba54\uc774\ud2b8 \ud3f4\ub354\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4.\n<pre><code class=\"language-bash\">cd \/volume1\/docker\/teslamate\/<\/code><\/pre>\n<\/li>\n<li>\uc544\uae4c \uc548\uc804\ud55c \uc0c1\ud0dc\uc5d0\uc11c \ubbf8\ub9ac \ubf51\uc544\ub454 \uc6d0\ubcf8 \ubc31\uc5c5 \ud30c\uc77c(<code>teslamate_backup.bck<\/code>)\uc774 \uc774 \ud3f4\ub354 \uc548\uc5d0 \uc798 \uc788\ub294\uc9c0 \ud655\uc778\ud574 \uc8fc\uc138\uc694.<\/li>\n<li><strong style=\"color: #e65100;\">[\uc911\uc694]<\/strong> \uba85\ub839\uc5b4 \uc911 <strong><code>[\uc0ac\uc6a9\uc790_\uc544\uc774\ub514]<\/code><\/strong> \ubd80\ubd84\uc5d0\ub294 \ubcf8\uc778\uc774 \ud14c\uc2ac\ub77c\uba54\uc774\ud2b8 \uc124\uce58 \uc2dc \ub370\uc774\ud130\ubca0\uc774\uc2a4(DB)\uc6a9\uc73c\ub85c \uc124\uc815\ud588\ub358 <strong>\uc2e4\uc81c \uc720\uc800 \uc544\uc774\ub514<\/strong>\ub97c \ub300\uad04\ud638(<code>[ ]<\/code>) \uc5c6\uc774 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<hr \/>\n<h2>1\ub2e8\uacc4: \uc124\uc815 \ud30c\uc77c(<code>docker-compose.yml<\/code>) \uc218\uc815\ud558\uae30<\/h2>\n<p>\uac00\uc0c1 \ub514\uc2a4\ud06c \ubc29\uc2dd\uc744 \uc9c0\uc6b0\uace0, \ud30c\uc77c \uc2a4\ud14c\uc774\uc158\uc758 \uc2e4\uc81c \ud3f4\ub354\ub97c \uc5f0\uacb0\ud558\ub3c4\ub85d \uc124\uc815\uc744 \ubc14\uafb8\ub294 \ub2e8\uacc4\uc785\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">nano docker-compose.yml<\/code><\/pre>\n<p>\ud654\uba74\uc5d0 \uc601\uc5b4 \uae00\uc790\ub4e4\uc774 \uac00\ub4dd \ucc2c \ud3b8\uc9d1\uae30\uac00 \uc5f4\ub9bd\ub2c8\ub2e4. \ud0a4\ubcf4\ub4dc \ubc29\ud5a5\ud0a4\ub85c \uc6c0\uc9c1\uc774\uba70 \uc544\ub798 <strong>\ub450 \uacf3<\/strong>\ub9cc \ub611\uac19\uc774 \uace0\uccd0\uc8fc\uc138\uc694.<\/p>\n<h3>\u2460 <code>database:<\/code> \ub77c\uace0 \uc801\ud78c \uad6c\uc5ed \ucc3e\uae30<\/h3>\n<p><strong>\u2022 \uc218\uc815 \uc804:<\/strong><\/p>\n<pre><code class=\"language-yaml\">database:\r\n  image: postgres:13  # (\ub610\ub294 \uad6c\ubc84\uc804 \uc22b\uc790)\r\n  volumes:\r\n    - teslamate-db:\/var\/lib\/postgresql<\/code><\/pre>\n<p><strong>\u2022 \uc218\uc815 \ud6c4:<\/strong> \uc774\ubbf8\uc9c0 \uc774\ub984\uc744 \ucd5c\uc2e0 \ubc84\uc804\uc73c\ub85c \ubc14\uafb8\uace0, \uac00\uc0c1 \uc774\ub984\ud45c \ub300\uc2e0 <strong>\uc2e4\uc81c \ud3f4\ub354 \uacbd\ub85c(<code>.\/database<\/code>)<\/strong>\ub97c \uc801\uc5b4\uc90d\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-yaml\">database:\r\n  image: postgres:18-trixie\r\n  volumes:\r\n    - .\/database:\/var\/lib\/postgresql<\/code><\/pre>\n<h3>\u2461 \ud30c\uc77c \ub9e8 \ubc11\ubc14\ub2e5 <code>volumes:<\/code> \uad6c\uc5ed \ucc3e\uae30<\/h3>\n<p><strong>\u2022 \uc218\uc815 \uc804:<\/strong><\/p>\n<pre><code class=\"language-yaml\">volumes:\r\n  teslamate-db:\r\n  teslamate-grafana-data:<\/code><\/pre>\n<p><strong>\u2022 \uc218\uc815 \ud6c4:<\/strong> \uc774\uc81c \uac00\uc0c1 \ub4dc\ub77c\uc774\ube0c\ub97c \uc548 \uc4f8 \uac70\ub2c8\uae4c <code>teslamate-db:<\/code> \uc904\uc744 <strong>\uacfc\uac10\ud788 \uc0ad\uc81c<\/strong>\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-yaml\">volumes:\r\n  teslamate-grafana-data:<\/code><\/pre>\n<p>\ud83d\udca1 <strong>\ubcf4\ub108\uc2a4 \ud301:<\/strong> \ud639\uc2dc \ub9e8 \uccab \uc904\uc5d0 <code>version: '3'<\/code> \uac19\uc740 \ubb38\uad6c\uac00 \uc788\ub2e4\uba74 \uadf8 \uc904\ub3c4 \uadf8\ub0e5 \ud1b5\uc9f8\ub85c \uc9c0\uc6cc\uc8fc\uc138\uc694. (\ucd5c\uc2e0 \ub3c4\ucee4\uc5d0\uc11c \ubd88\ud544\uc694\ud558\ub2e4\uace0 \uacbd\uace0 \ucc3d \ub744\uc6b0\ub294 \uc6d0\uc778\uc785\ub2c8\ub2e4.)<\/p>\n<blockquote>\n<p><strong>\ud83d\udcbe \uc800\uc7a5\ud558\uace0 \ub098\uc624\uae30:<\/strong> \uc218\uc815\uc774 \ub05d\ub0ac\ub2e4\uba74 \ud0a4\ubcf4\ub4dc\ub85c <code>Ctrl + O<\/code> \u27a1\ufe0f <code>Enter<\/code> \u27a1\ufe0f <code>Ctrl + X<\/code>\ub97c \uc21c\uc11c\ub300\ub85c \ub204\ub974\uba74 \uc548\uc804\ud558\uac8c \uc800\uc7a5\ub418\uace0 \uac80\uc740 \ud654\uba74\uc73c\ub85c \ub3cc\uc544\uc635\ub2c8\ub2e4.<\/p>\n<\/blockquote>\n<hr \/>\n<h2>2\ub2e8\uacc4: \uae30\uc874 \ucc0c\uaebc\uae30 \uccad\uc18c\ud558\uace0 \uc2e4\uc81c \ud3f4\ub354 \ub9cc\ub4e4\uae30<\/h2>\n<pre><code class=\"language-bash\"># 1. \uaf2c\uc5ec\uc788\ub358 \uae30\uc874 \uac00\uc0c1 \uc2dc\uc2a4\ud15c\uc744 \uae68\ub057\ud558\uac8c \uc9c0\uc6b0\uba74\uc11c \uc815\uc9c0\uc2dc\ud0b5\ub2c8\ub2e4.\r\ndocker-compose down -v\r\n\r\n# 2. \ud30c\uc77c \uc2a4\ud14c\uc774\uc158\uc5d0\uc11c \ub208\uc73c\ub85c \ubcf4\uac8c \ub420 \uc2e4\uc81c \ube48 \ud3f4\ub354(database)\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.\r\nmkdir -p .\/database\r\n\r\n# 3. \ubc29\uae08 \ubc14\uafbc \uc124\uc815\uc744 \uc801\uc6a9\ud574\uc11c \ucee8\ud14c\uc774\ub108\ub97c \ub2e4\uc2dc \ucf2d\ub2c8\ub2e4.\r\ndocker-compose up -d<\/code><\/pre>\n<p><em>\uc774\uc81c \uc2dc\ub180\ub85c\uc9c0 \ud30c\uc77c \uc2a4\ud14c\uc774\uc158\uc744 \uc5f4\uace0 <code>\/docker\/teslamate\/database<\/code> \ud3f4\ub354 \uc548\uc744 \ub4e4\uc5ec\ub2e4\ubcf4\uc138\uc694! <code>18<\/code>\uc774\ub77c\ub294 \ud3f4\ub354\uc640 \ud568\uaed8 \uc815\uccb4 \ubaa8\ub97c DB \ud30c\uc77c\ub4e4\uc774 \uc2e4\uc2dc\uac04\uc73c\ub85c \ub9c9 \uc0dd\uaca8\ub098\ub294 \uac83\uc744 \ub208\uc73c\ub85c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4!<\/em><\/p>\n<hr \/>\n<h2>3\ub2e8\uacc4: \uc8fc\ud589 \ub370\uc774\ud130 \uc548\uc804\ud558\uac8c \ubcf5\uc6d0\ud558\uae30 (\uc5d0\ub7ec \uc6b0\ud68c)<\/h2>\n<p>\ub3c4\ucee4\ub97c \ucf1c\uc790\ub9c8\uc790 \ud14c\uc2ac\ub77c\uba54\uc774\ud2b8 \uc571\uc774 \uc0c8 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc5c4\uccad\ub098\uac8c \uc811\uc18d\uc744 \uc2dc\ub3c4\ud569\ub2c8\ub2e4. \uc774 \uc0c1\ud0dc\uc5d0\uc11c \ubcf5\uc6d0\uc744 \uc2dc\ub3c4\ud558\uba74 <strong>&#8220;\ub2e4\ub978 \uc720\uc800\uac00 \uc811\uc18d \uc911\uc774\ub77c \ucd08\uae30\ud654\ud560 \uc218 \uc5c6\ub2e4(other users)&#8221;<\/strong>\ub294 \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub530\ub77c\uc11c <strong>\uc811\uc18d\uc744 \uc2dc\ub3c4\ud558\ub294 \ud14c\uc2ac\ub77c\uba54\uc774\ud2b8 \uc571\ub9cc \uc7a0\uc2dc \uc7ac\uc6b4 \uc0c1\ud0dc\uc5d0\uc11c \uac15\uc81c\ub85c \ubc00\uace0 \ubcf5\uc6d0<\/strong>\ud574\uc57c \uc548\uc804\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># 1. \uc2e4\uc2dc\uac04\uc73c\ub85c \ubc29\ud574\ud558\ub294 \ud14c\uc2ac\ub77c\uba54\uc774\ud2b8 \uc571\ub9cc \uc7a0\uc2dc \uc815\uc9c0\uc2dc\ud0b5\ub2c8\ub2e4.\r\ndocker-compose stop teslamate\r\n\r\n# 2. \ud604\uc7ac \ucf1c\uc838 \uc788\ub294 \uc2e4\uc81c DB \ucee8\ud14c\uc774\ub108 \uc774\ub984\uc744 \ud655\uc778\ud569\ub2c8\ub2e4. (\uc608: teslamate-database-1)\r\ndocker ps<\/code><\/pre>\n<p>\ubc29\uae08 \ud655\uc778\ud55c <code>[\uc2e4\uc81c_DB_\ucee8\ud14c\uc774\ub108_\uc774\ub984]<\/code>\uacfc \ubcf8\uc778\uc758 <code>[\uc0ac\uc6a9\uc790_\uc544\uc774\ub514]<\/code>\ub97c \ub300\uc785\ud574\uc11c \uc544\ub798 3\uc904\uc744 \ud55c \uc904\uc529 \ubcf5\uc0ac\ud574\uc11c \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># 3. \ub0b4 DB \uacc4\uc815 \uc774\ub984\uc73c\ub85c \ub85c\uadf8\uc778\ud574\uc11c \uae30\uc874 \ube48 \ubc29\uc744 \uac15\uc81c\ub85c \uc0ad\uc81c\ud569\ub2c8\ub2e4. (WITH FORCE \ud544\uc218!)\r\ndocker exec -it [\uc2e4\uc81c_DB_\ucee8\ud14c\uc774\ub108_\uc774\ub984] psql -U [\uc0ac\uc6a9\uc790_\uc544\uc774\ub514] -d postgres -c \"DROP DATABASE teslamate WITH (FORCE);\"\r\n\r\n# 4. \ubc29 \uc18c\uc720\uc8fc\ub97c \ub0b4 \uacc4\uc815\uc73c\ub85c \uc9c0\uc815\ud558\uc5ec \uae68\ub057\ud55c \uc0c8 \ubc29\uc744 \ub2e4\uc2dc \ub9cc\ub4ed\ub2c8\ub2e4.\r\ndocker exec -it [\uc2e4\uc81c_DB_\ucee8\ud14c\uc774\ub108_\uc774\ub984] psql -U [\uc0ac\uc6a9\uc790_\uc544\uc774\ub514] -d postgres -c \"CREATE DATABASE teslamate WITH OWNER [\uc0ac\uc6a9\uc790_\uc544\uc774\ub514];\"\r\n\r\n# 5. \uc544\uae4c \uc900\ube44\ud574\ub454 \ubc31\uc5c5 \ud30c\uc77c(.bck)\uc744 \uc0c8 \ubc29\uc5d0 \ub9c8\uad6c\ub9c8\uad6c \uc3df\uc544\ubd93\uc2b5\ub2c8\ub2e4.\r\ndocker exec -i [\uc2e4\uc81c_DB_\ucee8\ud14c\uc774\ub108_\uc774\ub984] psql -U [\uc0ac\uc6a9\uc790_\uc544\uc774\ub514] -d teslamate &lt; .\/teslamate_backup.bck<\/code><\/pre>\n<blockquote>\n<p><strong>\u26a0\ufe0f \uc7a0\uae50! \ud654\uba74\uc774 \uba48\ucdc4\ub098\uc694? (COPY 6 \ud604\uc0c1)<\/strong><br \/>\n    \ubc31\uc5c5 \ub370\uc774\ud130\ub97c \ub2e4 \ubc00\uc5b4 \ub123\uc73c\uba74 \ub9c8\uc9c0\ub9c9 \uc904 \ucc98\ub9ac \ubc29\uc2dd \ub54c\ubb38\uc5d0 \uac04\ud639 \ub2e4\uc74c \uba85\ub839\uc5b4\ub97c \uc785\ub825\ud560 \uc218 \uc788\ub294 \ud504\ub86c\ud504\ud2b8\uac00 \uc548 \ub098\uc624\uace0 \ucee4\uc11c\ub9cc \uae5c\ube61\uac70\ub9ac\uba70 \uba48\ucd94\ub294 \ud604\uc0c1\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc5d0\ub7ec \uba54\uc2dc\uc9c0\uac00 \uc5c6\ub2e4\uba74 \ub370\uc774\ud130\ub294 \ub2e4 \ub4e4\uc5b4\uac04 \uac83\uc774\ub2c8 \ud0a4\ubcf4\ub4dc\uc758 <strong><code>Ctrl + C<\/code><\/strong>\ub97c \ub20c\ub7ec \uac15\uc81c\ub85c \ube60\uc838\ub098\uc624\uc2dc\uba74 \ub429\ub2c8\ub2e4!<\/p>\n<\/blockquote>\n<pre><code class=\"language-bash\"># 6. \ubcf5\uc6d0\uc774 \ub05d\ub0ac\uc73c\ub2c8 \uc7a0\uc7ac\uc6e0\ub358 \uc571\uc744 \uae68\uc6b0\uace0 \uc804\uccb4 \uc2dc\uc2a4\ud15c\uc744 \uc0c8\ub85c\uace0\uce68 \ud569\ub2c8\ub2e4.\r\ndocker-compose start teslamate\r\ndocker-compose restart<\/code><\/pre>\n<hr \/>\n<h2>4\ub2e8\uacc4: \uadf8\ub77c\ud30c\ub098(Grafana) \ub85c\uadf8\uc778 \ubb38\uc81c \ud574\uacb0\ubc95<\/h2>\n<p>\ubc84\uc804\uc744 \uc62c\ub9ac\uace0 \uc774\uc0ac\ub97c \ub9c8\uce5c \ub4a4 \uadf8\ub77c\ud30c\ub098 \ub300\uc2dc\ubcf4\ub4dc\uc5d0 \ub85c\uadf8\uc778\ud558\ub824\uace0 \ud558\uba74, \ubd84\uba85\ud788 \uc544\uc774\ub514\/\ube44\ubc88\uc774 \ub9de\ub294\ub370\ub3c4 \ub85c\uadf8\uc778\uc774 \ud295\uae30\uac70\ub098 \uba39\ud1b5\uc774 \ub418\ub294 \uacbd\uc6b0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc8fc\uc778\uc774 \ubc14\ub00c\uba74\uc11c \uacfc\uac70 \uad6c\ubc84\uc804(v13) \uc2dc\uc808\uc758 \uc784\uc2dc \uc138\uc158 \ud30c\uc77c \ucc0c\uaebc\uae30\uac00 \ucda9\ub3cc\uc744 \uc77c\uc73c\ucf1c\uc11c \uadf8\ub807\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub0b4 \uc18c\uc911\ud55c \uc8fc\ud589 \ub370\uc774\ud130(DB)\uc640\ub294 \uc804\ud600 \uc0c1\uad00\uc5c6\ub294 \uc784\uc2dc \ud3f4\ub354\uc774\ub2c8, \uc544\ub798 \uba85\ub839\uc5b4\ub85c \uadf8\ub77c\ud30c\ub098 \uc138\uc158\ub9cc \uc2dc\uc6d0\ud558\uac8c \ubc00\uc5b4\uc8fc\uba74 \ud574\uacb0\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">docker-compose stop grafana\r\ndocker-compose rm -f grafana\r\ndocker volume rm teslamate_teslamate-grafana-data\r\ndocker-compose up -d<\/code><\/pre>\n<p>\uc774\uac78 \uce58\uace0 \ub09c \ub4a4, \uadf8\ub77c\ud30c\ub098 \uc811\uc18d \ud654\uba74\uc5d0\uc11c \uc778\ud130\ub137 \ube0c\ub77c\uc6b0\uc800 \uce90\uc2dc\ub97c \uc644\uc804\ud788 \ube44\uc6cc\uc8fc\uae30 \uc704\ud574 <strong><code>Ctrl + F5<\/code><\/strong>\ub97c \uaf2d \ub20c\ub7ec\uc8fc\uc138\uc694!<br \/>\n<em>(\uae30\uc874 \ube44\ubc88\uc774 \uc548 \uba39\ud78c\ub2e4\uba74 \ucd08\uae30 \ube44\ubc88\uc778 <code>admin<\/code> \/ `admin`\uc744 \uce58\uace0 \ub4e4\uc5b4\uac00\uc11c \uc0c8\ub85c \ube44\ubc88\uc744 \ub9cc\ub4dc\uc2dc\uba74 \ub429\ub2c8\ub2e4.)<\/em><\/p>\n<h3>\ud83d\udca1 \ub85c\uadf8\uc778\ud588\ub294\ub370 \ucd5c\uc2e0 \ub370\uc774\ud130\uac00 \uc548 \ubcf4\uc774\uace0 \uc61b\ub0a0\uc5d0 \uba48\ucdb0\uc788\ub098\uc694?<\/h3>\n<ul>\n<li><strong>\uc6b0\uce21 \uc0c1\ub2e8 \ub0a0\uc9dc \ud544\ud130 \ubcc0\uacbd:<\/strong> \uadf8\ub77c\ud30c\ub098 \ud654\uba74 \uc624\ub978\ucabd \ub9e8 \uc704\uc5d0 \ub0a0\uc9dc\uac00 \uacfc\uac70 \ud2b9\uc815\uc77c\ub85c \uace0\uc815\ub418\uc5b4 \uc788\ub294\uc9c0 \ud655\uc778\ud558\uc138\uc694. \uc774\uac78 <code>Last 30 days<\/code>\ub098 <code>Last 5 minutes<\/code> \uac19\uc740 \uc2e4\uc2dc\uac04 \ubc94\uc704\ub85c \ubcc0\uacbd\ud558\uba74 \uc624\ub298 \uc8fc\ud589 \uae30\ub85d\uc774 \ubfc5 \ud558\uace0 \ub098\ud0c0\ub0a9\ub2c8\ub2e4.<\/li>\n<li><strong>\ub370\uc774\ud130 \uc18c\uc2a4 \uc7ac\uc5f0\uacb0:<\/strong> \uadf8\ub77c\ud30c\ub098 \uc67c\ucabd \uba54\ub274\uc5d0\uc11c <code>Connections<\/code> \u27a1\ufe0f <code>Data sources<\/code> \u27a1\ufe0f <code>TeslaMate<\/code>\ub85c \ub4e4\uc5b4\uac11\ub2c8\ub2e4. \uc544\ubb34\uac83\ub3c4 \uac74\ub4dc\ub9ac\uc9c0 \ub9c8\uc2dc\uace0 \ub9e8 \uc544\ub798\ub85c \uc2a4\ud06c\ub864\uc744 \ub05d\uae4c\uc9c0 \ub0b4\ub824\uc11c <strong><code>Save & test<\/code><\/strong> \ubc84\ud2bc\uc744 \ud074\ub9ad\ud574 \uc8fc\uc138\uc694. <code>Database Connection OK<\/code> \uc0ac\uc778\uc774 \ub728\uba70 \uba48\ucdb0\uc788\ub358 \ud30c\uc774\ud504\ub77c\uc778\uc774 \ub2e4\uc2dc \uc815\uc0c1 \uc791\ub3d9\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<hr \/>\n<h2>\ud83c\udf89 \ub9c8\uce58\uba70<\/h2>\n<p>\uc774\uc81c \uae4c\ub2e4\ub85c\uc6b4 PostgreSQL 18 \ucd5c\uc2e0 \ubc84\uc804 \uc5c5\uadf8\ub808\uc774\ub4dc\uac00 \uc644\ub8cc\ub418\uc5c8\uace0, \ub370\uc774\ud130\ub3c4 \uc2dc\ub180\ub85c\uc9c0 \ud30c\uc77c \uc2a4\ud14c\uc774\uc158 \ub0b4 <code>database<\/code> \ud3f4\ub354\ub85c \uc644\ubcbd\ud558\uac8c \uc774\uc0ac\ud588\uc2b5\ub2c8\ub2e4!<\/p>\n<p>\uc55e\uc73c\ub85c\ub294 \ub098\uc2a4\ub97c \uad50\uccb4\ud558\uac70\ub098 \ubc31\uc5c5(Hyper Backup)\uc744 \ud560 \ub54c \ubcf5\uc7a1\ud55c \ub3c4\ucee4 \uba85\ub839\uc5b4\ub97c \uc4f8 \ud544\uc694 \uc5c6\uc774, \ud30c\uc77c \uc2a4\ud14c\uc774\uc158\uc5d0 \ubcf4\uc774\ub294 <code>database<\/code> \ud3f4\ub354\ub9cc \ubcf5\uc0ac\ud574 \ub450\uba74 \ub418\uae30 \ub54c\ubb38\uc5d0 \uad00\ub9ac\uac00 \uc624\ub9cc \ubc30\ub294 \ud3b8\ud574\uc9c0\uc2e4 \uac81\ub2c8\ub2e4. \uc548\uc804\ud558\uace0 \uc990\uac70\uc6b4 \ud14c\uc2ac\ub77c \ub77c\uc774\ud504 \uc990\uae30\uc138\uc694!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc548\ub155\ud558\uc138\uc694! \uc624\ub298\uc740 \uc2dc\ub180\ub85c\uc9c0 NAS\uc758 Docker(Container Manager) \ud658\uacbd\uc5d0\uc11c \uc6b4\uc601 \uc911\uc778 \ud14c\uc2ac\ub77c\uba54\uc774\ud2b8(TeslaMate)\uc758 \ub370\uc774\ud130\ubca0\uc774\uc2a4(PostgreSQL)\ub97c \ucd5c\uc2e0 v18 \ubc84\uc804\uc73c\ub85c \uc548\uc804\ud558\uac8c \uc5c5\uadf8\ub808\uc774\ub4dc\ud558\uace0, \uae30\uc874\uc758 \uc228\uaca8\uc9c4 \uac00\uc0c1 \ub4dc\ub77c\uc774\ube0c(Named Volume) \ubc29\uc2dd\uc744 \ud30c\uc77c \uc2a4\ud14c\uc774\uc158\uc5d0\uc11c \ub208\uc73c\ub85c \uc9c1\uc811 \uad00\ub9ac\ud560 \uc218 \uc788\ub294 \ubb3c\ub9ac \ud3f4\ub354(Bind Mount) \ubc29\uc2dd\uc73c\ub85c \uc804\ud658\ud558\ub294 \uc644\ubcbd\ud55c \uac00\uc774\ub4dc\ub97c \uacf5\uc720\ud569\ub2c8\ub2e4. \uc9c1\uc811 \uc791\uc5c5\ud558\uba74\uc11c \ub9c8\uc8fc\ud560 \uc218 \uc788\ub294 \ub300\ud45c\uc801\uc778 \uc624\ub958(\uc720\uc800 \uad8c\ud55c \ubd88\uc77c\uce58, \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc138\uc158 \ub77d, \uadf8\ub77c\ud30c\ub098 <a href=\"https:\/\/grit.kr\/?p=113\" class=\"btn btn-link continue-link\">\ub354 \uc77d\uae30<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,1],"tags":[],"class_list":["post-113","post","type-post","status-publish","format-standard","hentry","category-tesla","category-non"],"_links":{"self":[{"href":"https:\/\/grit.kr\/index.php?rest_route=\/wp\/v2\/posts\/113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grit.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grit.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grit.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/grit.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=113"}],"version-history":[{"count":1,"href":"https:\/\/grit.kr\/index.php?rest_route=\/wp\/v2\/posts\/113\/revisions"}],"predecessor-version":[{"id":114,"href":"https:\/\/grit.kr\/index.php?rest_route=\/wp\/v2\/posts\/113\/revisions\/114"}],"wp:attachment":[{"href":"https:\/\/grit.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grit.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grit.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}