diff options
| author | 2021-01-11 22:36:50 +0100 | |
|---|---|---|
| committer | 2021-01-11 22:36:50 +0100 | |
| commit | 8dfe2097992307b572b42647b53a76dd5d93aaa9 (patch) | |
| tree | 5c5cecd7437ee584cc540a98f5597196f74fa4de /cli | |
| parent | fd8258775643eb0d898679f210c00de07c79eadc (diff) | |
Possiblity to autoinstall in Docker Compose (#3353)
* Possiblity to autoinstall in Docker Compose
#fix https://github.com/FreshRSS/FreshRSS/issues/3349
It is simply calling our existing CLI: do-install.php and
create-user.php
https://github.com/FreshRSS/FreshRSS/tree/master/cli
FreshRSS will typically be ready a few seconds before the database, so
introduce a tolerance when the database is not available / up (yet) by
trying a few times to connect. Also useful to avoid service interruption
when DB service is restarted.
Example:
```yml
freshrss-app:
image: freshrss/freshrss
container_name:
freshrss-app
hostname: freshrss-app
restart: unless-stopped
ports:
- "8080:80"
depends_on:
- freshrss-db
volumes:
- data:/var/www/FreshRSS/data
-
extensions:/var/www/FreshRSS/extensions
environment:
CRON_MIN:
'*/20'
FRESHRSS_ENV: development
FRESHRSS_INSTALL: |-
--api_enabled
--base_url https://rss.example.net
--db-base freshrss
--db-host freshrss-db
--db-password
freshrss
--db-type pgsql
--db-user freshrss
--default_user admin
--language en
FRESHRSS_USER: |-
--api_password freshrss
--email user@example.net
--language en
--password freshrss
--user admin
TZ:
Europe/Paris
```
* Minor type f in find
* shellcheck
Diffstat (limited to 'cli')
| -rw-r--r-- | cli/_cli.php | 11 | ||||
| -rwxr-xr-x | cli/create-user.php | 4 | ||||
| -rwxr-xr-x | cli/do-install.php | 4 |
3 files changed, 11 insertions, 8 deletions
diff --git a/cli/_cli.php b/cli/_cli.php index dc7ee9d64..38eb55990 100644 --- a/cli/_cli.php +++ b/cli/_cli.php @@ -3,6 +3,7 @@ if (php_sapi_name() !== 'cli') { die('FreshRSS error: This PHP script may only be invoked from command line!'); } +const EXIT_CODE_ALREADY_EXISTS = 3; const REGEX_INPUT_OPTIONS = '/^--/'; const REGEX_PARAM_OPTIONS = '/:*$/'; @@ -16,9 +17,9 @@ Minz_Translate::init('en'); FreshRSS_Context::$isCli = true; -function fail($message) { +function fail($message, $exitCode=1) { fwrite(STDERR, $message . "\n"); - die(1); + die($exitCode); } function cliInitUser($username) { @@ -39,12 +40,14 @@ function cliInitUser($username) { } function accessRights() { - echo '• Remember to re-apply the appropriate access rights, such as:' , "\n", + echo 'ℹ️ Remember to re-apply the appropriate access rights, such as:', "\t", 'sudo chown -R :www-data . && sudo chmod -R g+r . && sudo chmod -R g+w ./data/', "\n"; } function done($ok = true) { - fwrite(STDERR, 'Result: ' . ($ok ? 'success' : 'fail') . "\n"); + if (!$ok) { + fwrite(STDERR, (empty($_SERVER['argv'][0]) ? 'Process' : basename($_SERVER['argv'][0])) . ' failed!' . "\n"); + } exit($ok ? 0 : 1); } diff --git a/cli/create-user.php b/cli/create-user.php index dd0c23175..f94a0aa7a 100755 --- a/cli/create-user.php +++ b/cli/create-user.php @@ -11,7 +11,7 @@ if (!FreshRSS_user_Controller::checkUsername($username)) { $usernames = listUsers(); if (preg_grep("/^$username$/i", $usernames)) { - fail('FreshRSS error: username already taken “' . $username . '”'); + fail('FreshRSS warning: username already exists “' . $username . '”', EXIT_CODE_ALREADY_EXISTS); } echo 'FreshRSS creating user “', $username, "”…\n"; @@ -38,7 +38,7 @@ if (!empty($options['api_password'])) { invalidateHttpCache(FreshRSS_Context::$system_conf->default_user); -echo '• Remember to refresh the feeds of the user: ', $username , "\n", +echo 'ℹ️ Remember to refresh the feeds of the user: ', $username , "\t", './cli/actualize-user.php --user ', $username, "\n"; accessRights(); diff --git a/cli/do-install.php b/cli/do-install.php index fd51003ab..258b5b688 100755 --- a/cli/do-install.php +++ b/cli/do-install.php @@ -3,7 +3,7 @@ require(__DIR__ . '/_cli.php'); if (!file_exists(DATA_PATH . '/do-install.txt')) { - fail('FreshRSS seems to be already installed! Please use `./cli/reconfigure.php` instead.'); + fail('FreshRSS seems to be already installed!' . "\n" . 'Please use `./cli/reconfigure.php` instead.', EXIT_CODE_ALREADY_EXISTS); } $params = array( @@ -107,7 +107,7 @@ if (!$ok) { fail('FreshRSS database error: ' . (empty($_SESSION['bd_error']) ? 'Unknown error' : $_SESSION['bd_error'])); } -echo '• Remember to create the default user: ', $config['default_user'] , "\n", +echo 'ℹ️ Remember to create the default user: ', $config['default_user'], "\t", './cli/create-user.php --user ', $config['default_user'], " --password 'password' --more-options\n"; accessRights(); |
