Merge branch 'cargo-deb-packaging-update' into 'master'
Update cargo-deb packaging for recent changes See merge request famedly/conduit!61
This commit is contained in:
		
						commit
						acfd0aef27
					
				
					 9 changed files with 89 additions and 89 deletions
				
			
		|  | @ -97,13 +97,12 @@ instead of a server that has high scalability.""" | |||
| section = "net" | ||||
| priority = "optional" | ||||
| assets = [ | ||||
|   ["debian/env.local", "etc/matrix-conduit/local", "644"], | ||||
|   ["debian/README.Debian", "usr/share/doc/matrix-conduit/", "644"], | ||||
|   ["README.md", "usr/share/doc/matrix-conduit/", "644"], | ||||
|   ["target/release/conduit", "usr/sbin/matrix-conduit", "755"], | ||||
| ] | ||||
| conf-files = [ | ||||
|   "/etc/matrix-conduit/local" | ||||
|   "/etc/matrix-conduit/conduit.toml" | ||||
| ] | ||||
| maintainer-scripts = "debian/" | ||||
| 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 | ||||
| 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 | ||||
| 
 | ||||
| Pull and run the docker image with | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ | |||
| # YOU NEED TO EDIT THIS | ||||
| #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" | ||||
| 
 | ||||
| # The port Conduit will be running on. You need to set up a reverse proxy in | ||||
|  |  | |||
							
								
								
									
										20
									
								
								debian/README.Debian
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								debian/README.Debian
									
									
									
									
										vendored
									
									
								
							|  | @ -4,25 +4,25 @@ Conduit for Debian | |||
| Configuration | ||||
| ------------- | ||||
| 
 | ||||
| When installed, Debconf handles the configuration of the homeserver (host)name, | ||||
| the address and port it listens on. These configuration variables end up in | ||||
| /etc/matrix-conduit/debian. | ||||
| When installed, Debconf generates the configuration of the homeserver | ||||
| (host)name, the address and port it listens on. This configuration ends up in | ||||
| /etc/matrix-conduit/conduit.toml. | ||||
| 
 | ||||
| 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 | ||||
| size for download/upload, enabling federation, etc. | ||||
| in /etc/matrix-conduit/conduit.toml. This involves settings such as the maximum | ||||
| file size for download/upload, enabling federation, etc. | ||||
| 
 | ||||
| Running | ||||
| ------- | ||||
| 
 | ||||
| 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. | ||||
| 
 | ||||
| This package assumes by default that Conduit is placed behind a reverse proxy | ||||
| such as Apache or nginx. This default deployment entails just listening on | ||||
| 127.0.0.1 and the free port 14004 and is reachable via a client using the URL | ||||
| http://localhost:14004. | ||||
| This package assumes by default that Conduit will be placed behind a reverse | ||||
| proxy such as Apache or nginx. This default deployment entails just listening | ||||
| on 127.0.0.1 and the free port 6167 and is reachable via a client using the URL | ||||
| http://localhost:6167. | ||||
| 
 | ||||
| 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 | ||||
|  |  | |||
							
								
								
									
										33
									
								
								debian/env.local
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								debian/env.local
									
									
									
									
										vendored
									
									
								
							|  | @ -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" | ||||
							
								
								
									
										5
									
								
								debian/matrix-conduit.service
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								debian/matrix-conduit.service
									
									
									
									
										vendored
									
									
								
							|  | @ -34,10 +34,7 @@ SystemCallFilter=@system-service | |||
| SystemCallErrorNumber=EPERM | ||||
| StateDirectory=matrix-conduit | ||||
| 
 | ||||
| Environment="ROCKET_ENV=production" | ||||
| Environment="ROCKET_DATABASE_PATH=/var/lib/matrix-conduit" | ||||
| EnvironmentFile=/etc/matrix-conduit/debian | ||||
| EnvironmentFile=/etc/matrix-conduit/local | ||||
| Environment="CONDUIT_CONFIG=/etc/matrix-conduit/conduit.toml" | ||||
| 
 | ||||
| ExecStart=/usr/sbin/matrix-conduit | ||||
| Restart=on-failure | ||||
|  |  | |||
							
								
								
									
										88
									
								
								debian/postinst
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										88
									
								
								debian/postinst
									
									
									
									
										vendored
									
									
								
							|  | @ -4,8 +4,8 @@ set -e | |||
| . /usr/share/debconf/confmodule | ||||
| 
 | ||||
| CONDUIT_CONFIG_PATH=/etc/matrix-conduit | ||||
| CONDUIT_CONFIG_FILE="$CONDUIT_CONFIG_PATH/debian" | ||||
| CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit | ||||
| CONDUIT_CONFIG_FILE="${CONDUIT_CONFIG_PATH}/conduit.toml" | ||||
| CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit/conduit_db | ||||
| 
 | ||||
| case "$1" in | ||||
|   configure) | ||||
|  | @ -13,7 +13,7 @@ case "$1" in | |||
|     if ! getent passwd _matrix-conduit > /dev/null ; then | ||||
|       echo 'Adding system user for the Conduit Matrix homeserver' 1>&2 | ||||
|       adduser --system --group --quiet \ | ||||
|         --home $CONDUIT_DATABASE_PATH \ | ||||
|         --home "$CONDUIT_DATABASE_PATH" \ | ||||
|         --disabled-login \ | ||||
|         --force-badname \ | ||||
|         _matrix-conduit | ||||
|  | @ -25,48 +25,60 @@ case "$1" in | |||
|       chown _matrix-conduit "$CONDUIT_DATABASE_PATH" | ||||
|     fi | ||||
| 
 | ||||
|     # Write the debconf values in the config. | ||||
|     db_get matrix-conduit/hostname | ||||
|     ROCKET_SERVER_NAME="$RET" | ||||
|     db_get matrix-conduit/address | ||||
|     ROCKET_ADDRESS="$RET" | ||||
|     db_get matrix-conduit/port | ||||
|     ROCKET_PORT="$RET" | ||||
|     cat >"$CONDUIT_CONFIG_FILE" << EOF | ||||
| # Conduit homeserver Debian configuration | ||||
| # | ||||
| # Conduit is an application based on the Rocket web framework. | ||||
| # Configuration of Conduit happens via Debconf (of which the resulting config | ||||
| # is in this file) and optionally by uncommenting and tweaking the variables in | ||||
| # /etc/matrix-conduit/local. | ||||
|     if [ ! -e "$CONDUIT_CONFIG_FILE" ]; then | ||||
|       # Write the debconf values in the config. | ||||
|       db_get matrix-conduit/hostname | ||||
|       CONDUIT_SERVER_NAME="$RET" | ||||
|       db_get matrix-conduit/address | ||||
|       CONDUIT_ADDRESS="$RET" | ||||
|       db_get matrix-conduit/port | ||||
|       CONDUIT_PORT="$RET" | ||||
|       mkdir -p "$CONDUIT_CONFIG_PATH" | ||||
|       cat > "$CONDUIT_CONFIG_FILE" << EOF | ||||
| [global] | ||||
| # The server_name is the name of this server. It is used as a suffix for user | ||||
| # and room ids. Examples: matrix.org, conduit.rs | ||||
| # The Conduit server needs to be reachable at https://your.server.name/ on port | ||||
| # 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! | ||||
| # | ||||
| # Please make changes by running: | ||||
| # | ||||
| # \$ dpkg-reconfigure matrix-conduit | ||||
| # | ||||
| # or by providing overriding changes in /etc/matrix-conduit/local. | ||||
| # This is the only directory where Conduit will save its data. | ||||
| database_path = "${CONDUIT_DATABASE_PATH}" | ||||
| 
 | ||||
| # The server (host)name of the Matrix homeserver. | ||||
| # | ||||
| # 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. | ||||
| # | ||||
| # The address Conduit will be listening on. | ||||
| # 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. | ||||
| ROCKET_ADDRESS="$ROCKET_ADDRESS" | ||||
| address = "${CONDUIT_ADDRESS}" | ||||
| 
 | ||||
| # The port of the Matrix homeserver. | ||||
| # | ||||
| # This port is could be any available port if accessed by a reverse proxy. | ||||
| # By default the server listens on port 8000. | ||||
| ROCKET_PORT="$ROCKET_PORT" | ||||
| # 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 | ||||
| # 443 and 8448 will be forwarded to the Conduit instance running on this port. | ||||
| port = ${CONDUIT_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 | ||||
|     fi | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										5
									
								
								debian/postrm
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								debian/postrm
									
									
									
									
										vendored
									
									
								
							|  | @ -1,11 +1,16 @@ | |||
| #!/bin/sh | ||||
| set -e | ||||
| 
 | ||||
| . /usr/share/debconf/confmodule | ||||
| 
 | ||||
| CONDUIT_CONFIG_PATH=/etc/matrix-conduit | ||||
| CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit | ||||
| 
 | ||||
| case $1 in | ||||
|   purge) | ||||
|     # Remove debconf changes from the db | ||||
|     db_purge | ||||
| 
 | ||||
|     # Per https://www.debian.org/doc/debian-policy/ch-files.html#behavior | ||||
|     # "configuration files must be preserved when the package is removed, and | ||||
|     #  only deleted when the package is purged." | ||||
|  |  | |||
							
								
								
									
										2
									
								
								debian/templates
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								debian/templates
									
									
									
									
										vendored
									
									
								
							|  | @ -16,6 +16,6 @@ Description: The listen address of the Matrix homeserver | |||
| 
 | ||||
| Template: matrix-conduit/port | ||||
| Type: string | ||||
| Default: 14004 | ||||
| Default: 6167 | ||||
| Description: The port of the Matrix homeserver | ||||
|  This port is most often just accessed by a reverse proxy. | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue