<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ricardo Domínguez González</title>
    <description>The latest articles on DEV Community by Ricardo Domínguez González (@inusui).</description>
    <link>https://dev.to/inusui</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1339226%2F27ea479c-ecb5-47b1-95b8-37856887d996.jpeg</url>
      <title>DEV Community: Ricardo Domínguez González</title>
      <link>https://dev.to/inusui</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/inusui"/>
    <language>en</language>
    <item>
      <title>Construyendo Mi Nube Personal: Lecciones Aprendidas en Next cloud y Apache</title>
      <dc:creator>Ricardo Domínguez González</dc:creator>
      <pubDate>Mon, 31 Mar 2025 05:56:17 +0000</pubDate>
      <link>https://dev.to/inusui/construyendo-mi-nube-personal-lecciones-aprendidas-en-next-cloud-y-apache-4a9m</link>
      <guid>https://dev.to/inusui/construyendo-mi-nube-personal-lecciones-aprendidas-en-next-cloud-y-apache-4a9m</guid>
      <description>&lt;h2&gt;
  
  
  Recomendaciones
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Escribe todas las configuraciones a mano, no copies y pegues solamente. te sera util saber que estás haciendo exactamente en caso de errores.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Rutas
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Nombre&lt;/th&gt;
&lt;th&gt;Ruta&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;nextcloud config&lt;/td&gt;
&lt;td&gt;/etc/apache2/sites-available/nextcloud.conf&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Config ip estatico&lt;/td&gt;
&lt;td&gt;/etc/netplan/50-cloud-init.yaml&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;config.php nextcloud&lt;/td&gt;
&lt;td&gt;/var/www/nextcloud/config/config.php&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Comandos Útiles
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;comando&lt;/th&gt;
&lt;th&gt;Descripción&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;sudo service apache2 restart&lt;/td&gt;
&lt;td&gt;Reiniciar servidor web de apache2 (donde esta almacenado el nextcloud)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sudo service mysql restart&lt;/td&gt;
&lt;td&gt;Reiniciar MySQL o MariaDB (Base de Datos)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;hostname -I&lt;/td&gt;
&lt;td&gt;para comprobar que Ip tengo&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  1. Instalación del Sistema Operativo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  USB booteable con Ubuntu server
&lt;/h3&gt;

&lt;p&gt;Crea la unidad USB como booteable con Ubuntu server &lt;br&gt;
puedes descargar la imagen de Ubuntu server desde la web oficial&lt;br&gt;
&lt;a href="https://ubuntu.com/download/server" rel="noopener noreferrer"&gt;https://ubuntu.com/download/server&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Instalar Ubuntu server
&lt;/h3&gt;

&lt;p&gt;Dependiendo de la computadora que vas a usar como servidor debes entrar a la BIOS para seleccionar la USB con Ubuntu server en mi caso uso la tecla Esc para entrar a la BIOS y elegir­ la USB con mi Sistema Operativo.&lt;/p&gt;

&lt;p&gt;Nota: &lt;em&gt;Las credenciales las puedes guardar en keepass o samsung pass, todo dato que veas en la configuraciÃ³n puede ser Útil, guárdalo.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;luego de realizar la instalación te va a pedir reiniciarla, antes de reiniciar debes sacar la USB Booteable. &lt;/p&gt;
&lt;h3&gt;
  
  
  Configuración inicial del servidor
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Inicia Session en tu servidor con el usuario y la contraseña creados.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Abre una terminal y actualiza los paquetes:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update
sudo apt-get upgrade
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2. Configuración de Ip Estática para el servidor y tu Router Wi-Fi
&lt;/h3&gt;

&lt;p&gt;Dado que este es tu servidor y tu nube personal, existen configuraciones fijas que no se modificarán con frecuencia, es importante asegurarte de que ni tu servidor ni tu router cambien su ruta cada vez que los reinicias.&lt;/p&gt;

&lt;p&gt;Recuerda que tanto tu router como tu servidor asignan la dirección IP de manera dinámica por defecto. Esto significa que, al reiniciar cualquiera de ellos, la IP podría cambiar, lo que resultaría en errores y la imposibilidad de conectarte a tu servidor correctamente.&lt;/p&gt;
&lt;h2&gt;
  
  
  Configuraciones del lado del servidor
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Vamos a fijarnos que ip tengo actualmente en mi servidor&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ingresa el siguiente comando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;hostname&lt;/span&gt; &lt;span class="nt"&gt;-I&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;te debería dar algo similar a &lt;code&gt;192.168.1.101&lt;/code&gt; el &lt;code&gt;101&lt;/code&gt; puede ser distinto en tu caso, eso es por la parte flexible de notación CIDR (así se llama la dirección ip) que le designo tu router a tu servidor.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vamos a ver dirección ip tiene tu Router&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Aunque &lt;strong&gt;192.168.1.1&lt;/strong&gt; es una dirección común, otros routers pueden usar direcciones diferentes como &lt;strong&gt;192.168.0.1&lt;/strong&gt;, &lt;strong&gt;192.168.1.254&lt;/strong&gt;, o incluso &lt;strong&gt;10.0.0.1&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;vamos a verificar esto del lado de tu servidor Ubuntu, ejecutamos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip route
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;te va a retornar algo similar a &lt;code&gt;default via 192.168.1.1&lt;/code&gt; la cual seria la ruta de tu router.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vamos a configurar nuestro servidor para que cada que inicie use esa ip
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/netplan/50-cloud-init.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Coloca estas configuraciones&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;network&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;
  &lt;span class="na"&gt;ethernets&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;eno1&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;#Guarda bien este nombre, lo usaras más adelante.&lt;/span&gt;
      &lt;span class="na"&gt;dhcp4&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;no&lt;/span&gt; &lt;span class="c1"&gt;# importante para que la red estática no cambie&lt;/span&gt;
      &lt;span class="na"&gt;addresses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;192.168.1.101/24&lt;/span&gt; &lt;span class="c1"&gt;# Asegúrate que ya tengas esta ip configurada en tu Router&lt;/span&gt;
      &lt;span class="na"&gt;routes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;to&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;default&lt;/span&gt;
        &lt;span class="na"&gt;via&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;192.168.1.1&lt;/span&gt; &lt;span class="c1"&gt;# Ip de tu Router&lt;/span&gt;
      &lt;span class="na"&gt;nameservers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;addresses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;192.168.1.1&lt;/span&gt; &lt;span class="c1"&gt;# Ip de tu Router&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aplicas los cambios&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;netplan apply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configuraciones del lado de tu Router
&lt;/h3&gt;

&lt;p&gt;Así mismo como configuraste tu servidor, debes configurar tu Router, no vaya a ser que apagues tu servidor y tu router por algún reinicio o cualquier cosa asigne tu Ip a otro dispositivo. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Primero vamos a buscar la MAC Address de tu Servidor
ejecuta:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ip a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;como ya configuraste tu servidor tu MAC se encuentra en &lt;code&gt;eno1&lt;/code&gt; debe ser similar a &lt;br&gt;
&lt;code&gt;link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff&lt;/code&gt;&lt;br&gt;
lo que dice &lt;code&gt;aa:bb:cc:dd:ee:ff&lt;/code&gt; es tu mac address&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Como ya tenemos la ruta de tu Router solo es ingresar desde el navegador e ingresar a las configuraciones de administración de tu Router en mi caso. 
&lt;a href="http://192.168.1.1/" rel="noopener noreferrer"&gt;http://192.168.1.1/&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;buscas la configuración de &lt;strong&gt;Enlace de IP y MAC&lt;/strong&gt; ahí colocas la MAC de tu Servidor y la IP que ya configuraste en tu servidor. &lt;/p&gt;

&lt;p&gt;Guardas y aplicas cambios&lt;/p&gt;


&lt;h2&gt;
  
  
  3. Instalación de dependencias para Nextcloud
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Instalación de Apache, MariaDB y PHP (versión disponible en los repositorios oficiales)
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;apache2 mariadb-server libapache2-mod-php

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;php php-cli php-common php-curl php-zip php-gd php-mysql php-xml php-mbstring php-json php-intl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;
  
  
  Verifica si puedes entrar desde un navegador en otro dispositivo
&lt;/h4&gt;

&lt;p&gt;primero necesitamos crear una archivo php&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano /var/www/html/info.php
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;escribes y guardas&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="nb"&gt;phpinfo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;al archivo le colocas como nombre info.php&lt;/p&gt;

&lt;p&gt;En la sección [[#Configuraciones del lado del servidor]] descubrimos nuestra ip, esta misma es la que usaremos para entrar a nuestro servidor.&lt;br&gt;
Abre un navegador web en otro dispositivo conectado a la misma red que tu servidor. En la barra de direcciones, escribe la dirección IP de tu servidor seguida de &lt;code&gt;/info.php&lt;/code&gt;. Por ejemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;http://&amp;lt;tu-ip-servidor&amp;gt;/info.php
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configurar Base de datos MariaDB
&lt;/h3&gt;

&lt;p&gt;Ejecuta el siguiente comando para asegurar la instalación de MariaDB que realizamos en el paso anterior:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;mysql_secure_installation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Crea una base de datos y un usuario para Nextcloud:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;mysql &lt;span class="nt"&gt;-u&lt;/span&gt; root &lt;span class="nt"&gt;-p&lt;/span&gt;
CREATE DATABASE nextcloud&lt;span class="p"&gt;;&lt;/span&gt;
CREATE USER &lt;span class="s1"&gt;'nextclouduser'&lt;/span&gt;@&lt;span class="s1"&gt;'localhost'&lt;/span&gt; IDENTIFIED BY &lt;span class="s1"&gt;'password'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
GRANT ALL PRIVILEGES ON nextcloud.&lt;span class="k"&gt;*&lt;/span&gt; TO &lt;span class="s1"&gt;'nextclouduser'&lt;/span&gt;@&lt;span class="s1"&gt;'localhost'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
FLUSH PRIVILEGES&lt;span class="p"&gt;;&lt;/span&gt;
EXIT&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Es importante que guardes el usuario, contraseña y nombre de la base de datos ya que estos se usaran para configurar el servidor del lado de nextcloud. &lt;/p&gt;

&lt;p&gt;📝Como nota adicional, &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;no recomiendo usar nombres y contraseñas &lt;em&gt;(nextcloud, nextclouduser, password)&lt;/em&gt; como los del ejemplo ya que son inseguros y en este servidor estamos guardando información sensible y no queremos arriesgarnos de perder. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Descargar y configurar Nexcloud
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Descarga e instalación manual de Nextcloud:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /var/www
&lt;span class="nb"&gt;sudo &lt;/span&gt;wget https://download.nextcloud.com/server/releases/latest.zip
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install &lt;/span&gt;unzip
&lt;span class="nb"&gt;sudo &lt;/span&gt;unzip latest.zip
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt remove unzip

&lt;span class="c"&gt;#Este siguiente comando puede no ser necesario, recomiendo hacer un ls para verificar si el archivo que descargaste tiene version&lt;/span&gt;
&lt;span class="nb"&gt;sudo mv &lt;/span&gt;nextcloud-&amp;lt;versión&amp;gt; nextcloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mover Nexcloud a la carpeta var/www en caso que no este ahí&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo mv&lt;/span&gt; /var/snap/nextcloud/current/nextcloud /var/www/nextcloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Habilita los módulos necesarios de Apache:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;a2enmod rewrite
&lt;span class="nb"&gt;sudo &lt;/span&gt;a2enmod headers
&lt;span class="nb"&gt;sudo &lt;/span&gt;a2enmod &lt;span class="nb"&gt;env
sudo &lt;/span&gt;a2enmod &lt;span class="nb"&gt;dir
sudo &lt;/span&gt;a2enmod mime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Configuración de Apache para Nextcloud:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/apache2/sites-available/nextcloud.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Contenido del archivo:&lt;br&gt;
Recuerda que 192.168.1.101 es la dirección de tu servidor&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;&amp;lt;&lt;span class="n"&gt;VirtualHost&lt;/span&gt; *:&lt;span class="m"&gt;80&lt;/span&gt;&amp;gt;
  &lt;span class="n"&gt;ServerAdmin&lt;/span&gt; &lt;span class="n"&gt;admin&lt;/span&gt;@&lt;span class="n"&gt;example&lt;/span&gt;.&lt;span class="n"&gt;com&lt;/span&gt;
  &lt;span class="n"&gt;DocumentRoot&lt;/span&gt; /&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;www&lt;/span&gt;/&lt;span class="n"&gt;nextcloud&lt;/span&gt;
  &lt;span class="n"&gt;ServerName&lt;/span&gt; &lt;span class="m"&gt;192&lt;/span&gt;.&lt;span class="m"&gt;168&lt;/span&gt;.&lt;span class="m"&gt;1&lt;/span&gt;.&lt;span class="m"&gt;101&lt;/span&gt;

  &amp;lt;&lt;span class="n"&gt;Directory&lt;/span&gt; /&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;www&lt;/span&gt;/&lt;span class="n"&gt;nextcloud&lt;/span&gt;/&amp;gt;
    &lt;span class="n"&gt;Options&lt;/span&gt; +&lt;span class="n"&gt;FollowSymlinks&lt;/span&gt;
    &lt;span class="n"&gt;AllowOverride&lt;/span&gt; &lt;span class="n"&gt;All&lt;/span&gt;
    &lt;span class="n"&gt;Require&lt;/span&gt; &lt;span class="n"&gt;all&lt;/span&gt; &lt;span class="n"&gt;granted&lt;/span&gt;
  &amp;lt;/&lt;span class="n"&gt;Directory&lt;/span&gt;&amp;gt;

  &amp;lt;&lt;span class="n"&gt;IfModule&lt;/span&gt; &lt;span class="n"&gt;mod_dav&lt;/span&gt;.&lt;span class="n"&gt;c&lt;/span&gt;&amp;gt;
    &lt;span class="n"&gt;Dav&lt;/span&gt; &lt;span class="n"&gt;off&lt;/span&gt;
  &amp;lt;/&lt;span class="n"&gt;IfModule&lt;/span&gt;&amp;gt;

  &lt;span class="n"&gt;SetEnv&lt;/span&gt; &lt;span class="n"&gt;HOME&lt;/span&gt; /&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;www&lt;/span&gt;/&lt;span class="n"&gt;nextcloud&lt;/span&gt;
  &lt;span class="n"&gt;SetEnv&lt;/span&gt; &lt;span class="n"&gt;HTTP_HOME&lt;/span&gt; /&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;www&lt;/span&gt;/&lt;span class="n"&gt;nextcloud&lt;/span&gt;

  &lt;span class="n"&gt;ErrorLog&lt;/span&gt; ${&lt;span class="n"&gt;APACHE_LOG_DIR&lt;/span&gt;}/&lt;span class="n"&gt;error&lt;/span&gt;.&lt;span class="n"&gt;log&lt;/span&gt;
  &lt;span class="n"&gt;CustomLog&lt;/span&gt; ${&lt;span class="n"&gt;APACHE_LOG_DIR&lt;/span&gt;}/&lt;span class="n"&gt;access&lt;/span&gt;.&lt;span class="n"&gt;log&lt;/span&gt; &lt;span class="n"&gt;combined&lt;/span&gt;
&amp;lt;/&lt;span class="n"&gt;VirtualHost&lt;/span&gt;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Habilitación del sitio de Nextcloud y reinicio de Apache:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;a2ensite nextcloud.conf
&lt;span class="nb"&gt;sudo &lt;/span&gt;a2dissite 000-default.conf
&lt;span class="nb"&gt;sudo &lt;/span&gt;service apache2 restart

&lt;span class="c"&gt;## Otorgar permisos&lt;/span&gt;
&lt;span class="nb"&gt;sudo chown&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; www-data:www-data /var/www/nextcloud
&lt;span class="nb"&gt;sudo chmod&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; 755 /var/www/nextcloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Accede a la dirección IP de tu servidor y veras la página de inicio de Nexcloud&lt;/p&gt;

&lt;h2&gt;
  
  
  Problemas que experimente y como los solucione
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Error el ingresar a tu página de configuración de php
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Página en blanco al acceder a info.php:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Solución:&lt;/strong&gt; Verificar que Apache esté ejecutándose correctamente y que el archivo info.php tenga los permisos correctos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;service apache2 status
&lt;span class="nb"&gt;sudo chmod &lt;/span&gt;644 /var/www/html/info.php
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Error 404 Not Found al acceder a la dirección de tu servidor nextcloud:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Solución&lt;/strong&gt;: Verificar que los archivos de Nextcloud están en el directorio correcto y configurar Apache correctamente:&lt;/p&gt;

&lt;p&gt;Rutas a revisar configuraciones:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/var/www/nextcloud/config/config.php
/etc/netplan/50-cloud-init.yaml
/etc/apache2/sites-available/nextcloud.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Copiar configuración&lt;/span&gt;
&lt;span class="nb"&gt;sudo cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; /var/snap/nextcloud/common/nextcloud/&lt;span class="k"&gt;*&lt;/span&gt; /var/www/nextcloud/
&lt;span class="nb"&gt;sudo chown&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; www-data:www-data /var/www/nextcloud
&lt;span class="nb"&gt;sudo chmod&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; 755 /var/www/nextcloud
&lt;span class="nb"&gt;sudo &lt;/span&gt;service apache2 restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Problema de permisos al editar el archivo info.php:
&lt;/h3&gt;

&lt;p&gt;Solución: Cambiar el propietario del archivo y ajustar los permisos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chown &lt;/span&gt;tu_usuario:tu_usuario /var/www/html/info.php
&lt;span class="nb"&gt;sudo chmod &lt;/span&gt;644 /var/www/html/info.php
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Apache muestra un listado de directorios en lugar de la página de configuración de Nextcloud:
&lt;/h3&gt;

&lt;p&gt;Solución: Deshabilitar la opción de listar directorios en Apache:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/apache2/sites-available/nextcloud.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Asegúrate que en la sección del directoy se incluya lo siguiente&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;Directory&lt;/span&gt; &lt;span class="err"&gt;/var/www/nextcloud&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
&lt;span class="nt"&gt;&amp;lt;/Directory&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;una vez realizado guardas y reinicias el servidor apacha&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;service apache2 restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Error: "Internal Server Error" al acceder a Nextcloud
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problema:&lt;/strong&gt; Nextcloud mostraba un error interno debido a problemas en la configuración del servidor o en los permisos de los archivos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solución:&lt;/strong&gt;&lt;br&gt;
Aseguramos los permisos correctos en los directorios de Nextcloud:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chown&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; www-data:www-data /var/www/nextcloud
&lt;span class="nb"&gt;sudo chmod&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; 755 /var/www/nextcloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reiniciamos los servicios de Apache y MariaDB para aplicar los cambios.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;service apache2 restart
&lt;span class="nb"&gt;sudo &lt;/span&gt;service mysql restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Error: Falta del archivo de log de Nextcloud
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problema&lt;/strong&gt;: No se generaba el archivo &lt;code&gt;nextcloud.log&lt;/code&gt;, lo que complicaba el diagnóstico de errores.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solución&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Revisamos la configuración en &lt;code&gt;config.php&lt;/code&gt; en la ruta &lt;code&gt;/var/www/nextcloud/config/config.php&lt;/code&gt; y habilitamos el registro de logs añadiendo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="s1"&gt;'loglevel'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="s1"&gt;'logfile'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'/var/www/nextcloud/data/nextcloud.log'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ajustamos los permisos para permitir que Apache escribiera en el directorio de logs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chown&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; www-data:www-data /var/www/nextcloud/data
&lt;span class="nb"&gt;sudo chmod&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; 755 /var/www/nextcloud/data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Olvide la contraseña del usuario Administrador
&lt;/h3&gt;

&lt;p&gt;Ve a la ruta&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/var/www/nextcloud

&lt;span class="c"&gt;# Ejecuta&lt;/span&gt;
&lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt; www-data php occ user:resetpassword Administrador
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📝 &lt;em&gt;Notas:&lt;/em&gt; Administrador es el usuario, esto funcionara para cualquier usuario registrado en tu servidor. Si colocas un usuario que no existe el mismo sistema te dirá que no existe. &lt;/p&gt;

</description>
      <category>ubuntu</category>
      <category>opensource</category>
      <category>nextcloud</category>
      <category>mariadb</category>
    </item>
    <item>
      <title>Desplegar a Firebase con GitHub actions</title>
      <dc:creator>Ricardo Domínguez González</dc:creator>
      <pubDate>Sun, 22 Dec 2024 22:23:14 +0000</pubDate>
      <link>https://dev.to/inusui/desplegar-a-firebase-con-github-actions-34m8</link>
      <guid>https://dev.to/inusui/desplegar-a-firebase-con-github-actions-34m8</guid>
      <description>&lt;h1&gt;
  
  
  Como desplegar a firebase con github actions
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmb3sp111co8dv2spwqzm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmb3sp111co8dv2spwqzm.png" alt="github - firebase" width="606" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bueno, voy a asumir que ya tendrás una instalación previa a firebase con todo su despliegue y configuraciones a tal punto que mediante terminal ya logras hacer &lt;code&gt;firebase deploy&lt;/code&gt; y tu sitio web se despliega correctamente. &lt;br&gt;
con eso dicho, disfruta del articulo ✨&lt;/p&gt;
&lt;h2&gt;
  
  
  Creación de archivos
&lt;/h2&gt;

&lt;p&gt;en tu proyecto debes crear la siguiente carpeta &lt;code&gt;.github/workflows/&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; .github/workflows
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;dentro del directorio recién creado debes crear el archivo &lt;code&gt;deploy.yml&lt;/code&gt; &lt;em&gt;(usa el comando cd y tab para navegar)&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;deploy.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Archivo de configuración deploy.yml
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy to Firebase&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;(Esta es la accion, ve al apartado de referencias)&lt;/span&gt;
    &lt;span class="s"&gt;branches&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="pi"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;Rama de despliegue&lt;/span&gt;&lt;span class="pi"&gt;}}&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;

    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Check out repository&lt;/span&gt;
      &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2&lt;/span&gt;

    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Set up Node.js&lt;/span&gt;
      &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/setup-node@v2&lt;/span&gt;
      &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;node-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;22'&lt;/span&gt;

    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install dependencies&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm install&lt;/span&gt;

    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build Angular app&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm run build:prod (Ve a la seccion de Notas del comando Build Angular app)&lt;/span&gt;

    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install Firebase CLI&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm install -g firebase-tools&lt;/span&gt;

    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy to Firebase Hosting&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;firebase deploy --token "${FIREBASE_TOKEN}"&lt;/span&gt; 
      &lt;span class="s"&gt;env:(Ve a la seccion Notas de github secrets y generar token de firebase)&lt;/span&gt;
       &lt;span class="s"&gt;FIREBASE_TOKEN&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.FIREBASE_TOKEN }}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Notas del comando Build Angular app
&lt;/h3&gt;

&lt;p&gt;veras es recomendable crear un comando en el&lt;code&gt;package.json&lt;/code&gt; para que el &lt;code&gt;build&lt;/code&gt; se ejecute sin problemas ya que puede ocasionar algunos errores al colocar el comando directo&lt;br&gt;
&lt;code&gt;npm run build:prod&lt;/code&gt; se traduce en el &lt;code&gt;package.json&lt;/code&gt; como &lt;code&gt;ng build --configuration=production&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ejemplo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"build:prod"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ng build --configuration=production --verbose"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Notas de github secrets y generar token de firebase
&lt;/h3&gt;

&lt;p&gt;No vas a poner el token de tu firebase deploy en el comando, ¿verdad? ... ¿VERDAD?&lt;/p&gt;

&lt;h4&gt;
  
  
  Generar el token
&lt;/h4&gt;

&lt;p&gt;para generar el token seria con el comando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;firebase login:ci
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;eso va a abrir tu navegador y debes iniciar sesion con tu cuenta de Google.&lt;br&gt;
cuando hagas sesión en tu consola va a aparecer la llave de acceso&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3l9ybat34kyiu5jp24tm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3l9ybat34kyiu5jp24tm.png" alt="Image description" width="800" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;esa llave la debes guardar ya que es necesaria para el comando &lt;code&gt;firebase deploy --token&lt;/code&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Guardar token en los secretos de Github
&lt;/h4&gt;

&lt;p&gt;Vamos a darle a github la responsabilidad de que nuestra clave sea guardada.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;vas a tu repositorio&lt;/li&gt;
&lt;li&gt;&lt;p&gt;en el apartado de configuraciones busca &lt;strong&gt;Secrets and variables&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjnvz7zkhqtzhuk2e6qm8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjnvz7zkhqtzhuk2e6qm8.png" alt="secret and variables" width="324" height="123"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;En &lt;strong&gt;Actions&lt;/strong&gt; creas New repository secret &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vhmdcmcn3uwcbwbya52.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7vhmdcmcn3uwcbwbya52.png" alt="New Secret" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;en el nombre pones lo mismo que en tu &lt;code&gt;deploy.yml&lt;/code&gt; en mi caso &lt;code&gt;FIREBASE_TOKEN&lt;/code&gt;, colocas el secreto generado con el comando y guardas&lt;/p&gt;

&lt;h2&gt;
  
  
  Referencias
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.devopsschool.com/blog/github-actioon-list-of-events-that-trigger-workflows/" rel="noopener noreferrer"&gt;Actiones de github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://medium.com/@flutterist/deploying-your-website-to-firebase-hosting-from-github-d6bdbf284a82" rel="noopener noreferrer"&gt;Deploying Your Website to Firebase Hosting from GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>firebase</category>
      <category>github</category>
      <category>githubactions</category>
    </item>
  </channel>
</rss>
