<?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: Orestis Pantazos</title>
    <description>The latest articles on DEV Community by Orestis Pantazos (@orestispantazos).</description>
    <link>https://dev.to/orestispantazos</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%2F172774%2F807f361b-551c-48ca-b4b0-2294a6e08d8e.jpg</url>
      <title>DEV Community: Orestis Pantazos</title>
      <link>https://dev.to/orestispantazos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/orestispantazos"/>
    <language>en</language>
    <item>
      <title>iOS App Review on iPhone: Resume Builder - Professionals on App Store Connect</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Mon, 19 Jul 2021 17:05:33 +0000</pubDate>
      <link>https://dev.to/orestispantazos/ios-app-review-on-iphone-resume-builder-professionals-on-app-store-connect-1oji</link>
      <guid>https://dev.to/orestispantazos/ios-app-review-on-iphone-resume-builder-professionals-on-app-store-connect-1oji</guid>
      <description>&lt;p&gt;App Store Connect: &lt;br&gt;
&lt;a href="https://apps.apple.com/gr/app/resume-builder-professionals/id1569380836"&gt;https://apps.apple.com/gr/app/resume-builder-professionals/id1569380836&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;YouTube Video: &lt;br&gt;
&lt;a href="https://youtu.be/089SGaIYFOw"&gt;https://youtu.be/089SGaIYFOw&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;iOS App Review on #iPhone: Resume Builder - Professionals on App Store Connect&lt;/p&gt;

&lt;p&gt;The Resume Builder for #LinkedIn users is an iOS mobile application that offers a great user experience for building your ideal template to earn your job of your preference.&lt;/p&gt;

&lt;p&gt;LinkedIn has a lot of jobs worldwide, but it is needed to upload a great material including in your #CV with no time.&lt;/p&gt;

&lt;p&gt;Your job-hunting is already started on LinkedIn. Good luck!&lt;/p&gt;

&lt;p&gt;Resume Builder - Professionals is the next social network for professionals that like LinkedIn networks and groups. Build your professional network based on Resume Builder, connect with anyone, and use your professional profile as an online resume with Apple Sign-In, Google Sign-In, Microsoft Sign-In and GitHub for developer professionals.&lt;/p&gt;

&lt;p&gt;JOB SEARCH&lt;/p&gt;

&lt;p&gt;• Search and apply to millions of job openings including your responsive resume&lt;br&gt;
• Upload and easily submit your resume to jobs that fit on LinkedIn jobs&lt;br&gt;
• Save searches and create alerts to be the first to know about new job openings and worldwide events&lt;/p&gt;

&lt;p&gt;The Resume Builder - Professionals app has a low cost to use and download.&lt;/p&gt;




&lt;p&gt;There are no additional subscriptions or premium plans. Find a job, create your business, find and hire the new talented persons worldwide with a really low cost on 4.99 $ all over the world.&lt;/p&gt;

&lt;p&gt;Privacy Policy: &lt;a href="https://opendevops.dev/"&gt;https://opendevops.dev/&lt;/a&gt;&lt;br&gt;
Terms of Service: &lt;a href="https://opendevops.dev/"&gt;https://opendevops.dev/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ios</category>
      <category>ipad</category>
      <category>swift</category>
      <category>appstore</category>
    </item>
    <item>
      <title>Create a resume in a minute</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Sun, 06 Jun 2021 15:21:00 +0000</pubDate>
      <link>https://dev.to/orestispantazos/create-a-resume-in-a-minute-20aa</link>
      <guid>https://dev.to/orestispantazos/create-a-resume-in-a-minute-20aa</guid>
      <description>&lt;p&gt;Resume Builder for Professionals is available on App Store: &lt;a href="https://apps.apple.com/gr/app/resume-builder-professionals/id1569380836"&gt;https://apps.apple.com/gr/app/resume-builder-professionals/id1569380836&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The iOS mobile app is already built with SwiftUI&lt;/p&gt;

</description>
      <category>ios</category>
      <category>mobile</category>
      <category>swiftui</category>
    </item>
    <item>
      <title>🖇 Linux Server Commands</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Wed, 21 Apr 2021 07:23:01 +0000</pubDate>
      <link>https://dev.to/orestispantazos/linux-server-commands-1pna</link>
      <guid>https://dev.to/orestispantazos/linux-server-commands-1pna</guid>
      <description>&lt;p&gt;&lt;strong&gt;Shutdown:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo poweroff&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Restart:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo reboot&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check on 80 port number if something is listening via netstat:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo netstat -plnt | grep ':80'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JBoss bind offset port number:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;...\bin\standalone.bat -Djboss.socket.binding.port-offset=100&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;nginx - nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo pkill -f nginx &amp;amp; wait $!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl start nginx&lt;/code&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>server</category>
    </item>
    <item>
      <title>☸ Install and Configure WildFly (JBoss) on Ubuntu 20.04 LTS</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Wed, 21 Apr 2021 07:21:41 +0000</pubDate>
      <link>https://dev.to/orestispantazos/install-and-configure-wildfly-jboss-on-ubuntu-20-04-lts-266f</link>
      <guid>https://dev.to/orestispantazos/install-and-configure-wildfly-jboss-on-ubuntu-20-04-lts-266f</guid>
      <description>&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Open the Terminal&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Update repository index&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;apt-get update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Install the OpenJDK package from APT&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get install default-jdk&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Create a user and group for WildFly&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo groupadd -r wildfly&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Download the WildFly Installation file&lt;/p&gt;

&lt;p&gt;Version_Number=22.0.1.Final&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget https://download.jboss.org/wildfly/&lt;span class="nv"&gt;$Version_Number&lt;/span&gt;/wildfly-&lt;span class="nv"&gt;$Version_Number&lt;/span&gt;.tar.gz &lt;span class="nt"&gt;-P&lt;/span&gt; /tmp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; Extract the WildFly tar.gz file to /opt folder&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo tar xf /tmp/wildfly-$Version_Number.tar.gz -C /opt/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7:&lt;/strong&gt; Create a symbolic link to point to the WildFly installation directory&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo ln -s /opt/wildfly-$Version_Number /opt/wildfly&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8:&lt;/strong&gt; Give access to WildFly group and user&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo chown -RH wildfly: /opt/wildfly&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9:&lt;/strong&gt; Configure Wildfly to be run as a service&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo mkdir -p /etc/wildfly&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano /etc/wildfly/wildfly.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;**WILDFLY_BIND=0.0.0.0**&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo sh -c 'chmod +x /opt/wildfly/bin/*.sh'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl daemon-reload&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 10:&lt;/strong&gt; Start the WildFly service&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl start wildfly&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl status wildfly&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl enable wildfly&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure WildFly
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Allow traffic on port 8080&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo ufw allow 8080/tcp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Create a WildFly Administrator&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo /opt/wildfly/bin/add-user.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Access and verify the successful setup of WildFly&lt;/p&gt;

&lt;p&gt;IP address: &lt;code&gt;**http://192.168.1.8:8080**&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managing the Administrative console remotely&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano /etc/wildfly/wildfly.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;WILDFLY_CONSOLE_BIND=0.0.0.0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano /opt/wildfly/bin/launch.sh&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="nv"&gt;$WILDFLY_HOME&lt;/span&gt;/bin/domain.sh &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="nv"&gt;$2&lt;/span&gt; &lt;span class="nt"&gt;-b&lt;/span&gt; &lt;span class="nv"&gt;$3&lt;/span&gt; &lt;span class="nt"&gt;-bmanagement&lt;/span&gt; &lt;span class="nv"&gt;$4&lt;/span&gt;

&lt;span class="k"&gt;else&lt;/span&gt;

&lt;span class="nv"&gt;$WILDFLY_HOME&lt;/span&gt;/bin/standalone.sh &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="nv"&gt;$2&lt;/span&gt; &lt;span class="nt"&gt;-b&lt;/span&gt; &lt;span class="nv"&gt;$3&lt;/span&gt; &lt;span class="nt"&gt;-bmanagement&lt;/span&gt; &lt;span class="nv"&gt;$4&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;sudo systemctl restart wildfly&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano /etc/systemd/system/wildfly.service&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl daemon-reload&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl restart wildfly&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open the Administrative Console CLI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd /opt/wildfly/bin/&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;./jboss-cli.sh &lt;span class="nt"&gt;--connect&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>jboss</category>
      <category>wildfly</category>
      <category>web</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>DevOps Community: Android mobile app </title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Mon, 23 Nov 2020 09:03:55 +0000</pubDate>
      <link>https://dev.to/orestispantazos/devops-community-android-mobile-app-40dg</link>
      <guid>https://dev.to/orestispantazos/devops-community-android-mobile-app-40dg</guid>
      <description>&lt;p&gt;DevOps Community is Android mobile application as an open community for software developers and DevOps engineers. The users can navigate and write an article like in their blog for AWS (Amazon Web Services), GCP (Google Cloud Platform), and Azure for cloud technologies, Docker, Kubernetes, Firebase and Java.&lt;/p&gt;

&lt;p&gt;The Android mobile application provides categories as shown below:&lt;/p&gt;

&lt;p&gt;☕ Java&lt;br&gt;
🔥 Firebase&lt;br&gt;
🌊 Docker&lt;br&gt;
⚓ Kubernetes&lt;br&gt;
☁ Cloud technologies&lt;/p&gt;

&lt;p&gt;Please provide your best article and it will published on &lt;a href="https://opendevops.dev/"&gt;https://opendevops.dev/&lt;/a&gt; website.&lt;/p&gt;

&lt;p&gt;Thank you everyone for your support.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.apps.tech.software.devops"&gt;https://play.google.com/store/apps/details?id=com.apps.tech.software.devops&lt;/a&gt;&lt;/p&gt;

</description>
      <category>android</category>
      <category>devops</category>
      <category>googlecloud</category>
      <category>firebase</category>
    </item>
    <item>
      <title>Open DevOps - JBoss Explained in 3 minutes</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Mon, 23 Nov 2020 08:16:10 +0000</pubDate>
      <link>https://dev.to/orestispantazos/open-devops-jboss-explained-in-3-minutes-54ih</link>
      <guid>https://dev.to/orestispantazos/open-devops-jboss-explained-in-3-minutes-54ih</guid>
      <description>&lt;p&gt;YouTube: &lt;iframe width="710" height="399" src="https://www.youtube.com/embed/SegVfK43OKQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>jboss</category>
      <category>wildfly</category>
      <category>devops</category>
    </item>
    <item>
      <title>🔧 Git: The Story Book</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Wed, 30 Sep 2020 07:11:31 +0000</pubDate>
      <link>https://dev.to/orestispantazos/git-the-story-book-9o2</link>
      <guid>https://dev.to/orestispantazos/git-the-story-book-9o2</guid>
      <description>&lt;p&gt;&lt;strong&gt;Git Cheat Sheet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Git is a distributed version control system that supports collaboration through teams in the corporation. Teams of developers and open-source software maintainers basically handle and manage their projects through Git. It is very useful as open-source software toolkit for developers and DevOps engineers.&lt;/p&gt;

&lt;p&gt;Git is ready to download it from the official website and is available for Linux, MacOS and Windows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup Git&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check your Git version with the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Initialize the current working directory as a Git repository with the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Clone your projects from hosted remotely Git repositories with specified repo's URL or server location on GitHub or GitLab instances.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://www.github.com/username/repo-name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Show your current Git directory's remote repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Staging&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check the status of your Git repo including files added that are not staged and the files that are staged also.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Include all the available files in the current working directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remove a file from staging within your working directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reset CDI.java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Committing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Commit the staged files with meaningful commit message that you can track your commits later on.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Added new files"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Branches&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Show all available current branches with the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a new branch on your working directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch new-branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Switch to another existing branch and checkout to your current working directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout another-branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create the branch and switch to the new one to your current working directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; new-branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Merge the specific branch's history into the current one's.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git merge branch-name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Collaborate and Update&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fetch and merge any commits from the tracking remote branch.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Push your local branch commits to the remote repository branch.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Inspecting&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Display the commit history for the currently active branch.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>github</category>
      <category>git</category>
    </item>
    <item>
      <title>🛠 DevOps Developer Ecosystem by JetBrains</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Wed, 30 Sep 2020 07:10:33 +0000</pubDate>
      <link>https://dev.to/orestispantazos/devops-developer-ecosystem-by-jetbrains-1f23</link>
      <guid>https://dev.to/orestispantazos/devops-developer-ecosystem-by-jetbrains-1f23</guid>
      <description>&lt;p&gt;What configuration management tools do you or your organization use?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;26% Ansible&lt;/strong&gt;&lt;br&gt;
22% Custom solution&lt;br&gt;
 8% Chef&lt;br&gt;
 7% Puppet&lt;br&gt;
 4% Salt&lt;br&gt;
 3% Other&lt;br&gt;
43% None&lt;/p&gt;

&lt;p&gt;What server templating tools do you or your organization regularly use?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;60% Docker&lt;/strong&gt;&lt;br&gt;
 8% Vagrant&lt;br&gt;
 4% Packer&lt;br&gt;
 1% CoreOS rkt&lt;br&gt;
 2% Other&lt;br&gt;
36% None&lt;/p&gt;

&lt;p&gt;What infrastructure provisioning tools do you or your organization use?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;21% Terraform&lt;/strong&gt;&lt;br&gt;
19% AWS CloudFormation&lt;br&gt;
 7% AWS CDK&lt;br&gt;
 6% OpenStack Heat&lt;br&gt;
 1% TOSCA/Cloudify&lt;br&gt;
 5% Other&lt;br&gt;
55% None&lt;/p&gt;

&lt;p&gt;What container orchestration services do you use in production, if any?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;40% Kubernetes (self-managed or fully managed)&lt;/strong&gt;&lt;br&gt;
14% Amazon ECS / Fargate&lt;br&gt;
14% Docker Swarm&lt;br&gt;
 7% Amazon EKS&lt;br&gt;
 2% Mesos or DC / OS&lt;br&gt;
 1% CoreOS Tectonic&lt;br&gt;
 1% Hashicorp Nomad&lt;br&gt;
 3% Other&lt;br&gt;
40% None&lt;/p&gt;

&lt;p&gt;How do you deploy your Docker images to the docker repository, if you do?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;44% I deploy from CI / CD&lt;/strong&gt;&lt;br&gt;
34% I use only the command line&lt;br&gt;
25% I do not deploy&lt;br&gt;
 9% I deploy with custom / in-house tools&lt;br&gt;
 9% I use a configuration management tool (Chef, Puppet, Ansible, etc.)&lt;br&gt;
 1% Other &lt;/p&gt;

&lt;p&gt;Which cloud services do you use?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;62% Amazon Web Services&lt;/strong&gt;&lt;br&gt;
30% Google Cloud Platform&lt;br&gt;
25% Microsoft Azure&lt;br&gt;
14% Heroku&lt;br&gt;
 3% RedHat OpenShift&lt;br&gt;
 2% Cloud Foundry&lt;br&gt;
 1% IBM SoftLayer&lt;br&gt;
 1% Rackspace&lt;br&gt;
18% Other&lt;/p&gt;

</description>
      <category>devops</category>
    </item>
    <item>
      <title>🌊 How To Secure Nginx with Let's Encrypt on Ubuntu 18.04 in DigitalOcean</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Wed, 30 Sep 2020 07:09:11 +0000</pubDate>
      <link>https://dev.to/orestispantazos/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04-in-digitalocean-3eg</link>
      <guid>https://dev.to/orestispantazos/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04-in-digitalocean-3eg</guid>
      <description>&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Installing Certbot&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;sudo &lt;/span&gt;add-apt-repository ppa:certbot/certbot
&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="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;python-certbot-nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Confirming Nginx’s Configuration&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;sudo &lt;/span&gt;nano /etc/nginx/sites-available/example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;/etc/nginx/sites-available/example.com&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;...
server_name example.com www.example.com&lt;span class="p"&gt;;&lt;/span&gt;
...
&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="nb"&gt;sudo &lt;/span&gt;nginx &lt;span class="nt"&gt;-t&lt;/span&gt;
&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="nb"&gt;sudo &lt;/span&gt;systemctl reload nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Allowing HTTPS Through the Firewall&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;sudo &lt;/span&gt;ufw status
&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;Output
Status: active

To                         Action      From
&lt;span class="nt"&gt;--&lt;/span&gt;                         &lt;span class="nt"&gt;------&lt;/span&gt;      &lt;span class="nt"&gt;----&lt;/span&gt;
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH &lt;span class="o"&gt;(&lt;/span&gt;v6&lt;span class="o"&gt;)&lt;/span&gt;               ALLOW       Anywhere &lt;span class="o"&gt;(&lt;/span&gt;v6&lt;span class="o"&gt;)&lt;/span&gt;             
Nginx HTTP &lt;span class="o"&gt;(&lt;/span&gt;v6&lt;span class="o"&gt;)&lt;/span&gt;            ALLOW       Anywhere &lt;span class="o"&gt;(&lt;/span&gt;v6&lt;span class="o"&gt;)&lt;/span&gt;
&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="nb"&gt;sudo &lt;/span&gt;ufw allow &lt;span class="s1"&gt;'Nginx Full'&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;ufw delete allow &lt;span class="s1"&gt;'Nginx HTTP'&lt;/span&gt;
&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="nb"&gt;sudo &lt;/span&gt;ufw status
&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;Output
Status: active

To                         Action      From
&lt;span class="nt"&gt;--&lt;/span&gt;                         &lt;span class="nt"&gt;------&lt;/span&gt;      &lt;span class="nt"&gt;----&lt;/span&gt;
OpenSSH                    ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
OpenSSH &lt;span class="o"&gt;(&lt;/span&gt;v6&lt;span class="o"&gt;)&lt;/span&gt;               ALLOW       Anywhere &lt;span class="o"&gt;(&lt;/span&gt;v6&lt;span class="o"&gt;)&lt;/span&gt;
Nginx Full &lt;span class="o"&gt;(&lt;/span&gt;v6&lt;span class="o"&gt;)&lt;/span&gt;            ALLOW       Anywhere &lt;span class="o"&gt;(&lt;/span&gt;v6&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Obtaining an SSL Certificate&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;sudo &lt;/span&gt;certbot &lt;span class="nt"&gt;--nginx&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; example.com &lt;span class="nt"&gt;-d&lt;/span&gt; www.example.com
&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;Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
&lt;span class="nt"&gt;-------------------------------------------------------------------------------&lt;/span&gt;
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this &lt;span class="k"&gt;for
&lt;/span&gt;new sites, or &lt;span class="k"&gt;if &lt;/span&gt;you&lt;span class="s1"&gt;'re confident your site works on HTTPS. You can undo this
change by editing your web server'&lt;/span&gt;s configuration.
&lt;span class="nt"&gt;-------------------------------------------------------------------------------&lt;/span&gt;
Select the appropriate number &lt;span class="o"&gt;[&lt;/span&gt;1-2] &lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;enter] &lt;span class="o"&gt;(&lt;/span&gt;press &lt;span class="s1"&gt;'c'&lt;/span&gt; to cancel&lt;span class="o"&gt;)&lt;/span&gt;:
&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;Output
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2018-07-23. To obtain a new or tweaked
   version of this certificate &lt;span class="k"&gt;in &lt;/span&gt;the future, simply run certbot again
   with the &lt;span class="s2"&gt;"certonly"&lt;/span&gt; option. To non-interactively renew &lt;span class="k"&gt;*&lt;/span&gt;all&lt;span class="k"&gt;*&lt;/span&gt; of
   your certificates, run &lt;span class="s2"&gt;"certbot renew"&lt;/span&gt;
 - Your account credentials have been saved &lt;span class="k"&gt;in &lt;/span&gt;your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let&lt;span class="s1"&gt;'s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Verifying Certbot Auto-Renewal&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;sudo &lt;/span&gt;certbot renew &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ubuntu</category>
      <category>linux</category>
    </item>
    <item>
      <title>🛡 Install Let's Encrypt Certificate on JBoss WildFly in Linux</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Wed, 30 Sep 2020 07:07:43 +0000</pubDate>
      <link>https://dev.to/orestispantazos/install-let-s-encrypt-certificate-on-jboss-wildfly-in-linux-27hm</link>
      <guid>https://dev.to/orestispantazos/install-let-s-encrypt-certificate-on-jboss-wildfly-in-linux-27hm</guid>
      <description>&lt;p&gt;Please make sure that you have the following PEM-encoded files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cert.pem: Server certificate only&lt;/li&gt;
&lt;li&gt;chain.pem: Root and intermediate certificates only, Let’s Encrypt chain&lt;/li&gt;
&lt;li&gt;fullchain.pem: Previous cert.pem and chain.pem combined&lt;/li&gt;
&lt;li&gt;privkey.pem: Your certificate's private key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Download the certbot-auto script&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Change directory to your home directory&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;cd&lt;/span&gt; /home/orestis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Download &lt;strong&gt;certbot-auto&lt;/strong&gt; from the internet as a superuser&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;wget https://dl.eff.org/certbot-auto
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change mode for full-write access to this directory&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 chmod &lt;/span&gt;a+x certbot-auto
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The certbot is hopefully installed now, and we need to ask it to renew or create the certificate.&lt;/p&gt;

&lt;p&gt;Stop all background services that are already running on port 80.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;certbot-auto renew&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;EXAMPLE:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;certbot-auto certonly &lt;span class="nt"&gt;--standalone&lt;/span&gt; &lt;span class="nt"&gt;--standalone-supported-challenges&lt;/span&gt; http-01 &lt;span class="nt"&gt;--agree-tos&lt;/span&gt; &lt;span class="nt"&gt;--rsa-key-size&lt;/span&gt; 4096 &lt;span class="nt"&gt;--renew-by-default&lt;/span&gt; &lt;span class="nt"&gt;--email&lt;/span&gt; admin@example.com &lt;span class="nt"&gt;-d&lt;/span&gt; example.com &lt;span class="nt"&gt;-d&lt;/span&gt; www.example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;REAL EXAMPLE:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;certbot-auto certonly &lt;span class="nt"&gt;--standalone&lt;/span&gt; &lt;span class="nt"&gt;--standalone-supported-challenges&lt;/span&gt; http-01 &lt;span class="nt"&gt;--agree-tos&lt;/span&gt; &lt;span class="nt"&gt;--rsa-key-size&lt;/span&gt; 4096 &lt;span class="nt"&gt;--renew-by-default&lt;/span&gt; &lt;span class="nt"&gt;--email&lt;/span&gt; opantazos@gmail.com &lt;span class="nt"&gt;-d&lt;/span&gt; opendevops.dev &lt;span class="nt"&gt;-d&lt;/span&gt; www.opendevops.dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The command line argument shows something like this in the end: &lt;/p&gt;

&lt;p&gt;&lt;em&gt;IMPORTANT NOTES:&lt;/em&gt;&lt;br&gt;
&lt;em&gt;- Congratulations! Your certificate and chain have been saved at&lt;br&gt;
/etc/letsencrypt/live/&lt;/em&gt;*&lt;em&gt;/fullchain.pem. Your cert will&lt;br&gt;
expire on *&lt;/em&gt;&lt;em&gt;. To obtain a new or tweaked version of this&lt;br&gt;
certificate in the future, simply run certbot-auto again. To&lt;br&gt;
non-interactively renew *all&lt;/em&gt; of your certificates, run&lt;br&gt;
"certbot-auto renew"*&lt;br&gt;
&lt;em&gt;- If you like Certbot, please consider supporting our work by:&lt;br&gt;
Donating to ISRG / Let's Encrypt: &lt;a href="https://letsencrypt.org/donate"&gt;https://letsencrypt.org/donate&lt;/a&gt;&lt;br&gt;
Donating to EFF: &lt;a href="https://eff.org/donate-le"&gt;https://eff.org/donate-le&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you are working in Java environment, then the Java key store is the official place to store your private keys. Java desktop or web applications typically expect to get the keys that they need from &lt;strong&gt;JKS&lt;/strong&gt;, and it is easy to access from your own Java applications. &lt;strong&gt;JKS&lt;/strong&gt; is not accessible from outside Java environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PKCS#12&lt;/strong&gt; files &lt;strong&gt;(PFX)&lt;/strong&gt; are the file format that is often called &lt;strong&gt;.p12&lt;/strong&gt; or &lt;strong&gt;.pfx&lt;/strong&gt; where you can store a private key and certificates.&lt;/p&gt;

&lt;p&gt;We nede to get the public and private keys into JBoss WildFly application server. For example, Apache, Nginx servers that were setup with the public and private keys pointed to separately, instead of, generally in Java, WildFly works off of a keystore &lt;strong&gt;(.jks)&lt;/strong&gt;. We need to convert the &lt;strong&gt;PEM&lt;/strong&gt; file into a &lt;strong&gt;P12&lt;/strong&gt; file that is readable format by Java keytool.&lt;/p&gt;

&lt;p&gt;Use OpenSSL security toolkit:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openssl pkcs12 &lt;span class="nt"&gt;-export&lt;/span&gt; &lt;span class="nt"&gt;-in&lt;/span&gt; /etc/letsencrypt/live/YOURDOMAIN/fullchain.pem &lt;span class="nt"&gt;-inkey&lt;/span&gt; /etc/letsencrypt/live/YOURDOMAIN/privkey.pem &lt;span class="nt"&gt;-out&lt;/span&gt; KEYSTORENAME.p12 &lt;span class="nt"&gt;-name&lt;/span&gt; KEYSTOREALIAS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Real Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;YOURDOMAIN&lt;/strong&gt; replacement is the folder corresponding to the domain object that you are generating the key for, and was present in the listed console output from the previous step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KEYSTORENAME&lt;/strong&gt; will become part of the generated file name &lt;strong&gt;(.p12)&lt;/strong&gt;, and will be used in the JBoss WildFly XML part of the configuration, as the &lt;strong&gt;KEYSTOREALIAS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When you have pressed ENTER shortcut, you will be prompted and verified for a new password credential. This new password will be used in a moment, when we generate the keystore.&lt;/p&gt;

&lt;p&gt;Generating Java keystore &lt;strong&gt;(.jks)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/usr/lib/jvm/jdk1.7.0_80/bin/keytool &lt;span class="nt"&gt;-importkeystore&lt;/span&gt; &lt;span class="nt"&gt;-deststorepass&lt;/span&gt; WILDFLY_NEW_STORE_PASS &lt;span class="nt"&gt;-destkeypass&lt;/span&gt; WILDFLY_NEW_KEY_PASS &lt;span class="nt"&gt;-destkeystore&lt;/span&gt; NEW_KEYSTORE_FILE.jks &lt;span class="nt"&gt;-srckeystore&lt;/span&gt; KEYSTORENAME.p12 &lt;span class="nt"&gt;-srcstoretype&lt;/span&gt; PKCS12 &lt;span class="nt"&gt;-srcstorepass&lt;/span&gt; PREVIOUSPASSWORD &lt;span class="nt"&gt;-alias&lt;/span&gt; KEYSTOREALIAS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Real Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/usr/lib/jvm/jdk1.8.0_80/bin/keytool &lt;span class="nt"&gt;-importkeystore&lt;/span&gt; &lt;span class="nt"&gt;-deststorepass&lt;/span&gt; athens &lt;span class="nt"&gt;-destkeypass&lt;/span&gt; athens &lt;span class="nt"&gt;-destkeystore&lt;/span&gt; mycert.jks &lt;span class="nt"&gt;-srckeystore&lt;/span&gt; mycert.p12 &lt;span class="nt"&gt;-srcstoretype&lt;/span&gt; PKCS12 &lt;span class="nt"&gt;-srcstorepass&lt;/span&gt; athens &lt;span class="nt"&gt;-alias&lt;/span&gt; mycert
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Go to JBoss WildFly server config directory as superuser and copy the file &lt;strong&gt;mycert.jks&lt;/strong&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;sudo cp &lt;/span&gt;mycert.jks /opt/wildfly/standalone/configuration/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;WILDFLY_NEW_STORE_PASS&lt;/strong&gt;: It is keystore password credential&lt;br&gt;
&lt;strong&gt;WILDFLY_NEW_KEY_PASS&lt;/strong&gt;: It is the destination keystore password&lt;br&gt;
&lt;strong&gt;NEW_KEYSTORE_FILE&lt;/strong&gt;: It is the final .jks file name&lt;/p&gt;

&lt;p&gt;Go to &lt;strong&gt;standalone.xml&lt;/strong&gt; configuration file, follow and transfer the rule cases:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&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;server-identities&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;ssl&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;keystore&lt;/span&gt; &lt;span class="na"&gt;path=&lt;/span&gt;&lt;span class="s"&gt;"NEW_KEYSTORE_FILE.jks"&lt;/span&gt; 
                &lt;span class="na"&gt;relative-to=&lt;/span&gt;&lt;span class="s"&gt;"jboss.server.config.dir"&lt;/span&gt; 
                &lt;span class="na"&gt;keystore-password=&lt;/span&gt;&lt;span class="s"&gt;"WILDFLY_NEW_STORE_PASS"&lt;/span&gt; 
                &lt;span class="na"&gt;alias=&lt;/span&gt;&lt;span class="s"&gt;"KEYSTOREALIAS"&lt;/span&gt; 
                &lt;span class="na"&gt;key-password=&lt;/span&gt;&lt;span class="s"&gt;"WILDFLY_NEW_KEY_PASS"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/ssl&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/server-identities&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Real Example:&lt;/strong&gt;&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;server-identities&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;ssl&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;keystore&lt;/span&gt; &lt;span class="na"&gt;path=&lt;/span&gt;&lt;span class="s"&gt;"mycert.jks"&lt;/span&gt; 
                &lt;span class="na"&gt;relative-to=&lt;/span&gt;&lt;span class="s"&gt;"jboss.server.config.dir"&lt;/span&gt; 
                &lt;span class="na"&gt;keystore-password=&lt;/span&gt;&lt;span class="s"&gt;"athens"&lt;/span&gt; 
                &lt;span class="na"&gt;alias=&lt;/span&gt;&lt;span class="s"&gt;"mycert"&lt;/span&gt; 
                &lt;span class="na"&gt;key-password=&lt;/span&gt;&lt;span class="s"&gt;"athens"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/ssl&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/server-identities&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Last but not least, start the WildFly application server on run mode.&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="se"&gt;\s&lt;/span&gt;tandalone.sh &lt;span class="nt"&gt;-b&lt;/span&gt; 0.0.0.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>linux</category>
      <category>security</category>
    </item>
    <item>
      <title>🔥 Firebase Android Release Notes</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Wed, 30 Sep 2020 06:57:06 +0000</pubDate>
      <link>https://dev.to/orestispantazos/firebase-android-release-notes-50lg</link>
      <guid>https://dev.to/orestispantazos/firebase-android-release-notes-50lg</guid>
      <description>&lt;p&gt;To review release notes for the Firebase console and for other Firebase platforms and related SDKs, refer to the Firebase Release Notes.&lt;/p&gt;

&lt;p&gt;Learn how to install these SDKs in your app: Add Firebase to your Android Project.&lt;/p&gt;

&lt;p&gt;Latest SDK versions&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;build.gradle&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="k"&gt;buildscript&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

  &lt;span class="k"&gt;repositories&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Check that you have the following line (if not, add it):&lt;/span&gt;
    &lt;span class="n"&gt;google&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;// Google's Maven repository&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;dependencies&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// ...&lt;/span&gt;

    &lt;span class="c1"&gt;// Add the following line:&lt;/span&gt;
    &lt;span class="n"&gt;classpath&lt;/span&gt; &lt;span class="s1"&gt;'com.google.gms:google-services:4.3.3'&lt;/span&gt;  &lt;span class="c1"&gt;// Google Services plugin&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;allprojects&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;

  &lt;span class="k"&gt;repositories&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Check that you have the following line (if not, add it):&lt;/span&gt;
    &lt;span class="n"&gt;google&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;// Google's Maven repository&lt;/span&gt;
    &lt;span class="c1"&gt;// ...&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;app/build.gradle&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;apply&lt;/span&gt; &lt;span class="nl"&gt;plugin:&lt;/span&gt; &lt;span class="s1"&gt;'com.android.application'&lt;/span&gt;
&lt;span class="c1"&gt;// Add the following line:&lt;/span&gt;
&lt;span class="n"&gt;apply&lt;/span&gt; &lt;span class="nl"&gt;plugin:&lt;/span&gt; &lt;span class="s1"&gt;'com.google.gms.google-services'&lt;/span&gt;  &lt;span class="c1"&gt;// Google Services plugin&lt;/span&gt;

&lt;span class="n"&gt;android&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;app/build.gradle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytics enabled&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="k"&gt;dependencies&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;

  &lt;span class="c1"&gt;// Add the Firebase SDK for Google Analytics&lt;/span&gt;
  &lt;span class="n"&gt;implementation&lt;/span&gt; &lt;span class="s1"&gt;'com.google.firebase:firebase-analytics:17.4.0'&lt;/span&gt;

  &lt;span class="c1"&gt;// Add the dependencies for any other Firebase products you want to use in your app&lt;/span&gt;
  &lt;span class="c1"&gt;// For example, to also use Firebase Authentication&lt;/span&gt;
  &lt;span class="n"&gt;implementation&lt;/span&gt; &lt;span class="s1"&gt;'com.google.firebase:firebase-auth:19.3.1'&lt;/span&gt;

  &lt;span class="c1"&gt;// Getting a "Could not find" error? Make sure that you've added&lt;/span&gt;
  &lt;span class="c1"&gt;// Google's Maven repository to your root-level build.gradle file&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Analytics not enabled&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="k"&gt;dependencies&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// ...&lt;/span&gt;

  &lt;span class="c1"&gt;// Add the dependencies for the Firebase products you want to use in your app&lt;/span&gt;
  &lt;span class="c1"&gt;// For example, to use Firebase Authentication&lt;/span&gt;
  &lt;span class="n"&gt;implementation&lt;/span&gt; &lt;span class="s1"&gt;'com.google.firebase:firebase-auth:19.3.1'&lt;/span&gt;

  &lt;span class="c1"&gt;// Getting a "Could not find" error? Make sure that you've added&lt;/span&gt;
  &lt;span class="c1"&gt;// Google's Maven repository to your root-level build.gradle file&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Java Android&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service or Product&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AdMob&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;android&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;gms&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;play&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;services&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;ads:&lt;/span&gt;&lt;span class="mf"&gt;19.1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Analytics&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;analytics:&lt;/span&gt;&lt;span class="mf"&gt;17.4&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;App Indexing&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;appindexing:&lt;/span&gt;&lt;span class="mf"&gt;19.1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;auth:&lt;/span&gt;&lt;span class="mf"&gt;19.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cloud Firestore&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;firestore:&lt;/span&gt;&lt;span class="mf"&gt;21.4&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cloud Functions for Firebase Client SDK&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;functions:&lt;/span&gt;&lt;span class="mf"&gt;19.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cloud Messaging&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;messaging:&lt;/span&gt;&lt;span class="mf"&gt;20.1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cloud Storage&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;storage:&lt;/span&gt;&lt;span class="mf"&gt;19.1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Crashlytics&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;crashlytics&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sdk&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;android&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="nl"&gt;crashlytics:&lt;/span&gt;&lt;span class="mf"&gt;2.10&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Alternatively, to use the Firebase Crashlytics SDK (beta):&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;crashlytics:&lt;/span&gt;&lt;span class="mf"&gt;17.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Dynamic Links&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;dynamic&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;links:&lt;/span&gt;&lt;span class="mf"&gt;19.1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;In-App Messaging&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;inappmessaging:&lt;/span&gt;&lt;span class="mf"&gt;19.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;In-App Messaging Display&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;inappmessaging&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;display:&lt;/span&gt;&lt;span class="mf"&gt;19.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Performance Monitoring&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;perf:&lt;/span&gt;&lt;span class="mf"&gt;19.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Realtime Database&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;database:&lt;/span&gt;&lt;span class="mf"&gt;19.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Remote Config&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;config:&lt;/span&gt;&lt;span class="mf"&gt;19.1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Firebase Bill of Materials (BoM)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;firebase&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;bom:&lt;/span&gt;&lt;span class="mf"&gt;25.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The latest Firebase BoM version contains the latest versions of each Firebase Android library available at the BoM's release. For the library versions mapped to previous BoM versions, review the release notes for that version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Play services plugin&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;google&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;gms&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;google&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nl"&gt;services:&lt;/span&gt;&lt;span class="mf"&gt;4.3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>android</category>
    </item>
    <item>
      <title>⚓ Kubernetes: The Story Book</title>
      <dc:creator>Orestis Pantazos</dc:creator>
      <pubDate>Sun, 22 Mar 2020 11:37:25 +0000</pubDate>
      <link>https://dev.to/opendevops/kubernetes-the-story-book-2k12</link>
      <guid>https://dev.to/opendevops/kubernetes-the-story-book-2k12</guid>
      <description></description>
      <category>kubernetes</category>
      <category>docker</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
