The Serious Web Server, for Serious People
Itsi is a feature-packed, high performance web and application server, with first-class support for Ruby applications. It's a compliant Rack server. It’s also a well-equipped reverse proxy, API gateway, and static file server, controlled by an intuitive and elegant configuration API and DSL.
Itsi is motivated by the belief that:
It should be easy to share your application on the internet with confidence, without a need for complex configuration or multiple layers of tools.
Just your application code and Itsi working together, inside a single process, to proudly serve your best work on the world wide web.
For the best introduction to Itsi, you should take a look at the Itsi documentation website.
Make sure you have Ruby installed! If not, look here: https://www.ruby-lang.org/en/documentation/installation/
On Linux? You'll need at least
build-essentialandlibclang-devinstalled to build Itsi on Linux. E.g.
apt-get install build-essential libclang-devThen, install Itsi using gem:
gem install itsiWant to serve a Ruby app? Go to a directory containing a config.ru file and run:
itsi
Want to serve static files? Go to a directory containing static files and run:
itsi static
Want to run and configure a reverse proxy, API Gateway, static file server, gRPC server, inline endpoints or any combination of these? You'll need to learn a bit more about Itsi's configuration API and DSL.
Run:
itsi init
to create a new Itsi.rb configuration file and start tweaking.
Need help with the Itsi CLI?
itsi --help
to see some of the essential options.
Prefer learning by doing? Make sure you have ruby-lsp installed, and then let the LSP show
you the right set of configuration options available inside Itsi.rb, from right inside your editor.
Or just go straight to the comprehensive documentation site to see it all!
Docs:
Source Code:
- Check out the top-level Rakefile for project wide commands.
rake test(Run the full Itsi test-suite)rake compile(Compile Itsi - Scheduler and Server)rake build(Build all itsi gems,itsi,itsi-server,itsi-scheduler)
You can also run gem-specific variants of the above. E.g.
rake server:testorrake scheduler:testrake server:compileorrake scheduler:compilerake server:buildorrake scheduler:build
Developer Certificate of Origin
By submitting a pull-request you certify that:
- The contribution is your original work or you have the right to submit it;
- You have read and understood the Developer Certificate of Origin and you accept it.
