aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md39
1 files changed, 33 insertions, 6 deletions
diff --git a/README.md b/README.md
index 70da491..6fd6439 100644
--- a/README.md
+++ b/README.md
@@ -6,11 +6,15 @@ not a GPG user) so they can send you encrypted mail messages via a one-time
web link.
Feels of déjàvu ? I was inspired by [https://hawkpost.co](https://hawkpost.co) but wasn't really
interested in the multi-user perspective and managing a database.
+I've recently added minimal support for multiple users, but adding them
+is done via the command line, and you'll have to import public
+GPG keys into your keyring first.
+I plan on adding invites in the future, generated by command line
+then directly from web interface.
Features
========
-- Single user: no database required.
- One-time GPG form: after sending the encrypted message, the generated form
self-destructs.
- Cookie based login. If you block cookies, it will switch back to
@@ -25,17 +29,21 @@ Dependencies
You will need perl and the following modules and my perl version is **v5.34.0**, YMMV:
-- HTML::Entities
- CGI
- CGI::Carp
- CGI::Cookies
- Crypt::Argon2
+- DBI
+- DBD::SQLite
+- Email::Valid
+- File::Path (should be already here by default in recent perl installs)
- GPG
+- HTML::Entities
- Net:SSLeay
- Net::SMTP
- Net::SMTPS
-- Email::Valid
- String::Random
+- Term::ReadKey
Having a webserver with CGI support or a separate CGI engine is needed. I'm using
nginx and fcgiwrap.
@@ -48,10 +56,9 @@ Installation
============
Don't forget to copy `config.def.mk` into `config.mk` and tune
-the variable to your liking. Then, you can run the good old:
+the variables to your liking. Then, you can run the good old:
```
-make
-make install #you'll maybe need sudo though
+make install
```
You should also look in the
@@ -93,6 +100,26 @@ server {
fastcgi_pass unix:/run/fcgiwrap.sock;
include /etc/nginx/fastcgi_params;
}
+
+ add_header Strict-Transport-Security "max-age=63072000; preload";
+ add_header Content-Security-Policy "default-src 'self'";
+ add_header X-Frame-Options DENY;
+ add_header Access-Control-Allow-Origin https://$server_name;
+ add_header Vary Origin; # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin#cors_and_caching
}
```
You can also tune the `WWWDOMAIN` and `NGINXCONFDIR` variable in your `config.mk` to have it generated for you when running `make`.
+
+
+Managing the service
+====================
+
+Thanks to the `gpigeonctl` script, you can :
+- Initialize the database with (`init`)
+- Add an user (`adduser`)
+- Delete an user (`deluser`)
+- Clean cookies (`cleancookies`)
+- Clean generated links (`cleanlinks`)
+
+The script is mostly interactive, so no automatic adding of user
+at the moment.