FreedomBox/doc/freedombox.xml
Sunil Mohan Adapa a39632e9c8
bin: Rename main binary from plinth to freedombox
- Rename manual page from plinth.1 to freedombox.1

Tests:

- Running 'make build install' and 'systemctl daemon-reload' and 'systemctl
restart plinth.service' works. Installing new app works.

- Spawning a new stable VM with the changes works. First wizard works.
Installing new app works.

- On a fresh Trixie machine, install freedombox. Then upgrade to a deb with
these changes. The service continues to work. Installing an app also works.
Binary is now /usr/bin/freedombox. /usr/bin/plinth works but it is a symlink to
/usr/bin/freedombox.

- Build a Debian package and install it on Trixie machine with freedombox
package installed. 'man plinth' works. 'man freedombox' works. Manual page
contents shows changes from 'plinth' to 'freedombox'. plinth.1.gz is a symlink
to freedombox.1.gz.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-28 07:40:56 -04:00

230 lines
8.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.docbook.org/xml/4.4/docbookx.dtd">
<!--
# SPDX-License-Identifier: AGPL-3.0-or-later
-->
<refentry>
<refmeta>
<refentrytitle><application>freedombox</application></refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="manual">FreedomBox</refmiscinfo>
<refmiscinfo class="version"> </refmiscinfo>
</refmeta>
<refnamediv>
<refname><application>freedombox</application></refname>
<refpurpose>
An inexpensive server at home.
</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>freedombox</command>
<arg><option>-h, </option><option>--help</option></arg>
<arg><option>--server_dir</option><arg choice="req">SERVER_DIR</arg></arg>
<arg><option>--develop</option></arg>
<arg><option>--diagnose</option></arg>
<arg>
<option>--setup</option>
<arg choice="opt" rep="repeat">application</arg>
</arg>
<arg>
<option>--setup-no-install</option>
<arg choice="opt" rep="repeat">application</arg>
</arg>
<arg>
<option>--list-dependencies</option>
<arg choice="opt" rep="repeat">application</arg>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
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.
</para>
<para>
FreedomBox Service (Plinth) has a web interface to administer its
functions. 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. FreedomBox allows
configuration of basic system parameters such as time zone, hostname and
automatic upgrade settings.
</para>
</refsect1>
<refsect1>
<title>Options</title>
<variablelist>
<varlistentry>
<term><option>--server_dir SERVER_DIR</option></term>
<listitem>
<para>
This the URL fragment under which FreedomBox will provide its services.
FreedomBox is shipped with a default value of
<filename>/freedombox</filename>. This means that FreedomBox will be
available as http://localhost:8000/freedombox by default.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--develop</option></term>
<listitem>
<para>
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 FreedomBox Service on modifications. Die if there is an
error during module initialization.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--diagnose</option></term>
<listitem>
<para>
If provided, FreedomBox loads modules, performs initialization
but does start the web server. Instead it runs diagnostic
tests on each module and exits.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--setup</option></term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--setup-no-install</option></term>
<listitem>
<para>
Same as <option>--setup</option> 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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--list-dependencies</option></term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--version</option></term>
<listitem>
<para>
Show the version of FreedomBox and exit.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Configuration</title>
<para>
FreedomBox Service reads various configuration options from the files
<filename>/usr/share/freedombox/freedombox.config</filename>,
<filename>/usr/share/freedombox/freedombox.config.d/*.config</filename>,
<filename>/etc/plinth/plinth.config</filename>,
<filename>/etc/plinth/plinth.config.d/*.config</filename>,
<filename>/etc/freedombox/freedombox.config</filename> and
<filename>/etc/freedombox/freedombox.config.d/*.config</filename> in that
order. Options in a file read later override options specified earlier.
<filename>/etc/plinth/</filename> locations are deprecated.
</para>
</refsect1>
<refsect1>
<title>Examples</title>
<example>
<title>Start FreedomBox Service with default options</title>
<synopsis>$ freedombox</synopsis>
<para>
Run FreedomBox Service as guided by configuration file.
</para>
</example>
<example>
<title>Run FreedomBox Service with different URL prefix</title>
<synopsis>$ freedombox --server_dir='/myurl'</synopsis>
<para>
Run FreedomBox with the '/myurl' prefix. Note that Apache forwards
requests to '/freedombox' by default, so /myurl is not accessible
outside of your FreedomBox without adapting the apache configuration.
</para>
</example>
<example>
<title>Run FreedomBox Service in development mode</title>
<synopsis>$ freedombox --develop</synopsis>
<para>
Run in development mode on the terminal. Enable auto-reloading and
more extensive debugging.
</para>
</example>
</refsect1>
<refsect1>
<title>Bugs</title>
<para>
See <ulink
url="https://salsa.debian.org/freedombox-team/freedombox/issues">FreedomBox
issue tracker</ulink> for a full list of known issues and TODO items.
</para>
</refsect1>
<refsect1>
<title>Author</title>
<para>
<author>
<firstname>FreedomBox Developers</firstname>
<contrib>Original author</contrib>
</author>
</para>
</refsect1>
</refentry>