The getlino configure
command¶
- getlino configure¶
Configures your machine as a Lino server. This is required before you
can run getlino startsite
.
If you run getlino configure
as root (using sudo
), it will
potentially also install system packages and create or overwrite system-wide
configuration files. Otherwise it will install Lino into a virtualenv.
If you want Lino to install into an existing virtualenv, you should
activate it before running getlino configure
in order to use it as your
--shared-env
.
getlino configure
(unless invoked with –batch) asks a lot of
questions, one question for each server configuration option. Read the docs
below for more explanations. You can answer ENTER to each question if you don’t
care.
getlino configure
creates or reads and updates a configuration file where
it stores your answers. Depending on whether you are root, the configuration
file will be either /etc/getlino/getlino.conf
or
~/.getlino.conf
.
If you specify --batch
, every option gets its default value, which you
may override by specifying command-line arguments. Use this option only when you
know what you want (e.g. in a Dockerfile).
After running getlino configure
as root, you may want to run it once more
without being root, because only then it will also write a
.bash_aliases
file in your home directory.
Run-time behaviour options:
- --web-server¶
Specify a value for
web_server
.
- --batch¶
Run in batch mode, i.e. without asking any questions. Assume yes to all questions.
Server configuration options
Full path to a shared virtualenv to be used by all new sites.
If this is empty, every new site will get its own virgin environment.
When not running as root, the default value is taken from the
VIRTUAL_ENV
environment value (all your sites will use a same environment).When configure is running as root, the default value is an empty string (you usually don’t want a shared virtualenv on a production site). Except when
--clone
is also given. In this case getlino stores the currentVIRTUAL_ENV
environment value as default value (or raises an error when no virtualenv is activated).
- --repos-base¶
An optional base directory for all code repositories on this server. If this is given, getlino will use this for
getlino configure --clone
orgetlino startsite --dev-repos
.If this is empty, repositories will be stored in a directory named
--repos-link
below the virtualenv dir.
- --clone¶
Clone all known repositories to your
--repos-base
and install them into your--shared-env
. Used when configuring a developer environment or a demo server.
- --devtools¶
Whether to install development tools (used to build docs and run tests).
- --log-base¶
The root directory for Lino’s log files on this server. Each new site will get its entry below that directory.
- --backups-base¶
The root directory for backups on this server. Each new site will get its entry below that directory. Used e.g. by
make_snapshot.sh
.
- --sites-base¶
The root directory for sites on this server.
New sites will get created below that directory (with another level named by
--local-prefix
).This will be added to the
PYTHONPATH
of every Lino process (namely inmanage.py
andwsgi.py
).The
PYTHONPATH
is needed because thesettings.py
of a site saysfrom lino_local.settings import *
, and themanage.py
setsDJANGO_SETTINGS_MODULE
to'lino_local.mysite1.settings'
.
- --local-prefix¶
Prefix for local server-wide importable packages.
- --env-link¶
Relative directory or symbolic link to the virtualenv.
- --repos-link¶
Relative directory or symbolic link to repositories.
- --server-domain¶
Fully qualified domain name of this server. Default is ‘localhost’.
Default settings for new sites
- --front-end¶
Which front end (
default_ui
) to use on new sites.
- --languages¶
Default value for
languages
of new sites.
- --linod¶
Whether new sites should have a
linod.sh
script which runs thelinod
command.When running as root, this will also add a
supervisor
configuration file which runs thelinod
command automatically.
- --db-engine¶
Default value is ‘mysql’ when running as root or ‘sqlite3’ otherwise.
- --db-user¶
A shared database username to use for all sites on this server.
If this is set, you must also set
--db-password
.Used during development and testing when you prefer to have a single database user for all databases. For security reasons these options should not be used on a production server.
- --db-port¶
The port to use for connecting to the database server when
--db-engine
ismysql
orpostgresql
.
Server features
- --appy¶
Whether this server provides LibreOffice service needed by sites that use
lino_xl.lib.appypod
.
- --redis¶
Whether this server provides redis service needed by sites that use
lino.modlib.notify
.
- --weasyprint¶
Whether to install system packages needed by
lino.modlib.weasyprint
.
- --https¶
Whether this server provides secure http.
This option will cause getlino to install certbot.
When you use this option, you must have your domain name (
--server-domain
) registered so that it points to the server. If your server has a dynamic IP address, you may use some dynamic DNS service like FreedomBox or dynu.com.
- --webdav¶
Whether new sites should have webdav.
- --ldap¶
Whether this server provides an LDAP service. Not tested.
Tested section¶
>>> from atelier.sheller import Sheller
>>> shell = Sheller()
>>> shell("getlino configure --help")
...
Usage: getlino configure [OPTIONS]
Configure this machine to become a Lino production server.
Options:
--batch / --no-batch Whether to run in batch mode, i.e. without
asking any questions. Don't use this on a
machine that is already being used.
--sites-base TEXT Base directory for Lino sites on this server
--local-prefix TEXT Prefix for local server-wide importable
packages
--shared-env TEXT Root directory of your shared virtualenv
--repos-base TEXT Base directory for shared code repositories
--clone / --no-clone Clone all contributor repositories and
install them to the shared-env
--webdav / --no-webdav Whether to enable webdav on new sites
--backups-base TEXT Base directory for backups
--log-base TEXT Base directory for log files
--usergroup TEXT User group for files to be shared with the
web server
--supervisor-dir TEXT Directory for supervisor config files
--env-link TEXT link to virtualenv (relative to project dir)
--repos-link TEXT link to code repositories (relative to
virtualenv)
--appy / --no-appy Whether this server provides appypod and
LibreOffice
--weasyprint / --no-weasyprint Whether this server provides weasyprint
--redis / --no-redis Whether this server provides redis
--devtools / --no-devtools Whether to install development tools (build
docs and run tests)
--server-domain TEXT Domain name of this server
--https / --no-https Whether this server uses secure http
--ldap / --no-ldap Whether this server works as an LDAP server
--monit / --no-monit Whether this server uses monit
--web-server [nginx|apache|] Which web server to use here.
--db-engine [mysql|postgresql|sqlite3]
Default database engine for new sites.
--db-port TEXT Default database port to use for new sites.
--db-host TEXT Default database host name for new sites.
--db-user TEXT Default database user name for new sites.
Leave empty to use the project name.
--db-password TEXT Default database password for new sites.
Leave empty to generate a secure password.
--admin-name TEXT The full name of the server administrator
--admin-email TEXT The email address of the server
administrator
--time-zone TEXT The TIME_ZONE to set on new sites
--linod / --no-linod Whether new sites use linod
--languages TEXT The languages to set on new sites
--front-end [lino.modlib.extjs|lino_react.react|lino_openui5.openui5]
The front end to use on new sites
--help Show this message and exit.