<?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: Mohammad Zakery</title>
    <description>The latest articles on DEV Community by Mohammad Zakery (@zakery1369).</description>
    <link>https://dev.to/zakery1369</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%2F1009734%2Fa5725404-1cfd-4bb8-8550-debad0af189d.png</url>
      <title>DEV Community: Mohammad Zakery</title>
      <link>https://dev.to/zakery1369</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zakery1369"/>
    <language>en</language>
    <item>
      <title>Zakops: Making DevOps Learning Simple and Practical</title>
      <dc:creator>Mohammad Zakery</dc:creator>
      <pubDate>Mon, 01 Sep 2025 20:16:28 +0000</pubDate>
      <link>https://dev.to/zakery1369/zakops-simplifying-devops-education-for-developers-and-engineers-49e8</link>
      <guid>https://dev.to/zakery1369/zakops-simplifying-devops-education-for-developers-and-engineers-49e8</guid>
      <description>&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%2Fkw1ydwogirwkx6ml2ia3.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%2Fkw1ydwogirwkx6ml2ia3.png" alt="Zakops" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Zakops is a growing DevOps community that helps developers and engineers learn Docker, Kubernetes, CI/CD, and cloud automation — in a simple and practical way.&lt;/p&gt;

&lt;p&gt;In today’s fast–paced software world, DevOps is no longer optional. It’s a core practice that enables faster delivery, better collaboration, and scalable infrastructure. But for many developers, getting started with tools like Docker, Kubernetes, and CI/CD pipelines can feel overwhelming.&lt;/p&gt;

&lt;p&gt;That’s why &lt;strong&gt;Zakops&lt;/strong&gt; was created.&lt;/p&gt;

&lt;p&gt;Zakops is a community dedicated to making DevOps knowledge simple, accessible, and hands–on. Through &lt;a href="https://t.me/Zakops" rel="noopener noreferrer"&gt;Telegram&lt;/a&gt; and &lt;a href="https://Zakops.com" rel="noopener noreferrer"&gt;zakops.com&lt;/a&gt; , developers and engineers gain access to real–world tutorials and guides that can be applied immediately in projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You’ll Find at Zakops
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Practical Docker and Kubernetes tutorials for real deployments.&lt;/li&gt;
&lt;li&gt;CI/CD guides to automate your pipelines.&lt;/li&gt;
&lt;li&gt;Cloud and infrastructure scaling strategies explained step by step.&lt;/li&gt;
&lt;li&gt;A community-driven approach where developers can learn together.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Join?
&lt;/h2&gt;

&lt;p&gt;Instead of overwhelming theory, Zakops focuses on simplicity and clarity. The tutorials are built for developers who want to get things done — fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;p&gt;If you’re ready to level up your DevOps journey, join the community today&lt;/p&gt;

&lt;p&gt;👉 Telegram Channel : &lt;a href="https://t.me/Zakops" rel="noopener noreferrer"&gt;@Zakops&lt;/a&gt;&lt;br&gt;
👉 Website : &lt;a href="https://Zakops.com" rel="noopener noreferrer"&gt;Zakops.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 At Zakops, we believe that learning DevOps doesn’t have to be complicated.&lt;br&gt;
Let’s simplify DevOps together&lt;/p&gt;

</description>
      <category>devops</category>
      <category>docker</category>
      <category>kubernetes</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Telegram bot for streaming movies/music in channels/groups</title>
      <dc:creator>Mohammad Zakery</dc:creator>
      <pubDate>Mon, 25 Aug 2025 08:42:04 +0000</pubDate>
      <link>https://dev.to/zakery1369/telegram-bot-for-streaming-moviesmusic-in-channelsgroups-1b5p</link>
      <guid>https://dev.to/zakery1369/telegram-bot-for-streaming-moviesmusic-in-channelsgroups-1b5p</guid>
      <description>&lt;h2&gt;
  
  
  Telegram-Streamer
&lt;/h2&gt;

&lt;p&gt;📺 Simple Video/Music Streamer with FFmpeg &amp;amp; Flask&lt;/p&gt;

&lt;p&gt;This image provides a lightweight Flask web UI to start RTMP streaming using the latest FFmpeg.&lt;br&gt;
It allows you to stream any video or audio file (mp4, mp3, etc.) directly to your RTMP server (e.g., Telegram, YouTube, Twitch).&lt;/p&gt;

&lt;p&gt;✨ Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FFmpeg (built from source / latest)&lt;/li&gt;
&lt;li&gt;Python (slim-bookworm base)&lt;/li&gt;
&lt;li&gt;Flask-based minimal web interface&lt;/li&gt;
&lt;li&gt;Supports both video and audio URLs&lt;/li&gt;
&lt;li&gt;Easy to run on Render, Docker, or any container platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🚀 Usage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Run the container:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -p 8080:8080 zakops/telegram-streamer:&amp;lt;version&amp;gt;
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;

&lt;/ul&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%2Fn7qn9wbe92hzey77khwe.jpg" 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%2Fn7qn9wbe92hzey77khwe.jpg" alt="Telegram Streamer" width="526" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For more information, refer to &lt;a href="https://github.com/zakery1369/Telegram-Streamer" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>telegram</category>
      <category>stream</category>
    </item>
    <item>
      <title>Enable Wake On LAN on Debian</title>
      <dc:creator>Mohammad Zakery</dc:creator>
      <pubDate>Mon, 06 Mar 2023 15:18:08 +0000</pubDate>
      <link>https://dev.to/zakery1369/enable-wake-on-lan-on-debian-4ljd</link>
      <guid>https://dev.to/zakery1369/enable-wake-on-lan-on-debian-4ljd</guid>
      <description>&lt;h2&gt;
  
  
  Wake On Lan on Debian
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.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%2F2fmjrh8kth3tlb9lrhqi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F2fmjrh8kth3tlb9lrhqi.png" alt="WOL Debian"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;1.Install ethtool :&lt;/p&gt;

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

sudo apt install ethtool


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

&lt;/div&gt;

&lt;p&gt;2.Checking the Interface :&lt;/p&gt;

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

ip a


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

&lt;/div&gt;

&lt;p&gt;3.Select the interface you want to use. For Example :&lt;/p&gt;

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

enp3s0


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

&lt;/div&gt;

&lt;p&gt;4.Turn wake on lan On Temporarily :&lt;/p&gt;

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

sudo ethtool --change enp3s0 wol g


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

&lt;/div&gt;

&lt;p&gt;5.Check the WOL status of the interface with the following command :&lt;/p&gt;

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

sudo ethtool enp3s0


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

&lt;/div&gt;

&lt;p&gt;6.find the bellow section :&lt;/p&gt;

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

Wake-on: g


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

&lt;/div&gt;
&lt;h3&gt;
  
  
  Making wake on lan Permanent
&lt;/h3&gt;

&lt;p&gt;7.find ethtool directory :&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

which ethtool


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

&lt;/div&gt;

&lt;p&gt;in my os : /usr/sbin/ethtool&lt;/p&gt;

&lt;p&gt;8.Create wol.service in /etc/systemd/system/ with the following content.&lt;/p&gt;

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

[Unit]
Description=Enable Wake On Lan

[Service]
Type=oneshot
ExecStart = /usr/sbin/ethtool --change enp3s0 wol g

[Install]
WantedBy=basic.target


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

&lt;/div&gt;

&lt;p&gt;9.Enable The Service :&lt;/p&gt;

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

sudo systemctl daemon-reload
sudo systemctl enable wol.service


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

&lt;/div&gt;

</description>
      <category>wol</category>
      <category>debian</category>
      <category>debian11</category>
      <category>debian10</category>
    </item>
    <item>
      <title>Cloudflare DDNS</title>
      <dc:creator>Mohammad Zakery</dc:creator>
      <pubDate>Tue, 28 Feb 2023 05:39:28 +0000</pubDate>
      <link>https://dev.to/zakery1369/cloudflare-ddns-eoh</link>
      <guid>https://dev.to/zakery1369/cloudflare-ddns-eoh</guid>
      <description>&lt;h1&gt;
  
  
  Cloudflare DDNS
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp36pzqpcezurk4lwxxi7.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%2Fp36pzqpcezurk4lwxxi7.png" alt="Cloudflare DDNS" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;DDNS Cloudflare BASH script is a simple bash script that allows you to easily update your Cloudflare's DNS records dynamically.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use this Script:
&lt;/h2&gt;

&lt;p&gt;1.Clone or download all files from  &lt;a href="https://github.com/zakery1369/CloudflareDDNS" rel="noopener noreferrer"&gt;GitHub Page&lt;/a&gt;&lt;br&gt;
2.Login to your &lt;a href="https://dash.cloudflare.com/login" rel="noopener noreferrer"&gt;Clodflare account&lt;/a&gt;.&lt;br&gt;
3.Copy your generated Zone ID like bellow and place it on the specified section in script.&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%2Ftxnkarwg4lsy8ok0z94m.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%2Ftxnkarwg4lsy8ok0z94m.png" alt="Zone_id" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Click on Get your API token.&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%2Fzc6zv5dap1nnft7dogm8.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%2Fzc6zv5dap1nnft7dogm8.png" alt="Global_api_key" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Click on View like bellow.&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%2Fvogw6u35y8b070eozi6a.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%2Fvogw6u35y8b070eozi6a.png" alt="Global_api_key1" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Copy Your API Key and place it on the specified section in script.&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%2Fj37va6i683iyyugea16u.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%2Fj37va6i683iyyugea16u.png" alt="Global_api_key2" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.Click on Create Token.&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%2F4fd4cdb69styngs7bz10.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%2F4fd4cdb69styngs7bz10.png" alt="Bearer_key" width="800" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8.Click on Use template like bellow.&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%2Ft70r2ljd2la5ewvsle0f.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%2Ft70r2ljd2la5ewvsle0f.png" alt="Bearer_key1" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9.Select the bellow options from drop down menu.&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%2Fusi4f43g435vyzfbwot3.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%2Fusi4f43g435vyzfbwot3.png" alt="Bearer_key2" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10.Copy generated code and place it on the specified section in script.&lt;br&gt;
11.Write your domain in the specified section in script.&lt;br&gt;
12.Finally run the CloudflareDDNS.sh&lt;/p&gt;

</description>
      <category>django</category>
      <category>aws</category>
      <category>deployment</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Docker Compose For Joomla</title>
      <dc:creator>Mohammad Zakery</dc:creator>
      <pubDate>Sun, 19 Feb 2023 14:37:58 +0000</pubDate>
      <link>https://dev.to/zakery1369/docker-compose-for-joomla-3afa</link>
      <guid>https://dev.to/zakery1369/docker-compose-for-joomla-3afa</guid>
      <description>&lt;h1&gt;
  
  
  Joomla
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fhhixqd785o1acrpv2r6p.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fhhixqd785o1acrpv2r6p.jpg" alt="joomla"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure docker-compose.yml
&lt;/h3&gt;

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

version: '3.5'

services:
  joomla:
    image: joomla
    container_name: joomlaweb
    restart: unless-stopped
    links:
      - joomlamysql
    ports:
      - 80:80
    environment:
      JOOMLA_DB_HOST: joomlamysql
      JOOMLA_DB_NAME: joomladb
      JOOMLA_DB_USER: joomlauser
      JOOMLA_DB_PASSWORD: 147258369

    networks:
      - joomla

  joomlamysql:
    image: mysql:latest
    container_name: joomlamysql
    volumes:
        - ./mysql/mysql_data:/var/lib/mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: RO0tP@sswd
      MYSQL_DATABASE: joomladb
      MYSQL_USER: joomlauser
      MYSQL_PASSWORD: 147258369

    networks:
      - joomla

networks:
  joomla:
    name: joomla-network
    driver: bridge



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

&lt;/div&gt;




&lt;p&gt;1.Run the command below :&lt;/p&gt;

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

docker-compose up -d


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

&lt;/div&gt;

&lt;p&gt;2.Direct your browser to &lt;a href="http://localhost" rel="noopener noreferrer"&gt;http://localhost&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that port 80 must be open and not in use&lt;/p&gt;

</description>
      <category>docker</category>
      <category>joomla</category>
      <category>containers</category>
      <category>containerapps</category>
    </item>
    <item>
      <title>Docker compose For Wordpress</title>
      <dc:creator>Mohammad Zakery</dc:creator>
      <pubDate>Fri, 03 Feb 2023 09:45:04 +0000</pubDate>
      <link>https://dev.to/zakery1369/docker-compose-for-wordpress-4lb2</link>
      <guid>https://dev.to/zakery1369/docker-compose-for-wordpress-4lb2</guid>
      <description>&lt;h2&gt;
  
  
  Wordpress
&lt;/h2&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%2F3ai19zjwmya5wggsqfmj.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%2F3ai19zjwmya5wggsqfmj.png" alt="Wordpress Docker" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to use this image :
&lt;/h3&gt;

&lt;p&gt;1.Clone or download all files from  &lt;a href="https://github.com/zakery1369/wordpress/" rel="noopener noreferrer"&gt;GitHub Page&lt;/a&gt;&lt;br&gt;
2.Download Wordpress from &lt;a href="https://wordpress.org/download/" rel="noopener noreferrer"&gt;Wordpress Downloads&lt;/a&gt;&lt;br&gt;
3.Extract Wordpress.zip to the following directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/var/www/html/wp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4.Run the command below :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5.Open up your web browser, and proceed to the following address to start the installation ( Remember that my configuration will start the server at port 80, in case you want to change the hostname/port, proceed to the next section to customize this image )&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;6.If see 404 ERROR :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod 777 -R var/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;7.In the Database settings, adjust the following :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Database Name = wordpress
Username = wp
Password = 147258369
Database Host = mysql
Table Prefix = wp_
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Customize this image :
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Use domain with SSL and change Nginx configurations
&lt;/h4&gt;

&lt;p&gt;in the files downloaded from this &lt;a href="https://github.com/zakery1369/wordpress" rel="noopener noreferrer"&gt;GitHub Page&lt;/a&gt;&lt;br&gt;
1.In this directory, uncomment the lines in the &lt;code&gt;wp.conf&lt;/code&gt; and replace your domain with &lt;strong&gt;example.com&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/nginx/conf.d/wp.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.Following the guides from &lt;a href="https://letsencrypt.org/getting-started/" rel="noopener noreferrer"&gt;Letsencrypt&lt;/a&gt; (certbot), copy the privkey.pem and fullchain.pem to the following directory. (Remember that from the previous step, the cert files names should correspond with these config file) :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/nginx/conf.d/certs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.In case you want to configure your Nginx, you can find the config file in the following directory :&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  Change mysql configurations :
&lt;/h3&gt;

&lt;p&gt;1.Customize your configs in the following file :&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;2.Change the mysql environment variables in the docker-compose.yml file :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;environment:
        MYSQL_ROOT_PASSWORD: 147258369
        MYSQL_DATABASE: wordpress
        MYSQL_USER: wp
        MYSQL_PASSWORD: 147258369
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Change php-fpm configurations :
&lt;/h3&gt;

&lt;p&gt;Add your customized configurations in these files :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/php-fpm/php.ini-development
/php-fpm/php.ini-production
/php-fpm/www.conf
/php-fpm/php.ini
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exposing external port :
&lt;/h3&gt;

&lt;p&gt;Edit docker-compose.yml to change the exposed ports :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ports:
     - 80:80
     - 443:443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>security</category>
      <category>privacy</category>
    </item>
    <item>
      <title>Docker compose For Corteza</title>
      <dc:creator>Mohammad Zakery</dc:creator>
      <pubDate>Mon, 30 Jan 2023 14:18:11 +0000</pubDate>
      <link>https://dev.to/zakery1369/docker-compose-for-corteza-263o</link>
      <guid>https://dev.to/zakery1369/docker-compose-for-corteza-263o</guid>
      <description>&lt;h3&gt;
  
  
  Configure docker-compose.yml
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3.5'

services:
  server:
    image: cortezaproject/corteza:${VERSION}
    restart: always
    env_file: [ .env ]
    depends_on: [ db ]
    ports: [ "127.0.0.1:18080:80" ]

  db:

    image: postgres:13
    restart: always
    healthcheck: { test: ["CMD-SHELL", "pg_isready -U corteza"], interval: 10s, timeout: 5s, retries: 5 }
    volumes:
      - "dbdata:/var/lib/postgresql/data"
    environment:
      POSTGRES_USER:     corteza
      POSTGRES_PASSWORD: corteza
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create .env next to docker-compose.yml&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure .env
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DOMAIN=localhost:18080
VERSION=2022.9

DB_DSN=postgres://corteza:corteza@db:5432/corteza?sslmode=disable

HTTP_WEBAPP_ENABLED=true

ACTIONLOG_ENABLED=false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Direct your browser to &lt;a href="http://localhost:18080"&gt;http://localhost:18080&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Expose Corteza to your internal network and the world
&lt;/h3&gt;

&lt;p&gt;If you want to use Corteza in production and with other users,Change the following code in docker-compose.yml as below :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ports: [ "0.0.0.0:18080:80" ]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And Change the following code in .env as below :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DOMAIN=YOUR_PUBLIC_IP:18080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Exposing external port
&lt;/h3&gt;

&lt;p&gt;Edit .env to change the exposed port&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DOMAIN=YOUR_PUBLIC or LOCAL_IP:8585
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Direct your browser to &lt;a href="http://localhost:8585"&gt;http://localhost:8585&lt;/a&gt;&lt;/p&gt;

</description>
      <category>corteza</category>
      <category>container</category>
      <category>compose</category>
      <category>containerapps</category>
    </item>
    <item>
      <title>How to Install Cockpit on CentOS 7</title>
      <dc:creator>Mohammad Zakery</dc:creator>
      <pubDate>Fri, 27 Jan 2023 16:15:50 +0000</pubDate>
      <link>https://dev.to/zakery1369/how-to-install-cockpit-on-centos-7-25oe</link>
      <guid>https://dev.to/zakery1369/how-to-install-cockpit-on-centos-7-25oe</guid>
      <description>&lt;h3&gt;
  
  
  Cockpit is available in CentOS 7 and later :
&lt;/h3&gt;

&lt;p&gt;1.Install cockpit :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo yum install cockpit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.Enable cockpit :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl enable --now cockpit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.Open up your web browser and login with root :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://IP_ADDRESS_OF_MACHINE:9090
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;4.it did not work? you can open up the firewall with the following commands :&lt;br&gt;
‍‍‍&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5.Use the following code to connect to virtual machines :&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 install cockpit-machines
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>cockpit</category>
      <category>centos7</category>
      <category>centos8</category>
      <category>redhat</category>
    </item>
    <item>
      <title>Moodle App Docker Images</title>
      <dc:creator>Mohammad Zakery</dc:creator>
      <pubDate>Fri, 27 Jan 2023 11:43:46 +0000</pubDate>
      <link>https://dev.to/zakery1369/moodle-app-docker-images-4n8k</link>
      <guid>https://dev.to/zakery1369/moodle-app-docker-images-4n8k</guid>
      <description>&lt;h2&gt;
  
  
  Moodle
&lt;/h2&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%2F4nvzmzgppn37ddb5m7cf.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%2F4nvzmzgppn37ddb5m7cf.png" alt="Moodle Docker" width="700" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use this image:
&lt;/h2&gt;

&lt;p&gt;1.Download the image from dockerhub&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull zakery1369/moodle:[tag]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.Clone or download all files from  &lt;a href="https://github.com/zakery1369/moodle/" rel="noopener noreferrer"&gt;GitHub Page&lt;/a&gt;&lt;br&gt;
3.Download moodle.tar.gz from &lt;a href="https://download.moodle.org/" rel="noopener noreferrer"&gt;Moodle Downloads&lt;/a&gt;&lt;br&gt;
4.Extract moodle-xx.tar.gz to the following directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/var/www/html/moodle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5.Run the command below :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6.Open up your web browser, and proceed to the following address to start the installation ( Remember that my configuration will start the server at port 80, in case you want to change the hostname/port, proceed to the next section to customize this image )&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;7.In the Database settings, adjust the following :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Database host = mysql
Database name = moodle
Database user = moodle
Database password = 147258369
Tables prefix = mdl_
Database port = 3306
Unix socket = it's blank
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Customize this image
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use domain with SSL and change Nginx configurations
in the files downloaded from this &lt;a href="https://github.com/zakery1369/moodle/" rel="noopener noreferrer"&gt;GitHub Page&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;1.In this directory, uncomment the lines in the &lt;code&gt;moodle.conf&lt;/code&gt; and replace your domain with &lt;strong&gt;example.com&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/nginx/conf.d/moodle.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.Following the guides from &lt;a href="https://letsencrypt.org/getting-started/" rel="noopener noreferrer"&gt;Letsencrypt&lt;/a&gt; (certbot), copy the privkey.pem and fullchain.pem to the following directory. (Remember that from the previous step, the cert files names should correspond with these config file) :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/nginx/conf.d/certs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.In case you want to configure your Nginx, you can find the config file in the following directory :&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Change mysql configurations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;1.Customize your configs in the following file :&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;2.Change the mysql environment variables in the docker-compose.yml file :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;environment:
        MYSQL_ROOT_PASSWORD: 147258369
        MYSQL_DATABASE: moodle
        MYSQL_USER: moodle
        MYSQL_PASSWORD: 147258369
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Change php-fpm configurations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add your customized configurations in these files :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/php-fpm/php.ini-development
/php-fpm/php.ini-production
/php-fpm/www.conf
/php-fpm/php.ini
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Exposing external port&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Edit docker-compose.yml to change the exposed ports :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ports:
     - 80:80
     - 443:443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>embeds</category>
    </item>
  </channel>
</rss>
