aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README35
1 files changed, 35 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..7cdf588
--- /dev/null
+++ b/README
@@ -0,0 +1,35 @@
+pipkin is an S3 HTTP gateway, designed to support the hosting of static websites
+from S3 platforms which do not natively provide first-class support for custom
+HTTP/TLS termination (e.g. Backblaze B2), and support the use of less-popular
+(or even self-managed) content delivery networks.
+
+pipkin transparently pipes responses received from S3 directly to clients; it
+consumes ~15MB of RAM and supports concurrent downloads of over 10Gbit/s, and
+has no dependencies.
+
+pipkin maps host headers to unique buckets/paths, so it's possible to host
+multiple websites from a single bucket. client requests and S3 responses are
+filtered against sets of authorized headers. webserver-style indexes and
+directory listings are supported. HTTP sockets are re-used between requests.
+
+to improve performance and reduce redundant API transactions/financial DoS, it's
+recommended to host pipkin behind a caching proxy (e.g. NGINX) and refresh stale
+caches in the background between requests:
+
+location / {
+ proxy_pass http://127.0.0.1:8085;
+ proxy_cache proxycache;
+ proxy_cache_revalidate on;
+ proxy_cache_background_update on;
+ proxy_cache_lock on;
+ proxy_cache_lock_timeout 1s;
+ proxy_cache_use_stale updating error timeout http_404 http_500;
+ proxy_cache_valid 200 302 10m;
+ proxy_cache_valid 404 1m;
+}
+
+Usage of ./pipkin:
+ -conf string
+ path to JSON config (default "pipkin.json")
+ -templates string
+ path to template directory (default "./templates")