README: update with extra disclaimer
[raindrops.git] / examples / yahns.conf.rb
blob75f0bd1904c9de62fa1e9f20346b36facb208635
1 # frozen_string_literal: false
2 # Inlined rack app using yahns server (git clone git://yhbt.net/yahns.git)
3 # Usage: yahns -c /path/to/this/file.conf.rb
4 # There is no separate config.ru file for this example,
5 # but rack_app may also be a string pointing to the path of a
6 # config.ru file
8 require 'rack'
9 rack_app = Rack::Builder.new do
10   use Rack::Head
11   addr = %w(0.0.0.0:9418 0.0.0.0:443 [::]:443 0.0.0.0:80 [::]:80
12             127.0.0.1:6081 127.0.0.1:280 0.0.0.0:119 [::]:119)
13   use Raindrops::Middleware, listeners: addr
14   run Raindrops::Watcher.new(listeners: addr)
15 end.to_app
16 # rack_app = '/path/to/config.ru' # a more standard config
18 app(:rack, rack_app) do
19   # I keep IPv4 and IPv6 on separate sockets to avoid ugly
20   # IPv4-mapped-IPv6 addresses:
21   listen 8080
22   listen '[::]:8080', ipv6only: true
23   client_max_body_size 0 # no POST or any uploads
24   client_timeout 5
25   output_buffering false # needed for /tail/ endpoint to avoid ENOSPC
26   queue { worker_threads 30 }
27 end
29 # logging is optional, but recommended for diagnosing problems
30 # stderr_path '/var/log/yahns/stderr-raindrops.log'
31 # stdout_path '/var/log/yahns/stdout-raindrops.log'