<?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>Forem: Technology Schächner</title>
    <description>The latest articles on Forem by Technology Schächner (@technology-schaechner).</description>
    <link>https://forem.com/technology-schaechner</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%2Forganization%2Fprofile_image%2F7136%2F106d0045-438c-4a4c-a0e6-b6e7a87d72db.png</url>
      <title>Forem: Technology Schächner</title>
      <link>https://forem.com/technology-schaechner</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/technology-schaechner"/>
    <language>en</language>
    <item>
      <title>How to install Ghost CMS</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Wed, 06 Sep 2023 06:47:12 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/how-to-install-ghost-cms-32if</link>
      <guid>https://forem.com/technology-schaechner/how-to-install-ghost-cms-32if</guid>
      <description>&lt;p&gt;Ghost is a modern content management system - this means that you can host websites with it just like with WordPress. However, since it was only founded in 2013, you can imagine that there are not that many plugins &amp;amp; themes here. But for some themes you have to dig deep into your pocket and sometimes pay more than 100 euros for it.&lt;br&gt;
Today we show you how you can easily install this with one command via Docker.&lt;/p&gt;



&lt;p&gt;We would appreciate a like :heart and a comment!&lt;br&gt;
Feel free to visit our Ghost page and register for exclusive newsletters to find out everything!&lt;br&gt;
(&lt;a href="//self-hosted.sch%C3%A4chner.de"&gt;self-hosted.schächner.de&lt;/a&gt;)&lt;/p&gt;



&lt;p&gt;But to do that, you first need Docker and then Docker-Compose.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
sudo apt upgrade
sudo apt install docker.io
sudo apt install docker-compose

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

&lt;/div&gt;



&lt;p&gt;Then we have to create a docker-compose.yml file – no matter where.sudo nano docker-compose.yml&lt;/p&gt;

&lt;p&gt;This contains the following content. Note that the password and username should be changed for security reasons - the port can remain the same.&lt;br&gt;
But what you have to change are the mail settings with which you then send e-mails.&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;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;3.1'&lt;/span&gt;

&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

  &lt;span class="na"&gt;ghost&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ghost:latest&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;always&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;8089:2368&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

      &lt;span class="na"&gt;database__client&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;mysql&lt;/span&gt;
      &lt;span class="na"&gt;database__connection__host&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;db&lt;/span&gt;
      &lt;span class="na"&gt;database__connection__user&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;root&lt;/span&gt;
      &lt;span class="na"&gt;database__connection__password&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Schächner&amp;amp;Tech&lt;/span&gt;
      &lt;span class="na"&gt;database__connection__database&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ghost&lt;/span&gt;
      &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;http://localhost&lt;/span&gt;
      &lt;span class="na"&gt;mail__from&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;'Schächner'&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;lt;server@schächner.de&amp;gt;"&lt;/span&gt;
      &lt;span class="na"&gt;mail__transport&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SMTP"&lt;/span&gt;
      &lt;span class="na"&gt;mail__options__host&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;smtp.strato.de"&lt;/span&gt;
      &lt;span class="na"&gt;mail__options__port&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;587&lt;/span&gt;
      &lt;span class="na"&gt;mail__options__auth__user&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your-mail"&lt;/span&gt;
      &lt;span class="na"&gt;mail__options__auth__pass&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your-password"&lt;/span&gt;

  &lt;span class="na"&gt;db&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;mysql:8.0&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;always&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;MYSQL_ROOT_PASSWORD&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Schächner&amp;amp;Tech&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After saving that with ctrl+o and exiting with ctrl+x, we need our actual command:&lt;br&gt;
&lt;code&gt;sudo docker-compose up -d&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;That all starts the container.&lt;br&gt;
If we now wait about 2 minutes and then open our IP address, then you have to specify the port after the IP address:&lt;br&gt;
&lt;code&gt;XXX.XXX.XXX.XX:8089&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The website should be visible here.&lt;br&gt;
To still be able to access it as an admin, you have to go to the following URL:&lt;br&gt;
&lt;code&gt;XXX.XXX.XXX.XX:8089/ghost&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here you create an admin account with which you can then write posts.&lt;br&gt;
Do you have any questions, suggestions or requests?&lt;br&gt;
Feel free to write everything in the comments!&lt;br&gt;
Best regards and see you next time!&lt;/p&gt;

</description>
      <category>cms</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Create your own URL shortener!</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Thu, 17 Aug 2023 08:48:52 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/create-your-own-url-shortener-5fed</link>
      <guid>https://forem.com/technology-schaechner/create-your-own-url-shortener-5fed</guid>
      <description>&lt;p&gt;Today we come to a very interesting topic in the field of HomeServer.&lt;/p&gt;




&lt;p&gt;If you like our articles, we would appreciate a Like &amp;amp; Comment❤️&lt;/p&gt;




&lt;p&gt;We want to install our own URL shortener on our HomeSever. This means that shortened links can then be reached under your domain/desired name. There are several options here, e.g. you can also generate the shortened links randomly or provide them with numbers. But more on that. You can do it!&lt;/p&gt;

&lt;p&gt;Or do you like to test it first?&lt;br&gt;
Then try it below&lt;br&gt;
&lt;a href="//url.sch%C3%A4chner.de"&gt;url.schächner.de&lt;/a&gt;!&lt;/p&gt;
&lt;h2&gt;
  
  
  Database
&lt;/h2&gt;

&lt;p&gt;First we create the databases and users again. To do that, let's switch to first&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mysql&lt;/code&gt;&lt;br&gt;
and then create the database with&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CREATE DATABASE yourls;&lt;/code&gt;&lt;br&gt;
and then the user with&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CREATE USER 'yourlsuser'@'localhost' IDENTIFIED BY 'password';&lt;/code&gt;&lt;br&gt;
and the corresponding password.&lt;/p&gt;

&lt;p&gt;We'll give this to you&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GRANT ALL PRIVILEGES ON yourls.* TO 'yourlsuser'@'localhost';&lt;/code&gt;&lt;br&gt;
the permissions and load them as well&lt;/p&gt;

&lt;p&gt;&lt;code&gt;FLUSH PRIVILEGES;&lt;/code&gt;&lt;br&gt;
new.&lt;/p&gt;

&lt;p&gt;Now we can do that&lt;/p&gt;

&lt;p&gt;&lt;code&gt;EXIT;&lt;/code&gt;&lt;br&gt;
leave again.&lt;/p&gt;
&lt;h2&gt;
  
  
  Download Yourls
&lt;/h2&gt;

&lt;p&gt;Now let's switch&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd /tmp&lt;/code&gt;&lt;br&gt;
Into the temporary directory we also download YOURLS with&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo wget https://github.com/YOURLS/YOURLS/archive/refs/tags/1.9.1.zip&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;We'll unpack that&lt;br&gt;
&lt;code&gt;unzip 1.9.1.zip&lt;/code&gt;&lt;br&gt;
and move it to the /var/www/ directory&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo mv YOURLS-1.9.1 /var/www/&lt;/code&gt;&lt;br&gt;
If we want, we can also add the folder&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd /var/www/&lt;/code&gt;&lt;br&gt;
sudo mv YOURLS-1.9.1 yourls&lt;br&gt;
rename.&lt;/p&gt;
&lt;h2&gt;
  
  
  config file
&lt;/h2&gt;

&lt;p&gt;Now we have to go to the directory&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd yourls/user&lt;/code&gt;&lt;br&gt;
switch and copy the config file there with&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cp config-sample.php config.php&lt;/code&gt;&lt;br&gt;
We now have to edit this with&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano config.php&lt;/code&gt;&lt;br&gt;
Here we need to adjust the following values:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;define( 'YOURLS_DB_USER', 'yourlsuser' );&lt;/code&gt;&lt;br&gt;
In the line above we need to enter our database user.&lt;/p&gt;

&lt;p&gt;In the following line the database password&lt;/p&gt;

&lt;p&gt;&lt;code&gt;define( 'YOURLS_DB_PASS', 'password');&lt;/code&gt;&lt;br&gt;
and the name of the database&lt;/p&gt;

&lt;p&gt;&lt;code&gt;define( 'YOURLS_DB_NAME', 'yourls' );&lt;/code&gt;&lt;br&gt;
Here&lt;/p&gt;

&lt;p&gt;&lt;code&gt;define( 'YOURLS_SITE', 'yourls.example.com' );&lt;/code&gt;&lt;br&gt;
we have to enter our desired domain.&lt;/p&gt;

&lt;p&gt;With &lt;code&gt;ctrl + w&lt;/code&gt; we can also search for the following value:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$yourls_user_passwords = [&lt;/code&gt;&lt;br&gt;
A user and a password are already specified below, which must be changed to the desired values.&lt;/p&gt;
&lt;h2&gt;
  
  
  Permissions
&lt;/h2&gt;

&lt;p&gt;Now we need to set the permissions again with&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo chown -R www-data:www-data /var/www/yourls&lt;/code&gt;&lt;br&gt;
and&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo chmod -R 775 /var/www/yourls&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Apache2 config file
&lt;/h2&gt;

&lt;p&gt;We have to take these with us&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano /etc/apache2/apache2.conf&lt;/code&gt;&lt;br&gt;
edit.&lt;/p&gt;

&lt;p&gt;There we search again with &lt;code&gt;ctrl + w&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;AllowOverride&lt;/code&gt;&lt;br&gt;
We need all of these values, except for the area with &lt;code&gt;&amp;lt;Directory /var/www/&amp;gt;&lt;/code&gt; from&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AllowOverride None
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;adjust.&lt;/p&gt;

&lt;p&gt;We insert the following block above the area with &lt;code&gt;&amp;lt;Directory /var/www/&amp;gt;&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Directory&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt;&lt;span class="sr"&gt;/www/y&lt;/span&gt;&lt;span class="nx"&gt;ourls&lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
         &lt;span class="nx"&gt;Options&lt;/span&gt; &lt;span class="nx"&gt;Indexes&lt;/span&gt; &lt;span class="nx"&gt;FollowSymLinks&lt;/span&gt;
         &lt;span class="nx"&gt;AllowOverrideAll&lt;/span&gt;
         &lt;span class="nx"&gt;Require&lt;/span&gt; &lt;span class="nx"&gt;all&lt;/span&gt; &lt;span class="nx"&gt;granted&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Directory&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="nx"&gt;virtual&lt;/span&gt; &lt;span class="nx"&gt;host&lt;/span&gt;
&lt;span class="nx"&gt;Now&lt;/span&gt; &lt;span class="nx"&gt;we&lt;/span&gt; &lt;span class="nx"&gt;create&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;virtual&lt;/span&gt; &lt;span class="nx"&gt;host&lt;/span&gt; &lt;span class="kd"&gt;with&lt;/span&gt;

&lt;span class="nx"&gt;sudo&lt;/span&gt; &lt;span class="nx"&gt;nano&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;apache2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;sites&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;available&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;yourls&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;conf&lt;/span&gt;
&lt;span class="nx"&gt;and&lt;/span&gt; &lt;span class="nx"&gt;add&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;following&lt;/span&gt; &lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;VirtualHost&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="nx"&gt;ServerName&lt;/span&gt; &lt;span class="nx"&gt;yourls&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;example&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;com&lt;/span&gt;
     &lt;span class="nx"&gt;DocumentRoot&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/var/www/yourls&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

     &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Directory&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/var/www/yourls&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
         &lt;span class="nx"&gt;Require&lt;/span&gt; &lt;span class="nx"&gt;all&lt;/span&gt; &lt;span class="nx"&gt;granted&lt;/span&gt;
         &lt;span class="nx"&gt;Options&lt;/span&gt; &lt;span class="nx"&gt;Indexes&lt;/span&gt; &lt;span class="nx"&gt;FollowSymLinks&lt;/span&gt;
         &lt;span class="nx"&gt;AllowOverrideAll&lt;/span&gt;
         &lt;span class="nx"&gt;Order&lt;/span&gt; &lt;span class="nx"&gt;allow&lt;/span&gt; &lt;span class="nx"&gt;deny&lt;/span&gt;
         &lt;span class="nx"&gt;Allow&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="nx"&gt;all&lt;/span&gt;
     &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Directory&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
    &lt;span class="nx"&gt;ErrorLog&lt;/span&gt; &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;APACHE_LOG_DIR&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="sr"&gt;/error.lo&lt;/span&gt;&lt;span class="err"&gt;g
&lt;/span&gt;    &lt;span class="nx"&gt;CustomLog&lt;/span&gt; &lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;APACHE_LOG_DIR&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="sr"&gt;/access.log combine&lt;/span&gt;&lt;span class="err"&gt;d
&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/VirtualHost&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Of course, as always, we have to take this file with us&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo a2ensite yourls.conf&lt;/code&gt;&lt;br&gt;
activate.&lt;/p&gt;

&lt;p&gt;Now we also start the web server&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo service apache2 restart&lt;/code&gt;&lt;br&gt;
and&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo systemctl restart apache2.service&lt;/code&gt;&lt;br&gt;
new.&lt;/p&gt;

&lt;p&gt;Now we can go into the browser to configuration!&lt;/p&gt;

&lt;p&gt;This can be done by opening the domain (only if we have defined an A record or AAAA record) /admin or ip/admin in the browser.&lt;/p&gt;

&lt;p&gt;Here we go!&lt;/p&gt;

&lt;p&gt;PS:&lt;/p&gt;

&lt;p&gt;Do you want a certificate for this instance?&lt;/p&gt;

&lt;p&gt;This is what you get with our article:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sch%C3%A4chner.de/2022/08/03/nextcloud-aus-dem-internet-erreichbar-machen-und-ein-ssl-zertifikat-bzw-https-fuer-unsere-cloud-und-andere-web-installationen/" rel="noopener noreferrer"&gt;Make NextCloud accessible from the Internet and an SSL certificate or https for our cloud and other web installations - Schächner&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading,&lt;br&gt;
Schächner&lt;/p&gt;

</description>
      <category>ubuntu</category>
      <category>tutorial</category>
      <category>website</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Mine XMR with OLD devices + Raspberry Pi! 💰</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Tue, 15 Aug 2023 13:53:10 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/mine-xmr-with-old-devices-1e84</link>
      <guid>https://forem.com/technology-schaechner/mine-xmr-with-old-devices-1e84</guid>
      <description>&lt;p&gt;Do you have old computers or laptops that are actually too weak to mine Bitcoin, Ethereum, etc.? Most of the time it's because you don't have enough power to really mine.&lt;/p&gt;




&lt;p&gt;If you like our articles, we would appreciate a Like ❤️ and a comment!&lt;/p&gt;




&lt;p&gt;Today we will show you a way how it still works - even without a graphics card and only with the CPU of the computer!&lt;/p&gt;

&lt;h2&gt;
  
  
  Install Ubuntu
&lt;/h2&gt;

&lt;p&gt;We need a Linux operating system for mining. We recommend Ubuntu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing the miner
&lt;/h2&gt;

&lt;p&gt;We mean Monero, XMR for short. To do this, we need to run a few codes to make everything work!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install git build-essential cmake libuv1-dev libssl-dev libhwloc-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/xmrig/xmrig.git
cd xmrig
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cmake ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





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

&lt;/div&gt;



&lt;p&gt;You can just copy and paste that and everything will be installed!&lt;/p&gt;

&lt;p&gt;When the installation is done you need to change to the correct directory if you are not already inside:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd xmrig
cd build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now all we need is the code to start mining. That would be this one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./xmrig --donate-level 0 -o gulf.moneroocean.stream:10128 -u 43BmAuo2CsdgU6JQwp7X2g7mkK2j9ifnBei5s1xurnL5PJk9aczn2ftHSxML63fCpeanZigZk17Um6fXg4Pm5rw67zNQGVS -p MinerSchächner
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the "-u" comes your miner address, which is best created with myMonero.&lt;/p&gt;

&lt;p&gt;After the "-p" is simply the miner name, which can also be changed.&lt;/p&gt;

&lt;p&gt;To check how much you've mined, switch to&lt;/p&gt;

&lt;p&gt;&lt;a href="https://moneroocean.stream/" rel="noopener noreferrer"&gt;moneroocean.stream&lt;/a&gt; -&amp;gt; Adblocker must be deactivated!&lt;/p&gt;

&lt;p&gt;Here you enter your XMR address and you can then see at what speed you are currently mining. However, it may take a few minutes for anything to appear here. In Ubuntu, too, the terminal in which you ran the code must always remain open! From 0.003 XMR there is then the first payout - that happens automatically!&lt;/p&gt;

&lt;p&gt;If you have any questions or want more Crypto guides, feel free to post them in the comments!&lt;/p&gt;

&lt;p&gt;Thanks for reading,&lt;br&gt;
Schächner&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>ubuntu</category>
      <category>cryptocurrency</category>
      <category>raspberrypi</category>
    </item>
    <item>
      <title>Block ANY ads for FREE 🤯</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Mon, 14 Aug 2023 07:46:26 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/block-any-ads-for-free-nf</link>
      <guid>https://forem.com/technology-schaechner/block-any-ads-for-free-nf</guid>
      <description>&lt;p&gt;In this guide, we will show you how to block ANY ads on various websites for FREE with AdGuard Home on Raspberry Pi.&lt;/p&gt;




&lt;p&gt;Do you like our instructions or do you want to know more about specific topics?&lt;br&gt;
Feel free to write it in the comments and leave a like there!&lt;/p&gt;



&lt;p&gt;First of all, we need to install Raspberry Pi OS.&lt;/p&gt;

&lt;p&gt;For this we need the Raspberry Pi Imager, which we download from the official website:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://raspberrypi.com/software" rel="noopener noreferrer"&gt;https://raspberrypi.com/software&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After launching the software, the first thing we need to do is select our OS. We choose among&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Raspberry Pi OS (Other) -&amp;gt; Raspberry Pi OS (64-bit)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;out of.&lt;/p&gt;

&lt;p&gt;Then we select our SD card.&lt;/p&gt;

&lt;p&gt;Finally we go to "Write"&lt;/p&gt;

&lt;p&gt;This process overwrites all files on the hard disk and these cannot be recovered afterwards!&lt;/p&gt;

&lt;p&gt;After we have done that, we insert the SD card into the Raspberry Pi.&lt;/p&gt;

&lt;p&gt;Optionally, we can still connect it with a LAN cable so that we can achieve better performance. But we can also use the WiFi in the facility as usual. The setup is quite quick and self-explanatory. If updates are to be installed during setup, feel free to skip this step!&lt;/p&gt;

&lt;p&gt;After the restart we see the graphical interface. If you want us to do some more items to beautify the design, please let us know in the comments!&lt;/p&gt;

&lt;p&gt;But first we open the terminal and type two codes into the window. You can simply copy and paste these.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CD
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_armv6.tar.gz'
tar -f AdGuardHome_linux_armv6.tar.gz -x -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ./AdGuardHome/
sudo ./AdGuardHome -s install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The installation is now complete!&lt;/p&gt;

&lt;p&gt;Now we switch to the browser and then to the IP address that is displayed. The displayed IP address (127.0.0.1:3000) only works directly on the Raspberry Pi. Do you want to set up AdGuard Home somewhere else? Then go to "raspberrypi:3000" in the browser.&lt;/p&gt;

&lt;p&gt;And here we are:&lt;/p&gt;

&lt;p&gt;We go to "Begin" and then see the second step.&lt;/p&gt;

&lt;p&gt;You can leave the settings as they are. You just need to remember the IP addresses that tell how AdGuard Home can be accessed!&lt;/p&gt;

&lt;p&gt;Then we set a password.&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%2Firo28268x3qnzjskgckx.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%2Firo28268x3qnzjskgckx.png" alt="Image description" width="682" height="666"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next step is the device configuration, but we'll get to that later.&lt;/p&gt;

&lt;p&gt;Let's just move on and we're at the graphical interface!&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%2Fjgnf29tc1tcsvzxu4vqt.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%2Fjgnf29tc1tcsvzxu4vqt.png" alt="Image description" width="800" height="593"&gt;&lt;/a&gt;&lt;br&gt;
By default, we already have a preconfiguration that already blocks ads. If you want more detailed instructions on this as well, write it in the comments! But if we were to list them here, it would go beyond the scope of this guide.&lt;/p&gt;

&lt;p&gt;[CONFIGURATION IN WINDOWS 11 DEVICES]&lt;/p&gt;

&lt;p&gt;We go to the settings, select "Wlan", then the connected wifi by going to "Properties of XXX". Then we edit the DNS server assignment by tapping "Edit" and editing the network DNS settings, switching IPv4 to "On" and typing in our IP address as "Preferred DNS".&lt;/p&gt;

&lt;p&gt;Thank you for reading,&lt;br&gt;
Schächner&lt;/p&gt;

</description>
      <category>adguard</category>
      <category>tutorial</category>
      <category>webdev</category>
      <category>raspberrypi</category>
    </item>
    <item>
      <title>How to install NodeJS</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Fri, 11 Aug 2023 08:38:18 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/how-to-install-nodejs-2e81</link>
      <guid>https://forem.com/technology-schaechner/how-to-install-nodejs-2e81</guid>
      <description>&lt;p&gt;Today we will show you how to install Node.js in Ubuntu.&lt;/p&gt;

&lt;p&gt;If you like our article, we would be very happy about a Like and a comment!&lt;/p&gt;




&lt;p&gt;You think it's easy to do&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt install nodejs&lt;/code&gt;&lt;br&gt;
That's true, but with the command&lt;/p&gt;

&lt;p&gt;&lt;code&gt;node -v&lt;/code&gt;&lt;br&gt;
is the output&lt;/p&gt;

&lt;p&gt;&lt;code&gt;v10.19.0&lt;/code&gt;&lt;br&gt;
But we need a newer version.&lt;/p&gt;

&lt;p&gt;This works as follows:&lt;/p&gt;

&lt;p&gt;First we download the script: (version number is desired version number)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;curl -sL https://deb.nodesource.com/setup_versionnumber.x -o /tmp/nodesource_setup.sh&lt;/code&gt;&lt;br&gt;
Then we run it with the following command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo bash /tmp/nodesource_setup.sh&lt;/code&gt;&lt;br&gt;
Now we can just use nodejs&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get install -y nodejs&lt;/code&gt;&lt;br&gt;
to install.&lt;/p&gt;

&lt;p&gt;If you now again&lt;/p&gt;

&lt;p&gt;&lt;code&gt;node -v&lt;/code&gt;&lt;br&gt;
executes, the output should be:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;version number....&lt;/code&gt;&lt;br&gt;
You need Node.js e.g. for the next article:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://technik.sch%C3%A4chner.de/index.php/blog/2023/08/08/face-recognition-faces-recognition-in-nextcloud/" rel="noopener noreferrer"&gt;Face recognition in NextCloud&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>tutorial</category>
      <category>ubuntu</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to install PDlib on your Server💻 (EASY)</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Thu, 10 Aug 2023 16:48:28 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/how-to-install-pdlib-hg</link>
      <guid>https://forem.com/technology-schaechner/how-to-install-pdlib-hg</guid>
      <description>&lt;p&gt;If you like our articles, we would appreciate a like and a comment!&lt;/p&gt;




&lt;p&gt;Today we will show you how easy it is to install PDlib. You need this, for example, for face recognition in NextCloud, as in this article: &lt;a href="https://technik.sch%C3%A4chner.de/blog/2023/08/08/face-recognition-gesichtserkennung-in-nextcloud/" rel="noopener noreferrer"&gt;Face Recognition in NextCloud • Schächner (xn--schchner-2za.de)&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;If you want us to help you with the installation, please write to us!&lt;/p&gt;




&lt;p&gt;You can also use it to fix the following error: App "Face Recognition" cannot be installed because the following dependencies are not fulfilled: The library pdlib is not available.&lt;/p&gt;

&lt;p&gt;But let's start right away:&lt;/p&gt;

&lt;p&gt;First we edit a file:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano /etc/apt/sources.list.d/20-pdlib.list&lt;/code&gt;&lt;br&gt;
There we need to add the package source at the end:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;deb [signed-by=/usr/share/keyrings/delellis-archive-keyring.gpg arch=amd64] https://repo.delellis.com.ar jammy jammy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that we download the key with this command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wget -O- https://repo.delellis.com.ar/repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/delellis-archive-keyring.gpg&lt;/code&gt;&lt;br&gt;
That was the hardest part.&lt;/p&gt;

&lt;p&gt;Now we still lead&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt update&lt;/code&gt;&lt;br&gt;
out and then we can take the package with you&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt install php8.1-pdlib&lt;/code&gt;&lt;br&gt;
to install.&lt;/p&gt;

&lt;p&gt;Now we install PDlib "again" (specifically for the Face Recognition App):&lt;/p&gt;

&lt;p&gt;For this we need some dependencies again&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get install libx11-dev&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo apt-get install libopenblas-dev liblapack-dev&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo apt install cmake&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo apt install php-dev&lt;/code&gt;&lt;br&gt;
Then install the shared library (Dlib):&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo git clone https://github.com/davisking/dlib.git&lt;/code&gt;&lt;br&gt;
&lt;code&gt;cd dlib/dlib&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo mkdir build&lt;/code&gt;&lt;br&gt;
&lt;code&gt;CD build&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo cmake -DBUILD_SHARED_LIBS=ON ..&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo make&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo make install&lt;/code&gt;&lt;br&gt;
Now for the actual installation:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo git clone https://github.com/goodspb/pdlib.git&lt;/code&gt;&lt;br&gt;
&lt;code&gt;cd pdlib&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo phpize&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo ./configure --enable-debug&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo make&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo make install&lt;/code&gt;&lt;br&gt;
So. We're done with the installation. 🥴&lt;/p&gt;

&lt;p&gt;Now you only have to go into the php.ini file under the point ; dynamic extensions ; add the following content:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano /etc/php/8.2/cli/php.ini&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[pdlib]
extension="pdlib.so"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We're still testing that&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get install php-bz2&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo make test&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Good luck and have fun!&lt;br&gt;
Thanks for reading, Schächner&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>ubuntu</category>
      <category>cloud</category>
      <category>programming</category>
    </item>
    <item>
      <title>Host your E-Learning platform with Moodle</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Thu, 10 Aug 2023 15:09:25 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/ho-to-install-moodle-2o69</link>
      <guid>https://forem.com/technology-schaechner/ho-to-install-moodle-2o69</guid>
      <description>&lt;p&gt;If you like this article, we would appreciate a comment and a like! ❤️&lt;/p&gt;




&lt;p&gt;In this guide we will show you today how to install the learning platform Moodle.&lt;/p&gt;

&lt;p&gt;It's best if we start right now!&lt;/p&gt;




&lt;p&gt;Don't you like to do this installation or don't have the possibility? Then register on our website, here you also have the option to create your own courses for free.&lt;br&gt;
We would be pleased!&lt;/p&gt;



&lt;p&gt;We switch to the terminal, and then with&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd /var/www/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;in our data directory.&lt;/p&gt;

&lt;p&gt;Here we also download the latest Moodle files&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo wget https://github.com/moodle/moodle/archive/refs/heads/master.zip&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In our case, this ZIP file is now called "moodle-4.2.1.zip" and we unpack it&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo unzip master.zip&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And we've already unzipped the folder. If you want, we can move or rename the folder, we'll take care of everything&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mv foldername folderpath&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;We rename the folder that has now been extracted (moodle-master) to "moodle".&lt;/p&gt;

&lt;p&gt;We'll do that&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo mv moodle-master/ moodle/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then we still have to adjust the permissions, we'll do that with you&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo chown -R root moodle/&lt;br&gt;
sudo chmod -R 0755 moodle/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now we have to create our database.&lt;/p&gt;

&lt;p&gt;We'll do that&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo mysql&lt;/code&gt;&lt;br&gt;
&lt;code&gt;CREATE DATABASE database-name;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';&lt;/code&gt;&lt;br&gt;
&lt;code&gt;GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';&lt;/code&gt;&lt;br&gt;
&lt;code&gt;FLUSH PRIVILEGES;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;EXIT;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can define the username, database name and user password as you wish - but we will need the data again later!&lt;/p&gt;

&lt;p&gt;When we have done that, we can already call up the IP address/moodle and we have arrived at our web installer!&lt;/p&gt;

&lt;p&gt;Optionally, we can now specify a domain.&lt;/p&gt;

&lt;p&gt;For this we create&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano /etc/apache2/sites-available/moodle.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;a new file.&lt;/p&gt;

&lt;p&gt;The content can look something like this:&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;master&lt;/span&gt;@&lt;span class="n"&gt;domain&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;moodle&lt;/span&gt;/
      &lt;span class="n"&gt;Server&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="n"&gt;learn&lt;/span&gt;.&lt;span class="n"&gt;xn&lt;/span&gt;--&lt;span class="n"&gt;schchner&lt;/span&gt;-&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="n"&gt;za&lt;/span&gt;.&lt;span class="n"&gt;de&lt;/span&gt;
      &lt;span class="n"&gt;Server&lt;/span&gt; &lt;span class="n"&gt;alias&lt;/span&gt; &lt;span class="n"&gt;www&lt;/span&gt;.&lt;span class="n"&gt;learn&lt;/span&gt;.&lt;span class="n"&gt;sch&lt;/span&gt;ä&lt;span class="n"&gt;chner&lt;/span&gt;.&lt;span class="n"&gt;de&lt;/span&gt;
      &lt;span class="n"&gt;Alias&lt;/span&gt; /&lt;span class="n"&gt;moodle&lt;/span&gt; &lt;span class="s2"&gt;"/var/www/moodle/"&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;moodle&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;AllowOverrideAll&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;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;moodle&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;moodle&lt;/span&gt;
      &amp;lt;/&lt;span class="n"&gt;Directory&lt;/span&gt;&amp;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;
&lt;span class="n"&gt;RewriteEngine&lt;/span&gt; &lt;span class="n"&gt;on&lt;/span&gt;
&lt;span class="n"&gt;RewriteCond&lt;/span&gt; %{&lt;span class="n"&gt;SERVER_NAME&lt;/span&gt;} =&lt;span class="n"&gt;learn&lt;/span&gt;.&lt;span class="n"&gt;xn&lt;/span&gt;--&lt;span class="n"&gt;schchner&lt;/span&gt;-&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="n"&gt;za&lt;/span&gt;.&lt;span class="n"&gt;de&lt;/span&gt; [&lt;span class="n"&gt;OR&lt;/span&gt;]
&lt;span class="n"&gt;RewriteCond&lt;/span&gt; %{&lt;span class="n"&gt;SERVER_NAME&lt;/span&gt;} =&lt;span class="n"&gt;www&lt;/span&gt;.&lt;span class="n"&gt;learn&lt;/span&gt;.&lt;span class="n"&gt;sch&lt;/span&gt;ä&lt;span class="n"&gt;chner&lt;/span&gt;.&lt;span class="n"&gt;de&lt;/span&gt;
&lt;span class="n"&gt;RewriteRule&lt;/span&gt; ^ &lt;span class="n"&gt;https&lt;/span&gt;://%{&lt;span class="n"&gt;SERVER_NAME&lt;/span&gt;}%{&lt;span class="n"&gt;REQUEST_URI&lt;/span&gt;} [&lt;span class="n"&gt;END&lt;/span&gt;,&lt;span class="n"&gt;NE&lt;/span&gt;,&lt;span class="n"&gt;R&lt;/span&gt;=&lt;span class="n"&gt;permanent&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;We activate the page with,&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo a2ensite moodle.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;adjust the privileges again:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo chown -R www-data:www-data /var/www/moodle/&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo chmod -R 755 /var/www/moodle/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;and restart our web server:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo service apache2 restart&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo systemctl restart apache2.service&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now all we need is a Let's Encrypt SSL certificate to keep our website secure.&lt;/p&gt;

&lt;p&gt;For that we run this code:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo certbot --apache&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here we have to choose our domain with the number and it's done!&lt;/p&gt;

&lt;p&gt;Now we can really start installing Moodle on the web.&lt;/p&gt;

&lt;p&gt;Note here that you open the web installer via the IP address!&lt;/p&gt;

&lt;p&gt;First we choose our language&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%2Fhbddejrnlcxhkeubk32a.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%2Fhbddejrnlcxhkeubk32a.png" alt="Image description" width="800" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we need to confirm our paths.&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%2Fzfobpdfzjv554j76uiao.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%2Fzfobpdfzjv554j76uiao.png" alt="Image description" width="800" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can either create the data directory yourself (it is not safe in the specified folder) or we can create the directory ourselves&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo mkdir /var/moodledata/&lt;/code&gt;&lt;br&gt;
&lt;code&gt;sudo chmod 0777 /var/moodledata/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then we have that too.&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%2Fmnuot0p4vm5a4kthoy47.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%2Fmnuot0p4vm5a4kthoy47.png" alt="Image description" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We let that as it is.&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%2F2hbfcbeohgoxcqad1t9h.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%2F2hbfcbeohgoxcqad1t9h.png" alt="Image description" width="800" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here you have to enter the password and username from the database. You can leave the last two fields empty.&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%2Fr5ua6gcv81tcs3hetop3.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%2Fr5ua6gcv81tcs3hetop3.png" alt="Image description" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we have to confirm the conditions.&lt;/p&gt;

&lt;p&gt;And then everything is checked again:&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%2F5q7w64q6cgeerv2tdem1.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%2F5q7w64q6cgeerv2tdem1.png" alt="Image description" width="800" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the PHP extension is missing, you can usually use it with&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo apt install php-EXTENSIONNAME&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;to install.&lt;/p&gt;

&lt;p&gt;But the red bug is worse; to do this we need to edit the config.php file. We'll do that&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano config.php&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And here we change the line&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$CFG-&amp;gt;dbtype = 'mysqli';&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$CFG-&amp;gt;dbtype = 'mariadb';&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;around.&lt;/p&gt;

&lt;p&gt;At the bottom is the error because of the max_input_vars.&lt;/p&gt;

&lt;p&gt;We can remove it by adding in the file with&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo nano /etc/php/8.1/apache2/php.ini&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;open and the line&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;;max_input_vars = 1000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;max_input_vars = 5000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;adjust.&lt;/p&gt;

&lt;p&gt;NOTE THAT PHP 8.2 WILL NOT WORK!&lt;/p&gt;

&lt;p&gt;Then we start the server and PHP&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo service apache2 reset&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;new.&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%2F5lxswj6g6enj6fdmtdte.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%2F5lxswj6g6enj6fdmtdte.png" alt="Image description" width="689" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If this error comes up, you have to wait a few minutes or start the installation again.&lt;/p&gt;

&lt;p&gt;You can also simply try to check the permissions again.&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%2Fqmcuy4t6lawglsor6so1.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%2Fqmcuy4t6lawglsor6so1.png" alt="Image description" width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(almost 6 hours later when we finally solved the problem)&lt;/p&gt;

&lt;p&gt;Here we see that everything is finally ready.&lt;/p&gt;

&lt;p&gt;Then we go to "next"&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%2Fopwcsqygererkjyg8tbi.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%2Fopwcsqygererkjyg8tbi.png" alt="Image description" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and make general settings - it doesn't matter how you configure them!&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%2Ftks8lht7pg9nu07gwvli.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%2Ftks8lht7pg9nu07gwvli.png" alt="Image description" width="800" height="555"&gt;&lt;/a&gt;&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%2Fh0su93h7czd4vqdd1p5p.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%2Fh0su93h7czd4vqdd1p5p.png" alt="Image description" width="800" height="555"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last but not least, we specify the name of the website and other settings.&lt;/p&gt;

&lt;p&gt;Thanks for reading,&lt;br&gt;
Schächner&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>webdev</category>
      <category>moodle</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>How to set up Nextcloud webAuthn.</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Tue, 08 Aug 2023 15:09:08 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/how-to-set-up-nextcloud-webauthn-2c90</link>
      <guid>https://forem.com/technology-schaechner/how-to-set-up-nextcloud-webauthn-2c90</guid>
      <description>&lt;p&gt;&lt;a href="https://technik.xn--schchn.de/index.php/blog/2023/08/08/mit-webauth-in-nextcloud-einloggen/" rel="noopener noreferrer"&gt;This is the german tutorial for it.&lt;/a&gt;&lt;br&gt;
In this guide we will show you today how to log into your Nextcloud with webAuth.&lt;/p&gt;

&lt;p&gt;If you like this or any other article, we would appreciate a Like &amp;amp; Comment. ❤️&lt;/p&gt;




&lt;p&gt;This means you no longer need a password to log into your cloud.&lt;/p&gt;

&lt;p&gt;First of all we need to install the right app.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apps.nextcloud.com/apps/twofactor_webauthn" rel="noopener noreferrer"&gt;App in the Nextcloud store&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app is called Two-Factor WebAuthn and is installed quite quickly.&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%2F2gfadhp5ltvyv6drvczk.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%2F2gfadhp5ltvyv6drvczk.png" alt="Image description" width="625" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To configure it we go to this URL:&lt;/p&gt;

&lt;p&gt;"&lt;a href="https://cloud.yourcloud.de/settings/user/security/" rel="noopener noreferrer"&gt;https://cloud.yourcloud.de/settings/user/security/&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cloud.yourcloud.de" rel="noopener noreferrer"&gt;https://cloud.yourcloud.de&lt;/a&gt; must be replaced with your own Nextcloud domain.&lt;/p&gt;

&lt;p&gt;Going further down, we already see that we can set up authentication without a password.&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%2Ffs6cifky86ndskzlp3z8.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%2Ffs6cifky86ndskzlp3z8.png" alt="Image description" width="644" height="221"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we tap on "Add WebAuthn device"&lt;/p&gt;

&lt;p&gt;This is where our face is then scanned - assuming you have a supported camera. Most of the time he asks the face twice.&lt;/p&gt;

&lt;p&gt;Then comes the dialog that it was successful.&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%2Fvqttufbtheook9uyeuil.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%2Fvqttufbtheook9uyeuil.png" alt="Image description" width="777" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a last step we have to assign a name and we're done!&lt;/p&gt;

&lt;p&gt;In order to be able to use this tool, we have to tap "Log in with a device" when logging in.&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%2F0j0pr5yug0pghyfohx9t.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%2F0j0pr5yug0pghyfohx9t.png" alt="Image description" width="507" height="563"&gt;&lt;/a&gt;&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%2F88zn5cqpo3nwnm8j21ip.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%2F88zn5cqpo3nwnm8j21ip.png" alt="Image description" width="547" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we then type in the username and we are asked for the face.&lt;/p&gt;

&lt;p&gt;If you have any questions or problems, feel free to write them back in the comments!&lt;/p&gt;

&lt;p&gt;Thanks, Schächner&lt;/p&gt;

</description>
      <category>nextcloud</category>
      <category>tutorial</category>
      <category>webdev</category>
      <category>webauthn</category>
    </item>
    <item>
      <title>Reset centOS root password</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Tue, 08 Aug 2023 11:40:12 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/reset-centos-root-password-25l0</link>
      <guid>https://forem.com/technology-schaechner/reset-centos-root-password-25l0</guid>
      <description>&lt;p&gt;Today, in this guide, we are going to show you how to reset CentOS root password if you forgot it.&lt;/p&gt;

&lt;p&gt;If you like this or any other article, we would appreciate a Like &amp;amp; Comment! ❤️&lt;/p&gt;




&lt;p&gt;Please note that you assume all responsibility for this - if unexpected problems arise, which is very unlikely, then you assume liability.&lt;/p&gt;

&lt;p&gt;First of all we need to start CentOS.&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%2F7qehbp5bago3u5nstk3b.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%2F7qehbp5bago3u5nstk3b.png" alt="Image description" width="800" height="617"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we see that it will boot soon.&lt;/p&gt;

&lt;p&gt;But before that happens, you need to prevent this by pressing any key on the keyboard.&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%2Fsd6wvidtaeitiuot7mjc.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%2Fsd6wvidtaeitiuot7mjc.png" alt="Image description" width="800" height="615"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now it should look something like this. It is also possible that several entries exist. But that doesn't matter; here you simply have to select the first one by pressing the “a” key on your keyboard.&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%2Filic62muaa54boke3sw4.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%2Filic62muaa54boke3sw4.png" alt="Image description" width="800" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let's edit the kernel by adding a "1" after "quiet" after a space. As you can see in the picture this has already been done.&lt;/p&gt;

&lt;p&gt;Now you need to press the Enter key and wait for the device to start booting. When it has booted then you have to&lt;/p&gt;

&lt;p&gt;&lt;code&gt;passwd&lt;/code&gt;&lt;br&gt;
type in and you can change your password.&lt;/p&gt;

&lt;p&gt;If you have any questions, we would ask you to just write them in the comments!&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br&gt;
Schächner&lt;/p&gt;




&lt;p&gt;All images are from an external source&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>linux</category>
      <category>security</category>
      <category>centos</category>
    </item>
    <item>
      <title>Updating Ubuntu has never been easier</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Tue, 08 Aug 2023 07:20:22 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/updating-ubuntu-has-never-been-easier-3k74</link>
      <guid>https://forem.com/technology-schaechner/updating-ubuntu-has-never-been-easier-3k74</guid>
      <description>&lt;p&gt;Updating Ubuntu has never been easier - thanks to us!&lt;br&gt;
We have the optimal solution to install any available update with just one click!&lt;/p&gt;



&lt;p&gt;If you like this or any other article, we would appreciate a like and a comment. ❤️&lt;/p&gt;



&lt;p&gt;Don't you believe us? Then let yourself be carried away into the world of Ubuntu update codes!&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Schaechner" rel="noopener noreferrer"&gt;
        Schaechner
      &lt;/a&gt; / &lt;a href="https://github.com/Schaechner/Ubuntu-Update-Script" rel="noopener noreferrer"&gt;
        Ubuntu-Update-Script
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      a simple, quick-to-install update script for its own servers running Ubuntu.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Update-Skript&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;a simple, quick-to-install update script for its own servers running Ubuntu.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Install dependencies&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;&lt;code&gt;sudo apt install figlet toilet&lt;/code&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Run&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;&lt;code&gt;sh update.sh&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Schaechner/Ubuntu-Update-Script" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;A simple update in Linux always consists of several parts. So we thought it wouldn't make more sense if we just code something so that we only have to enter one line of code, but all updates are executed.&lt;br&gt;
Said and done.&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 echo&lt;/span&gt; &lt;span class="s2"&gt;"
echo -n UPDATE: &amp;amp;&amp;amp; sleep 3 &amp;amp;&amp;amp; sudo apt update -y &amp;amp;&amp;amp; sudo apt-get update -y &amp;amp;&amp;amp;
echo -n UPGRADE: &amp;amp;&amp;amp; sleep 3 &amp;amp;&amp;amp; sudo apt upgrade -y &amp;amp;&amp;amp; sudo apt-get upgrade -y &amp;amp;&amp;amp; 
echo -n FULL-UPGRADE: &amp;amp;&amp;amp; sleep 3 &amp;amp;&amp;amp; sudo apt full-upgrade -y &amp;amp;&amp;amp; sudo apt-get full-upgrade -y &amp;amp;&amp;amp;
echo ---- &amp;amp;&amp;amp;
echo -n Your system has been updated, echo "&lt;/span&gt;&lt;span class="nv"&gt;$USER&lt;/span&gt;&lt;span class="s2"&gt;" &amp;amp;&amp;amp;
sleep 1 &amp;amp;&amp;amp;
figlet You are up to date, &amp;amp;&amp;amp;
toilet "&lt;/span&gt;&lt;span class="nv"&gt;$USER&lt;/span&gt;&lt;span class="s2"&gt;" &amp;amp;&amp;amp;
sleep 5 &amp;amp;&amp;amp;
clear
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now all updates are done at once - even with a personalized message at the end. But to get this personalized message, we need &lt;code&gt;figlet&lt;/code&gt;&lt;br&gt;
and &lt;code&gt;toilet&lt;/code&gt;. We'll install that with &lt;code&gt;sudo apt install figlet toilet&lt;/code&gt;.&lt;br&gt;
The code in general is a shell script.&lt;br&gt;
Let's break down the code step by step:&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 echo&lt;/span&gt;&lt;span class="s2"&gt;"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line is using sudo to elevate privileges and execute the echo command. However, the use of sudo with echo won't have any impact on the output. It essentially outputs an empty line with a newline character.&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;echo&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; UPDATE: &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sleep &lt;/span&gt;3 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line outputs the text "UPDATE:" without a newline (-n flag), then it waits for 3 seconds using &lt;code&gt;sleep&lt;/code&gt;, followed by running the system package update commands. Both &lt;code&gt;sudo apt update -y&lt;/code&gt; and &lt;code&gt;sudo apt-get update -y&lt;/code&gt; are used to update package information from the repositories.&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;echo&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; UPGRADE: &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sleep &lt;/span&gt;3 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get upgrade &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Similar to the previous line, this line outputs "UPGRADE:" without a newline, waits for 3 seconds, and then proceeds to perform system package upgrades using &lt;code&gt;sudo apt upgrade -y&lt;/code&gt; and &lt;code&gt;sudo apt-get upgrade -y&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;echo&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; FULL-UPGRADE: &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sleep &lt;/span&gt;3 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt full-upgrade &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get full-upgrade &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line is again similar to the previous lines, but it's executing a full system upgrade using &lt;code&gt;sudo apt full-upgrade -y&lt;/code&gt; and &lt;code&gt;sudo apt-get full-upgrade -y&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;echo&lt;/span&gt; &lt;span class="nt"&gt;----&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line prints a line of dashes to serve as a separator between the update/upgrade information and the following message.&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;echo&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; Your system has been updated, &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$USER&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line attempts to print the message "Your system has been updated" without a newline. The subsequent echo &lt;code&gt;"$USER"&lt;/code&gt; should be a separate command to correctly print the username of the currently logged-in user.&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;sleep &lt;/span&gt;1 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line introduces a 1-second delay using &lt;code&gt;sleep&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;figlet You are up to &lt;span class="nb"&gt;date&lt;/span&gt;, &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line uses the &lt;code&gt;figlet&lt;/code&gt;command to create an ASCII art text that says "You are up to date". The output will be stylized text.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;toilet &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$USER&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line uses the toilet command to create another ASCII art text, this time displaying the username of the currently logged-in user.&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;sleep &lt;/span&gt;5 &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another delay of 5 seconds is introduced using sleep.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;This command clears the terminal screen.&lt;/p&gt;




&lt;p&gt;Thank you for reading this far. Do you have any questions, suggestions or requests? Feel free to write it in the comments!&lt;/p&gt;

</description>
      <category>ubuntu</category>
      <category>programming</category>
      <category>shell</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Setup your personal cloud</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Mon, 07 Aug 2023 15:19:03 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/setup-your-personal-cloud-d78</link>
      <guid>https://forem.com/technology-schaechner/setup-your-personal-cloud-d78</guid>
      <description>&lt;p&gt;&lt;a href="https://technik.xn--schchner-2za.de/blog/2023/03/29/nextcloud-26-hub-4-installieren-2023" rel="noopener noreferrer"&gt;This is the german tutorial for it.&lt;/a&gt;&lt;br&gt;
This article shows you how to install your own Nextcloud on Ubuntu 23.X or 22.X LTS!&lt;/p&gt;

&lt;p&gt;If you like this article, we would be very happy about a like and a comment! ❤️&lt;/p&gt;




&lt;h1&gt;
  
  
  updating
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade -y&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Installing apache
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;apt install apache2&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Install PHP 8.2
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;apt install software-properties-common&lt;br&gt;
add-apt-repository ppa:ondrej/php&lt;br&gt;
apt update&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Install PHP &amp;amp; Moduls
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;apt install apt install libapache2-mod-php php php-zip php-dompdf php-xml php-mbstring php-gd php-curl php-imagick libmagickcore-6.q16-6-extra php-intl php-bcmath php-gmp php-cli php-json php-mysql php-pear unzip nano php-apcu redis-server ufw php-redis php-smbclient php-ldap&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you are asked to confirm something during any installation, you must also do this.&lt;/p&gt;

&lt;h1&gt;
  
  
  adjust PHP.ini file
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nano /etc/php/8.2/apache2/php.ini

memory_limit = 2048M
upload_max_filesize = 20G
post_max_size = 20G
date.timezone = Europe/Berlin
output_buffering = Off
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Install Databse Server
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;apt install mariadb-server&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Maria DB Server Konfiguration
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;mysql_secure_installation&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  open SQL dialoge
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;mysql&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  create database calles nextcloud
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;CREATE DATABASE nextcloud;&lt;/code&gt; &lt;/p&gt;

&lt;h1&gt;
  
  
  create database user with password
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password_here';&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  grant accesss to databse
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  save changes and exit
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;FLUSH PRIVILEGES;&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
&lt;code&gt;EXIT;&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Download lastest nextcloud version
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;cd /tmp &amp;amp;&amp;amp; wget https://download.nextcloud.com/server/releases/latest.zip&lt;br&gt;
unzip latest.zip&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
&lt;code&gt;mv nextcloud /var/www/&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  adjust apache conf
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;nano /etc/apache2/sites-available/000-default.conf&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;-&amp;gt; change &lt;code&gt;/var/www/html&lt;/code&gt; to &lt;code&gt;/var/www/nextcloud&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Enable the NextCloud and Rewrite Module
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;a2enmod rewrite&lt;br&gt;
a2enmod headers&lt;br&gt;
a2enmod env&lt;br&gt;
a2enmod dir&lt;br&gt;
a2enmod mime&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  restart apache
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;service apache2 restart&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  prepare data folder
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;mkdir /home/data/&lt;br&gt;
chown -R www-data:www-data /home/data/&lt;br&gt;
&lt;/code&gt;&lt;code&gt;chown -R www-data:www-data /var/www/nextcloud/&lt;br&gt;
chmod -R 755 /var/www/nextcloud/&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>cloud</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>Web server, database and other important settings</title>
      <dc:creator>techtech</dc:creator>
      <pubDate>Fri, 07 Jul 2023 13:48:00 +0000</pubDate>
      <link>https://forem.com/technology-schaechner/web-server-database-and-other-important-settings-4ndd</link>
      <guid>https://forem.com/technology-schaechner/web-server-database-and-other-important-settings-4ndd</guid>
      <description>&lt;p&gt;In our third guide, we'll show you how to install &amp;amp; configure everything you'll need later for your own cloud &amp;amp; website!&lt;/p&gt;




&lt;p&gt;Please also note that you have followed our previous tutorials to better understand this one.&lt;/p&gt;




&lt;h2&gt;
  
  
  So, &lt;strong&gt;let's go!&lt;/strong&gt;
&lt;/h2&gt;




&lt;p&gt;First, we needed elevated privileges—but fear not! Nothing can go wrong!&lt;/p&gt;

&lt;p&gt;We'll get this&lt;br&gt;
&lt;code&gt;sudo su&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;First we install all available updates &amp;amp; upgrades using the command&lt;br&gt;
&lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade -y&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now we can really get started; To install Apache2 we need this code. You may have to confirm this with a "y" for "yes"!&lt;br&gt;
&lt;code&gt;apt install apache2&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To install PHP, we must first install, and then add the correct repository; that's what you do&lt;br&gt;
&lt;code&gt;apt install software-properties-common&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;add-apt-repository ppa:ondrej/php&lt;/code&gt;&lt;br&gt;
You must press Enter to continue.&lt;/p&gt;

&lt;p&gt;Then we update again:&lt;br&gt;
&lt;code&gt;apt update&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Also, we need to install the following to make everything run smoothly:&lt;br&gt;
&lt;code&gt;apt install php libapache2-mod-php php-zip php-dompdf php-xml php-mbstring php-gd php-curl php-imagick libmagickcore-6.q16-6-extra php-intl php-bcmath php-gmp php-cli php-json php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear unzip nano php-apcu redis-server ufw php-redis&lt;/code&gt;&lt;br&gt;
We confirm this again with '&lt;code&gt;y&lt;/code&gt;' .&lt;/p&gt;

&lt;p&gt;Then we edit the &lt;code&gt;php.ini&lt;/code&gt; file:&lt;br&gt;
&lt;code&gt;nano /etc/php/8.1/apache2/php.ini&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can search for the words with &lt;code&gt;ctrl+w&lt;/code&gt;, please change the values so that the individual things are like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;memory_limit = 1024M
upload_max_filesize = 20G
post_max_size = 20G
date.timezone = Europe/Berlin
output_buffering = Off
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can save everything with &lt;code&gt;ctrl+o&lt;/code&gt; and exit the editor with &lt;code&gt;ctrl+x&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Then we install the Mariadb server&lt;br&gt;
&lt;code&gt;apt install mariadb-server&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;We confirm that again with '&lt;code&gt;j&lt;/code&gt;' for 'Yes'. This program is required for the database. So, so that you can log in with passwords, etc. However, this must be set up first!&lt;/p&gt;

&lt;p&gt;The last thing we need is this code:&lt;br&gt;
&lt;code&gt;sudo mysql_secure_installation&lt;/code&gt;&lt;/p&gt;




&lt;p&gt;But what can you do with it? You'll find out in the next article, which explains how to host a web server with WordPress!&lt;/p&gt;

</description>
      <category>server</category>
      <category>tutorial</category>
      <category>database</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
