{"id":232,"date":"2024-09-24T16:26:07","date_gmt":"2024-09-24T07:26:07","guid":{"rendered":"https:\/\/ssunmini.com\/wordpress\/?page_id=232"},"modified":"2026-01-05T15:34:24","modified_gmt":"2026-01-05T06:34:24","slug":"etc-tools","status":"publish","type":"page","link":"https:\/\/wp.ssunmini.com\/?page_id=232","title":{"rendered":"ETC \/ Tools"},"content":{"rendered":"\n<div class=\"wp-block-esab-accordion esab-qwnu22fz\" data-mode=\"individual\" data-close=\"true\"><div class=\"esab__container\">\n<div class=\"wp-block-esab-accordion-child\"><div class=\"esab__head\" role=\"button\" aria-expanded=\"false\"><div class=\"esab__heading_txt\"><p class=\"esab__heading_tag\">Bitwarden \uc124\uce58 \ubc0f \uc0ac\uc6a9\uc790 \uad00\ub9ac \uc2e4\uc2b5<\/p><\/div><div class=\"esab__icon\"><div class=\"esab__collapse\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m3.5 20.5c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0 4.6 4.7 4.6 12.3 0 17-4.7 4.6-12.3 4.6-17 0zm0.9-0.9c4.2 4.2 11 4.2 15.2 0 4.2-4.2 4.2-11 0-15.2-4.2-4.3-11-4.3-15.2 0-4.3 4.2-4.3 11 0 15.2z\"><\/path><path d=\"m11.4 15.9v-3.3h-3.3c-0.3 0-0.6-0.3-0.6-0.6 0-0.4 0.3-0.6 0.6-0.6h3.3v-3.3c0-0.3 0.3-0.6 0.6-0.6 0.3 0 0.6 0.3 0.6 0.6v3.3h3.3c0.3 0 0.6 0.2 0.6 0.6q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2h-3.3v3.3q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2c-0.4 0-0.6-0.3-0.6-0.6z\"><\/path><\/svg> <\/div><div class=\"esab__expand\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m12 24c-6.6 0-12-5.4-12-12 0-6.6 5.4-12 12-12 6.6 0 12 5.4 12 12 0 6.6-5.4 12-12 12zm10.6-12c0-5.9-4.7-10.6-10.6-10.6-5.9 0-10.6 4.7-10.6 10.6 0 5.9 4.7 10.6 10.6 10.6 5.9 0 10.6-4.7 10.6-10.6z\"><\/path><path d=\"m5.6 11.3h12.8v1.4h-12.8z\"><\/path><\/svg> <\/div><\/div><\/div><div class=\"esab__body\">\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\">Bitwarden\uc740 \uc624\ud508\uc18c\uc2a4 \ud328\uc2a4\uc6cc\ub4dc \uad00\ub9ac \ud504\ub85c\uadf8\ub7a8\uc73c\ub85c, \uc554\ud638, \uba54\ubaa8, \uce74\ub4dc \uc815\ubcf4 \ub4f1\uc744 \uc548\uc804\ud558\uac8c \uc800\uc7a5\ud558\uace0 \uad00\ub9ac\ud560 \uc218 \uc788\ub294 \ub3c4\uad6c\uc785\ub2c8\ub2e4. Bitwarden\uc740 \ub2e4\uc591\ud55c \ud50c\ub7ab\ud3fc(Windows, macOS, Linux, iOS, Android)\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc73c\uba70, \uc6f9 \ube0c\ub77c\uc6b0\uc800 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\ub3c4 \uc81c\uacf5\ud558\uc5ec \ud3b8\ub9ac\ud558\uac8c \ube44\ubc00\ubc88\ud638\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ubuntu 22.04 <\/li>\n\n\n\n<li>192.168.0.22<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc2dc\uc2a4\ud15c \ud328\ud0a4\uc9c0\ub97c \ucd5c\uc2e0 \ubc84\uc804\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt -y update\napt -y upgrade<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc885\uc18d\uc131 \uc124\uce58<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt -y install apt-transport-https ca-certificates curl software-properties-common<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker GPG \ud0a4\ub97c \ucd94\uac00<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | apt-key add -<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker CE \ub808\ud3ec\uc9c0\ud1a0\ub9ac \ucd94\uac00<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>add-apt-repository \"deb &#91;arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu jammy stable\"<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker CE \uc124\uce58<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt -y install docker-ce<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc11c\ube44\uc2a4 \uc2e4\ud589 \uc0c1\ud0dc \ud655\uc778<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status docker<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker compose \uc124\uce58<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -sL \"https:\/\/github.com\/docker\/compose\/releases\/download\/1.29.2\/docker-compose-$(uname -s)-$(uname -m)\" -o \/usr\/local\/bin\/docker-compose<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub2e4\uc6b4\ub85c\ub4dc\ud55c \ubc14\uc774\ub108\ub9ac\uc5d0 \ub300\ud55c \uc2e4\ud589 \uad8c\ud55c\uc744 \uc124\uc815<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod +x \/usr\/local\/bin\/docker-compose<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker compose \ubc84\uc804 \ud655\uc778<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker-compose --version<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bitwarden \uc0ac\uc6a9\uc790 \uc0dd\uc131<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>useradd -G docker,sudo -s \/bin\/bash -m -d \/opt\/bitwarden bitwarden<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud328\uc2a4\uc6cc\ub4dc \uc124\uc815<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>passwd bitwarden<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc18c\uc720\uad8c \ubcc0\uacbd<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chown -R bitwarden: \/opt\/bitwarden<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bitwarden \ud638\uc2a4\ud305 \ud398\uc774\uc9c0\uc5d0 \uc811\uc18d\ud558\uc5ec \uc124\uce58 key\uc640 id \ubc1b\uae30\n<ul class=\"wp-block-list\">\n<li>\uc774\uba54\uc77c \ub4f1\ub85d \ud6c4 \ubc1c\uae09 \uac00\ub2a5(\ud68c\uc6d0 \uac00\uc785\uc740 \uc548\ud574\ub3c4 \ub41c\ub2e4.)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;bitwarden.com\/host\/<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc0ac\uc6a9\uc790 \uc804\ud658 \ubc0f bitwarden \uc124\uce58 \uc2a4\ud06c\ub9bd\ud2b8 \ub2e4\uc6b4\ub85c\ub4dc<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>su - bitwarden\n\ncurl -Lso bitwarden.sh https:\/\/go.btwrdn.co\/bw-sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub2e4\uc6b4\ub85c\ub4dc\ud55c \uc2a4\ud06c\ub9bd\ud2b8 \uc2e4\ud589 \uad8c\ud55c \uc124\uc815<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod +x bitwarden.sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bitwarden \uc554\ud638 \uad00\ub9ac\uc790 \uc124\uce58<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo .\/bitwarden.sh install<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>| |__ (_) |___      ____ _ _ __ __| | ___ _ __\n| '_ \\| | __\\ \\ \/\\ \/ \/ _` | '__\/ _` |\/ _ \\ '_ \\\n| |_) | | |_ \\ V  V \/ (_| | | | (_| |  __\/ | | |\n|_.__\/|_|\\__| \\_\/\\_\/ \\__,_|_|  \\__,_|\\___|_| |_|\n\nOpen source password management solutions\nCopyright 2015-2024, 8bit Solutions LLC\nhttps:\/\/bitwarden.com, https:\/\/github.com\/bitwarden\n\n===================================================\n\nbitwarden.sh version 2024.2.4\nDocker version 20.10.17, build 100c701\ndocker-compose version 1.29.2, build 5becea4c\n\n(!) Enter the domain name for your Bitwarden instance (ex. bitwarden.example.com): 192.168.0.22\n\n(!) Do you want to use Let's Encrypt to generate a free SSL certificate? (y\/n): n\n\n(!) Enter the database name for your Bitwarden instance (ex. vault): bitwarden<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>(!) Enter your installation id (get at https:\/\/bitwarden.com\/host): \ubc1c\uae09 \ubc1b\uc740 id \uc785\ub825\n\n(!) Enter your installation key: \ubc1c\uae09 \ubc1b\uc740 key \uc785\ub825\n\n(!) Do you have a SSL certificate to use? (y\/n): n\n\n(!) Do you want to generate a self-signed SSL certificate? (y\/n): y<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bitwarden \uc11c\ube44\uc2a4 \uc2e4\ud589<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo .\/bitwarden.sh start<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker image \ud655\uc778<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker images<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub3c4\ucee4 \ucee8\ud14c\uc774\ub108 \ud655\uc778<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker ps<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bitwarden \uc6f9 \uc811\uc18d<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;192.168.0.22<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"883\" height=\"694\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/11\/23E81C05-5886-486B-AD40-E009E973680F.png\" alt=\"\" class=\"wp-image-638\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc6f9 \ube0c\ub77c\uc6b0\uc800 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8 \uc124\uce58\ud558\uc5ec \ud3b8\ub9ac\ud558\uac8c \uc774\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"470\" height=\"804\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/11\/BA431905-9B65-4AE5-8BC5-9F6D5BDE3ECE.png\" alt=\"\" class=\"wp-image-641\" style=\"width:467px;height:auto\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-esab-accordion-child\"><div class=\"esab__head\" role=\"button\" aria-expanded=\"false\"><div class=\"esab__heading_txt\"><p class=\"esab__heading_tag\">Mattermost (\uc624\ud508\uc18c\uc2a4 \ud611\uc5c5\/\uba54\uc2e0\uc800 \ud50c\ub7ab\ud3fc \uad6c\ucd95)<\/p><\/div><div class=\"esab__icon\"><div class=\"esab__collapse\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m3.5 20.5c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0 4.6 4.7 4.6 12.3 0 17-4.7 4.6-12.3 4.6-17 0zm0.9-0.9c4.2 4.2 11 4.2 15.2 0 4.2-4.2 4.2-11 0-15.2-4.2-4.3-11-4.3-15.2 0-4.3 4.2-4.3 11 0 15.2z\"><\/path><path d=\"m11.4 15.9v-3.3h-3.3c-0.3 0-0.6-0.3-0.6-0.6 0-0.4 0.3-0.6 0.6-0.6h3.3v-3.3c0-0.3 0.3-0.6 0.6-0.6 0.3 0 0.6 0.3 0.6 0.6v3.3h3.3c0.3 0 0.6 0.2 0.6 0.6q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2h-3.3v3.3q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2c-0.4 0-0.6-0.3-0.6-0.6z\"><\/path><\/svg> <\/div><div class=\"esab__expand\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m12 24c-6.6 0-12-5.4-12-12 0-6.6 5.4-12 12-12 6.6 0 12 5.4 12 12 0 6.6-5.4 12-12 12zm10.6-12c0-5.9-4.7-10.6-10.6-10.6-5.9 0-10.6 4.7-10.6 10.6 0 5.9 4.7 10.6 10.6 10.6 5.9 0 10.6-4.7 10.6-10.6z\"><\/path><path d=\"m5.6 11.3h12.8v1.4h-12.8z\"><\/path><\/svg> <\/div><\/div><\/div><div class=\"esab__body\">\n<p class=\"has-vivid-cyan-blue-color has-text-color has-link-color wp-elements-1 wp-block-paragraph\"><strong>Mattermost\ub294 \ud300 \ud611\uc5c5\uc744 \uc704\ud55c \uc624\ud508 \uc18c\uc2a4 \ucc44\ud305 \ud50c\ub7ab\ud3fc\uc73c\ub85c, \ud300 \ucc44\ud305, \ud30c\uc77c \uacf5\uc720, \uc54c\ub9bc \ud1b5\ud569 \ub4f1 \ub2e4\uc591\ud55c \ud611\uc5c5 \ub3c4\uad6c\ub97c \uc81c\uacf5\ud574\uc900\ub2e4. Slack\uc774\ub098 Microsoft Teams\uc640 \ube44\uc2b7\ud558\uc9c0\ub9cc, \uc790\uccb4 \ud638\uc2a4\ud305\uc774 \uac00\ub2a5\ud558\ub2e4\ub294 \uc810\uc774 \ud2b9\uc9d5\uc774\uba70, Focalboard\ub294 Mattermost\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac \ub3c4\uad6c\ub85c, Trello\uc640 \uc720\uc0ac\ud55c \ubc29\uc2dd\uc758 \uc791\uc5c5 \uad00\ub9ac \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4. Kanban \ubcf4\ub4dc \ud615\ud0dc\ub97c \uae30\ubcf8\uc73c\ub85c \ud558\uba70, \ub2e8\ub3c5\uc73c\ub85c\ub3c4 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ubuntu 24.04<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker \uc124\uce58<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc5c5\ub370\uc774\ud2b8 \ubc0f \ub3c4\ucee4 \uc124\uce58<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\n\nsudo apt install -y docker.io<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker \uc790\ub3d9 \uc7ac\uc2e4\ud589 \uc801\uc6a9<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable docker\n\nsudo systemctl start docker\n\n\n# systemctl enable docker --now<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mattermost \uc774\ubbf8\uc9c0 \ub2e4\uc6b4\ub85c\ub4dc<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker pull mattermost\/mattermost-team-edition:latest<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PostgreSQL \uc774\ubbf8\uc9c0 \ub2e4\uc6b4\ub85c\ub4dc<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker pull postgres:13<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PostgreSQL \ucee8\ud14c\uc774\ub108 \uc2e4\ud589\n<ul class=\"wp-block-list\">\n<li>PostgreSQL\uc744 Mattermost\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud560 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c \uc124\uc815<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --name mattermost-postgres \\\n-e POSTGRES_USER=testuser \\\n-e POSTGRES_PASSWORD=test \\\n-e POSTGRES_DB=mattermost \\\n-d postgres:13<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mattermost \ucee8\ud14c\uc774\ub108 \uc2e4\ud589 \n<ul class=\"wp-block-list\">\n<li>Mattermost\ub97c PostgreSQL\uacfc \uc5f0\uacb0<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --name mattermost \\\n-p 8065:8065 \\\n-e MM_CONFIG=\"postgres:\/\/testuser:test@mattermost-postgres:5432\/mattermost?sslmode=disable\" \\\n--link mattermost-postgres:mattermost-postgres \\\n-d mattermost\/mattermost-team-edition:latest<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker \uc774\ubbf8\uc9c0 \uc0c1\ud0dc<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker ps\n\ndocker ps -a<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker \uc774\ubbf8\uc9c0 \uc7ac\uc2e4\ud589<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker restart mattermost\n\ndocker restart mattermost-postgres<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc6f9 \uc811\uc18d<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;192.168.1.131:8065<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"2205\" height=\"1155\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/12\/image.png\" alt=\"\" class=\"wp-image-809\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2460\" height=\"1085\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/12\/image-1.png\" alt=\"\" class=\"wp-image-810\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2443\" height=\"1067\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/12\/image-2.png\" alt=\"\" class=\"wp-image-811\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>plugin \ud65c\uc131\ud654 \ubc29\ubc95<\/strong>(\uc6f9\uc5d0\uc11c \ud30c\uc77c \uc5c5\ub85c\ub4dc \ubc84\ud2bc\uc774 \ube44\ud65c\uc131\ud654 \ub418\uc5b4 \ud65c\uc131\ud654 \uc9c4\ud589 \ud558\uc600\uc9c0\ub9cc \uc801\uc6a9\ub418\uc9c0 \uc54a\uc74c)\n<ul class=\"wp-block-list\">\n<li>focalboard plugin \uc124\uce58 \uc791\uc5c5\uc744 \ub530\ub77c\ud558\uc5ec \uc9c4\ud589\ud558\uba74 \ub41c\ub2e4.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub85c\uceec\uc5d0\uc11c \ud3b8\uc9d1\uae30\ub97c \uc0ac\uc6a9\ud574 \ud30c\uc77c\uc744 \uc218\uc815<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>vim config.json\n\n# \uc6d0\ud558\ub294 \uacbd\ub85c \uc544\ubb34\uacf3\uc774\ub098 \uc0c1\uad00 \uc5c6\uc74c<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PluginSettings \uc139\uc158\uc744 \uc0dd\uc131<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\"PluginSettings\": {\n    \"Enable\": true,\n    \"EnableUploads\": true,\n    \"AllowInsecureDownloadUrl\": true}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc218\uc815\ub41c \uc124\uc815 \ud30c\uc77c\uc744 \ucee8\ud14c\uc774\ub108 \ub0b4\ubd80\ub85c \ubcf5\uc0ac<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker cp .\/config.json mattermost:\/mattermost\/config\/config.json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mattermost \ucee8\ud14c\uc774\ub108 \uc7ac\uc2dc\uc791<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker restart mattermost<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>focalboard plugin \uc124\uce58<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/github.com\/mattermost-community\/focalboard\/releases\/download\/v8.0.0\/mattermost-plugin-focalboard-v8.0.0-linux-amd64.tar.gz<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub2e4\uc6b4\ub85c\ub4dc \ud55c \ud30c\uc77c \ub3c4\ucee4 \ucee8\ud14c\uc774\ub108 \ub0b4\ubd80\uc5d0 \ubcf5<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker cp mattermost-plugin-focalboard-v8.0.0-linux-amd64.tar.gz mattermost:\/mattermost\/plugins<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub3c4\ucee4 \ucee8\ud14c\uc774\ub108 \ub0b4\ubd80 \uc811\uc18d\ud558\uc5ec tar.gz \uc555\ucd95 \ud574\uc81c<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it mattermost bash\n\ncd plugins\n\ntar -xvf mattermost-plugin-focalboard-v8.0.0-linux-amd64.tar.gz<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc2dc\uc2a4\ud15c \uc7ac\uc2dc\uc791<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker restart mettermost<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc6f9\uc5d0 \uc811\uc18d\ud574\uc11c \uba54\ub274\uc5d0 \ubcf4\ub4dc\uac00 \ucd94\uac00 \ub41c \uac83\uc744 \ud655\uc778<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2456\" height=\"990\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/12\/image-3.png\" alt=\"\" class=\"wp-image-813\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-esab-accordion-child\"><div class=\"esab__head\" role=\"button\" aria-expanded=\"false\"><div class=\"esab__heading_txt\"><p class=\"esab__heading_tag\">Owncloud<\/p><\/div><div class=\"esab__icon\"><div class=\"esab__collapse\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m3.5 20.5c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0 4.6 4.7 4.6 12.3 0 17-4.7 4.6-12.3 4.6-17 0zm0.9-0.9c4.2 4.2 11 4.2 15.2 0 4.2-4.2 4.2-11 0-15.2-4.2-4.3-11-4.3-15.2 0-4.3 4.2-4.3 11 0 15.2z\"><\/path><path d=\"m11.4 15.9v-3.3h-3.3c-0.3 0-0.6-0.3-0.6-0.6 0-0.4 0.3-0.6 0.6-0.6h3.3v-3.3c0-0.3 0.3-0.6 0.6-0.6 0.3 0 0.6 0.3 0.6 0.6v3.3h3.3c0.3 0 0.6 0.2 0.6 0.6q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2h-3.3v3.3q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2c-0.4 0-0.6-0.3-0.6-0.6z\"><\/path><\/svg> <\/div><div class=\"esab__expand\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m12 24c-6.6 0-12-5.4-12-12 0-6.6 5.4-12 12-12 6.6 0 12 5.4 12 12 0 6.6-5.4 12-12 12zm10.6-12c0-5.9-4.7-10.6-10.6-10.6-5.9 0-10.6 4.7-10.6 10.6 0 5.9 4.7 10.6 10.6 10.6 5.9 0 10.6-4.7 10.6-10.6z\"><\/path><path d=\"m5.6 11.3h12.8v1.4h-12.8z\"><\/path><\/svg> <\/div><\/div><\/div><div class=\"esab__body\">\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\">OwnCloud\ub294 \ud30c\uc77c\uc744 \uad00\ub9ac\ud558\uace0 \uacf5\uc720\ud560 \uc218 \uc788\ub294 \uc624\ud508\uc18c\uc2a4 \uc18c\ud504\ud2b8\uc6e8\uc5b4\uc774\ub2e4. \ud074\ub77c\uc6b0\ub4dc \uc800\uc7a5\uc18c\uc640 \uc720\uc0ac\ud558\uac8c \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc\ud558\uace0, \uc5ec\ub7ec \uae30\uae30\uc5d0\uc11c \ub3d9\uae30\ud654\ud558\uba70, \ub2e4\ub978 \uc0ac\ub78c\uacfc \uacf5\uc720\ud560 \uc218 \uc788\ub2e4. \uc8fc\ub85c \uac1c\uc778 \uc11c\ubc84\ub098 \uc0ac\ub0b4 \uc11c\ubc84\uc5d0 \uc124\uce58\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uace0, \ud30c\uc77c \uc811\uadfc \uad8c\ud55c\uc744 \uc124\uc815\ud574 \ubcf4\uc548\uc744 \uac15\ud654\ud558\uac70\ub098 \ub2e4\uc591\ud55c \ud50c\ub7ec\uadf8\uc778\uc744 \ud1b5\ud574 \uae30\ub2a5\uc744 \ud655\uc7a5\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc124\uce58 \ud30c\uc77c<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/prod-files-secure.s3.us-west-2.amazonaws.com\/6fefccf1-27e8-42c5-a6ce-60c3bcf43c54\/2648c8be-f9ca-4ad4-8b91-57d0c1cb9076\/php74_owncloud.tgz\">php74_owncloud.tgz<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/prod-files-secure.s3.us-west-2.amazonaws.com\/6fefccf1-27e8-42c5-a6ce-60c3bcf43c54\/2275a3e2-1f02-43fc-8e50-a422f1aaf94a\/owncloud-10.10.0.zip\">owncloud-10.10.0.zip<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc708\ub3c4\uc6b0 \ud074\ub77c\uc774\uc5b8\ud2b8 \uc124\uce58 \ud30c\uc77c<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/prod-files-secure.s3.us-west-2.amazonaws.com\/6fefccf1-27e8-42c5-a6ce-60c3bcf43c54\/8d41d417-3cf7-4f59-91ba-c5f7de7c0a11\/ownCloud-2.11.1.8438.x64.msi\">ownCloud-2.11.1.8438.x64.msi<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rocky 9.4<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>php74_owncloud \uc555\ucd95 \ud574\uc81c \ubc0f \uc124\uce58\n<ul class=\"wp-block-list\">\n<li>\uc704\uce58 \uc0c1\uad00 \uc5c6\uc74c<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>tar -zxvf php74_owncloud.tgz\n\ndnf -y install *.rpm\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub9c8\ub9ac\uc544\ub514\ube44 \uc2e4\ud589<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable mariadb --now<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub9c8\ub9ac\uc544\ub514\ube44 \uc124\uc815<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql\n\nCREATE DATABASE testdb;\n\nGRANT ALL ON testdb.* TO webUser@localhost IDENTIFIED BY 'test12';\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc544\ud30c\uce58 \uc2e4\ud589<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable httpd --now<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>owncloud.10.10.10 \uc774\ub3d9<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/www\/html\/\n\nunzip owncloud-10.10.0.zip\n\n# owncloud \ud558\uc704\uc5d0 data \ub514\ub809\ud1a0\ub9ac \uc0dd\uc131\nmkdir -p \/owncloud\/data\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uad8c\ud55c \ubcc0\uacbd<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chown -R apache:apache owncloud\n\nchmod -R 755 owncloud<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc7ac\uc2e4\ud589<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart httpd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc6f9 \uc2e4\ud589<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1829\" height=\"950\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/11\/image-9.png\" alt=\"\" class=\"wp-image-651\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc708\ub3c4\uc6b0 \ud074\ub77c\uc774\uc5b8\ud2b8 \ud504\ub85c\uadf8\ub7a8 \uc124\uce58<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"690\" height=\"579\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/11\/image-14.png\" alt=\"\" class=\"wp-image-709\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-esab-accordion-child\"><div class=\"esab__head\" role=\"button\" aria-expanded=\"false\"><div class=\"esab__heading_txt\"><p class=\"esab__heading_tag\">Redmine<\/p><\/div><div class=\"esab__icon\"><div class=\"esab__collapse\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m3.5 20.5c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0 4.6 4.7 4.6 12.3 0 17-4.7 4.6-12.3 4.6-17 0zm0.9-0.9c4.2 4.2 11 4.2 15.2 0 4.2-4.2 4.2-11 0-15.2-4.2-4.3-11-4.3-15.2 0-4.3 4.2-4.3 11 0 15.2z\"><\/path><path d=\"m11.4 15.9v-3.3h-3.3c-0.3 0-0.6-0.3-0.6-0.6 0-0.4 0.3-0.6 0.6-0.6h3.3v-3.3c0-0.3 0.3-0.6 0.6-0.6 0.3 0 0.6 0.3 0.6 0.6v3.3h3.3c0.3 0 0.6 0.2 0.6 0.6q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2h-3.3v3.3q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2c-0.4 0-0.6-0.3-0.6-0.6z\"><\/path><\/svg> <\/div><div class=\"esab__expand\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m12 24c-6.6 0-12-5.4-12-12 0-6.6 5.4-12 12-12 6.6 0 12 5.4 12 12 0 6.6-5.4 12-12 12zm10.6-12c0-5.9-4.7-10.6-10.6-10.6-5.9 0-10.6 4.7-10.6 10.6 0 5.9 4.7 10.6 10.6 10.6 5.9 0 10.6-4.7 10.6-10.6z\"><\/path><path d=\"m5.6 11.3h12.8v1.4h-12.8z\"><\/path><\/svg> <\/div><\/div><\/div><div class=\"esab__body\">\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\">\ub808\ub4dc\ub9c8\uc778\uc740 \uc6f9 \uae30\ubc18\uc758 \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac\uc640 \ubc84\uadf8 \ucd94\uc801 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294 \ub3c4\uad6c\uc774\uba70 \ud654\uba74\uae30\ubc18\uc758 \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac\uc5d0 \ub3c4\uc6c0\uc774 \ub418\ub3c4\ub85d \ub2ec\ub825\uacfc \uac04\ud2b8 \ucc28\ud2b8\ub97c \uc81c\uacf5\ud558\uace0 \uc77c\uc815\uad00\ub9ac \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294 \uc624\ud508 \uc18c\uc2a4 \ud504\ub85c\uadf8\ub7a8\uc785\ub2c8\ub2e4.<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rocky 9.4<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docer repo \ucd94\uac00<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>yum-config-manager&nbsp;--add-repo&nbsp;https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>docker,&nbsp;cli&nbsp;&nbsp;community&nbsp;edition, \ub9ac\ub205\uc2a4&nbsp;\ucee8\ud14c\uc774\ub108&nbsp;\ub7f0\ud0c0\uc784&nbsp;\uc124\uce58<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>yum -y&nbsp;install&nbsp;docker-ce&nbsp;docker-ce-cli&nbsp;containerd.io<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubd80\ud305\uc2dc \uc790\ub3d9 \uc2e4\ud589 \ub4f1\ub85d<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable docker --now<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mariadb \uc124\uce58<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>yum -y&nbsp;install mariadb-server\n\nsudo&nbsp;systemctl&nbsp;enable&nbsp;mariadb --now<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>db \ucd08\uae30 \uc124\uc815<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql_secure_installation<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>db \uc811\uc18d<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u root -p<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uacc4\uc815&nbsp;\uc0dd\uc131<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE USER 'redmine'@'%' IDENTIFIED BY 'test123';<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub370\uc774\ud130\ubca0\uc774\uc2a4&nbsp;\uc0dd\uc131<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE DATABASE IF NOT EXISTS redmine DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uacc4\uc815\uc5d0&nbsp;\uad8c\ud55c&nbsp;\ubd80\uc5ec<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON redmine.* TO 'redmine'@'%';<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc720\uc800&nbsp;\uc870\ud68c<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT Host, User, Password FROM mysql.user;<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub3c4\ucee4 \uc2e4\ud589<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d --name=redmine --publish=3000:3000 \\\n--restart=always \\\n--env='DB_ADAPTER=mysql2' \\\n--env='DB_HOST=localhost' \\\n--env='DB_PORT=3306' \\\n--env='DB_NAME=redmine' \\\n--env='DB_USER=redmine' \\\n--env='DB_PASS=redmine' \\\n--volume=\/srv\/redmine\/data:\/usr\/src\/redmine\/files \\\nredmine<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc6f9\uc811\uc18d<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2443\" height=\"1232\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/11\/image-4.png\" alt=\"\" class=\"wp-image-658\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-esab-accordion-child\"><div class=\"esab__head\" role=\"button\" aria-expanded=\"false\"><div class=\"esab__heading_txt\"><p class=\"esab__heading_tag\">\uac1c\uc778 Web Server \ubcf5\uad6c \uc791\uc5c5<\/p><\/div><div class=\"esab__icon\"><div class=\"esab__collapse\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m3.5 20.5c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0 4.6 4.7 4.6 12.3 0 17-4.7 4.6-12.3 4.6-17 0zm0.9-0.9c4.2 4.2 11 4.2 15.2 0 4.2-4.2 4.2-11 0-15.2-4.2-4.3-11-4.3-15.2 0-4.3 4.2-4.3 11 0 15.2z\"><\/path><path d=\"m11.4 15.9v-3.3h-3.3c-0.3 0-0.6-0.3-0.6-0.6 0-0.4 0.3-0.6 0.6-0.6h3.3v-3.3c0-0.3 0.3-0.6 0.6-0.6 0.3 0 0.6 0.3 0.6 0.6v3.3h3.3c0.3 0 0.6 0.2 0.6 0.6q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2h-3.3v3.3q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2c-0.4 0-0.6-0.3-0.6-0.6z\"><\/path><\/svg> <\/div><div class=\"esab__expand\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m12 24c-6.6 0-12-5.4-12-12 0-6.6 5.4-12 12-12 6.6 0 12 5.4 12 12 0 6.6-5.4 12-12 12zm10.6-12c0-5.9-4.7-10.6-10.6-10.6-5.9 0-10.6 4.7-10.6 10.6 0 5.9 4.7 10.6 10.6 10.6 5.9 0 10.6-4.7 10.6-10.6z\"><\/path><path d=\"m5.6 11.3h12.8v1.4h-12.8z\"><\/path><\/svg> <\/div><\/div><\/div><div class=\"esab__body\">\n<p class=\"wp-block-paragraph\">esxi \uc5d0\uc11c \uc6b4\uc601\ub418\uace0 \uc788\ub294 ssunmini.com \uc744 proxmox \ub9c8\uc774\uadf8\ub808\uc774\uc158<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">rear backup \uc2dc\ub3c4 \ud588\uc9c0\ub9cc \ubc18\ubcf5 \ub418\ub294 error \ubc1c\uc0dd, \ud574\uacb0\uc774 \ub418\uc9c0 \uc54a\uc544 \ud30c\uc77c \ubc31\uc5c5\ud558\uc5ec \ubcf5\uad6c \uc9c4\ud589<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>httpd \uc2e4\ud589<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl start httpd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>error \ubc1c\uc0dd<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1398\" height=\"493\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/11\/\uc2a4\ud06c\ub9b0\uc0f7-2024-10-01-083930.jpe\" alt=\"\" class=\"wp-image-664\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>module \uc124\uce58<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf -y install mod_ssl <\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mariadb \ubcf5\uad6c<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mysqldump -u root -p DB\uba85 &lt; db.sql<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>error \ubc1c\uc0dd<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1330\" height=\"287\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/11\/image1.png\" alt=\"\" class=\"wp-image-667\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uad8c\ud55c \ubcc0\uacbd\n<ul class=\"wp-block-list\">\n<li>\/var\/lib\/mysql\/ \ud558\uc704 \ub514\ub809\ud1a0\ub9ac\uac00 \uc804\ubd80 \uc77c\ubc18 \uc0ac\uc6a9\uc790(min \uc73c\ub85c \ub418\uc5b4 \uc788\uc5c8\uc74c)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chown -R mysql:mysql mysql \uad8c\ud55c \ubcc0\uacbd <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubcf5\uad6c \uc644\ub8cc<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-esab-accordion-child\"><div class=\"esab__head\" role=\"button\" aria-expanded=\"false\"><div class=\"esab__heading_txt\"><p class=\"esab__heading_tag\">deepseek \uc124\uce58<\/p><\/div><div class=\"esab__icon\"><div class=\"esab__collapse\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m3.5 20.5c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0 4.6 4.7 4.6 12.3 0 17-4.7 4.6-12.3 4.6-17 0zm0.9-0.9c4.2 4.2 11 4.2 15.2 0 4.2-4.2 4.2-11 0-15.2-4.2-4.3-11-4.3-15.2 0-4.3 4.2-4.3 11 0 15.2z\"><\/path><path d=\"m11.4 15.9v-3.3h-3.3c-0.3 0-0.6-0.3-0.6-0.6 0-0.4 0.3-0.6 0.6-0.6h3.3v-3.3c0-0.3 0.3-0.6 0.6-0.6 0.3 0 0.6 0.3 0.6 0.6v3.3h3.3c0.3 0 0.6 0.2 0.6 0.6q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2h-3.3v3.3q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2c-0.4 0-0.6-0.3-0.6-0.6z\"><\/path><\/svg> <\/div><div class=\"esab__expand\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m12 24c-6.6 0-12-5.4-12-12 0-6.6 5.4-12 12-12 6.6 0 12 5.4 12 12 0 6.6-5.4 12-12 12zm10.6-12c0-5.9-4.7-10.6-10.6-10.6-5.9 0-10.6 4.7-10.6 10.6 0 5.9 4.7 10.6 10.6 10.6 5.9 0 10.6-4.7 10.6-10.6z\"><\/path><path d=\"m5.6 11.3h12.8v1.4h-12.8z\"><\/path><\/svg> <\/div><\/div><\/div><div class=\"esab__body\">\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\">windows11 deepseek r-1 14b \uc124\uce58 \ubc29\ubc95<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ollama \uc124\uce58\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/ollama.com\/\">https:\/\/ollama.com<\/a> \n<ul class=\"wp-block-list\">\n<li>Download<\/li>\n\n\n\n<li>windwos \uc120\ud0dd \ud6c4 \ub2e4\uc6b4\ub85c\ub4dc <\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1189\" height=\"718\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2025\/02\/image-2.png\" alt=\"\" class=\"wp-image-844\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1167\" height=\"804\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2025\/02\/image-3.png\" alt=\"\" class=\"wp-image-845\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>deepseek r-1 \ubaa8\ub378 \ub2e4\uc6b4\ub85c\ub4dc\n<ul class=\"wp-block-list\">\n<li>\uac80\uc0c9 \ucc3d\uc5d0 deepseek <\/li>\n\n\n\n<li>\uc6d0\ud558\ub294 \ubaa8\ub378 \ud655\uc778 <\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1150\" height=\"1435\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2025\/02\/image-4.png\" alt=\"\" class=\"wp-image-846\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"650\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2025\/02\/image-5.png\" alt=\"\" class=\"wp-image-847\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubaa8\ub378 \uc2e4\ud589\n<ul class=\"wp-block-list\">\n<li>CMD \ucc3d\uc5d0\uc11c \uba85\ub839\uc5b4 \uc2e4\ud589<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ollama run deepseek-r1:8b<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc644\ub8cc \ud6c4 \uc2e4\ud589 \uc0c1\ud0dc<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"596\" height=\"306\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2025\/02\/image-7.png\" alt=\"\" class=\"wp-image-849\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubaa8\ub378 \uc911\uc9c0<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ollama stop deepseek-r1:8b<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubaa8\ub378 \uc0ad\uc81c<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ollama rm deepseek-r1:8b<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GUI \ub85c \uad6c\ud604\n<ul class=\"wp-block-list\">\n<li>ollama \uc124\uce58 (\uc55e \uc804\uc5d0 \uc124\uce58 \ud588\uae30 \ub54c\ubb38\uc5d0 \uc9c4\ud589 \ud560 \ud544\uc694 \uc5c6\uc74c)<\/li>\n\n\n\n<li>open webUI \uc124\uce58<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install open-webui<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python.exe -m pip install --upgrade pip<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>open-webui serve<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"339\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2025\/02\/image-8.png\" alt=\"\" class=\"wp-image-850\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>http:\/\/localhost:8080 \uc811\uc18d<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1174\" height=\"915\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2025\/02\/image-9.png\" alt=\"\" class=\"wp-image-851\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-esab-accordion-child\"><div class=\"esab__head\" role=\"button\" aria-expanded=\"false\"><div class=\"esab__heading_txt\"><p class=\"esab__heading_tag\">Homepage Dashboard<\/p><\/div><div class=\"esab__icon\"><div class=\"esab__collapse\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m3.5 20.5c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0 4.6 4.7 4.6 12.3 0 17-4.7 4.6-12.3 4.6-17 0zm0.9-0.9c4.2 4.2 11 4.2 15.2 0 4.2-4.2 4.2-11 0-15.2-4.2-4.3-11-4.3-15.2 0-4.3 4.2-4.3 11 0 15.2z\"><\/path><path d=\"m11.4 15.9v-3.3h-3.3c-0.3 0-0.6-0.3-0.6-0.6 0-0.4 0.3-0.6 0.6-0.6h3.3v-3.3c0-0.3 0.3-0.6 0.6-0.6 0.3 0 0.6 0.3 0.6 0.6v3.3h3.3c0.3 0 0.6 0.2 0.6 0.6q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2h-3.3v3.3q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2c-0.4 0-0.6-0.3-0.6-0.6z\"><\/path><\/svg> <\/div><div class=\"esab__expand\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m12 24c-6.6 0-12-5.4-12-12 0-6.6 5.4-12 12-12 6.6 0 12 5.4 12 12 0 6.6-5.4 12-12 12zm10.6-12c0-5.9-4.7-10.6-10.6-10.6-5.9 0-10.6 4.7-10.6 10.6 0 5.9 4.7 10.6 10.6 10.6 5.9 0 10.6-4.7 10.6-10.6z\"><\/path><path d=\"m5.6 11.3h12.8v1.4h-12.8z\"><\/path><\/svg> <\/div><\/div><\/div><div class=\"esab__body\">\n<h2 class=\"wp-block-heading\">1-1. \ud328\ud0a4\uc9c0 \uc5c5\ub370\uc774\ud2b8 &amp; \ud544\uc218 \ub3c4\uad6c<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf -y update\nsudo dnf -y install curl wget git jq ta<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">1-2. Docker &amp; Compose \ud50c\ub7ec\uadf8\uc778<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Docker CE \uc800\uc7a5\uc18c \ucd94\uac00\nsudo dnf -y install dnf-plugins-core\nsudo dnf config-manager --add-repo &lt;https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo&gt;\n\n# Docker \uc124\uce58\nsudo dnf -y install docker-ce docker-ce-cli containerd.io\n\n# \uae30\ub3d9\/\ubd80\ud305 \ub4f1\ub85d\nsudo systemctl enable --now docker\n\n# Compose \ud50c\ub7ec\uadf8\uc778\nsudo dnf -y install docker-compose-plugin\n\n# \ud655\uc778\ndocker --version\ndocker compose version<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">1-3. \ubc29\ud654\ubcbd<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo firewall-cmd --permanent --add-port=3001\/tcp\nsudo firewall-cmd --reload<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">2) \ub514\ub809\ud130\ub9ac \uad6c\uc131<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/opt\/homepage\/config\ncd \/opt\/homepage<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">3) Docker Compose<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><code>\/opt\/homepage\/docker-compose.yml<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>version: \"3.8\"\n\nservices:\n  homepage:\n    image: ghcr.io\/gethomepage\/homepage:latest\n    container_name: homepage\n    restart: unless-stopped\n    environment:\n      - TZ=Asia\/Seoul\n\n      # v1.0\ubd80\ud130 \ud544\uc218: \ud5c8\uc6a9\ud560 \"\uc811\uc18d \ud638\uc2a4\ud2b8:\ud3ec\ud2b8\"\ub97c \ucf64\ub9c8(\uacf5\ubc31 \uc5c6\uc774)\ub85c \ub098\uc5f4\n      # \ub85c\uceec \uc9c1\uc811 \uc811\uc18d(192.168.1.11:3001) + \ud504\ub85d\uc2dc \ub3c4\uba54\uc778(\uc608: home.ssunmini.com) \ubaa8\ub450 \uc801\uae30\n      - HOMEPAGE_ALLOWED_HOSTS=192.168.1.11:3001,localhost:3000,127.0.0.1:3000\n\n      # (\uc120\ud0dd) \ube44\ub8e8\ud2b8 \uc2e4\ud589 \uc2dc UID\/GID \uc9c0\uc815\n      # - PUID=1000\n      # - PGID=1000\n\n    ports:\n      - \"3001:3000\"\n\n    volumes:\n      - .\/config:\/app\/config:Z\n      # (\uc120\ud0dd) \ub3c4\ucee4 \uc18c\ucf13 \uc5f0\ub3d9 \uc2dc\n      # - \/var\/run\/docker.sock:\/var\/run\/docker.sock:ro<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">4) \uae30\ubcf8 \uc124\uc815 \ud30c\uc77c<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><code>\/opt\/homepage\/config\/<\/code> \uc544\ub798\uc5d0 YAML \ud30c\uc77c\ub4e4\uc744 \ub461\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4-1. <code>settings.yaml<\/code><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>title: \"Homepage Dashboard\"\ntheme: dark\n\n# \uc5f4(\uc139\uc158) \uc21c\uc11c\nlayout:\n  - Proxmox\n  - Apps\n  - OpenStack<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uc815 \ud56d\ubaa9\uc740 <code>settings.yaml<\/code>\uc5d0\uc11c \uc815\uc758\ud569\ub2c8\ub2e4. (\ubcc0\uacbd \ud6c4 \ud398\uc774\uc9c0 \uc6b0\ud558\ub2e8 \uc0c8\ub85c\uace0\uce68 \uc544\uc774\ucf58\uc73c\ub85c \uc815\uc801 HTML \uc7ac\uc0dd\uc131) <a href=\"https:\/\/gethomepage.dev\/configs\/settings\/?utm_source=chatgpt.com\">gethomepage.dev<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4-2. <code>services.yam<\/code><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>- Proxmox:\n    - Proxmox DC:\n        href: \"&lt;https:\/\/192.168.1.12:8443&gt;\"\n        icon: \"proxmox.png\"\n        description: \"Datacenter Manager\"\n        siteMonitor: \"&lt;https:\/\/192.168.1.12:8443&gt;\"\n\n    - Proxmox VE-192.168.1.31:\n        href: \"&lt;https:\/\/192.168.1.31:8006&gt;\"\n        icon: \"proxmox.png\"\n        description: \"Proxmox Virtual Environment\"\n        siteMonitor: \"&lt;https:\/\/192.168.1.31:8006&gt;\"\n\n- Apps:\n    - Outline:\n        href: \"&lt;https:\/\/outline.ssunmini.com&gt;\"\n        icon: \"outline.png\"\n        description: \"Team Wiki\"\n        siteMonitor: \"&lt;https:\/\/outline.ssunmini.com&gt;\"\n\n    - MinIO:\n        href: \"&lt;http:\/\/192.168.1.11:9001&gt;\"\n        icon: \"minio.png\"\n        description: \"Console (:9001)\"\n        siteMonitor: \"&lt;http:\/\/192.168.1.11:9000&gt;\"\n\n    - Firefly III:\n        href: \"&lt;http:\/\/192.168.1.11:8051&gt;\"\n        icon: \"firefly.png\"\n        description: \"Personal Finance\"\n        siteMonitor: \"&lt;http:\/\/192.168.1.11:8051&gt;\"\n\n- OpenStack:\n    - OpenStack:\n        href: \"&lt;http:\/\/192.168.1.63&gt;\"\n        icon: \"openstack.png\"\n        description: \"OpenStack Horizon\"\n        siteMonitor: \"&lt;http:\/\/192.168.1.63&gt;\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4-3. <code>bookmarks.yaml<\/code><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>---\n- \uad00\ub9ac:\n    - Proxmox DC:\n        - abbr: PDC\n          href: &lt;https:\/\/192.168.1.30:8006&gt;\n\n- Developer:\n    - Github:\n        - abbr: GH\n          href: &lt;https:\/\/github.com\/&gt;\n\n- Social:\n    - Reddit:\n        - abbr: RE\n          href: &lt;https:\/\/reddit.com\/&gt;\n\n- Entertainment:\n    - YouTube:\n        - abbr: YT\n          href: &lt;https:\/\/youtube.com\/&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">5) \uae30\ub3d9\u00b7\ub85c\uadf8\u00b7\uc7ac\uae30\ub3d9<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/homepage\ndocker compose up -d\n\n# \ub85c\uadf8\ndocker logs -f homepage\n\n# \uc124\uc815 \ubcc0\uacbd \ud6c4 \uc7ac\ubc30\ud3ec\ndocker compose up -d<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc811\uc18d: \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c <code>http:\/\/192.168.1.11:3001<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1444\" height=\"864\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2026\/01\/\uc2a4\ud06c\ub9b0\uc0f7-2026-01-05-084302.png\" alt=\"\" class=\"wp-image-1176\"\/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-esab-accordion-child\"><div class=\"esab__head\" role=\"button\" aria-expanded=\"false\"><div class=\"esab__heading_txt\"><p class=\"esab__heading_tag\">Python \uc815\uc218\ud615 \uc790\ub8cc\ud615\uacfc \uc815\uc218\ud615 \uc790\ub8cc\ud615\uc758 \uc5f0\uc0b0<\/p><\/div><div class=\"esab__icon\"><div class=\"esab__collapse\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m3.5 20.5c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0 4.6 4.7 4.6 12.3 0 17-4.7 4.6-12.3 4.6-17 0zm0.9-0.9c4.2 4.2 11 4.2 15.2 0 4.2-4.2 4.2-11 0-15.2-4.2-4.3-11-4.3-15.2 0-4.3 4.2-4.3 11 0 15.2z\"><\/path><path d=\"m11.4 15.9v-3.3h-3.3c-0.3 0-0.6-0.3-0.6-0.6 0-0.4 0.3-0.6 0.6-0.6h3.3v-3.3c0-0.3 0.3-0.6 0.6-0.6 0.3 0 0.6 0.3 0.6 0.6v3.3h3.3c0.3 0 0.6 0.2 0.6 0.6q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2h-3.3v3.3q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2c-0.4 0-0.6-0.3-0.6-0.6z\"><\/path><\/svg> <\/div><div class=\"esab__expand\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m12 24c-6.6 0-12-5.4-12-12 0-6.6 5.4-12 12-12 6.6 0 12 5.4 12 12 0 6.6-5.4 12-12 12zm10.6-12c0-5.9-4.7-10.6-10.6-10.6-5.9 0-10.6 4.7-10.6 10.6 0 5.9 4.7 10.6 10.6 10.6 5.9 0 10.6-4.7 10.6-10.6z\"><\/path><path d=\"m5.6 11.3h12.8v1.4h-12.8z\"><\/path><\/svg> <\/div><\/div><\/div><div class=\"esab__body\">\n<pre class=\"wp-block-code\"><code>a=10\nb=5\nc=2.0\nd=0.5\nprint(a+b)\nprint(a-b)\nprint(a*b)\nprint(a\/b)\nprint(a\/\/b)\nprint(a%b)\nprint(a**b)\n15\n5\n50\n2.0\n2\n0\n100000<\/code><\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-esab-accordion-child\"><div class=\"esab__head\" role=\"button\" aria-expanded=\"false\"><div class=\"esab__heading_txt\"><p class=\"esab__heading_tag\">node.js \uc124\uce58<\/p><\/div><div class=\"esab__icon\"><div class=\"esab__collapse\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m3.5 20.5c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0 4.6 4.7 4.6 12.3 0 17-4.7 4.6-12.3 4.6-17 0zm0.9-0.9c4.2 4.2 11 4.2 15.2 0 4.2-4.2 4.2-11 0-15.2-4.2-4.3-11-4.3-15.2 0-4.3 4.2-4.3 11 0 15.2z\"><\/path><path d=\"m11.4 15.9v-3.3h-3.3c-0.3 0-0.6-0.3-0.6-0.6 0-0.4 0.3-0.6 0.6-0.6h3.3v-3.3c0-0.3 0.3-0.6 0.6-0.6 0.3 0 0.6 0.3 0.6 0.6v3.3h3.3c0.3 0 0.6 0.2 0.6 0.6q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2h-3.3v3.3q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2c-0.4 0-0.6-0.3-0.6-0.6z\"><\/path><\/svg> <\/div><div class=\"esab__expand\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m12 24c-6.6 0-12-5.4-12-12 0-6.6 5.4-12 12-12 6.6 0 12 5.4 12 12 0 6.6-5.4 12-12 12zm10.6-12c0-5.9-4.7-10.6-10.6-10.6-5.9 0-10.6 4.7-10.6 10.6 0 5.9 4.7 10.6 10.6 10.6 5.9 0 10.6-4.7 10.6-10.6z\"><\/path><path d=\"m5.6 11.3h12.8v1.4h-12.8z\"><\/path><\/svg> <\/div><\/div><\/div><div class=\"esab__body\">\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\">ode.js\ub294 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc11c\ubc84\uc5d0\uc11c \uc2e4\ud589\ud560 \uc218 \uc788\uac8c \ud574\uc8fc\ub294 \uc624\ud508 \uc18c\uc2a4 \ub7f0\ud0c0\uc784 \ud658\uacbd\uc774\ub2e4. \ube44\ub3d9\uae30 \uc774\ubca4\ud2b8 \uae30\ubc18\uacfc \ub2e8\uc77c \uc2a4\ub808\ub4dc \uad6c\uc870\ub85c \ub192\uc740 \uc131\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, NPM\uc744 \ud1b5\ud574 \ub2e4\uc591\ud55c \ud328\ud0a4\uc9c0\ub97c \uc27d\uac8c \uad00\ub9ac\ud560 \uc218 \uc788\ub2e4. \uc8fc\ub85c \uc6f9 \uc11c\ubc84, \uc2e4\uc2dc\uac04 \uc560\ud50c\ub9ac\ucf00\uc774\uc158, \ud30c\uc77c \ucc98\ub9ac \ub4f1\uc5d0 \uc0ac\uc6a9<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rocky 8.9<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>node.js \ubc14\uc774\ub108\ub9ac \uc544\uce74\uc774\ube0c \ub2e4\uc6b4\ub85c\ub4dc\n<ul class=\"wp-block-list\">\n<li>https:\/\/<a href=\"https:\/\/nodejs.org\/en\/download\/\">nodejs.org\/en\/download<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1143\" height=\"808\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/11\/DB7EC30D-64AA-439C-BB3F-2019CA9566AE.png\" alt=\"\" class=\"wp-image-690\"\/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>wget \ub610\ub294 rpm \ud30c\uc77c\ub85c \uc124\uce58<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc555\ucd95 \ud574\uc81c<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mv node-v14.15.3-linux-x64 \/usr\/local\/lib\/node<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud658\uacbd \ubcc0\uc218 \uc124\uc815<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>export NODEJS_HOME=\/usr\/local\/lib\/node\n\nexport PATH=$NODEJS_HOME\/bin:$PATH<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud658\uacbd \ubcc0\uc218 \uc124\uc815<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>. ~\/.bashrc<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubc84\uc804 \ud655\uc778<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>node -v\n\nnpm version<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-esab-accordion-child\"><div class=\"esab__head\" role=\"button\" aria-expanded=\"false\"><div class=\"esab__heading_txt\"><p class=\"esab__heading_tag\">npm install express<\/p><\/div><div class=\"esab__icon\"><div class=\"esab__collapse\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m3.5 20.5c-4.7-4.7-4.7-12.3 0-17 4.7-4.7 12.3-4.7 17 0 4.6 4.7 4.6 12.3 0 17-4.7 4.6-12.3 4.6-17 0zm0.9-0.9c4.2 4.2 11 4.2 15.2 0 4.2-4.2 4.2-11 0-15.2-4.2-4.3-11-4.3-15.2 0-4.3 4.2-4.3 11 0 15.2z\"><\/path><path d=\"m11.4 15.9v-3.3h-3.3c-0.3 0-0.6-0.3-0.6-0.6 0-0.4 0.3-0.6 0.6-0.6h3.3v-3.3c0-0.3 0.3-0.6 0.6-0.6 0.3 0 0.6 0.3 0.6 0.6v3.3h3.3c0.3 0 0.6 0.2 0.6 0.6q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2h-3.3v3.3q0 0.2-0.2 0.4-0.2 0.2-0.4 0.2c-0.4 0-0.6-0.3-0.6-0.6z\"><\/path><\/svg> <\/div><div class=\"esab__expand\"> <svg version=\"1.2\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill-rule=\"evenodd\" d=\"m12 24c-6.6 0-12-5.4-12-12 0-6.6 5.4-12 12-12 6.6 0 12 5.4 12 12 0 6.6-5.4 12-12 12zm10.6-12c0-5.9-4.7-10.6-10.6-10.6-5.9 0-10.6 4.7-10.6 10.6 0 5.9 4.7 10.6 10.6 10.6 5.9 0 10.6-4.7 10.6-10.6z\"><\/path><path d=\"m5.6 11.3h12.8v1.4h-12.8z\"><\/path><\/svg> <\/div><\/div><\/div><div class=\"esab__body\">\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0693e3\" class=\"has-inline-color\"><code>press<\/code>\ub294 Node.js\ub85c \uc6f9 \uc11c\ubc84\ub97c \uc27d\uac8c \uad6c\ucd95\ud560 \uc218 \uc788\uac8c \ub3c4\uc640\uc8fc\ub294 \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c\uc774\ub2e4.<br>Express\ub97c \uc0ac\uc6a9\ud558\uba74 HTTP \uc694\uccad \ucc98\ub9ac, \ub77c\uc6b0\ud305, \ubbf8\ub4e4\uc6e8\uc5b4 \ub4f1\uc744 \uac04\ub2e8\ud558\uac8c \uad6c\ud604\ud560 \uc218 \uc788\ub2e4.<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>express \ub2e4\uc6b4\ub85c\ub4dc<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install express<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>node \uc124\uce58 \uacbd\ub85c\n<ul class=\"wp-block-list\">\n<li>node \uc124\uce58 \ub41c \uacbd\ub85c\uc5d0 \ud30c\uc77c\ub4e4\uc774 \uc704\uce58\ud558\uace0 \uc788\uc5b4\uc57c node server.js \uc2e4\ud589\uc774 \uac00\ub2a5<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>my-test\/\n\u2502\n\u251c\u2500\u2500 public\/\n\u2502   \u251c\u2500\u2500 index.html\n\u2502   \u251c\u2500\u2500 styles.css\n\u2502   \u2514\u2500\u2500 script.js\n\u2514\u2500\u2500 server.js<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"705\" height=\"185\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/11\/8065E73F-7FBA-4898-824C-C88CF324D449.png\" alt=\"\" class=\"wp-image-692\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"172\" src=\"https:\/\/wp.ssunmini.com\/wp-content\/uploads\/2024\/11\/E064CFEC-4891-4D5D-90F9-7178EB169756.png\" alt=\"\" class=\"wp-image-693\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc6f9 \uc811\uc18d<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;192.168.0.2:3000<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>node \uc2e4\ud589<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>node server.js<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ubc31\uadf8\ub77c\uc6b4\ub4dc \uc2e4\ud589<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nohup node server.js<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud504\ub85c\uc138\uc2a4 \ud655\uc778<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ps -ef | grep -i node<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>* \uc7a5\uc560 \ubc1c\uc0dd<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc11c\ubc84 \uc7ac\ubd80\ud305 \ud6c4 node \ubcf4\uc774\uc9c0 \uc54a\ub294 \uc0c1\ud669\n<ul class=\"wp-block-list\">\n<li>\ud658\uacbd \ubcc0\uc218 \uc124\uc815\uc744 \ub2e4\uc2dc \ud574\uc900\ub2e4.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>export NODEJS_HOME=\/usr\/local\/lib\/node\n\nexport PATH=$NODEJS_HOME\/bin:$PATH<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":15,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-232","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wp.ssunmini.com\/index.php?rest_route=\/wp\/v2\/pages\/232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.ssunmini.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wp.ssunmini.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wp.ssunmini.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.ssunmini.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=232"}],"version-history":[{"count":13,"href":"https:\/\/wp.ssunmini.com\/index.php?rest_route=\/wp\/v2\/pages\/232\/revisions"}],"predecessor-version":[{"id":1189,"href":"https:\/\/wp.ssunmini.com\/index.php?rest_route=\/wp\/v2\/pages\/232\/revisions\/1189"}],"wp:attachment":[{"href":"https:\/\/wp.ssunmini.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}