Welcome to Flatconf

Flatconf is a system for software configuration. The idea behind it is to spread the editable variables on file system, to use it as a natural database.

So far, Flatconf 1.0 has been successfully integrated in:

Flatconf 1.0

The Flatconf project:

  • defines how a directory structure needs to be constructed to create a configuration system,
  • provides [source:/branches/flatconf-stable/src/lib libraries] to access and modify these structures, and
  • creates [source:/branches/flatconf-stable/src/fcc user interfaces] to change Flatconf configurations.

fcc - Flatconf Commandline Console

Flatconf has a C library and a handy CLI interface called 'fcc', which looks like that (Lintrack 2.0):

root@venus:~# fcc
Welcome to Flatconf CLI. Type "?" for help.
venus.lan fc> cd sys
venus.lan sys> ls

 [dir] disks      Disks
 [dir] ssl        Certificates (OpenSSL)
 [dir] time       Date and time
 [txt] hostname   Host name
       `venus.lan'
 [txt] hostip     Preferred host IP address
       `192.168.1.1'
 [txt] sysloc     System location
       `US, NYC, Street 2/3'
 [txt] sysmail    System administrator e-mail address
       `admin@somenetwork.net'
 [dir] modules    Kernel modules
 [fil] rc_local   Local startup script (rc.local)

venus.lan sys> ls / net if

Ethernet devices
 [dir] eth        Fast Ethernet devices
 [dir] ath        WiFi interfaces: Atheros
 [dir] bond       Interface bonding
 [dir] br         Ethernet bridges
PPP devices
 [dir] ppp        PPP interfaces
 [dir] pppoe      PPPoE interfaces [help]
Tunneling devices
 [dir] tun        IP tunnels
 [dir] openvpn    OpenVPN tunnels
 [dir] chilli     Chillispot

venus.lan sys>

Take a look at an introductory article to Lintrack 2.0 to see how a Flatconf-powered Linux distribution can be administered.

Flatconf 2.0

Flatconf 2.0 is a work in progress aiming at making it simpler to create, maintain and use Flatconf-based configuration systems.

Standard

  1. Flatconf 2.0
    1. Main differences since 1.0
    2. Flatconf and it's naming conventions
    3. Variable properties
      1. Properties related to variable values
      2. User-editable variable lists
      3. Presentation layer
      4. Variable dependencies
      5. Scripts
      6. Upgrade process
  2. General ideas applicable to Flatconf 2.0
    1. Flatconf Markup Language (FCML)
    2. Configuration versioning

User interfaces

  1. Flatconf Commandline Console (fcc) improvements