<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="machine-info">
  <refentryinfo>
    <title>machine-info</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>machine-info</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>machine-info</refname>
    <refpurpose>Local machine information file</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>/etc/machine-info</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>The <filename>/etc/machine-info</filename> file contains
    machine metadata.</para>

    <para>The basic file format of <filename>machine-info</filename>
    is a newline-separated list of environment-like shell-compatible
    variable assignments. It is possible to source the configuration
    from shell scripts, however, beyond mere variable assignments no
    shell features are supported, allowing applications to read the
    file without implementing a shell compatible execution
    engine.</para>

    <para><filename>/etc/machine-info</filename> contains metadata about the machine that is set by the user
    or administrator. The settings configured here have the highest precedence. When not set, appropriate
    values may be determined automatically, based on the information about the hardware or other
    configuration files. It is thus completely fine for this file to not be present.</para>

    <para>You may use
    <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    to change the settings of this file from the command line.</para>
  </refsect1>

  <refsect1>
    <title>Options</title>

    <para>The following machine metadata parameters may be set using
    <filename>/etc/machine-info</filename>:</para>

    <variablelist class='environment-variables'>

      <varlistentry>
        <term><varname>PRETTY_HOSTNAME=</varname></term>

        <listitem><para>A pretty human-readable UTF-8 machine
        identifier string. This should contain a name like
        <literal>Lennart's Laptop</literal> which is useful to present
        to the user and does not suffer by the syntax limitations of
        internet domain names. If possible, the internet hostname as
        configured in <filename>/etc/hostname</filename> should be
        kept similar to this one. Example: if this value is
        <literal>Lennart's Computer</literal> an Internet hostname of
        <literal>lennarts-computer</literal> might be a good choice.
        If this parameter is not set, an application should fall back
        to the Internet hostname for presentation
        purposes.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>ICON_NAME=</varname></term>

        <listitem><para>An icon identifying this machine according to
        the <ulink
        url="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">XDG
        Icon Naming Specification</ulink>. If this parameter is not
        set, an application should fall back to
        <literal>computer</literal> or a similar icon
        name.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>CHASSIS=</varname></term>

        <listitem><para>The chassis type. Currently, the following
        chassis types are defined:
        <literal>desktop</literal>,
        <literal>laptop</literal>,
        <literal>convertible</literal>,
        <literal>server</literal>,
        <literal>tablet</literal>,
        <literal>handset</literal>,
        <literal>watch</literal>, and
        <literal>embedded</literal>,
        as well as the special chassis types
        <literal>vm</literal> and
        <literal>container</literal> for
        virtualized systems that lack an immediate physical chassis.</para>

        <para>Note that most systems allow detection of the chassis type automatically (based on firmware
        information or suchlike). This setting should only be used to override a misdetection or to manually
        configure the chassis type where automatic detection is not available.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>DEPLOYMENT=</varname></term>

        <listitem><para>Describes the system deployment environment.
        One of the following is suggested:
        <literal>development</literal>,
        <literal>integration</literal>,
        <literal>staging</literal>,
        <literal>production</literal>.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>LOCATION=</varname></term>

        <listitem><para>Describes the system location if applicable
        and known. Takes a human-friendly, free-form string. This may
        be as generic as <literal>Berlin, Germany</literal> or as
        specific as <literal>Left Rack, 2nd Shelf</literal>.
        </para></listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Example</title>

    <programlisting>PRETTY_HOSTNAME="Lennart's Tablet"
ICON_NAME=computer-tablet
CHASSIS=tablet
DEPLOYMENT=production</programlisting>
  </refsect1>

  <refsect1>
      <title>See Also</title>
      <para>
        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
      </para>
  </refsect1>

</refentry>
