about summary refs log tree commit homepage
path: root/examples/yahns.conf.rb
diff options
context:
space:
mode:
Diffstat (limited to 'examples/yahns.conf.rb')
-rw-r--r--examples/yahns.conf.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/yahns.conf.rb b/examples/yahns.conf.rb
new file mode 100644
index 0000000..f5b4f10
--- /dev/null
+++ b/examples/yahns.conf.rb
@@ -0,0 +1,30 @@
+# Inlined rack app using yahns server (git clone git://yhbt.net/yahns.git)
+# Usage: yahns -c /path/to/this/file.conf.rb
+# There is no separate config.ru file for this example,
+# but rack_app may also be a string pointing to the path of a
+# config.ru file
+
+require 'rack'
+rack_app = Rack::Builder.new do
+  use Rack::Head
+  addr = %w(0.0.0.0:9418 0.0.0.0:443 [::]:443 0.0.0.0:80 [::]:80
+            127.0.0.1:6081 127.0.0.1:280 0.0.0.0:119 [::]:119)
+  use Raindrops::Middleware, listeners: addr
+  run Raindrops::Watcher.new(listeners: addr)
+end.to_app
+# rack_app = '/path/to/config.ru' # a more standard config
+
+app(:rack, rack_app) do
+  # I keep IPv4 and IPv6 on separate sockets to avoid ugly
+  # IPv4-mapped-IPv6 addresses:
+  listen 8080
+  listen '[::]:8080', ipv6only: true
+  client_max_body_size 0 # no POST or any uploads
+  client_timeout 5
+  output_buffering false # needed for /tail/ endpoint to avoid ENOSPC
+  queue { worker_threads 30 }
+end
+
+# logging is optional, but recommended for diagnosing problems
+# stderr_path '/var/log/yahns/stderr-raindrops.log'
+# stdout_path '/var/log/yahns/stdout-raindrops.log'