 
         
        Deployer is an open-source deployment tool for PHP projects — specifically designed to automate, standardize, and securely deploy applications like Laravel, Symfony, Magento, WordPress, or any custom PHP apps.
It’s a CLI tool, written in PHP.
You define your deployment process in a deploy.php configuration file with clearly defined tasks.
It supports zero-downtime deployment using symbolic links (symlinks).
It supports multi-environment deployments (e.g., staging, production).
Install Deployer via Composer:
composer require deployer/deployer --devGenerate a config template:
vendor/bin/dep initConfigure deploy.php, e.g., for Laravel:
host('my-server.com')
    ->set('deploy_path', '/var/www/myproject')
    ->set('branch', 'main');
task('deploy', [
    'deploy:prepare',
    'deploy:vendors',
    'artisan:migrate',
    'deploy:publish',
]);Deploy your app:
vendor/bin/dep deploy productionDeployer:
Connects to the server via SSH
Clones your Git repo into a new release directory
Installs Composer dependencies
Runs custom tasks (e.g., php artisan migrate)
Updates the symlink to point to the new release (current)
Removes old releases if configured
Docker Compose is a tool that lets you define and run multi-container Docker applications using a single configuration file. Instead of starting each container manually via the Docker CLI, you can describe all your services (like a web app, database, cache, etc.) in a docker-compose.yml file and run everything with a single command.
Docker Compose = Project config + Multiple containers + One command to run it all
docker-compose.ymlversion: '3.9'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
  redis:
    image: "redis:alpine"This file:
Builds and runs a local web app container
Starts a Redis container from the official image
Automatically networks the two containers
docker-compose up        # Start all services in the foreground
docker-compose up -d     # Start in detached (background) mode
docker-compose down      # Stop and remove containers, networks, etc.✅ Easy setup for multi-service applications
✅ Version-controlled config (great for Git)
✅ Reproducible development environments
✅ Simple startup/shutdown of entire stacks
Local development with multiple services (e.g., web app + DB)
Integration testing with full stack
Simple deployment workflows (e.g., via CI/CD)
A cron job is a scheduled, recurring background task on Unix- or Linux-based systems. It is managed by the cron daemon, which regularly checks whether a job is due to run according to a predefined schedule.
Automation: Automates tasks like backups, updates, email dispatch, or script execution.
Time control: You define exactly when and how often the job should run (e.g., daily at 3:00 AM or every Monday).
Configuration: Jobs are scheduled using crontabs (cron tables).
0 3 * * * /usr/bin/php /var/www/mein-skript.phpExplanation:
0 3 * * * → Runs every day at 3:00 AM
/usr/bin/php /var/www/my-script.php → The command to execute
* * * * *  (Minute Stunde Tag Monat Wochentag)Saves time through automation
Reduces human error
Ideal for repetitive tasks
Bash (Bourne Again Shell) is a widely used Unix shell and command-line interpreter. It was developed as free software by the Free Software Foundation and is the default shell on most Linux systems as well as macOS. Bash is a successor to the original Bourne Shell (sh), which was developed by Stephen Bourne in the 1970s.
cd, ls, pwd).cp, mv, rm, mkdir).ps, kill, top).find, grep).sed, awk).ping, ifconfig, ssh).#!/bin/bash
# Simple loop that prints Hello World 5 times
for i in {1..5}
do
  echo "Hello World $i"
doneIn summary, Bash is a powerful and flexible shell that can be used for both interactive tasks and complex automation scripts.
A CLI (Command-Line Interface) is a type of user interface that allows users to interact with a computer or software application by typing text commands into a console or terminal. Unlike a GUI, which relies on visual elements like buttons and icons, a CLI requires users to input specific commands in text form to perform various tasks.
Text-Based Interaction:
Precision and Control:
Scripting and Automation:
Minimal Resource Usage:
A CLI is a powerful tool that provides users with direct control over a system or application through text commands. It is widely used by system administrators, developers, and power users who require precision, efficiency, and the ability to automate tasks. While it has a steeper learning curve compared to a GUI, its flexibility and power make it an essential interface in many technical environments.