Filature
========

The platform of the SliTaz developers: threaded discussions and private
messages, a mail bridge, bug tracking fed by user reports and TazHelper,
Mercurial integration and public news. https://filature.slitaz.org/

One C99 binary, fil, setgid filature: run by lighttpd it is a CGI, run
from a shell it is the command line. SQLite holds the data. The pages
are plain HTML with no JavaScript: links, old browsers and phones are
first-class. A dev's identity is their Unix account on the server;
Filature has no password and no key of its own.

  fil login          a code to log in on the web, from a phone too
  fil threads        fil read 12, fil new Title, fil reply 12
  fil mail set ...   receive threads by mail and answer from the mail client
  fil reports        review user reports, fil accept 7 opens a bug
  fil bug take 3     work on bug 3; "fix #3" in a commit closes it
  fil news add ...   publish news (public page and Atom feed)
  fil help           every command

The full guide for users and devs is the /help page of the site.


Layout
------

  src/        fil: core and one mod_*.c per module
  sql/        schema migrations, embedded in the binary
  client/     fil (dev wrapper over ssh), filature-report and its GTK3 dialog
  hooks/      hg-changegroup (Mercurial hook), sample event hook
  web/        style.css, logo, favicon
  deploy/     install.sh, foyer.sh, Foyer config and lighttpd vhost
  packaging/  the wok receipt (filature, filature-client, filature-report)
  tests/      run.sh (the whole suite), vhost.sh (behind lighttpd), crypto.c
  doc/        DECISIONS.md (read first), HACKING.md (the code), AGENTS.md,
              mail-bridge.md


Build and test
--------------

  make                     needs sqlite-dev
  make -C client           the GTK3 dialog, needs gtk+3-dev
  sh tests/run.sh          as root in the SliTaz build chroot

After an install, "fil check" says what is right and what is not.

The tests create throwaway Unix accounts and install fil setgid in
/tmp: they check real UIDs, groups and the setgid bit, with no test
code in the binary. See doc/AGENTS.md.


License
-------

BSD, see LICENSE.
