unit-docs icon indicating copy to clipboard operation
unit-docs copied to clipboard

A better first touch experience

Open danielledeleo opened this issue 10 months ago • 5 comments

This issue serves as a place discuss and create tasks related to improving the first touch experience. Recent on-the-ground experiences at Wasm I/O with @tippexs and @danielledeleo have highlighted the need for an improved "first touch" experience for new NGINX Unit users.

Tasks need to be defined and issues created for the following:

  • [x] ~~Homepage installation one-liner (see rustup, Homebrew, etc.)~~
    • #139
  • [ ] Simplified installation page
  • [ ] New quickstart section/page

Loosely defined ideas that may require changes to the nginx/unit repo:

  • [ ] Command line alternatives to writing Unit configurations in JSON (tedious and slow)
  • [ ] Unit's default behaviour to launch in daemon mode can be surprising to new users
  • [ ] Make running Unit as an unprivileged user easier (automatic --flag overrides for .pid, .log, and .sock files)

danielledeleo avatar Apr 05 '24 19:04 danielledeleo

Make running Unit as an unprivileged user easier (automatic --flag overrides for .pid, .log, and .sock files)

We dont have to modify Unit if we suggest using the Docker container by default. If we can offer a one-size-fits-all docker container with all language runtimes enabled in addition to our current offerings then we can offer a very simple process to get developers started with a docker container that wont require changes to their systemd configuration.

avahahn avatar Apr 18 '24 19:04 avahahn

What I was thinking of was more along the lines of what is already being done in our Homebrew compilation flags.

There are still some quality-of-life and friction issues with Docker that I point out in issue #139. Until we address these I'm reluctant to point users to Docker as a way to get started.

danielledeleo avatar Apr 18 '24 22:04 danielledeleo

You can of course set --control, --pid, --log & --statedir at runtime.

ac000 avatar Apr 19 '24 00:04 ac000

Also consider Docker CMD arguments so that a read-only filesystem can be used. See https://github.com/nginx/unit/issues/1144

A PID file is redundant, logs could go directly to /dev/stderr instead of a symlink and the state directory is pretty much redundant when we won't be restarting unitd.

lcrilly avatar Apr 19 '24 11:04 lcrilly

You can of course set --control, --pid, --log & --statedir at runtime.

A little tedious, but yes.

danielledeleo avatar Apr 19 '24 17:04 danielledeleo