{"id":8518,"date":"2024-12-03T15:31:09","date_gmt":"2024-12-03T06:31:09","guid":{"rendered":"https:\/\/hasu0707.duckdns.org\/blog\/?p=8518"},"modified":"2024-12-03T15:31:11","modified_gmt":"2024-12-03T06:31:11","slug":"vaultwarden-%ec%84%a4%ec%b9%98-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=8518","title":{"rendered":"Vaultwarden \uc124\uce58 \uc2a4\ud06c\ub9bd\ud2b8"},"content":{"rendered":"\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n###########################################################\n#\n# Vaultwarden \uc124\uce58 \uc2a4\ud06c\ub9bd\ud2b8\n# https:\/\/github.com\/dani-garcia\/vaultwarden\n# \uc124\uce58 \ud6c4 http:\/\/&lt;IP>:5443 \uc73c\ub85c \uc811\uc18d \ud655\uc778\n#\n###########################################################\nCURRENT_DIR=$(pwd)\nTIMESTAMP=$(date \"+%Y%m%d_%H%M%S\")\nUSE_BITWARDEN=1\n\ninstall_docker() {\n  echo \"###########################################################\"\n  echo \"#\"\n  echo \"# docker\"\n  echo \"#\"\n  echo \"###########################################################\"\n\n  systemctl stop docker.service\n  for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done\n  rm -rf \/var\/lib\/docker\n\n  apt update -y\n  apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n  systemctl enable docker.service\n}\n\ninstall_vaultwarden() {\n  echo \"###########################################################\"\n  echo \"#\"\n  echo \"# vaultwarden(bitwarden unofficial \ubc84\uc804) \uc124\uce58\"\n  echo \"# https:\/\/github.com\/dani-garcia\/vaultwarden\"\n  echo \"#\"\n  echo \"###########################################################\"\n\n  if [ ${USE_BITWARDEN} = 1 ]\n  then\n    # docker \uc774\ubbf8\uc9c0 \uc815\ub9ac \ubc0f \uc81c\uac70\n    docker stop $(docker ps -a -q)\n    docker rm -f $(docker ps -a -q)\n    docker rmi -f $(docker images -a -q)\n\n    # vaultwarden \uc124\uce58 \uc774\ubbf8\uc9c0 \uc815\ub9ac\n    docker pull vaultwarden\/server:latest\n    mkdir -p \/var\/lib\/vaultwarden\n    rm -rf \/var\/lib\/vaultwarden\/*\n\n    docker run --detach --name vaultwarden \\\n--env DOMAIN=\"https:\/\/hasu0707.duckdns.org:5443\" \\\n--volume \/etc\/letsencrypt\/:\/ssl\/ \\\n--volume \/var\/lib\/vaultwarden\/:\/data\/ \\\n--restart unless-stopped \\\n--publish 5443:80 \\\nvaultwarden\/server:latest\n\n    # systemd \uc11c\ube44\uc2a4 \ub4f1\ub85d\n    echo \"[Unit]\" > \/lib\/systemd\/system\/docker-vaultwarden.service\n    echo \"Wants=docker.service\" >> \/lib\/systemd\/system\/docker-vaultwarden.service\n    echo \"After=docker.service\" >> \/lib\/systemd\/system\/docker-vaultwarden.service\n    echo \"\" >> \/lib\/systemd\/system\/docker-vaultwarden.service\n    echo \"[Service]\" >> \/lib\/systemd\/system\/docker-vaultwarden.service\n    echo \"RemainAfterExit=yes\" >> \/lib\/systemd\/system\/docker-vaultwarden.service\n    echo \"ExecStart=\/usr\/bin\/docker start vaultwarden\" >> \/lib\/systemd\/system\/docker-vaultwarden.service\n    echo \"ExecStop=\/usr\/bin\/docker stop vaultwarden\" >> \/lib\/systemd\/system\/docker-vaultwarden.service\n    echo \"\" >> \/lib\/systemd\/system\/docker-vaultwarden.service\n    echo \"[Install]\" >> \/lib\/systemd\/system\/docker-vaultwarden.service\n    echo \"WantedBy=multi-user.target\" >> \/lib\/systemd\/system\/docker-vaultwarden.service\n    ln -sf \/lib\/systemd\/system\/docker-vaultwarden.service \/etc\/systemd\/system\/docker-vaultwarden.service\n    systemctl daemon-reload\n    systemctl enable docker-vaultwarden.service\n  fi\n}\n\ninstall_docker\ninstall_vaultwarden<\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[15],"tags":[],"class_list":["post-8518","post","type-post","status-publish","format-standard","hentry","category-computing_tools"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8518"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8518\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}