File: packaging.md

package info (click to toggle)
soju 0.10.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,016 kB
  • sloc: sql: 243; sh: 55; makefile: 49; python: 32
file content (38 lines) | stat: -rw-r--r-- 1,279 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Packaging soju

## Building

Using `make` is recommended for building. The `GOFLAGS` variable can be used to
customize flags passed to Go. In particular, `GOFLAGS="-tags=libsqlite3"` can
be used to link to the system's libsqlite3.

The `Makefile` will configure the binary with the default locations for the
config file and the admin Unix socket. These can be customized via the
`SYSCONFDIR` and `RUNDIR` variables.

## Default configuration file

`make install` will set up a default configuration file which:

- Uses a SQLite3 database in `/var/lib/soju/main.db`.
- Enables the admin Unix socket (required for `sojuctl`).

The default configuration file's template is stored in `config.in`.

## Binding to privileged ports

soju might need to bind to privileged ports: the built-in identd will need to
listen on port 113. On Linux, unless your service manager provides a way to
give extra capabilities to soju, the `CAP_NET_BIND_SERVICE` capability can be
assigned to the soju executable:

    setcap 'cap_net_bind_service=+ep' soju

## Service manager integration

soju is designed to be run as a system-wide service under a separate user
account.

SIGHUP can be sent to soju to reload the configuration file.

A template for systemd is available in `contrib/soju.service`.