This tutorial will guide you through the steps to install imgproxy on Elementary OS. Imgproxy is an open source image processing server and can resize, crop and compress images on-the-fly.
Before installing imgproxy, you need to install some dependencies.
Open the terminal and execute the following command:
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
Imgproxy is written in the Go programming language, so we need to install Go to compile imgproxy. Execute the below command to download and install Go:
sudo apt-get install golang-go
We will download and install imgproxy now.
Execute the following commands to clone the imgproxy repository:
go get github.com/DarthGeek01/imgproxy
This will clone the imgproxy repository into the $GOPATH/src/github.com/DarthGeek01/imgproxy
directory.
Now, navigate to the imgproxy directory using the following command:
cd $GOPATH/src/github.com/DarthGeek01/imgproxy
Run the below command to download and install the necessary packages:
go get -u ./...
Once the packages are downloaded and installed, you can compile the imgproxy binary using the following command:
make build
This will create a binary named imgproxy
in the current directory.
Create a new file named config.yml
in the same directory as the imgproxy
binary with the following configuration:
server:
port: 8080
source:
url: "https://example.com/images"
signed_urls:
key: "my-secret-key"
salt: "my-salt"
resizers:
- url: "https://rsz.io"
- url: "http://localhost:3030"
api_key: "my-api-key"
insecure: true
defaults:
format: "webp"
quality: 90
resize:
height: 400
width: 400
Note: Update the values of source.url
, signed_urls.key
, signed_urls.salt
, and resizers.api_key
to match your own configuration.
To start the imgproxy server, execute the following command:
./imgproxy -config config.yml
This will start the imgproxy server on port 8080. You can now visit http://localhost:8080/unsafe/400x400/image.jpg
to test imgproxy.
Congratulations! You have successfully installed and configured imgproxy on your Elementary OS system.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!