{"id":809,"date":"2021-06-29T18:10:36","date_gmt":"2021-06-29T18:10:36","guid":{"rendered":"https:\/\/asgardius.company\/?p=809"},"modified":"2021-06-29T18:10:36","modified_gmt":"2021-06-29T18:10:36","slug":"instalando-vaultwarden-en-raspberry-pi-utilizando-docker","status":"publish","type":"post","link":"https:\/\/asgardius.company\/?p=809","title":{"rendered":"Instalando Vaultwarden en Raspberry Pi utilizando Docker"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/password-2781614_960_720.jpg\" alt=\"\" class=\"wp-image-787\"\/><\/figure>\n\n\n\n<p>En el art\u00edculo anterior analic\u00e9 el gestor de contrase\u00f1as Bitwarden y recomend\u00e9 utilizarlo a trav\u00e9s de una instancia privada de Vaultwarden. Un m\u00e9todo sencillo para instalar Vaultwarden es mediante Yunohost, al cual le dediqu\u00e9 un art\u00edculo. En esta ocasi\u00f3n mostrar\u00e9 c\u00f3mo hacerlo utilizando Docker utilizando una Raspberry Pi como referencia (Se puede adaptar a cualquier servidor basado en Debian o Ubuntu).<\/p>\n\n\n\n<p>Necesitamos lo siguiente<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Un servidor compatible con docker (Una Raspberry Pi funciona bien para esto)<\/li><li>Un servidor de correo<\/li><\/ul>\n\n\n\n<p>Para agregar el repositorio para docker necesitamos instalar algunas dependencias<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release<\/code><\/pre>\n\n\n\n<p>Despues agregamos el repositorio<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -fsSL https:\/\/download.docker.com\/linux\/debian\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg\necho \"deb &#91;signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/debian $(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list > \/dev\/null<\/code><\/pre>\n\n\n\n<p>Ahora instalamos docker<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install docker-ce docker-ce-cli containerd.io<\/code><\/pre>\n\n\n\n<p>Instalamos NGINX como servidor web (tambi\u00e9n se puede utilizar Apache, pero no tiene el mismo rendimento)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install nginx<\/code><\/pre>\n\n\n\n<p>Creamos un archivo de configuraci\u00f3n para NGINX<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/nginx\/sites-enabled\/vault.asgardius.company<\/code><\/pre>\n\n\n\n<p>Agregamos lo siguiente cambiando &#8220;vault.asgardius.company&#8221; por el nombre de host de nuestra instancia de Vaultwarden<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n    listen 80;\n    server_name vault.asgardius.company;\n\n  # configuraci\u00f3n proporcionada por Shauder \n  client_max_body_size 128M;\n\n  location \/ {\n    proxy_pass http:\/\/127.0.0.1:8181;\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n  }\n  \n  location \/notifications\/hub {\n    proxy_pass http:\/\/127.0.0.1:3012;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection \"upgrade\";\n  }\n  \n  location \/notifications\/hub\/negotiate {\n    proxy_pass http:\/\/127.0.0.1:8181;\n  }\n}<\/code><\/pre>\n\n\n\n<p>Editamos el archivo de configuraci\u00f3n principal de NGINX<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/nginx\/nginx.conf<\/code><\/pre>\n\n\n\n<p>Agregamos lo siguiente dentro del bloque &#8220;http&#8221;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server_names_hash_bucket_size  64;<\/code><\/pre>\n\n\n\n<p>Reiniciamos NGINX<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart nginx<\/code><\/pre>\n\n\n\n<p>Obtenemos un certificado on Let&#8217;s Encrypt<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install certbot python3-certbot-nginx\nsudo certbot --nginx<\/code><\/pre>\n\n\n\n<p>Ejecutamos Vaultwarden a trav\u00e9s de Docker ajustando el nombre de host y token de administraci\u00f3n de nuestra instancia (con los par\u00e1metros incluidos el contenedor se iniciar\u00e1 de forma autom\u00e1tica)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker run -d --name bitwarden -v \/vw-data\/:\/data\/ -e DOMAIN=https:\/\/vault.asgardius.company -e ADMIN_TOKEN=&lt;random-string> -e ROCKET_PORT=8181 -e WEBSOCKET_ENABLED=true -p 127.0.0.1:8181:8181 -p 127.0.0.1:3012:3012 --restart always vaultwarden\/server:latest<\/code><\/pre>\n\n\n\n<p>Ahora podremos acceder al panel de administraci\u00f3n de nuestra instancia de Vaultwarden, en mi caso se accede a trav\u00e9s de https:\/\/vault.asgardius.company\/admin<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/asgardius.company\/wp-content\/uploads\/2021\/06\/Screenshot_20210629_094126-1024x549.png\" alt=\"\" class=\"wp-image-812\"\/><\/figure>\n\n\n\n<p>Entramos utilizando el token de administraci\u00f3n que establecimos al ejecutar el contenedor e introducimos las credenciales de nuestro servidor de correo en los campos correspondientes. Una vez configurado el servidor de correo podemos ir a la secci\u00f3n Usuarios e invitar usuarios nuevos a trav\u00e9s del correo electr\u00f3nico. Otra opci\u00f3n es abrir el registro, pero el servidor podr\u00eda llenarse de nuevas solicitudes. En caso de que familiares y amigos ya tengan cuenta en nuestro servidor de correo podemos habilitar el registro exclusivamente para los nombres de dominio utilizados por este y solicitar la verificaci\u00f3n de correo para poder iniciar sesi\u00f3n. Este software es bastante ligero, ya que instalado en una Raspberry Pi 3 solo se utilizan 142 MB de RAM (incluyendo otros servicios del sistema). Recuerda que debido al encriptado de punta a punta en caso de olvidar la contrase\u00f1a de la cuenta los datos ser\u00e1n inaccesibles. Para evitar este problema se puede establecer un recordatorio para poder deducir la contrase\u00f1a en caso de emergencia (este recordatorio se env\u00eda al buz\u00f3n de correo asociado)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En el art\u00edculo anterior analic\u00e9 el gestor de contrase\u00f1as Bitwarden y recomend\u00e9 utilizarlo a trav\u00e9s de una instancia privada de Vaultwarden. Un m\u00e9todo sencillo para instalar Vaultwarden es mediante Yunohost, al cual le dediqu\u00e9 un art\u00edculo. En esta ocasi\u00f3n mostrar\u00e9 c\u00f3mo hacerlo utilizando Docker utilizando una Raspberry Pi como referencia (Se puede adaptar a cualquier&hellip; <a class=\"more-link\" href=\"https:\/\/asgardius.company\/?p=809\">Seguir leyendo <span class=\"screen-reader-text\">Instalando Vaultwarden en Raspberry Pi utilizando Docker<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-809","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"_links":{"self":[{"href":"https:\/\/asgardius.company\/index.php?rest_route=\/wp\/v2\/posts\/809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/asgardius.company\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/asgardius.company\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/asgardius.company\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/asgardius.company\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=809"}],"version-history":[{"count":0,"href":"https:\/\/asgardius.company\/index.php?rest_route=\/wp\/v2\/posts\/809\/revisions"}],"wp:attachment":[{"href":"https:\/\/asgardius.company\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/asgardius.company\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/asgardius.company\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}