thruster 0.0.1-arm64-darwin → 0.0.3-arm64-darwin

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c395fcf0c2ada56996c7379e407b69c79b474c65ef7391cab9b9133ecef4e029
4
- data.tar.gz: 4746116a5a13f2750f64c2548d57b4de5d39ceeae661f99443a36b9e57918244
3
+ metadata.gz: 0475a46706f5ec245da65b342f1e442bc47cbe9c9b78e72ab0dd02f27a3a9ede
4
+ data.tar.gz: 1916dffdbfc81e482af1f66baf0e16b2cadd84416f5b7bf45a92defdba0875c5
5
5
  SHA512:
6
- metadata.gz: ffdd54573d67ec93a973d3817ef2c416b98756a620b56f6810a33181aacdd081f495aec355508c72f1e68cd0ddcbef55a56ff709a2330fd87cc09c1b2ecf8ddb
7
- data.tar.gz: 38296a1df532afc796ec42a1885d4fd14754ff10eabbde20f3c718911f8efae05f2552e26f25db4d7bdda4ba2799909fbd170e36b789a45255ea14451735cd72
6
+ metadata.gz: 7f35a17a8486163aaee6de5794c75b0c0a53ff60bdd446542d232c369c0f96b92aa5920cf0c513be114e9f10f616d0280da16d70de68972c1fe2f74707ea4d50
7
+ data.tar.gz: 4c391433c638180e67d3da9532d2aa808b262a32423012f12e16193bd55e72e3beb4cbd3c4ad9ec4331b2d13c693d359f655ce725b544d8375e4c44e164e7c99
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2024 Kevin McConnell
1
+ Copyright (c) 37signals, LLC
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,2 +1,98 @@
1
1
  # Thruster
2
2
 
3
+ Thruster is an HTTP/2 proxy for simple production-ready deployments of Rails
4
+ applications. It runs alongside the Puma webserver to provide a few additional
5
+ features that help your app run efficiently and safely on the open Internet:
6
+
7
+ - HTTP/2 support
8
+ - Automatic SSL certificate management with Let's Encrypt
9
+ - Basic HTTP caching of public assets
10
+ - X-Sendfile support and compression, to efficiently serve static files
11
+
12
+ Thruster aims to be as zero-config as possible. It has no configuration file,
13
+ and most features are automatically enabled with sensible defaults. The goal is
14
+ that simply running your Puma server with Thruster should be enough to get a
15
+ production-ready setup.
16
+
17
+ The only exception to this is SSL provisioning: in order for Thruster to
18
+ provision SSL certificates, it needs to know which domain those certificates
19
+ should be for. So to use SSL, you need to set the `SSL_DOMAIN` environment
20
+ variable. If you don't set this variable, Thruster will run in HTTP-only mode.
21
+
22
+ Thruster also wraps the Puma process so that you can use it without managing
23
+ multiple processes yourself. This is particularly useful when running in a
24
+ containerized environment, where you typically won't have a process manager
25
+ available to coordinate the processes. Instead you can use Thruster as your
26
+ `CMD`, and it will manage Puma for you.
27
+
28
+ Thruster was originally created for the [ONCE](https://once.com) project, where
29
+ we wanted a no-fuss way to serve a Rails application from a single container,
30
+ directly on the open Internet. We've since found it useful for simple
31
+ deployments of other Rails applications.
32
+
33
+
34
+ ## Installation
35
+
36
+ Thruster is distributed as a Ruby gem. Because Thruster is written in Go, we
37
+ provide several pre-built platform-specific binaries. Installing the gem will
38
+ automatically fetch the appropriate binary for your platform.
39
+
40
+ To install it, add it to your application's Gemfile:
41
+
42
+ ```ruby
43
+ gem 'thruster'
44
+ ```
45
+
46
+ Or install it globally:
47
+
48
+ ```sh
49
+ $ gem install thruster
50
+ ```
51
+
52
+
53
+ ## Usage
54
+
55
+ To run your Puma application inside Thruster, prefix your usual command string
56
+ with `thrust`. For example:
57
+
58
+ ```sh
59
+ $ thrust bin/rails server
60
+ ```
61
+
62
+ Or with automatic SSL:
63
+
64
+ ```sh
65
+ $ SSL_DOMAIN=myapp.example.com thrust bin/rails server
66
+ ```
67
+
68
+
69
+ ## Custom configuration
70
+
71
+ In most cases, Thruster should work out of the box with no additional
72
+ configuration. But if you need to customize its behavior, there are a few
73
+ environment variables that you can set.
74
+
75
+ | Variable Name | Description | Default Value |
76
+ |-----------------------|---------------------------------------------------------------------------------|---------------|
77
+ | `SSL_DOMAIN` | The domain name to use for SSL provisioning. If not set, SSL will be disabled. | None |
78
+ | `TARGET_PORT` | The port that your Puma server should run on. Thruster will set `PORT` to this value when starting your server. | 3000 |
79
+ | `CACHE_SIZE` | The size of the HTTP cache in bytes. | 64MB |
80
+ | `MAX_CACHE_ITEM_SIZE` | The maximum size of a single item in the HTTP cache in bytes. | 1MB |
81
+ | `X_SENDFILE_ENABLED` | Whether to enable X-Sendfile support. Set to `0` or `false` to disable. | Enabled |
82
+ | `MAX_REQUEST_BODY` | The maximum size of a request body in bytes. Requests larger than this size will be refused; `0` means no maximum size is enforced. | `0` |
83
+ | `STORAGE_PATH` | The path to store Thruster's internal state. Provisioned SSL certificates will be stored here, so that they will not need to be requested every time your application is started. | `./storage/thruster` |
84
+ | `BAD_GATEWAY_PAGE` | Path to an HTML file to serve when the backend server returns a 502 Bad Gateway error. If there is no file at the specific path, Thruster will serve an empty 502 response instead. Because Thruster boots very quickly, a custom page can be a useful way to show that your application is starting up. | `./public/502.html` |
85
+ | `HTTP_PORT` | The port to listen on for HTTP traffic. | 80 |
86
+ | `HTTPS_PORT` | The port to listen on for HTTPS traffic. | 443 |
87
+ | `HTTP_IDLE_TIMEOUT` | The maximum time in seconds that a client can be idle before the connection is closed. | 60 |
88
+ | `HTTP_READ_TIMEOUT` | The maximum time in seconds that a client can take to send the request headers. | 30 |
89
+ | `HTTP_WRITE_TIMEOUT` | The maximum time in seconds during which the client must read the response. | 30 |
90
+ | `ACME_DIRECTORY` | The URL of the ACME directory to use for SSL certificate provisioning. | `https://acme-v02.api.letsencrypt.org/directory` (Let's Encrypt production) |
91
+ | `EAB_KID` | The EAB key identifier to use when provisioning SSL certificates, if required. | None |
92
+ | `EAB_HMAC_KEY` | The Base64-encoded EAB HMAC key to use when provisioning SSL certificates, if required. | None |
93
+ | `DEBUG` | Set to `1` or `true` to enable debug logging. | Disabled |
94
+
95
+ To prevent naming clashes with your application's own environment variables,
96
+ Thruster's environment variables can optionally be prefixed with `THRUSTER_`.
97
+ For example, `SSL_DOMAIN` can also be written as `THRUSTER_SSL_DOMAIN`. Whenever
98
+ a prefixed variable is set, it will take precedence over the unprefixed version.
Binary file
@@ -1,3 +1,3 @@
1
1
  module Thruster
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thruster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: arm64-darwin
6
6
  authors:
7
7
  - Kevin McConnell
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-14 00:00:00.000000000 Z
11
+ date: 2024-03-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A zero-config HTTP/2 proxy for lightweight production deployments
14
14
  email: kevin@37signals.com