1 |
1 |
new file mode 100644
|
... |
... |
@@ -0,0 +1,35 @@
|
|
1 |
+# CombinedFS
|
|
2 |
+
|
|
3 |
+CombinedFS stands for Completely Over-engineered, Melted Brain-Induced, Not Even Decent Fucking Solution.
|
|
4 |
+Well, no, it doesn't, but I like far-fetched acronyms.
|
|
5 |
+
|
|
6 |
+CombinedFS is a FUSE FileSystem that exposes a transformed, straightforward, read-only version of Let's Encrypt / Certbot's "live" directory for better integration with software that requires "combined" PEM files.
|
|
7 |
+
|
|
8 |
+## Features
|
|
9 |
+
|
|
10 |
+ - Dynamically concatenate and expose adequate PEM files;
|
|
11 |
+ - include PEM files from outside the Certbot directory, e.g. Diffie-Hellman parameters;
|
|
12 |
+ - hide symlinks, resulting in a single directory to expose to your TLS frontend;
|
|
13 |
+ - filter exposed certificates (whitelist / blacklist) using a regular expression;
|
|
14 |
+ - expose either a Certbot-like tree (e.g. my.domain.tld/combined.pem), suitable for those who just need filtering or concatenation...
|
|
15 |
+ - or a flattened directory (e.g. my.domain.tld_cert.pem), suitable for software that loads all PEM files in a given directory;
|
|
16 |
+ - specify Unix permissions: uid, gid, mode, either globally or on a per-file basis (not a per-cert basis though).
|
|
17 |
+
|
|
18 |
+## Implementation
|
|
19 |
+
|
|
20 |
+ - Python with [fusepy](https://github.com/fusepy/fusepy)
|
|
21 |
+ - YAML/JSON configuration file
|
|
22 |
+
|
|
23 |
+## How to use it
|
|
24 |
+
|
|
25 |
+```
|
|
26 |
+combinedfs.py /path/to/configuration.yaml /mount/point
|
|
27 |
+```
|
|
28 |
+
|
|
29 |
+Refer to `configuration.reference.yaml` to write your own configuration file.
|
|
30 |
+
|
|
31 |
+## Why?
|
|
32 |
+
|
|
33 |
+Certbot already offers hooks to handle pretty much everything, from mere concatenations to complex deployments to various kinds of clusters.
|
|
34 |
+So why write a Fuse FileSystem to cover only a small part of this scope?
|
|
35 |
+Well, duh. Because it's fun, here's why.
|