Documentation | Website | Blog
This is a Server based on Golang, which allows you to serve WebP images on the fly.
Currently supported image format: JPEG, PNG, BMP, GIF, SVG, HEIC
e.g When you visit
https://your.website/pics/tsuki.jpg,it will serve asimage/webpformat without changing the URL.
We strongly recommend using Docker to run WebP Server Go because running it directly with the binary may encounter issues with glibc and some dependency libraries, which can be quite tricky to resolve.
Make sure you've got Docker and docker-compose installed, create a directory and create docker-compose.yml file inside it like this:
version: '3'
services:
webp:
image: webpsh/webp-server-go
# image: ghcr.io/webp-sh/webp_server_go
restart: always
environment:
- MALLOC_ARENA_MAX=1
volumes:
- ./path/to/pics:/opt/pics
- ./exhaust:/opt/exhaust
- ./metadata:/opt/metadata
ports:
- 127.0.0.1:3333:3333Suppose your website and image has the following pattern.
| Image Path | Website Path |
|---|---|
/var/www/img.webp.sh/path/tsuki.jpg |
https://img.webp.sh/path/tsuki.jpg |
Then
./path/to/picsshould be changed to/var/www/img.webp.sh./exhaustis cache folder for output images, by default it will be inexhaustdirectory alongside withdocker-compose.ymlfile, if you'd like to keep cached images in another folder, you can change./exhaustto/some/other/path/to/exhaust./metadatais cache folder for images' metadata, by default it will be inmetadatadirectory alongside withdocker-compose.ymlfile
Start the container using:
docker-compose up -d
Now the server should be running on 127.0.0.1:3333, visiting http://127.0.0.1:3333/path/tsuki.jpg will see the optimized version of /var/www/img.webp.sh/path/tsuki.jpg, you can now add reverse proxy to make it public, for example, let Nginx to proxy_pass http://127.0.0.1:3333/;, and your WebP Server is on-the-fly!
If you'd like to use a customized config.json, you can follow the steps in Basic Usage to genereate one, and mount it into the container's /etc/config.json, example docker-compose.yml as follows:
version: '3'
services:
webp:
image: webpsh/webp-server-go
# image: ghcr.io/webp-sh/webp_server_go
restart: always
environment:
- MALLOC_ARENA_MAX=1
# - LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
# - LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.5.6
volumes:
- ./path/to/pics:/opt/pics
- ./path/to/exhaust:/opt/exhaust
- ./path/to/metadata:/opt/metadata
- ./config.json:/etc/config.json
ports:
- 127.0.0.1:3333:3333
deploy:
resources:
limits:
memory: 400M
memswap_limit: 400MYou can refer to Docker | WebP Server Documentation for more info, such as custom config, AVIF support etc.
If you'd like to use with binary, please consult to Use with Binary(Advanced) | WebP Server Documentation
spoiler alert: you may encounter issues with
glibcand some dependency libraries.
For supervisor or detailed Nginx configuration, please read our documentation at https://docs.webp.sh/
We are currently building a new service called WebP Cloud Services, it now has two parts:
- Public Service
- GitHub Avatar/Gravater reverse proxy with WebP optimization, for example, change
https://www.gravatar.com/avatar/09eba3a443a7ea91cf818f6b27607d66tohttps://gravatar.webp.se/avatar/09eba3a443a7ea91cf818f6b27607d66for rendering will get a smaller version of gravater, making your website faster - Totally free service and currently has a large number of users, this includes, but is not limited to CNX Software, Indienova
- GitHub Avatar/Gravater reverse proxy with WebP optimization, for example, change
- WebP Cloud
- No need to install WebP Server Go yourself, especially suitable for static websites.
- Image Conversion: WebP Cloud converts images to WebP/AVIF format, reducing size while maintaining quality for faster website loading.
- Example 1: Original image URL (https://yyets.dmesg.app/api/user/avatar/BennyThink) becomes compressed URL (https://vz4w427.webp.ee/api/user/avatar/Benny).
- Example 2: Original image URL (https://yyets.dmesg.app/api/user/avatar/BennyThink) becomes a thumbnail image using URL (https://vz4w427.webp.ee/api/user/avatar/BennyThink?width=200).
- Caching: WebP Cloud automatically caches served images, reducing traffic and bandwidth load on the origin server.
For detailed information, please visit WebP Cloud Services Website or WebP Cloud Services Docs.
If you find this project useful, please consider supporting us by becoming a sponsor, pay via Stripe, or try out our WebP Cloud!
| USD(Card, Apple Pay and Google Pay) | EUR(Card, Apple Pay and Google Pay) | CNY(Card, Apple Pay, Google Pay and Alipay) |
|---|---|---|
| USD | EUR | CNY |
![]() |
![]() |
![]() |
WebP Server is under the GPLv3. See the LICENSE file for details.



