Control: clone -1 -2
Control: retitle -1 radicale: enable apache2/nginx integration using debconf

Hi Borden,

Quoting Borden (2022-08-19 23:27:14)
> I rant into issues following /usr/share/doc/radicale/README.Debian following 
> issues. I hope my comments can reduce the number of support requests. I 
> dumped README.Debian  below with feedback that I hope is helpful. I'm happy 
> to polish up the text and submit a formal patch if you fundamentally agree 
> with my comments.

I am sorry you ran into trouble, and appreciate your attempt at helping
improve the situation.

Comments under each quoted section below...:


> Additionally, the other README files, which are pulled from github, should 
> probably reference README.Debian or be replaced with README.Debian. README.md 
> is meant as a github landing page and might confuse  new users who should be 
> reading README.Debian.

Upstream documentation files are included when they contain information
relevant also to some Debian users.  Common packaging practice in Debian
to document deviations from upstream in a README.Debian file rather than
patching upstream documentation files.  I disagree that only purpose if
README.md is when served at github.com, I see some value in including it
as the introduction communication from upstream.

The target audience is not only new users, also experienced users.  I
disagree that information confusing for new users should be removed.


> > Radicale in Debian by default uses authentication scheme "remote_user",
> > i.e. expects a front-end service to resolve ${REMOTE_USER}.
> 
> This can probably be improved by rewording to 'i.e. expects a WSGI server to 
> resolve ${REMOTE_USER}'. auth/remote_user.py states that this mode only 
> supports  an 'external WSGI server.' A new user might be fooled into thinking 
> that they  can graft their own bash script to handle this variable, for 
> example.

Feel free to try implement the expected front-end service in bash.
Should be obvious that not any bash script is acceptable, but ok: The
word "WSGI" is now added to further disambiguate.  Thanks!


> This line should be removed and (possibly) replaced with something to the 
> effect of "Radicale's default settings work. If you need to customise the 
> configuration, see DOCUMENTATION.html for instructions."
> 
> In my first attempt with Radicale, this line confused me because I didn't 
> know what I 'needed' to 'adapt', and the official documentation gave me 
> instructions that conflict with the WSGI setup.

Good point.  Now rephrased to ", using the file /etc/radicale/config as
main configuration file." which should provide the intended hint about
the file location without being perceived as an instruction of needed
action.  Thanks!


> > Install needed packages:
> >
> >       apt install uwsgi uwsgi-plugin-python3 apache2 
> >libapache2-mod-authnz-external
> >
> > Enable and activate back-end uWSGI service:
> >
> >       ln -st /etc/uwsgi/apps-enabled/ ../apps-available/radicale.ini
> >       service uwsgi restart
> 
> Can't this be automated in debconf with a "set up and enable radicale for (1) 
> apache; (2) nginx'? Furthermore, on almost every configuration, this will 
> have to be run as a superuser and might want to be indicated, unless it's not 
> standard Debian practice to do so and make the user figure it out from 
> "permission denied".

Yes, that is possible - see also the notes on dual-use in the TODO file,
which I suspect needs implemented first.  Implementing this will be extra
work that I am not sure when (if at all) I will take time to do on my own -
a patch for a draft proposal will be appreciated!  I have spawned a
separate bugreport to track this issue on its own: Please post followups to
that newly created bugreport instead of the originally filed one.


> > Setup, enable, and activate front-end service:
> >
> >       a2enmod proxy_uwsgi
> 
> Apache (at least my installation) doesn't enable ssl out of the box. `a2enmod 
> ssl; a2ensite default-ssl` (or graft default-ssl into apache2-vhost.conf) to 
> reduce new user frustration.

extended to also enable ssl module, and added this explicit note:

  (details on vhost and SSL/TLS certificate setup is not covered here)


> >       cp /usr/share/doc/radicale/examples/apache2-vhost.conf 
> >/etc/apache2/sites-available/events.example.org.conf
> >       a2ensite events.example.org.conf
> 
> For simplicity, consider changing _DOMAIN to 'localhost' for a local set-up. 
> 'example.org' confused me into thinking that Radicale and/or SSL won't work 
> without a domain name, so changing _DOMAIN to 'localhost' may be easier.
> 
> Although, in general, /etc/apache2/.../000-default.conf should probably set a 
> _DOMAIN variable for this configuration to reference.

No, TLS generally needs a specific hostname.

Documenting vhost and TLS certificate handling belongs to frontend web
service setup.


> >       service apache2 restart
> 
> And perhaps add something to the effect of "Go to https://events.example.org 
> <http://events.example.org> (or https://events.localhost/ 
> <http://events.localhost/>" to test Radicale (since the default installation 
> and documentation points users to localhost:5232, which may be confusing) and 
> something to the effect of 'log in with the same credentials you use to log 
> into your computer' or something to that effect.

No, I consider that too detailed documentation, that I will not take
responsibility for keeping up-to-date: Upstream has fine documentation,
but indeed you need to be able to understand where to fill in your own
domain name instead of "localhost", because Radicale is flexible and
supports setups other than the commonly sensible ones.

I encourage discussing upstream how possibly their documentation can be
improved.


> > ## Simple daemon
> 
> I didn't test the sysV setup, but I don't see any reference to the systemd
> enabling here.

That section clearly says that it is discouraged and untested.  If you
want that section expanded then please also try convince me why it
should not be discouraged.


Kind regards,

 - Jonas

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/

 [x] quote me freely  [ ] ask before reusing  [ ] keep private

Attachment: signature.asc
Description: signature

Reply via email to