From 546dbcc20f4bda9c435bfeac56dab66fb92ea1e8 Mon Sep 17 00:00:00 2001 From: Josh <josh.t.richards@gmail.com> Date: Sun, 26 May 2024 12:34:35 -0400 Subject: [PATCH 1/4] Update README.md Fixes #2224 Signed-off-by: Josh <josh.t.richards@gmail.com> --- README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c69999bb..f1c013c35 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,20 @@ $ docker-compose exec --user www-data app php occ ``` ## Auto configuration via environment variables -The Nextcloud image supports auto configuration via environment variables. You can preconfigure everything that is asked on the install page on first run. To enable auto configuration, set your database connection via the following environment variables. You must specify all of the environment variables for a given database or the database environment variables defaults to SQLITE. ONLY use one database type! + +The Nextcloud image supports auto configuration of the initial installation via environment variables. You can preconfigure everything that is asked on the install page on first run. + +In addition, support for adjusting several other key aspects of Nextcloud and the container's runtime environment are supported by the image. + +Keep in mind the intention is to auto configure initial installation. Only a few variables may be used after initial deployment (i.e. changing them in your Compose file may not flow through to an existing installation). + +All variables below work at installation time, at a minimum. Other contraints are noted in the table. + +Variable | Description | After installation? | Dependent on other variables? | Visible in config.php? | Visible via occ config:list system? | Will override config.php? | Can be a secret? | Rootless? | Injected via... +--- | --- | --- | --- | --- | --- | ---| --- | --- + + +Set your database connection via auto configuration using the following environment variables. You must specify all of the environment variables for a given database or the database environment variables defaults to SQLITE. ONLY use one database type! __SQLite__: - `SQLITE_DATABASE` Name of the database using sqlite From c45a9f41948765b0423af30e9721faed599b15de Mon Sep 17 00:00:00 2001 From: Josh <josh.t.richards@gmail.com> Date: Sun, 26 May 2024 16:57:04 -0400 Subject: [PATCH 2/4] Update README.md Signed-off-by: Josh <josh.t.richards@gmail.com> --- README.md | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index f1c013c35..b84ed2869 100644 --- a/README.md +++ b/README.md @@ -116,17 +116,41 @@ $ docker-compose exec --user www-data app php occ ## Auto configuration via environment variables -The Nextcloud image supports auto configuration of the initial installation via environment variables. You can preconfigure everything that is asked on the install page on first run. +The Nextcloud image supports auto configuration of the initial installation via environment variables. You can preconfigure everything that is usually asked on the install page on first run. In addition, support for adjusting several other key aspects of Nextcloud and the container's runtime environment are supported by the image. Keep in mind the intention is to auto configure initial installation. Only a few variables may be used after initial deployment (i.e. changing them in your Compose file may not flow through to an existing installation). -All variables below work at installation time, at a minimum. Other contraints are noted in the table. - -Variable | Description | After installation? | Dependent on other variables? | Visible in config.php? | Visible via occ config:list system? | Will override config.php? | Can be a secret? | Rootless? | Injected via... ---- | --- | --- | --- | --- | --- | ---| --- | --- - +All variables below, at a minimum, work at installation time. Some may be used after installation time. Specific contraints are noted in the table below. Details about each variable follow the table. + +| Variable | Default | After install? | Dependencies? | Visible in `config.php`? | Visible via `occ config:list`? | Overrides `config.php`? | Can be secret? | Rootless? | Injected via | +| ----------------------------- | ------------------ | ------------------- | ---------------------------------- | ------------------------ | -------------------------------| ------------------------ | -------------- | --------- | ---------------------------------------- | +| SQLITE_DATABASE | | No | No | Yes | Yes | n/a | n/a | Yes | `entrypoint.sh` or `autoconfig.php` | +| MYSQL_DATABASE | | No | All MYSQL_* variables | Yes | Yes | n/a | n/a | Yes | `entrypoint.sh` or `autoconfig.php` | +| MYSQL_USER | | No | All MYSQL_* variables | Yes | Yes | n/a | Yes | Yes | `entrypoint.sh` or `autoconfig.php` | +| MYSQL_PASSWORD | | No | All MYSQL_* variables | Yes | Yes | n/a | Yes | Yes | `entrypoint.sh` or `autoconfig.php` | +| MYSQL_HOST | | No | All MYSQL_* variables | Yes | Yes | n/a | No | Yes | `entrypoint.sh` or `autoconfig.php` | +| POSTGRES_DB | | No | All POSTGRES_* variables | Yes | Yes | n/a | n/a | Yes | `entrypoint.sh` or `autoconfig.php` | +| POSTGRES_USER +| POSTGRES_PASSWORD +| POSTGRES_HOST +| NEXTCLOUD_ADMIN_USER +| NEXTCLOUD_ADMIN_PASSWORD +| NEXTCLOUD_DATA_DIR +| NEXTCLOUD_TRUSTED_DOMAINS +| TRUSTED_PROXIES +| NEXTCLOUD_UPDATE +| NEXTCLOUD_INIT_HTACCESS +| REDIS_* +| SMTP_* +| MAIL_* +| OBJECTSTORE_* +| PHP_MEMORY_LIMIT +| PHP_UPLOAD_LIMIT +| APACHE_BODY_LIMIT +| APACHE_DISABLE_REWRITE_IP +| OVERWRITE* Set your database connection via auto configuration using the following environment variables. You must specify all of the environment variables for a given database or the database environment variables defaults to SQLITE. ONLY use one database type! From 5366de2a84f2365fc2504fc78c2b4e737293b96e Mon Sep 17 00:00:00 2001 From: Josh <josh.t.richards@gmail.com> Date: Wed, 29 May 2024 18:03:44 -0400 Subject: [PATCH 3/4] Update README.md Signed-off-by: Josh <josh.t.richards@gmail.com> --- README.md | 54 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index b84ed2869..881e6d7f9 100644 --- a/README.md +++ b/README.md @@ -122,20 +122,37 @@ In addition, support for adjusting several other key aspects of Nextcloud and th Keep in mind the intention is to auto configure initial installation. Only a few variables may be used after initial deployment (i.e. changing them in your Compose file may not flow through to an existing installation). -All variables below, at a minimum, work at installation time. Some may be used after installation time. Specific contraints are noted in the table below. Details about each variable follow the table. - -| Variable | Default | After install? | Dependencies? | Visible in `config.php`? | Visible via `occ config:list`? | Overrides `config.php`? | Can be secret? | Rootless? | Injected via | -| ----------------------------- | ------------------ | ------------------- | ---------------------------------- | ------------------------ | -------------------------------| ------------------------ | -------------- | --------- | ---------------------------------------- | -| SQLITE_DATABASE | | No | No | Yes | Yes | n/a | n/a | Yes | `entrypoint.sh` or `autoconfig.php` | -| MYSQL_DATABASE | | No | All MYSQL_* variables | Yes | Yes | n/a | n/a | Yes | `entrypoint.sh` or `autoconfig.php` | -| MYSQL_USER | | No | All MYSQL_* variables | Yes | Yes | n/a | Yes | Yes | `entrypoint.sh` or `autoconfig.php` | -| MYSQL_PASSWORD | | No | All MYSQL_* variables | Yes | Yes | n/a | Yes | Yes | `entrypoint.sh` or `autoconfig.php` | -| MYSQL_HOST | | No | All MYSQL_* variables | Yes | Yes | n/a | No | Yes | `entrypoint.sh` or `autoconfig.php` | -| POSTGRES_DB | | No | All POSTGRES_* variables | Yes | Yes | n/a | n/a | Yes | `entrypoint.sh` or `autoconfig.php` | -| POSTGRES_USER -| POSTGRES_PASSWORD -| POSTGRES_HOST -| NEXTCLOUD_ADMIN_USER +All variables below, at a minimum, work at installation time. Some may be used after installation time and thus may override `config.php` and similar parameters. Specifics are noted in the tables below. Details about each variable follow the table. + +* Usage + - Install + - Post-install +* Dependencies +* Visibility + - `config.php` + - `occ config:list` +* Priority + - Overrides `config.php` +* Secret? +* Compatibility + - Rootless +* Injection method(s) + - `entrypoint.sh` to Server installer + - `autoconfig.php` to Server installer + + +| Environment Variable | Description | Example | Secret[4] | Post-install[5] | Visibility | Notes | Method | +| :------------------: | :---------: | :-----: | :-----: | :-------------: | :--------: | ----- | ------ | +| SQLITE_DATABASE | Use SQLite as the database and use as the `dbname` | `ncdb` | No | No | `config.php` | Suitable to testing and minimal-instances only | Injected via `entrypoint.sh` to `occ maintenance:install` (when specified with `NEXTCLOUD_*`) otherwise via `autoconfig.php` | +| MYSQL_DATABASE | Use MySQL/MariaDB as the database and use as the `dbname` | `ncdb` | ✓ | No | `config.php` | Ignored unless all `MYSQL_*` variables are specified | Injected via `entrypoint.sh` to `occ maintenance:install` (when specified with `NEXTCLOUD_*`) otherwise via `autoconfig.php` | +| MYSQL_USER | the `dbuser` | `ncdbuser` | ✓ | No | `config.php` | See `MYSQL_DATABASE` | | +| MYSQL_PASSWORD | the `dbpass` | `ncdbpass` | ✓ | No | `config.php` | See `MYSQL_DATABASE` | | +| MYSQL_HOST | the `dbhost` | `db` or `localhost:/usr/local/run/mysql.sock` | ✓ | No | `config.php` | See `MYSQL_DATABASE` | | +| POSTGRES_DB | Use PostgreSQL as the database and use as the `dbname` | `ncdb` | ✓ | No | `config.php` | Ignored unless all `POSTGRES_*` variables are specified | Injected via `entrypoint.sh` to `occ maintenance:install` (when specified with `NEXTCLOUD_*`) otherwise via `autoconfig.php` | +| POSTGRES_USER | the `dbuser` | `ncdbuser` | ✓ | No | `config.php` | See `POSTGRES_DB` | | +| POSTGRES_PASSWORD | the `dbpass` | `ncdbpass` | ✓ | No | `config.php` | See `POSTGRES_DB` | | +| POSTGRES_HOST | the `dbhost` | `db` | ✓ | No | `config.php` | See `POSTGRES_DB` | | +| NEXTCLOUD_ADMIN_USER | the initial Nextcloud admin user | `ncadmin` | ✓ | No | Nextcloud Super `admin` group | Ignored unless `NEXTCLOUD_ADMIN_PASSWORD` + preferred database variables are specified | Injected via `entrypoint.sh` to `occ maintenance:install` | | NEXTCLOUD_ADMIN_PASSWORD | NEXTCLOUD_DATA_DIR | NEXTCLOUD_TRUSTED_DOMAINS @@ -152,6 +169,15 @@ All variables below, at a minimum, work at installation time. Some may be used a | APACHE_DISABLE_REWRITE_IP | OVERWRITE* + +[4] Can be specified as a Docker secret or pulled from a file available from within the container. See [#docker-secrets](Docker Secrets). + +[5] No = Installation only (i.e. cannot be modified post-installation via variable). + + + +--- + Set your database connection via auto configuration using the following environment variables. You must specify all of the environment variables for a given database or the database environment variables defaults to SQLITE. ONLY use one database type! __SQLite__: From 54bd7d5d30c9229cfbc7890483df7a061210d599 Mon Sep 17 00:00:00 2001 From: Josh <josh.t.richards@gmail.com> Date: Sat, 1 Jun 2024 11:06:54 -0400 Subject: [PATCH 4/4] Update README.md Signed-off-by: Josh <josh.t.richards@gmail.com> --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 881e6d7f9..5353af9ca 100644 --- a/README.md +++ b/README.md @@ -141,20 +141,20 @@ All variables below, at a minimum, work at installation time. Some may be used a - `autoconfig.php` to Server installer -| Environment Variable | Description | Example | Secret[4] | Post-install[5] | Visibility | Notes | Method | -| :------------------: | :---------: | :-----: | :-----: | :-------------: | :--------: | ----- | ------ | -| SQLITE_DATABASE | Use SQLite as the database and use as the `dbname` | `ncdb` | No | No | `config.php` | Suitable to testing and minimal-instances only | Injected via `entrypoint.sh` to `occ maintenance:install` (when specified with `NEXTCLOUD_*`) otherwise via `autoconfig.php` | -| MYSQL_DATABASE | Use MySQL/MariaDB as the database and use as the `dbname` | `ncdb` | ✓ | No | `config.php` | Ignored unless all `MYSQL_*` variables are specified | Injected via `entrypoint.sh` to `occ maintenance:install` (when specified with `NEXTCLOUD_*`) otherwise via `autoconfig.php` | -| MYSQL_USER | the `dbuser` | `ncdbuser` | ✓ | No | `config.php` | See `MYSQL_DATABASE` | | -| MYSQL_PASSWORD | the `dbpass` | `ncdbpass` | ✓ | No | `config.php` | See `MYSQL_DATABASE` | | -| MYSQL_HOST | the `dbhost` | `db` or `localhost:/usr/local/run/mysql.sock` | ✓ | No | `config.php` | See `MYSQL_DATABASE` | | -| POSTGRES_DB | Use PostgreSQL as the database and use as the `dbname` | `ncdb` | ✓ | No | `config.php` | Ignored unless all `POSTGRES_*` variables are specified | Injected via `entrypoint.sh` to `occ maintenance:install` (when specified with `NEXTCLOUD_*`) otherwise via `autoconfig.php` | -| POSTGRES_USER | the `dbuser` | `ncdbuser` | ✓ | No | `config.php` | See `POSTGRES_DB` | | -| POSTGRES_PASSWORD | the `dbpass` | `ncdbpass` | ✓ | No | `config.php` | See `POSTGRES_DB` | | -| POSTGRES_HOST | the `dbhost` | `db` | ✓ | No | `config.php` | See `POSTGRES_DB` | | -| NEXTCLOUD_ADMIN_USER | the initial Nextcloud admin user | `ncadmin` | ✓ | No | Nextcloud Super `admin` group | Ignored unless `NEXTCLOUD_ADMIN_PASSWORD` + preferred database variables are specified | Injected via `entrypoint.sh` to `occ maintenance:install` | -| NEXTCLOUD_ADMIN_PASSWORD -| NEXTCLOUD_DATA_DIR +| Environment Variable | Description | Example | Default | Secret[4] | Post-install[5] | Visibility | Notes | Method | +| :------------------: | :---------: | :-----: | :------ | :-------: | :-------------: | :--------: | ----- | ------ | +| SQLITE_DATABASE | Use SQLite as the database and use as the `dbname` | `ncdb` | Yes | No | No | `config.php` | Suitable to testing and minimal-instances only | Injected via `entrypoint.sh` to `occ maintenance:install` (when specified with `NEXTCLOUD_ADMIN_*`) otherwise via `autoconfig.php` | +| MYSQL_DATABASE | Use MySQL/MariaDB as the database and use as the `dbname` | `ncdb` | n/a | ✓ | No | `config.php` | Ignored unless all `MYSQL_*` variables are specified | Injected via `entrypoint.sh` to `occ maintenance:install` (when specified with `NEXTCLOUD_ADMIN_*`) otherwise via `autoconfig.php` | +| MYSQL_USER | the `dbuser` | `ncdbuser` | n/a | ✓ | No | `config.php` | See `MYSQL_DATABASE` | | +| MYSQL_PASSWORD | the `dbpass` | `ncdbpass` | n/a | ✓ | No | `config.php` | See `MYSQL_DATABASE` | | +| MYSQL_HOST | the `dbhost` | `db` or `localhost:/usr/local/run/mysql.sock` | n/a | ✓ | No | `config.php` | See `MYSQL_DATABASE` | | +| POSTGRES_DB | Use PostgreSQL as the database and use as the `dbname` | `ncdb` | n/a | ✓ | No | `config.php` | Ignored unless all `POSTGRES_*` variables are specified | Injected via `entrypoint.sh` to `occ maintenance:install` (when specified with `NEXTCLOUD_ADMIN_*`) otherwise via `autoconfig.php` | +| POSTGRES_USER | the `dbuser` | `ncdbuser` | n/a | ✓ | No | `config.php` | See `POSTGRES_DB` | | +| POSTGRES_PASSWORD | the `dbpass` | `ncdbpass` | n/a | ✓ | No | `config.php` | See `POSTGRES_DB` | | +| POSTGRES_HOST | the `dbhost` | `db` | n/a | ✓ | No | `config.php` | See `POSTGRES_DB` | | +| NEXTCLOUD_ADMIN_USER | the initial Nextcloud admin user | `ncadmin` | n/a | ✓ | No | Nextcloud Super `admin` group | Ignored unless `NEXTCLOUD_ADMIN_PASSWORD` + preferred database variables are specified | Injected via `entrypoint.sh` to `occ maintenance:install` | +| NEXTCLOUD_ADMIN_PASSWORD | the initial Nextcloud admin password | `ncadminpass` | n/a | ✓ | No | Nextcloud Super `admin` group | Ignored unless `NEXTCLOUD_ADMIN_USER` + preferred database variables are specified | Injected via `entrypoint.sh` to `occ maintenance:install` | +| NEXTCLOUD_DATA_DIR | data directory where nextcloud stores all files from the users | `/var/www/html/data` | `/var/www/html/data` | No | No | `config.php` | | Injected via `entrypoint.sh` to `occ maintenance:install` (when specified with `NEXTCLOUD_ADMIN_*` + db parameters; otherwise via `autoconfig.php` | | NEXTCLOUD_TRUSTED_DOMAINS | TRUSTED_PROXIES | NEXTCLOUD_UPDATE