ImageMagick PDF and JPG useful examples

ImageMagick convert PDF to JPG

Crop, rotate and set jpg quality on multipage PDF to JPG convert:

convert -density 150 -resize 968x -gravity NorthEast -extent 968x692 -rotate "-90" 1.pdf -quality 90 1.jpg

 

ImageMagick PDF to JPG sometimes results in black background

Need remove alpha in PDF:

convert -density 150 -resize 1000x -fill white -alpha remove *.pdf -quality 90 1.jpg

 

Bash script with ImageMagick that resize and change qulity a lof of images

#!/bin/bash

if [ -d photos ]; then
	rm -rf photos
fi

mkdir photos

for img in ./*
do
	filename=$(basename "$img")
	filename="${filename%.*}"
	
	convert "$img" -auto-orient -resize 1000x -quality 85% "photos/$filename.jpg"
done;

How to install SSL (Let’s Encrypt) for the HestiaCP admin panel

When you go to panel url with port 8083 — you can see SSL error in your browser.

Here’s what you can do to fix that:

1. If you don’t have WEB domain — add WEB Domain in panel. I will use my domain codebe.com for example.

2. Go to WEB domain edit which one uses for panel:

Hestiacp add ssl to panel step 1

3. Enable SSL certificate for domain:

Hestiacp add ssl to panel step 2

4. Connect to your server over SSH.

5. Get information for changing hestia-nginx config. Copy full path to certificate and key for you domain, for example, I have this path:

/home/codebe/conf/web/codebe.com/ssl

And I’ve this files in current directory:

799435-codebe.com.crt
799435-codebe.com.key

6. Open file in your favorite text editor:

/usr/local/hestia/nginx/conf/nginx.conf

7. Change parameters for hestia-nginx server:

....
server {
    ....
    ssl_certificate      /home/codebe/conf/web/codebe.com/ssl/799435-codebe.com.crt;
    ssl_certificate_key  /home/codebe/conf/web/codebe.com/ssl/799435-codebe.com.key;
    ....
}
....

8. Restart HestiaCP (it’s working for Debian 11):

service hestia restart

9. Well done!

Resolve Error (AWS Free Tier and Terraform): Error launching source instance: VPCIdNotSpecified: No default VPC for this user. GroupName is only supported for EC2-Classic and default VPC.

When you use Amazon Free Tier period and want to run free EC2 instance and when you get error:

Error: Error launching source instance: VPCIdNotSpecified: No default VPC for this user. GroupName is only supported for EC2-Classic and default VPC.

You need to create Security Group resource (example for port 80 for http server):

resource "aws_security_group" "allow_http" {
  name        = "allow_http"

  ingress {
    from_port        = 80
    to_port          = 80
    protocol         = "tcp"
    cidr_blocks      = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }

  egress {
    from_port        = 0
    to_port          = 0
    protocol         = "-1"
    cidr_blocks      = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }
}

Mount VirtualBox vdi image (debian, ubuntu)

You can use qemu package.

apt-get install qemu

After you can check and load network block device kernel-module:

rmmod nbd
modprobe nbd max_part=8

Then you connect image:

qemu-nbd -c /dev/nbd0 image.vdi

And mount (don’t forget create mount directory /media/image):

mount /dev/nbd0p1 /media/image

And unmount:

qemu-nbd -d /dev/nbd0