plinth

1 FreedomBox

plinth

a web front end for administering FreedomBox

          plinth
          -h, --help
          --server_dirSERVER_DIR
          --develop
          --diagnose

            --setup
            application

            --setup-no-install
            application

            --list-dependencies
            application

## Description

FreedomBox is a community project to develop, design and promote personal servers running free software for private, personal communications. It is a networking appliance designed to allow interfacing with the rest of the Internet under conditions of protected privacy and data security. It hosts applications such as blog, wiki, website, social network, email, web proxy and a Tor relay on a device that can replace a wireless router so that data stays with the users.

Plinth is a web interface to administer the functions of the FreedomBox. It is extensible and is made of modules. Each module provides a simplified user interface to control the underlying functionality of a specific application of FreedomBox. As FreedomBox can act as a wireless router, it is possible to configure networking from Plinth. Plinth allows configuration of basic system parameters such as time zone, hostname and automatic upgrade settings.

## Options

`--server_dir SERVER_DIR`

- This the URL fragment under which Plinth will provide its services. Plinth is shipped with a default value of `/plinth`. This means that Plinth will be available as http://localhost:8000/plinth by default.

`--develop`

- Enable development mode. Use develop.config and action scripts from the current working directory. Enables extra debug messages, enable Django debug mode for detailed error pages and turn off Django security features. Monitor source files for changes and restart Plinth on modifications. Die if there is an error during module initialization.

`--diagnose`

- If provided, Plinth loads modules, performs initialization but does start the web server. Instead it runs diagnostic tests on each module and exits.

`--setup`

- Perform application setup operations and exit. Setting up an application involves installing packages required for that application and performing pre and post install configuration setups. If no application is provided, setup all applications which describe themselves as essential. If a list of applications is provided, setup only those applications.

`--setup-no-install`

- Same as `--setup` but no new Debian packages are installed during setup. When a package needs to be installed, a check is done to make sure the package is already installed. If the package is already installed, no upgrade is performed and setup skips this step and proceeds to next operation. If the package is not installed an error is raised and setup process halts. This is option is useful for running setup during post installation script of a Debian package. Essential packages are added as dependencies for the Debian package and then setup process is executed from post install script of the Debian package.

`--list-dependencies`

- For the list of provided applications, print the list of packages needed by the applications. If no application is provided as additional argument, then print list of packages needed by all essential applications. If '*' is provided in the list of the applications, then list of packages needed by all applications will be printed. Although, packages are installed when the application is first accessed, this list will be useful for adding list of dependencies to a Debian package and to get a list of all interesting packages. Other output may be printed on stderr and should be ignored.

## Configuration

Plinth reads various configuration options from the files `/usr/share/freedombox/freedombox.config`, `/usr/share/freedombox/freedombox.config.d/*.config`, `/etc/plinth/plinth.config`, `/etc/plinth/plinth.config.d/*.config`, `/etc/freedombox/freedombox.config` and `/etc/freedombox/freedombox.config.d/*.config` in that order. Options in a file read later override options specified earlier. `/etc/plinth/` locations are deprecated.

## Examples

### Start Plinth with default options

    $ plinth

Run Plinth as guided by configuration file.

### Run Plinth with different URL prefix

    $ plinth --server_dir='/myurl'

Run Plinth with the '/myurl' prefix. Note that Apache forwards requests to '/plinth' by default, so /myurl is not accessible outside of your FreedomBox without adapting the apache configuration.

### Run Plinth in development mode

    $ plinth --develop

Run in development mode on the terminal. Enable auto-reloading and more extensive debugging.

## Bugs

See Plinth issue tracker for a full list of known issues and TODO items.

## Author

Plinth Developers Original author