ryuko
ryuko
image effect service for elixire instances.
install
shards build --progress --release
build ryuko effects
build dependencies (on the machine running ./build_effects.sh
):
- Rust
runtime dependencies (on the machine running ryuko):
- ImageMagick
- ffmpeg
- python3 with Pillow installed
./build_effects.sh
running
env CRYSTAL_ENV=debug ELIXIRE_URL=http://localhost:9090 NGINX=1 ./bin/ryuko
available env variables
CRYSTAL_ENV=debug
to set logger level to debugELIXIRE_URL
(required) to set the upstream elixire instance urlREAL_IP_HEADER=x-real-ip
(highly recommended) so that ryuko fills the header given by nginx.
operational concerns
ryuko stores cached versions of the images with its effects applied in /tmp/ryuko
.
there is a janitor task that cleans up that directory off images that are deemed old enough (configurable via the MAX_CACHE_MIN
variable).
it is important to check the mount flags set for /tmp
so that it can't grow over desirable limits.
nginx configuration
it is highly recommended to deploy ryuko behind a reverse proxy such as nginx.
assumes:
- elixire instance at
localhost
, port 8081 - ryuko instance at
localhost
, port 3000
map $request_uri $proxy_pass_elixire_img_port {
default 8081;
# only match ryuko if "?effect" is in the original request url
"~*\?effect" 3000;
}
server {
<...>
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:8081;
}
location /i {
proxy_set_header Host $http_host;
# ryuko only acts on /i/ and even when only when an effect is needed
proxy_pass http://127.0.0.1:$proxy_pass_elixire_img_port;
}
}
Repository
ryuko
Owner
Statistic
- 0
- 2
- 2
- 0
- 2
- almost 2 years ago
- April 1, 2019
License
MIT License
Links
Synced at
Fri, 22 Nov 2024 09:30:57 GMT
Languages