falcon 0.52.2 → 0.52.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/context/deployment.md +65 -1
- data/context/index.yaml +3 -1
- data/context/websockets.md +1 -1
- data/lib/falcon/command/serve.rb +0 -1
- data/lib/falcon/configuration.rb +1 -1
- data/lib/falcon/environment/virtual.rb +2 -2
- data/lib/falcon/version.rb +1 -1
- data/license.md +1 -0
- data/readme.md +7 -3
- data/releases.md +6 -2
- data.tar.gz.sig +0 -0
- metadata +5 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0d52ed7de8cbcdb1a7d2841131cd02f0b89165776384ee1637693c774e724ebd
|
|
4
|
+
data.tar.gz: 4cf37f13cce0acbbbba818584e8dc6fe7ef3eb031896eab9105a1cacf9fe6421
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 512323cbc344f48366fb68f15b3dfa04d175519ed2e4f45f936ce937469de0ec669d5e59076a7567f688ecc8a8c6b4ab83ea62c21bee1c6842ab0070e2c72740
|
|
7
|
+
data.tar.gz: 2e2291890e67f9ba1ea9c197a44d363c89b48bd0d053a27259cf4b57a27fcfbbde0ce845cdde3ad4c0beb0054bb32d6588eeb15e53867864b6dc3922cb2088b7
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/context/deployment.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Deployment
|
|
2
2
|
|
|
3
|
-
This guide explains how to
|
|
3
|
+
This guide explains how to deploy applications using the Falcon web server. It covers the recommended deployment methods, configuration options, and examples for different environments, including systemd and kubernetes.
|
|
4
4
|
|
|
5
5
|
Falcon can be deployed into production either as a standalone application server, or as a virtual host routing to multiple applications. Both configurations can run behind a load balancer, but `falcon virtual` is designed to be zero-configuration deployment option.
|
|
6
6
|
|
|
@@ -145,6 +145,50 @@ service hostname do
|
|
|
145
145
|
require_relative "config/environment"
|
|
146
146
|
~~~
|
|
147
147
|
|
|
148
|
+
### Kubernetes Integration
|
|
149
|
+
|
|
150
|
+
Falcon can be deployed in a Kubernetes cluster using the `falcon host` command. You can use the following example to create a Kubernetes deployment for Falcon:
|
|
151
|
+
|
|
152
|
+
```yaml
|
|
153
|
+
apiVersion: apps/v1
|
|
154
|
+
kind: Deployment
|
|
155
|
+
metadata:
|
|
156
|
+
name: falcon
|
|
157
|
+
spec:
|
|
158
|
+
replicas: 1
|
|
159
|
+
selector:
|
|
160
|
+
matchLabels:
|
|
161
|
+
app: falcon
|
|
162
|
+
template:
|
|
163
|
+
metadata:
|
|
164
|
+
labels:
|
|
165
|
+
app: falcon
|
|
166
|
+
spec:
|
|
167
|
+
containers:
|
|
168
|
+
- name: my-app
|
|
169
|
+
image: my-app-image:latest
|
|
170
|
+
env:
|
|
171
|
+
- name: NOTIFY_LOG
|
|
172
|
+
value: "/tmp/notify.log"
|
|
173
|
+
ports:
|
|
174
|
+
- containerPort: 9292
|
|
175
|
+
readinessProbe:
|
|
176
|
+
exec:
|
|
177
|
+
command: ["bundle", "exec", "bake", "async:container:notify:log:ready?"]
|
|
178
|
+
initialDelaySeconds: 5
|
|
179
|
+
periodSeconds: 5
|
|
180
|
+
failureThreshold: 12
|
|
181
|
+
|
|
182
|
+
# Assuming you are running Rails and have bound to port 3000:
|
|
183
|
+
livenessProbe:
|
|
184
|
+
httpGet:
|
|
185
|
+
path: /up
|
|
186
|
+
port: 3000
|
|
187
|
+
initialDelaySeconds: 10
|
|
188
|
+
periodSeconds: 10
|
|
189
|
+
failureThreshold: 3
|
|
190
|
+
```
|
|
191
|
+
|
|
148
192
|
## Falcon Virtual
|
|
149
193
|
|
|
150
194
|
Falcon virtual provides a virtual host proxy and HTTP-to-HTTPS redirection for multiple applications. It is designed to be a zero-configuration deployment option, allowing you to run multiple applications on the same server.
|
|
@@ -164,3 +208,23 @@ falcon virtual /srv/http/*/falcon.rb
|
|
|
164
208
|
By default, it binds to both HTTP and HTTPS ports, and automatically redirects HTTP requests to HTTPS. It also supports TLS SNI for resolving the certificates.
|
|
165
209
|
|
|
166
210
|
See the [docker example](https://github.com/socketry/falcon-virtual-docker-example) for a complete working example.
|
|
211
|
+
|
|
212
|
+
### systemd Service File
|
|
213
|
+
|
|
214
|
+
You can create a systemd service file to manage the Falcon virtual service. Here is an example of a systemd service file for Falcon:
|
|
215
|
+
|
|
216
|
+
```ini
|
|
217
|
+
[Unit]
|
|
218
|
+
Description=Falcon Virtual Service
|
|
219
|
+
After=network.target
|
|
220
|
+
|
|
221
|
+
[Service]
|
|
222
|
+
Type=notify
|
|
223
|
+
User=http
|
|
224
|
+
WorkingDirectory=/srv/http
|
|
225
|
+
ExecStart=/usr/local/bin/falcon virtual /srv/http/*/falcon.rb
|
|
226
|
+
Restart=always
|
|
227
|
+
|
|
228
|
+
[Install]
|
|
229
|
+
WantedBy=multi-user.target
|
|
230
|
+
```
|
data/context/index.yaml
CHANGED
|
@@ -15,7 +15,9 @@ files:
|
|
|
15
15
|
description: This guide explains how to host Rails applications with Falcon.
|
|
16
16
|
- path: deployment.md
|
|
17
17
|
title: Deployment
|
|
18
|
-
description: This guide explains how to
|
|
18
|
+
description: This guide explains how to deploy applications using the Falcon web
|
|
19
|
+
server. It covers the recommended deployment methods, configuration options, and
|
|
20
|
+
examples for different environments, including systemd and kubernetes.
|
|
19
21
|
- path: performance-tuning.md
|
|
20
22
|
title: Performance Tuning
|
|
21
23
|
description: This guide explains the performance characteristics of Falcon.
|
data/context/websockets.md
CHANGED
|
@@ -9,7 +9,7 @@ Falcon supports WebSockets using the [async-websocket gem](https://github.com/so
|
|
|
9
9
|
~~~ruby
|
|
10
10
|
# config.ru
|
|
11
11
|
|
|
12
|
-
require "async/websocket/
|
|
12
|
+
require "async/websocket/adapters/rack"
|
|
13
13
|
|
|
14
14
|
run do |env|
|
|
15
15
|
Async::WebSocket::Adapters::Rack.open(env, protocols: ['ws']) do |connection|
|
data/lib/falcon/command/serve.rb
CHANGED
data/lib/falcon/configuration.rb
CHANGED
|
@@ -56,10 +56,10 @@ module Falcon
|
|
|
56
56
|
# # An endpoint suitable for connecting to the specified hostname.
|
|
57
57
|
# def host_endpoint(hostname, **options)
|
|
58
58
|
# endpoint = secure_endpoint(**options)
|
|
59
|
-
|
|
59
|
+
#
|
|
60
60
|
# url = URI.parse(bind_secure)
|
|
61
61
|
# url.hostname = hostname
|
|
62
|
-
|
|
62
|
+
#
|
|
63
63
|
# return Async::HTTP::Endpoint.new(url, hostname: endpoint.hostname)
|
|
64
64
|
# end
|
|
65
65
|
end
|
data/lib/falcon/version.rb
CHANGED
data/license.md
CHANGED
|
@@ -27,6 +27,7 @@ Copyright, 2024, by Stefan Buhrmester.
|
|
|
27
27
|
Copyright, 2024, by Ismael Celis.
|
|
28
28
|
Copyright, 2025, by Pierre Montelle.
|
|
29
29
|
Copyright, 2025, by Jared Smith.
|
|
30
|
+
Copyright, 2025, by Yoji Shidara.
|
|
30
31
|
|
|
31
32
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
32
33
|
of this software and associated documentation files (the "Software"), to deal
|
data/readme.md
CHANGED
|
@@ -33,7 +33,7 @@ Please see the [project documentation](https://socketry.github.io/falcon/) for m
|
|
|
33
33
|
|
|
34
34
|
- [Rails Integration](https://socketry.github.io/falcon/guides/rails-integration/index) - This guide explains how to host Rails applications with Falcon.
|
|
35
35
|
|
|
36
|
-
- [Deployment](https://socketry.github.io/falcon/guides/deployment/index) - This guide explains how to
|
|
36
|
+
- [Deployment](https://socketry.github.io/falcon/guides/deployment/index) - This guide explains how to deploy applications using the Falcon web server. It covers the recommended deployment methods, configuration options, and examples for different environments, including systemd and kubernetes.
|
|
37
37
|
|
|
38
38
|
- [Performance Tuning](https://socketry.github.io/falcon/guides/performance-tuning/index) - This guide explains the performance characteristics of Falcon.
|
|
39
39
|
|
|
@@ -47,6 +47,10 @@ Please see the [project documentation](https://socketry.github.io/falcon/) for m
|
|
|
47
47
|
|
|
48
48
|
Please see the [project releases](https://socketry.github.io/falcon/releases/index) for all releases.
|
|
49
49
|
|
|
50
|
+
### v0.52.4
|
|
51
|
+
|
|
52
|
+
- Relax dependency on `async-container-supervisor` to allow `~> 0.6`.
|
|
53
|
+
|
|
50
54
|
### v0.52.0
|
|
51
55
|
|
|
52
56
|
- Modernized codebase and dropped support for Ruby v3.1.
|
|
@@ -98,13 +102,13 @@ In addition, `falcon serve` provides two new options:
|
|
|
98
102
|
The current configuration format uses definitions like this:
|
|
99
103
|
|
|
100
104
|
``` ruby
|
|
101
|
-
rack
|
|
105
|
+
rack "hello.localhost", :self_signed_tls
|
|
102
106
|
```
|
|
103
107
|
|
|
104
108
|
This changes to:
|
|
105
109
|
|
|
106
110
|
``` ruby
|
|
107
|
-
service
|
|
111
|
+
service "hello.localhost" do
|
|
108
112
|
include Falcon::Environment::Rack
|
|
109
113
|
include Falcon::Environment::SelfSignedTLS
|
|
110
114
|
end
|
data/releases.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Releases
|
|
2
2
|
|
|
3
|
+
## v0.52.4
|
|
4
|
+
|
|
5
|
+
- Relax dependency on `async-container-supervisor` to allow `~> 0.6`.
|
|
6
|
+
|
|
3
7
|
## v0.52.0
|
|
4
8
|
|
|
5
9
|
- Modernized codebase and dropped support for Ruby v3.1.
|
|
@@ -106,13 +110,13 @@ In addition, `falcon serve` provides two new options:
|
|
|
106
110
|
The current configuration format uses definitions like this:
|
|
107
111
|
|
|
108
112
|
``` ruby
|
|
109
|
-
rack
|
|
113
|
+
rack "hello.localhost", :self_signed_tls
|
|
110
114
|
```
|
|
111
115
|
|
|
112
116
|
This changes to:
|
|
113
117
|
|
|
114
118
|
``` ruby
|
|
115
|
-
service
|
|
119
|
+
service "hello.localhost" do
|
|
116
120
|
include Falcon::Environment::Rack
|
|
117
121
|
include Falcon::Environment::SelfSignedTLS
|
|
118
122
|
end
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: falcon
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.52.
|
|
4
|
+
version: 0.52.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samuel Williams
|
|
@@ -31,6 +31,7 @@ authors:
|
|
|
31
31
|
- Stefan Buhrmester
|
|
32
32
|
- Tad Thorley
|
|
33
33
|
- Tasos Latsas
|
|
34
|
+
- Yoji Shidara
|
|
34
35
|
bindir: bin
|
|
35
36
|
cert_chain:
|
|
36
37
|
- |
|
|
@@ -98,14 +99,14 @@ dependencies:
|
|
|
98
99
|
requirements:
|
|
99
100
|
- - "~>"
|
|
100
101
|
- !ruby/object:Gem::Version
|
|
101
|
-
version: 0.
|
|
102
|
+
version: '0.6'
|
|
102
103
|
type: :runtime
|
|
103
104
|
prerelease: false
|
|
104
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
106
|
requirements:
|
|
106
107
|
- - "~>"
|
|
107
108
|
- !ruby/object:Gem::Version
|
|
108
|
-
version: 0.
|
|
109
|
+
version: '0.6'
|
|
109
110
|
- !ruby/object:Gem::Dependency
|
|
110
111
|
name: async-http
|
|
111
112
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -311,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
311
312
|
- !ruby/object:Gem::Version
|
|
312
313
|
version: '0'
|
|
313
314
|
requirements: []
|
|
314
|
-
rubygems_version: 3.
|
|
315
|
+
rubygems_version: 3.7.2
|
|
315
316
|
specification_version: 4
|
|
316
317
|
summary: A fast, asynchronous, rack-compatible web server.
|
|
317
318
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|