Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| user:nadir [2023/07/27 10:48] – nadir | user:nadir [2025/08/10 13:32] (current) – nadir | ||
|---|---|---|---|
| Line 146: | Line 146: | ||
| This guide provides step-by-step instructions for installing Docker on Debian. | This guide provides step-by-step instructions for installing Docker on Debian. | ||
| - | ===== Prerequisites | + | === Prerequisites === | 
| * A Debian-based system | * A Debian-based system | ||
| * Administrative privileges (sudo access) | * Administrative privileges (sudo access) | ||
| - | ===== Step 1: Update Package Index ===== | + | === Step 1: Update Package Index === | 
| Open a terminal and update the package index on your Debian system: | Open a terminal and update the package index on your Debian system: | ||
| Line 159: | Line 159: | ||
| </ | </ | ||
| - | ===== Step 2: Install Dependencies | + | === Step 2: Install Dependencies === | 
| Install the necessary packages to enable APT to use repositories over HTTPS and handle certificates: | Install the necessary packages to enable APT to use repositories over HTTPS and handle certificates: | ||
| Line 167: | Line 167: | ||
| </ | </ | ||
| - | ===== Step 3: Add Docker' | + | === Step 3: Add Docker' | 
| Download and add Docker' | Download and add Docker' | ||
| Line 175: | Line 175: | ||
| </ | </ | ||
| - | ===== Step 4: Add Docker Repository | + | === Step 4: Add Docker Repository === | 
| Add the Docker repository to your APT sources by creating a new file: | Add the Docker repository to your APT sources by creating a new file: | ||
| Line 184: | Line 184: | ||
| </ | </ | ||
| - | ===== Step 5: Update Package Index Again ===== | + | === Step 5: Update Package Index Again === | 
| Update the package index to reflect the newly added Docker repository: | Update the package index to reflect the newly added Docker repository: | ||
| Line 192: | Line 192: | ||
| </ | </ | ||
| - | ===== Step 6: Install Docker | + | === Step 6: Install Docker === | 
| Install Docker on your Debian system: | Install Docker on your Debian system: | ||
| Line 200: | Line 200: | ||
| </ | </ | ||
| - | ===== Step 7: Add user to the docker group ===== | + | === Step 7: Add user to the docker group === | 
| Add your username to the docker group: | Add your username to the docker group: | ||
| Line 208: | Line 208: | ||
| </ | </ | ||
| - | ===== Step 8: Add docker to user groups | + | === Step 8: Add docker to user groups === | 
| You can do that by logging out and logging back in or simply by creating a group named docker in your groups list | You can do that by logging out and logging back in or simply by creating a group named docker in your groups list | ||
| Line 216: | Line 216: | ||
| </ | </ | ||
| - | ===== Step 9: Verify Docker Installation | + | === Step 9: Verify Docker Installation === | 
| Verify that Docker is installed correctly by running a test container: | Verify that Docker is installed correctly by running a test container: | ||
| Line 226: | Line 226: | ||
| - | ====== | + | ====== Backup Script for Proxmox VM ====== | 
| Line 236: | Line 236: | ||
| - | ===== 2. Script | + | ===== 2. Running the Backup | 
| - | Before running the script, you need to make some adjustments: | + | <cli> | 
| - | * Replace ' | ||
| - | * Update / | ||
| - | * Update / | ||
| - | ===== 3. Running the Backup Script ===== | + | #!/bin/bash | 
| - | < | + | # Usage function | 
| - | DATETIME=`date +\%Y-\%m-\%d_\%H-\%M-\%S` && \ | + | usage() { | 
| - | DATABASE=' | + | echo " | 
| - | FILESTORE_ARCHIVE=" | + | echo " | 
| - | DATABASE_ARCHIVE=" | + | echo " | 
| - | EXTRA_ADDONS_ARCHIVE=" | + | echo " | 
| - | tar -C / | + | echo " | 
| - | tar -C / | + | echo " | 
| - | docker exec -i odoo15_db | + | } | 
| - | </code> | + | |
| + | # Check the number of arguments | ||
| + | if [ $# -ne 5 ]; then | ||
| + | usage | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # Assign command-line arguments to variables | ||
| + | DATABASE=$1 | ||
| + | FILESTORE_DIR=$2 | ||
| + | EXTRA_ADDONS_DIR=$3 | ||
| + | POSTGRES_CONT=$4 | ||
| + | BACKUP_DIR=$5 | ||
| + | |||
| + | # Generate the backup date and time | ||
| + | DATETIME=$(date +\%Y-\%m-\%d_\%H-\%M-\%S) | ||
| + | |||
| + | # Backup filenames | ||
| + | FILESTORE_ARCHIVE=" | ||
| + | DATABASE_ARCHIVE=" | ||
| + | EXTRA_ADDONS_ARCHIVE=" | ||
| + | |||
| + | # Function to log messages to the terminal | ||
| + | log_message() { | ||
| + | echo " | ||
| + | } | ||
| + | |||
| + | # Start logging | ||
| + | log_message " | ||
| + | |||
| + | # Perform the Filestore Backup | ||
| + | log_message " | ||
| + | tar -C " | ||
| + | log_message " | ||
| + | |||
| + | # Perform the Extra Addons Backup | ||
| + | log_message " | ||
| + | tar -C " | ||
| + | log_message "Extra Addons Backup completed." | ||
| + | |||
| + | # Perform the Database Backup | ||
| + | log_message " | ||
| + | docker exec -i " | ||
| + | log_message " | ||
| + | |||
| + | # End logging | ||
| + | log_message " | ||
| + | |||
| + | # Print message to the terminal | ||
| + | echo " | ||
| + | </cli> | ||
| Line 267: | Line 314: | ||
| <cli> | <cli> | ||
| - | $ ./ | + | $ ./ | 
| </ | </ | ||
| - | The script will create three backup files in the current | + | * DATABASE: Name of the Odoo database to backup. | 
| + | * FILESTORE_DIR: | ||
| + | * EXTRA_ADDONS_DIR: | ||
| + | * POSTGRES_CONT: | ||
| + | * BACKUP_DIR: Path to the backup destination directory. | ||
| + | |||
| + | |||
| + | The script will create three backup files in a directory | ||
| * < | * < | ||
| Line 290: | Line 344: | ||
| * Decompress and restore the filestore backup on the VM using the following command: | * Decompress and restore the filestore backup on the VM using the following command: | ||
| <cli> | <cli> | ||
| - | $ tar -xzf / | + | $ sudo tar -xzf / | 
| </ | </ | ||
| Line 298: | Line 352: | ||
| * Decompress and restore the extra-addons backup on the VM using the following command: | * Decompress and restore the extra-addons backup on the VM using the following command: | ||
| <cli> | <cli> | ||
| - | $ tar -xzf / | + | $ sudo tar -xzf / | 
| </ | </ | ||
| Line 304: | Line 358: | ||
| * Upload the database backup (< | * Upload the database backup (< | ||
| + | * If the database was completly deleted you need to create the database first by running this command : | ||
| + | |||
| + | <cli> | ||
| + | $ docker exec -i < | ||
| + | </ | ||
| + | |||
| + | Replace < | ||
| + | |||
| * Decompress and restore the database backup on the VM using the following command: | * Decompress and restore the database backup on the VM using the following command: | ||
| <cli> | <cli> | ||
| - | $ gunzip -c / | + | $ gunzip -c / | 
| </ | </ | ||
| * Replace < | * Replace < | ||
| - | Please note that this documentation assumes you are using a Docker container named odoo15_db for the Odoo database. Modify the docker exec command to match your specific Odoo setup. | + | ====== | 
| - | If the database | + | - This bash script is designed to automate | 
| + | |||
| + | ===== Prerequisites ===== | ||
| + | |||
| + | * Ensure that Docker is installed on the system and the necessary permissions are set to execute Docker commands. | ||
| + | * You should have access to the Odoo PostgreSQL container and the required Odoo directories (filestore and extra-addons). | ||
| + | * Make sure you have the necessary backup files available for the filestore, extra-addons, | ||
| + | |||
| + | ===== Usage ===== | ||
| <cli> | <cli> | ||
| - | $ docker exec -i odoo15_db | + | # | 
| + | |||
| + | # Function to print log messages | ||
| + | log_message() { | ||
| + | echo "$(date +\%Y-\%m-\%d_\%H: | ||
| + | } | ||
| + | |||
| + | # Function to decompress and restore filestore backup | ||
| + | restore_filestore() { | ||
| + | log_message " | ||
| + | sudo mkdir -p " | ||
| + | sudo tar -xzf " | ||
| + | log_message " | ||
| + | } | ||
| + | |||
| + | # Function to decompress and restore extra-addons backup | ||
| + | restore_extra_addons() { | ||
| + | log_message " | ||
| + | sudo tar -xzf " | ||
| + | log_message "Extra Addons Restore completed." | ||
| + | } | ||
| + | |||
| + | # Function to restore the database | ||
| + | restore_database() { | ||
| + | log_message " | ||
| + |  | ||
| + | gunzip -c " | ||
| + | log_message " | ||
| + | } | ||
| + | |||
| + | # Check the number of arguments | ||
| + | if [ $# -ne 5 ]; then | ||
| + | echo " | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # Assign command-line arguments to variables | ||
| + | DATABASE=$1 | ||
| + | FILESTORE_DIR=$2 | ||
| + | EXTRA_ADDONS_DIR=$3 | ||
| + | POSTGRES_CONT=$4 | ||
| + | BACKUP_DIR=$5 | ||
| + | |||
| + | # Backup filenames | ||
| + | FILESTORE_ARCHIVE=" | ||
| + | DATABASE_ARCHIVE=" | ||
| + | EXTRA_ADDONS_ARCHIVE=" | ||
| + | |||
| + | # Backup date and time | ||
| + | DATETIME=$(date +\%Y-\%m-\%d_\%H-\%M-\%S) | ||
| + | |||
| + | # Start restoring the backups | ||
| + | log_message " | ||
| + | |||
| + | # Step 1: Restore the Filestore | ||
| + | restore_filestore | ||
| + | |||
| + | # Step 2: Restore the Extra Addons | ||
| + | restore_extra_addons | ||
| + | |||
| + | # Step 3: Restore the Database | ||
| + | restore_database | ||
| + | |||
| + | # End restoration | ||
| + | log_message " | ||
| + | |||
| + | # Print message to the terminal | ||
| + | echo " | ||
| </ | </ | ||
| - | Replace database | + | * Save the script in a file named restore_script.sh. | 
| + | * Make the script executable | ||
| + | < | ||
| + | $ chmod +x restore_script.sh | ||
| + | </ | ||
| + | * Execute the script with the required arguments: | ||
| + | <cli> | ||
| + | $ ./ | ||
| + | </ | ||
| + | * DATABASE: Name of the Odoo database to restore. | ||
| + | * FILESTORE_DIR: | ||
| + | * EXTRA_ADDONS_DIR: | ||
| + | * POSTGRES_CONT: | ||
| + | * BACKUP_DIR: Path to the directory containing the backup files. | ||
| + | ===== Example ===== | ||
| + | <cli> | ||
| + | $ ./ | ||
| + | </ | ||
| + | ===== Restoration Process ===== | ||
| + | * The script performs the following restoration steps: | ||
| + | * Restores the filestore backup to the specified filestore directory. | ||
| + | * Restores the extra-addons backup to the specified extra-addons directory. | ||
| + | * Creates the Odoo database (if it was completely deleted) and restores the database backup. | ||
| + | [[http:// | ||
| + | === GRANT ALL PREVILEGES TO A USER === | ||
| + | <cli> | ||
| + | GRANT USAGE ON SCHEMA public TO postgres; | ||
| + | GRANT SELECT ON ALL TABLES IN SCHEMA public TO postgres; | ||
| + | GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO postgres; | ||
| + | ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO postgres; | ||
| + | ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON SEQUENCES TO postgres; | ||
| + | </ | ||
| + | ===Command to Stop Spoofing Attacks === | ||
| + | <cli> | ||
| + | sudo iptables -A INPUT -p udp --dport 53 -m recent --name dns_flood --set | ||
| + | |||
| + | sudo iptables -A INPUT -p udp --dport 53 -m recent --name dns_flood --update --seconds 60 --hitcount 10 -j DROP | ||
| + | |||
| + | </ | ||
| + | this should limit the number of queries to 10 per second | ||