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 11:40] – nadir | user:nadir [2023/12/27 11:35] (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 | #!/bin/bash | ||
- | # Prompt user for database name | + | # Usage function |
- | read -p "Enter the name of the Odoo database: " | + | usage() { |
+ | echo "Usage: $0 DATABASE FILESTORE_DIR EXTRA_ADDONS_DIR POSTGRES_CONT BACKUP_DIR" | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | } | ||
- | # Prompt user for filestore directory path | + | # Check the number of arguments |
- | read -p "Enter the path to the Odoo filestore directory: " FILESTORE_DIR | + | if [ $# -ne 5 ]; then |
+ | usage | ||
+ | exit 1 | ||
+ | fi | ||
- | # Prompt user for extra-addons directory path | + | # Assign command-line arguments |
- | read -p "Enter the path to the Odoo extra-addons directory: " EXTRA_ADDONS_DIR | + | DATABASE=$1 |
- | + | FILESTORE_DIR=$2 | |
- | # Prompt user for postgres container name | + | EXTRA_ADDONS_DIR=$3 |
- | read -p "Enter the path to the postgres container name " | + | POSTGRES_CONT=$4 |
- | + | BACKUP_DIR=$5 | |
- | # Prompt user for the backup destination directory | + | |
- | read -p "Enter the path to the backup destination directory: " | + | |
# Generate the backup date and time | # Generate the backup date and time | ||
Line 272: | Line 273: | ||
DATABASE_ARCHIVE=" | DATABASE_ARCHIVE=" | ||
EXTRA_ADDONS_ARCHIVE=" | EXTRA_ADDONS_ARCHIVE=" | ||
+ | |||
+ | # Function to log messages to the terminal | ||
+ | log_message() { | ||
+ | echo " | ||
+ | } | ||
+ | |||
+ | # Start logging | ||
+ | log_message " | ||
# Perform the Filestore Backup | # Perform the Filestore Backup | ||
- | tar -C " | + | log_message " |
+ | tar -C " | ||
+ | log_message " | ||
# Perform the Extra Addons Backup | # Perform the Extra Addons Backup | ||
- | tar -C " | + | log_message " |
+ | tar -C " | ||
+ | log_message "Extra Addons Backup completed." | ||
# Perform the Database Backup | # Perform the Database Backup | ||
- | docker exec -i " | + | log_message " |
+ | docker exec -i " | ||
+ | log_message " | ||
- | echo " | + | # End logging |
- | </code> | + | log_message " |
+ | |||
+ | # Print message to the terminal | ||
+ | echo " | ||
+ | </cli> | ||
Line 295: | 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 318: | 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 326: | 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 332: | 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 createdb -U odoo Database | + | #!/bin/bash |
- | </cli> | + | |
- | Replace database with the database name you want to restore | + | # Function |
+ | log_message() { | ||
+ | echo " | ||
+ | } | ||
+ | # 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 " | ||
+ | docker exec -i " | ||
+ | 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 " | ||
+ | |||
+ | </ | ||
+ | |||
+ | * Save the script in a file named restore_script.sh. | ||
+ | * Make the script executable with the following command: | ||
+ | <cli> | ||
+ | $ 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:// | ||