The Node.js installation in the NVM environment can be used by IDEs and other
developer tasks. The required developer packagaes are added to the file
./.nvm_packages and will be installed when Node.js is installed. Initial we
start with:
- eslint
Having a dedicated developer enviroment, provided by nvm makes it easy to
integrate Node.js packages into various IDEs. One example is shown in the
.dir-locals.el which is used by emacs.
[1] https://github.com/nvm-sh/nvm#default-global-packages-from-file-while-installing
[2] https://eslint.org
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Issue::
$ make clean node.env
...
CLEAN [NVM] drop .nvm/
...
INFO: install Node.js by NVM
...
Now using node v16.13.0 (npm v8.1.0)
...
INSTALL searx/static/themes/oscar/package.json
npm ERR! code ENOENT
npm ERR! syscall open
# Here now comes the issue, caused by the missing 'popd' ..
npm ERR! path SearXNG/.nvm/searx/static/themes/oscar/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open 'SearXNG/.nvm/searx/static/themes/oscar/package.json'
ERROR: node.env exit with error (254)
make: *** [Makefile:99: node.env] Error 254
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Issue was::
$ LANG=C make nvm.clean
INFO: NVM is not installed
make: *** [Makefile:99: nvm.clean] Error 42
Now::
$ LANG=C make nvm.clean
CLEAN [NVM] not installed
BTW: change info_msg to build_msg
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
* update from ionicons-npm to ionicons ver.5
* drop the webfont built by grunt for icons
* built icons.html template for inlining icons with jinja2 into html
* update icon to use mostly the outline version
* add icons to categories and do not display them on mobile to save space
* remove all legacy ion icon font files from simple theme
* icons.html is added in this commit since make statc.build.restore requires git to know the file already
* cleanup error-dialog
new bash function convert_if_newer() / usage::
convert_if_newer <origfile> <outfile> [<options>, ...]
convert_if_newer "path/to/origin.svg" "path/to/converted.png" -transparent white -resize 64x64
Run's ImageMagik' convert comand to generate <outfile> from <origfile>, if
<origfile> is newer than <outfile>. The command line is to convert is::
convert <origfile> [<options>, ...] <outfile>
PNG 'searx/static/themes/simple/img/favicon.png' has been created by::
$ make themes.simple
CONVERT searx/static/themes/simple/src/svg/searxng-wordmark.svg -transparent white -resize 64x64 searx/static/themes/simple/img/favicon.png
...
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
When golang is installed via a package manager the local version, which filtron
downloads, is ignored.
BTW: With the new go1.17.2 (cfea51f4), 'go get' is depricated::
go get: installing executables with 'go get' in module mode is deprecated.
Use 'go install pkg@version' instead.
For more information, see https://golang.org/doc/go-get-install-deprecation
or run 'go help get' or 'go help install'.
Reported-by: @tiekoetter https://github.com/searxng/searxng/pull/455#issuecomment-954918411
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
The settings template in utils/templates/etc/searx/settings.yml
does not include any replacements (shell environment variables).
BTW: utils/filtron.sh & utils/lib.sh
Add some more messages to installation procedures, to be more clear.
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
The first import of names from the searx package implies loading the
settings.yml. Before this is done, the enviroment variables must be unset to
not overwrite the values from the settings.yml
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit remove the need to update the brand for GIT_URL and GIT_BRANCH:
there are read from the git repository.
It is possible to call python -m searx.version freeze to freeze the current version.
Useful when the code is installed outside git (distro package, docker, etc...)
Do not merge this patch in master branch of SearXNG! This branch exists only
for testing the feature branch fix-searx.sh @return42.
This patch changes the buildenv to::
GIT_URL='https://github.com/return42/searxng'
GIT_BRANCH='fix-searx.sh'
SEARX_PORT='7777'
SEARX_BIND_ADDRESS='127.0.0.12'
To test installation procedure, clone feature branch (fix-searx.sh)::
$ cd ~/Downloads
$ git clone --branch fix-searx.sh https://github.com/return42/searxng searxng
$ cd searxng
$ ./utils/searx.sh install all
...
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
The filtron target is the SearXNG installation and the default of FILTRON_TARGET
is taken from the YAML configuration ('server.port' & 'server.bind_address').
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Some defaults in the settings.yml are taken from the environment.
By example;
The manage scripts sources the ./utils/brand.env and sets SEARX_PORT
environment. This enviroment *wins over* any settings in a YAML file.
Whe we run a::
make test.robot
The searx/settings_robot.yml is used, in this file the server settings are::
server:
port: 11111
bind_address: 127.0.0.1
To get in use of the 'port: 11111' we have to unset the SEARX_PORT environment
which was sourced before.
The function buildenv.unset_env() can be called in all use cases where the
enviroment from ./utils/brand.env is not wanted. ATM it unset the enviroment
variables::
unset GIT_URL
unset GIT_BRANCH
unset SEARX_URL
unset SEARX_PORT
unset SEARX_BIND_ADDRESS
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Not all settings from the 'brand:' section of the YAML files are needed in the
shell scripts. This patch reduce the variables in ./utils/brand.env to what is
needed. The following ('brand:' settings) can be removed from this file:
- ISSUE_URL
- DOCS_URL
- PUBLIC_INSTANCES
- WIKI_URL
Tasks running outside of an *installed instance*, need the following settings
from the YAML configuration:
- GIT_URL <--> brand.git_url
- GIT_BRANCH <--> brand.git_branch
- SEARX_URL <--> server.base_url (aka PUBLIC_URL)
- SEARX_PORT <--> server.port
- SEARX_BIND_ADDRESS <--> server.bind_address
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Inspect YAML setting <key> from SearXNG instance (${SEARX_SRC})::
utils/searx.sh inspect settings server.base_url
utils/lib_install.sh
should not log on stdout which is used for the output of function
prompt_installation_setting(). Turned build_msg (stdout) into
info_msg (stderr).
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This patch implements two new commands:
install dot-config :
- copy ./config.sh to ${SEARX_SRC}
- implemented in new function install_DOT_CONFIG
install init-src:
- sync files (SEARX_SRC_INIT_FILES) with ${SEARX_SRC}
- implemented in new function init_SEARX_SRC()
new functions: verify_continue_install() and prompt_installation_status()
These functions are used in installation procedures to get the status of the
installation procedure. The status is based on the existing function:
usage: install_searx_get_state
Prompts a string indicating the status of the installation procedure
missing-searx-clone:
There is no clone at ${SEARX_SRC}
missing-searx-pyenv:
There is no pyenv in ${SEARX_PYENV}
installer-modified:
There are files modified locally in the installer (clone),
see ${SEARX_SRC_INIT_FILES} description.
python-installed:
Scripts can be executed in instance's environment
- user: ${SERVICE_USER}
- pyenv: ${SEARX_PYENV}
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
In commit 94851790 we have centralized all SearXNG setups in the settings.yml
file:
94851790 [mod] move brand options from Makefile to settings.yml
This step has not yet been completed for the installation procedures! Since all
SearXNG setups are done in the settings.yml these environment variables needs to
be removed from the ./conf.sh file. Scripts and other tasks running outside of
an instance got the needed values from the ./utils/brand.env file.
By example: ATM the environment variables of the ./config.sh file are in
conflict with them from settings.yml:
- PUBLIC_URL --> {server:base_url}
- SEARX_INTERNAL_HTTP --> {server:bind_address}.{server:port}
- GIT_BRANCH --> {brand:GIT_URL}
These environment variable of a SearXNG instance and additional
- SEARX_SETTINGS_TEMPLATE
has been remove from the '.config.sh' file. With this patch, the main focus of
./conf.sh resists on environment variables needed for the installation of morty,
filtron software.
modified .config.sh:
- removed no longer supported variables (see above)
- add comment about: SearXNG setup in settings.yml
modified utils/searx.sh:
- SEARX_INTERNAL_HTTP no longer take from .config.sh
- SEARX_SETTINGS_PATH /etc/searx/settings.yml
- SEARX_SETTINGS_TEMPLATE obsolete
modified utils/lib_install.sh:
Initialize environment variables SEARX_PYENV, SEARX_SETTINGS_PATH and
PUBLIC_URL.
modified: utils/morty.sh
Add missing hint about SEARX_SETTINGS_PATH and move PUBLIC_URL to
utils/lib_install.sh
modified: utils/morty.sh
Move PUBLIC_URL to utils/lib_install.sh
Renamed utils/templates/etc/searx/use_default_settings.yml -> settings.yml
- removed option which can't be modified after installation
- add some comments with examples
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
modified docs/admin/engines/settings.rst
- Fix documentation and add section 'brand'.
- Add remarks about **buildenv** variables.
- Add remarks about settings from environment variables $SEARX_DEBUG,
$SEARX_PORT, $SEARX_BIND_ADDRESS and $SEARX_SECRET
modified docs/admin/installation-searx.rst & docs/build-templates/searx.rst
Fix template location /templates/etc/searx/settings.yml
modified docs/dev/makefile.rst
Add description of the 'make buildenv' target and describe
- we have all SearXNG setups are centralized in the settings.yml file
- why some tasks need a utils/brand.env (aka instance's buildenv)
modified manage
Settings file from repository's working tree are used by default and
ask user if a /etc/searx/settings.yml file exists.
modified searx/settings.yml
Add comments about when it is needed to run 'make buildenv'
modified searx/settings_defaults.py
Default for server:port is taken from enviroment variable SEARX_PORT.
modified utils/build_env.py
- Some defaults in the settings.yml are taken from the environment,
e.g. SEARX_BIND_ADDRESS (searx.settings_defaults.SHEMA). When the
'brand.env' file is created these enviroment variables should be
unset first.
- The CONTACT_URL enviroment is not needed in the utils/brand.env
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>