Blame


1 8d1b399b 2021-07-22 op # kamid -- 9p file server daemon
2 8d1b399b 2021-07-22 op
3 6ddbfa0c 2021-08-04 op kamid is a FREE, easy-to-use and portable implementation of a 9p file
4 6ddbfa0c 2021-08-04 op server daemon for UNIX-like systems.
5 8d1b399b 2021-07-22 op
6 7ede6c1f 2022-10-07 op It includes the kamid(8) daemon, a control utility kamictl(8), the
7 7ede6c1f 2022-10-07 op kamiftp(1) 9P CLI client and the TLS proxy kamiproxy(1).
8 8d1b399b 2021-07-22 op
9 7ede6c1f 2022-10-07 op
10 8d1b399b 2021-07-22 op ## Building
11 8d1b399b 2021-07-22 op
12 bb2b5c65 2022-01-10 op When building from a release tarball:
13 8d1b399b 2021-07-22 op
14 bb2b5c65 2022-01-10 op $ ./configure
15 9941dc2e 2022-01-04 op $ make
16 bb2b5c65 2022-01-10 op # make install # eventually
17 8d1b399b 2021-07-22 op
18 bb2b5c65 2022-01-10 op to build from a git checkout:
19 8d1b399b 2021-07-22 op
20 bb2b5c65 2022-01-10 op $ ./autogen.sh
21 bb2b5c65 2022-01-10 op $ ./configure
22 bb2b5c65 2022-01-10 op $ make
23 8d1b399b 2021-07-22 op
24 bb2b5c65 2022-01-10 op
25 d06671b5 2021-07-22 op ## Usage
26 d06671b5 2021-07-22 op
27 3b1814ed 2022-01-09 op In order to run, the `_kamid` user must exists, with `/var/empty` as
28 3b1814ed 2022-01-09 op home directory. A valid configuration file `/etc/kamid.conf` is also
29 3b1814ed 2022-01-09 op needed. kamid must be started with root privileges.
30 d06671b5 2021-07-22 op
31 647db0bb 2021-07-22 op A sample configuration file:
32 d06671b5 2021-07-22 op
33 647db0bb 2021-07-22 op ```
34 3b1814ed 2022-01-09 op # /etc/kamid.conf
35 1ad6dc42 2021-12-15 op pki localhost cert "/etc/ssl/localhost.crt"
36 1ad6dc42 2021-12-15 op pki localhost key "/etc/ssl/private/localhost.key"
37 647db0bb 2021-07-22 op
38 647db0bb 2021-07-22 op table users { "SHA256:..." => "op" }
39 647db0bb 2021-07-22 op
40 afb31195 2021-08-04 op listen on localhost port 1337 tls pki localhost auth <users>
41 647db0bb 2021-07-22 op ```
42 647db0bb 2021-07-22 op
43 647db0bb 2021-07-22 op
44 ab513264 2022-06-11 op ## Contributing
45 ab513264 2022-06-11 op
46 ab513264 2022-06-11 op Every form of contribution is well accepted! Just send an email or
47 ab513264 2022-06-11 op open a pull request (either on Codeberg or GitHub.)
48 ab513264 2022-06-11 op
49 ab513264 2022-06-11 op Don't know where to start? Take a look at the [TODO](./TODO) file!
50 ab513264 2022-06-11 op
51 ab513264 2022-06-11 op
52 ab513264 2022-06-11 op ## Porting
53 ab513264 2022-06-11 op
54 ab513264 2022-06-11 op kamid is developed primarly on OpenBSD, but it's known to work on
55 ab513264 2022-06-11 op Debian, Devuan and NixOS.
56 ab513264 2022-06-11 op
57 dfd24783 2022-12-21 op Have you ported / compiled kamid on other systems? Cool! I'd be happy
58 ab513264 2022-06-11 op to hear about it! I'm particularly interested in the difficulties in
59 ab513264 2022-06-11 op doing so to ease the portability.
60 ab513264 2022-06-11 op
61 ab513264 2022-06-11 op
62 6ddbfa0c 2021-08-04 op ## Testing
63 6ddbfa0c 2021-08-04 op
64 bb2b5c65 2022-01-10 op The regression suite uses sudo (or doas) because it needs root
65 bb2b5c65 2022-01-10 op privileges for certain operations. To run the test suite:
66 6ddbfa0c 2021-08-04 op
67 bb2b5c65 2022-01-10 op $ make test
68 6ddbfa0c 2021-08-04 op
69 bb2b5c65 2022-01-10 op The regression are written using a custom DSL, ninepscript.
70 a98552e5 2021-08-07 op `contrib/9ps-mode.el` is the major mode for Emacs.
71 a98552e5 2021-08-07 op
72 d74b9ff1 2021-12-21 op There's another regression suite written in common lisp in
73 bb2b5c65 2022-01-10 op `regress/lisp/9p-test`; it depends on other lisp libraries available
74 bb2b5c65 2022-01-10 op through quicklisp. Make sure to have sbcl and the relevant lisp
75 bb2b5c65 2022-01-10 op dependencies installed, then run
76 a98552e5 2021-08-07 op
77 bb2b5c65 2022-01-10 op $ make HAVE_LISP=yes test
78 4aa7ed03 2021-12-18 op
79 4aa7ed03 2021-12-18 op
80 8d1b399b 2021-07-22 op ## License
81 8d1b399b 2021-07-22 op
82 8d1b399b 2021-07-22 op kamid is released under a BSD-like license. The bulk of the code is
83 8d1b399b 2021-07-22 op under the ISC license, but some file are BSD2 or BSD3.
84 a2c73237 2021-12-18 op
85 a2c73237 2021-12-18 op `regress/lisp/9p-test/` (the common lisp regression suite) is released
86 a2c73237 2021-12-18 op under the GNU GPLv3+.