diff --git a/README.md b/README.md index 10e133c..012d63d 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Easy setup and management of Nextcloud test instances using docker ## What -`haze` provides an easy way to setup Nextcloud test instances with a choice of +`haze` provides an easy way to set up Nextcloud test instances with a choice of php version, database server, optional s3 or ldap setup and more. ## Setup @@ -71,29 +71,29 @@ mode and can be used for debugging php itself with gdb. Additionally, you can use the following options when starting an instance: -- `s3`: setup an S3 server and configure to Nextcloud to use it as primary +- `s3`: set up an S3 server and configure to Nextcloud to use it as primary storage. - ``: by specifying the path to an app package this package will be extracted into the apps. directory of the new instance (overwriting any existing app code). This can be used to quickly test a packaged app. -- `ldap`: setup an LDAP server. -- `office`: setup a Nextcloud Office server. +- `ldap`: set up an LDAP server. +- `office`: set up a Nextcloud Office server. - `onlyoffice` setup an onlyoffice document server. -- `push` setup [client push](https://github.com/nextcloud/notify_push). -- `smb`: setup a samba server for external storage use. -- `dav`: setup a WebDAV server for external storage use. -- `sftp`: setup a SFTP server for external storage use. -- `kaspersky`: setup a kaspersky scan engine server in http mode. ( Requires +- `push` set up [client push](https://github.com/nextcloud/notify_push). +- `smb`: set up a samba server for external storage use. +- `dav`: set up a WebDAV server for external storage use. +- `sftp`: set up a SFTP server for external storage use. +- `kaspersky`: set up a kaspersky scan engine server in http mode. ( Requires [manually setting up the image](https://github.com/icewind1991/kaspersky-docker)) - `kaspersky-icap`: setup a kaspersky scan engine server in ICAP mode. -- `clamav`: setup a local clam av scanner in executable mode. -- `clamav-socket`: setup a clam av scanner in socket mode. -- `clamav-icap`: setup a clam av scanner in ICAP mode. -- `clamav-icap-tls`: setup a clam av scanner in ICAP mode with TLS encryption. +- `clamav`: set up a local clam av scanner in executable mode. +- `clamav-socket`: set up a clam av scanner in socket mode. +- `clamav-icap`: set up a clam av scanner in ICAP mode. +- `clamav-icap-tls`: set up a clam av scanner in ICAP mode with TLS encryption. - `oc`: start an ownCloud instance in the same network. - `imaginary`: start an Imaginary service and configure it for preview generation. -- `mail`: start an [smtp4dev](https://github.com/rnwood/smtp4dev) server and +- `mail`: start a [smtp4dev](https://github.com/rnwood/smtp4dev) server and configure it the mail server. - `redis`: start a separate container for redis. - `redis-tls`: connect to redis over TLS. @@ -105,7 +105,7 @@ Additionally, you can use the following options when starting an instance: haze test [database] [php-version] [path] ``` -Where `path` is a file or folder to run phpunit in, relative to the sources +Where `path` is a file or folder to run PHPUnit in, relative to the sources root. ### List running instances @@ -129,7 +129,7 @@ haze clean ## Controlling running instances The following commands run against the most recently started instance and allow -optionally providing a `match` to select a specific instance by it's name. +optionally providing a `match` to select a specific instance by its name. #### Open an instance @@ -206,7 +206,7 @@ haze [match] env [args] Runs the provided command with `NEXTCLOUD_URL`, `DATABASE_URL` and `REDIS_URL` environment variables set for the matched instance. -This is intented to run a local +This is intended to run a local [push daemon](https://github.com/nextcloud/notify_push) against an instance. #### Update the container images @@ -254,19 +254,19 @@ Performs a pull in all git repositories within the apps folder. Multiple instances can reach each other by using their instance name as domain name to allow for testing federation between instances. Alternatively, you can -setup the haze proxy and the proxied domains to get https support between +set up the haze proxy and the proxied domains to get https support between instances. ## Proxy By default, instances can be accessed by their IP. In order to get more -memorable urls and allow supporting https, haze comes with a builtin reverse +memorable URLs and allow supporting https, haze comes with a builtin reverse proxy to allow using a wildcard domain. ### Requirements - A domain name you can set wildcard DNS records for -- A reverse proxy like nginx or apache +- A reverse proxy like nginx or Apache - (optionally) a wildcard ssl certificate (can be acquiring using letsencrypt and dns verification) @@ -274,9 +274,9 @@ proxy to allow using a wildcard domain. - Set a DNS record for `*.haze.exmaple.com` and `haze.example.com` pointing to `127.0.0.1` or your development machine if you need to access it from other devices. -- Set the `proxy` configuration with your domain and desired listen endpoint -- Setup a service to run `haze proxy` in the background as your own user. A - systemd user service is recommended. +- Set the `proxy` configuration with your domain and desired listen endpoint. +- Set up a service to run `haze proxy` in the background as your own user. A + systemd user service is recommended (see [haze.service](./haze.service) for an example). - Configure your reverse proxy of choice to proxy `*.haze.example.com` and `haze.example.com` to the proxy's listen endpoint - (optional) acquire a wildcard ssl certificate for your domain and set your @@ -286,7 +286,7 @@ proxy to allow using a wildcard domain. ### Usage -When the proxy is configured, generated urls for the instances will use a +When the proxy is configured, generated URLs for the instances will use a subdomain of the configured domain, e.g. the `rolling-bees` instance will be available at `rolling-bees.haze.example.com`. Additionally, `haze.example.com` will automatically point to the last created instance. @@ -322,7 +322,7 @@ read_only = true [proxy] # optional address = "haze.example.com" # base domain -https = true # Is the proxy behind an https terminating proxy +https = true # Is the proxy behind a https terminating proxy listen = "/run/haze/haze.sock" # either a unix socket path #listen = "127.0.0.1:8080" # or a socket address diff --git a/haze.service b/haze.service new file mode 100644 index 0000000..4b0ff66 --- /dev/null +++ b/haze.service @@ -0,0 +1,10 @@ +[Install] +WantedBy=default.target + +[Service] +ExecStart=/usr/bin/haze proxy +Restart=on-failure +RestartSec=10 + +[Unit] +Description=Haze reverse proxy \ No newline at end of file