Application to create a simple cdn server for images.
This application automatically converts the uploaded image to webp format and to all resolutions defined in the configuration.
docker run --name imagecdn -v /my/images/location:/var/lib/images -e API_KEY=EnterAdminKey -d ghcr.io/pcpl2/easy_image_cdn:0.2.3
OR
docker run --name imagecdn -v /my/images/location:/var/lib/images -e API_KEY=EnterAdminKey -d pcpl2/easy_image_cdn:0.2.3
This command launches the application with image conversion to 1024x720 and 800x600 enabled, with a maximum file size of 10Mb and your API key.
version: '3.9'
cdn:
image: pcpl2/easy_image_cdn:0.2.3
restart: always
environment:
API_KEY: 'EnterAdminKey'
CONVERT_TO_RES: '1024x720,800x600'
MAX_FILE_SIZE: 15
ports:
- '9324:9324'
- '9555:9555'
volumes:
- './images:/var/lib/images'
- './logs:/var/log/eic'
http://localhost:9324/v1/newImage
-> For send and update Image
Payload:
{
"id": {Your image id as string},
"image": {Your image in base64}
}
http://localhost:9324/v1/newImageMp?imageId={Your image id}
-> For send and update Image as multipart and define image in multipart as imageFile
http://localhost:9555/{Your image id}
-> Has returned source image (if you have image/webp
in accept header server will return the image in webp format).
To get the image in converted resolution, you add a resolution value after the image id. Example:
http://localhost:9555/{Your image id}/1024x720
API_KEY=00000000-0000-0000-0000-000000000000
API_KEY_HEADER=key
CONVERT_TO_RES=1024x720,800x600
MAX_FILE_SIZE=10
Configuration key | Default value | Description |
---|---|---|
API_KEY | 00000000-0000-0000-0000-000000000000 | Api key for upload images |
API_KEY_HEADER | key | Header name for an API key in the request. |
CONVERT_TO_RES | 1024x720,800x600 | List of resolutions to which images will be converted. |
MAX_FILE_SIZE | 10 | Maximum size of the file sent to the application in megabytes. |
CACHE_TIME | 30 | Image cache lifetime set in minutes. |
EXPVAR_ENABLED | 0 | Enable golang Expvar for monitoring. Data is available on 0.0.0.0:9125/debug/vars |
PPROF_ENABLED | 0 | Enable golang Pprof for monitoring. Data is available on 0.0.0.0:9125/debug/pprof/ |
Path | Description |
---|---|
/var/lib/images |
Location for saving all images |
/var/log/eic |
Location for Application log files |
- ❓ Ask questions on GitHub Discussions.
TODO()