Merge branch 'cargo-deb-packaging-update' into 'master'
Update cargo-deb packaging for recent changes See merge request famedly/conduit!61next
commit
acfd0aef27
|
@ -97,13 +97,12 @@ instead of a server that has high scalability."""
|
||||||
section = "net"
|
section = "net"
|
||||||
priority = "optional"
|
priority = "optional"
|
||||||
assets = [
|
assets = [
|
||||||
["debian/env.local", "etc/matrix-conduit/local", "644"],
|
|
||||||
["debian/README.Debian", "usr/share/doc/matrix-conduit/", "644"],
|
["debian/README.Debian", "usr/share/doc/matrix-conduit/", "644"],
|
||||||
["README.md", "usr/share/doc/matrix-conduit/", "644"],
|
["README.md", "usr/share/doc/matrix-conduit/", "644"],
|
||||||
["target/release/conduit", "usr/sbin/matrix-conduit", "755"],
|
["target/release/conduit", "usr/sbin/matrix-conduit", "755"],
|
||||||
]
|
]
|
||||||
conf-files = [
|
conf-files = [
|
||||||
"/etc/matrix-conduit/local"
|
"/etc/matrix-conduit/conduit.toml"
|
||||||
]
|
]
|
||||||
maintainer-scripts = "debian/"
|
maintainer-scripts = "debian/"
|
||||||
systemd-units = { unit-name = "matrix-conduit" }
|
systemd-units = { unit-name = "matrix-conduit" }
|
||||||
|
|
20
README.md
20
README.md
|
@ -52,6 +52,26 @@ Check out the [Conduit 1.0 Release Milestone](https://gitlab.com/famedly/conduit
|
||||||
Download or compile a Conduit binary, set up the config and call it from somewhere like a systemd script. [Read
|
Download or compile a Conduit binary, set up the config and call it from somewhere like a systemd script. [Read
|
||||||
more](DEPLOY.md)
|
more](DEPLOY.md)
|
||||||
|
|
||||||
|
##### Deloy using a Debian package
|
||||||
|
|
||||||
|
You need to have the `deb` helper command installed that creates Debian packages from Cargo projects (see [cargo-deb](https://github.com/mmstick/cargo-deb/) for more info):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ cargo install cargo-deb
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, you can create and install a Debian package at a whim:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ cargo deb
|
||||||
|
$ dpkg -i target/debian/matrix-conduit_0.1.0_amd64.deb
|
||||||
|
```
|
||||||
|
|
||||||
|
This will build, package, install, configure and start Conduit. [Read more](debian/README.Debian).
|
||||||
|
|
||||||
|
Note that `cargo deb` supports [cross-compilation](https://github.com/mmstick/cargo-deb/#cross-compilation) too!
|
||||||
|
Official Debian packages will follow once Conduit starts to have stable releases.
|
||||||
|
|
||||||
##### Deploy using Docker
|
##### Deploy using Docker
|
||||||
|
|
||||||
Pull and run the docker image with
|
Pull and run the docker image with
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
# YOU NEED TO EDIT THIS
|
# YOU NEED TO EDIT THIS
|
||||||
#server_name = "your.server.name"
|
#server_name = "your.server.name"
|
||||||
|
|
||||||
# This is the only directly where Conduit will save its data
|
# This is the only directory where Conduit will save its data
|
||||||
database_path = "/var/lib/conduit/conduit.db"
|
database_path = "/var/lib/conduit/conduit.db"
|
||||||
|
|
||||||
# The port Conduit will be running on. You need to set up a reverse proxy in
|
# The port Conduit will be running on. You need to set up a reverse proxy in
|
||||||
|
|
|
@ -4,25 +4,25 @@ Conduit for Debian
|
||||||
Configuration
|
Configuration
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
When installed, Debconf handles the configuration of the homeserver (host)name,
|
When installed, Debconf generates the configuration of the homeserver
|
||||||
the address and port it listens on. These configuration variables end up in
|
(host)name, the address and port it listens on. This configuration ends up in
|
||||||
/etc/matrix-conduit/debian.
|
/etc/matrix-conduit/conduit.toml.
|
||||||
|
|
||||||
You can tweak more detailed settings by uncommenting and setting the variables
|
You can tweak more detailed settings by uncommenting and setting the variables
|
||||||
in /etc/matrix-conduit/local. This involves settings such as the maximum file
|
in /etc/matrix-conduit/conduit.toml. This involves settings such as the maximum
|
||||||
size for download/upload, enabling federation, etc.
|
file size for download/upload, enabling federation, etc.
|
||||||
|
|
||||||
Running
|
Running
|
||||||
-------
|
-------
|
||||||
|
|
||||||
The package uses the matrix-conduit.service systemd unit file to start and
|
The package uses the matrix-conduit.service systemd unit file to start and
|
||||||
stop Conduit. It loads the configuration files mentioned above to set up the
|
stop Conduit. It loads the configuration file mentioned above to set up the
|
||||||
environment before running the server.
|
environment before running the server.
|
||||||
|
|
||||||
This package assumes by default that Conduit is placed behind a reverse proxy
|
This package assumes by default that Conduit will be placed behind a reverse
|
||||||
such as Apache or nginx. This default deployment entails just listening on
|
proxy such as Apache or nginx. This default deployment entails just listening
|
||||||
127.0.0.1 and the free port 14004 and is reachable via a client using the URL
|
on 127.0.0.1 and the free port 6167 and is reachable via a client using the URL
|
||||||
http://localhost:14004.
|
http://localhost:6167.
|
||||||
|
|
||||||
At a later stage this packaging may support also setting up TLS and running
|
At a later stage this packaging may support also setting up TLS and running
|
||||||
stand-alone. In this case, however, you need to set up some certificates and
|
stand-alone. In this case, however, you need to set up some certificates and
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
# Conduit homeserver local configuration
|
|
||||||
#
|
|
||||||
# Conduit is an application based on the Rocket web framework.
|
|
||||||
# Configuration of Conduit happens via Debconf (see the resulting config in
|
|
||||||
# `/etc/matrix-conduit/debian`) and optionally by uncommenting and tweaking the
|
|
||||||
# variables in this file below.
|
|
||||||
|
|
||||||
# The maximum size of a Matrix HTTP requests in bytes.
|
|
||||||
#
|
|
||||||
# This mostly affects the size of files that can be downloaded/uploaded.
|
|
||||||
# It defaults to 20971520 (20MB).
|
|
||||||
#ROCKET_MAX_REQUEST_SIZE=20971520
|
|
||||||
|
|
||||||
# Whether user registration is allowed.
|
|
||||||
#
|
|
||||||
# User registration is not disabled by default.
|
|
||||||
#ROCKET_REGISTRATION_DISABLED=false
|
|
||||||
|
|
||||||
# Whether encryption is enabled.
|
|
||||||
#
|
|
||||||
# (End-to-end) encryption is not disabled by default.
|
|
||||||
#ROCKET_ENCRYPTION_DISABLED=false
|
|
||||||
|
|
||||||
# Whether federation with other Matrix servers is enabled.
|
|
||||||
#
|
|
||||||
# Federation is not enabled by default; it is still experimental.
|
|
||||||
#ROCKET_FEDERATION_ENABLED=false
|
|
||||||
|
|
||||||
# The log level of the homeserver.
|
|
||||||
#
|
|
||||||
# The log level is "critical" by default.
|
|
||||||
# Allowed values are: "off", "normal", "debug", "critical"
|
|
||||||
#ROCKET_LOG="critical"
|
|
|
@ -34,10 +34,7 @@ SystemCallFilter=@system-service
|
||||||
SystemCallErrorNumber=EPERM
|
SystemCallErrorNumber=EPERM
|
||||||
StateDirectory=matrix-conduit
|
StateDirectory=matrix-conduit
|
||||||
|
|
||||||
Environment="ROCKET_ENV=production"
|
Environment="CONDUIT_CONFIG=/etc/matrix-conduit/conduit.toml"
|
||||||
Environment="ROCKET_DATABASE_PATH=/var/lib/matrix-conduit"
|
|
||||||
EnvironmentFile=/etc/matrix-conduit/debian
|
|
||||||
EnvironmentFile=/etc/matrix-conduit/local
|
|
||||||
|
|
||||||
ExecStart=/usr/sbin/matrix-conduit
|
ExecStart=/usr/sbin/matrix-conduit
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
|
@ -4,8 +4,8 @@ set -e
|
||||||
. /usr/share/debconf/confmodule
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
CONDUIT_CONFIG_PATH=/etc/matrix-conduit
|
CONDUIT_CONFIG_PATH=/etc/matrix-conduit
|
||||||
CONDUIT_CONFIG_FILE="$CONDUIT_CONFIG_PATH/debian"
|
CONDUIT_CONFIG_FILE="${CONDUIT_CONFIG_PATH}/conduit.toml"
|
||||||
CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit
|
CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit/conduit_db
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
configure)
|
configure)
|
||||||
|
@ -13,7 +13,7 @@ case "$1" in
|
||||||
if ! getent passwd _matrix-conduit > /dev/null ; then
|
if ! getent passwd _matrix-conduit > /dev/null ; then
|
||||||
echo 'Adding system user for the Conduit Matrix homeserver' 1>&2
|
echo 'Adding system user for the Conduit Matrix homeserver' 1>&2
|
||||||
adduser --system --group --quiet \
|
adduser --system --group --quiet \
|
||||||
--home $CONDUIT_DATABASE_PATH \
|
--home "$CONDUIT_DATABASE_PATH" \
|
||||||
--disabled-login \
|
--disabled-login \
|
||||||
--force-badname \
|
--force-badname \
|
||||||
_matrix-conduit
|
_matrix-conduit
|
||||||
|
@ -25,48 +25,60 @@ case "$1" in
|
||||||
chown _matrix-conduit "$CONDUIT_DATABASE_PATH"
|
chown _matrix-conduit "$CONDUIT_DATABASE_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -e "$CONDUIT_CONFIG_FILE" ]; then
|
||||||
# Write the debconf values in the config.
|
# Write the debconf values in the config.
|
||||||
db_get matrix-conduit/hostname
|
db_get matrix-conduit/hostname
|
||||||
ROCKET_SERVER_NAME="$RET"
|
CONDUIT_SERVER_NAME="$RET"
|
||||||
db_get matrix-conduit/address
|
db_get matrix-conduit/address
|
||||||
ROCKET_ADDRESS="$RET"
|
CONDUIT_ADDRESS="$RET"
|
||||||
db_get matrix-conduit/port
|
db_get matrix-conduit/port
|
||||||
ROCKET_PORT="$RET"
|
CONDUIT_PORT="$RET"
|
||||||
cat >"$CONDUIT_CONFIG_FILE" << EOF
|
mkdir -p "$CONDUIT_CONFIG_PATH"
|
||||||
# Conduit homeserver Debian configuration
|
cat > "$CONDUIT_CONFIG_FILE" << EOF
|
||||||
#
|
[global]
|
||||||
# Conduit is an application based on the Rocket web framework.
|
# The server_name is the name of this server. It is used as a suffix for user
|
||||||
# Configuration of Conduit happens via Debconf (of which the resulting config
|
# and room ids. Examples: matrix.org, conduit.rs
|
||||||
# is in this file) and optionally by uncommenting and tweaking the variables in
|
# The Conduit server needs to be reachable at https://your.server.name/ on port
|
||||||
# /etc/matrix-conduit/local.
|
# 443 (client-server) and 8448 (federation) OR you can create /.well-known
|
||||||
|
# files to redirect requests. See
|
||||||
|
# https://matrix.org/docs/spec/client_server/latest#get-well-known-matrix-client
|
||||||
|
# and https://matrix.org/docs/spec/server_server/r0.1.4#get-well-known-matrix-server
|
||||||
|
# for more information.
|
||||||
|
server_name = "${CONDUIT_SERVER_NAME}"
|
||||||
|
|
||||||
# THIS FILE IS GENERATED BY DEBCONF AND WILL BE OVERRIDDEN!
|
# This is the only directory where Conduit will save its data.
|
||||||
#
|
database_path = "${CONDUIT_DATABASE_PATH}"
|
||||||
# Please make changes by running:
|
|
||||||
#
|
|
||||||
# \$ dpkg-reconfigure matrix-conduit
|
|
||||||
#
|
|
||||||
# or by providing overriding changes in /etc/matrix-conduit/local.
|
|
||||||
|
|
||||||
# The server (host)name of the Matrix homeserver.
|
# The address Conduit will be listening on.
|
||||||
#
|
|
||||||
# This is the hostname the homeserver will be reachable at via a client.
|
|
||||||
ROCKET_SERVER_NAME="$ROCKET_SERVER_NAME"
|
|
||||||
|
|
||||||
# The address the Matrix homeserver listens on.
|
|
||||||
#
|
|
||||||
# By default the server listens on address 0.0.0.0. Change this to 127.0.0.1 to
|
# By default the server listens on address 0.0.0.0. Change this to 127.0.0.1 to
|
||||||
# only listen on the localhost when using a reverse proxy.
|
# only listen on the localhost when using a reverse proxy.
|
||||||
ROCKET_ADDRESS="$ROCKET_ADDRESS"
|
address = "${CONDUIT_ADDRESS}"
|
||||||
|
|
||||||
# The port of the Matrix homeserver.
|
# The port Conduit will be running on. You need to set up a reverse proxy in
|
||||||
#
|
# your web server (e.g. apache or nginx), so all requests to /_matrix on port
|
||||||
# This port is could be any available port if accessed by a reverse proxy.
|
# 443 and 8448 will be forwarded to the Conduit instance running on this port.
|
||||||
# By default the server listens on port 8000.
|
port = ${CONDUIT_PORT}
|
||||||
ROCKET_PORT="$ROCKET_PORT"
|
|
||||||
|
|
||||||
# THIS FILE IS GENERATED BY DEBCONF AND WILL BE OVERRIDDEN!
|
# Max size for uploads
|
||||||
|
max_request_size = 20_000_000 # in bytes
|
||||||
|
|
||||||
|
# Disable registration. No new users will be able to register on this server.
|
||||||
|
#allow_registration = false
|
||||||
|
|
||||||
|
# Disable encryption, so no new encrypted rooms can be created.
|
||||||
|
# Note: Existing rooms will continue to work.
|
||||||
|
#allow_encryption = false
|
||||||
|
#allow_federation = false
|
||||||
|
|
||||||
|
# Enable jaeger to support monitoring and troubleshooting through jaeger.
|
||||||
|
#allow_jaeger = false
|
||||||
|
|
||||||
|
#cache_capacity = 1073741824 # in bytes, 1024 * 1024 * 1024
|
||||||
|
#max_concurrent_requests = 4 # How many requests Conduit sends to other servers at the same time
|
||||||
|
#log = "info,state_res=warn,rocket=off,_=off,sled=off"
|
||||||
|
#workers = 4 # default: cpu core count * 2
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,16 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
CONDUIT_CONFIG_PATH=/etc/matrix-conduit
|
CONDUIT_CONFIG_PATH=/etc/matrix-conduit
|
||||||
CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit
|
CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
purge)
|
purge)
|
||||||
|
# Remove debconf changes from the db
|
||||||
|
db_purge
|
||||||
|
|
||||||
# Per https://www.debian.org/doc/debian-policy/ch-files.html#behavior
|
# Per https://www.debian.org/doc/debian-policy/ch-files.html#behavior
|
||||||
# "configuration files must be preserved when the package is removed, and
|
# "configuration files must be preserved when the package is removed, and
|
||||||
# only deleted when the package is purged."
|
# only deleted when the package is purged."
|
||||||
|
|
|
@ -16,6 +16,6 @@ Description: The listen address of the Matrix homeserver
|
||||||
|
|
||||||
Template: matrix-conduit/port
|
Template: matrix-conduit/port
|
||||||
Type: string
|
Type: string
|
||||||
Default: 14004
|
Default: 6167
|
||||||
Description: The port of the Matrix homeserver
|
Description: The port of the Matrix homeserver
|
||||||
This port is most often just accessed by a reverse proxy.
|
This port is most often just accessed by a reverse proxy.
|
||||||
|
|
Loading…
Reference in New Issue