First version of cargo-deb packaging setup
This commit is contained in:
		
							parent
							
								
									18f33b1ece
								
							
						
					
					
						commit
						79692db45d
					
				
					 7 changed files with 176 additions and 0 deletions
				
			
		
							
								
								
									
										22
									
								
								Cargo.toml
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								Cargo.toml
									
									
									
									
									
								
							|  | @ -72,3 +72,25 @@ required-features = ["conduit_bin"] | |||
| [lib] | ||||
| name = "conduit" | ||||
| path = "src/lib.rs" | ||||
| 
 | ||||
| [package.metadata.deb] | ||||
| name = "matrix-conduit" | ||||
| maintainer = "Paul van Tilburg <paul@luon.net>" | ||||
| copyright = "2020, Timo Kösters <timo@koesters.xyz>" | ||||
| license-file = ["LICENSE", "3"] | ||||
| depends = "$auto, ca-certificates" | ||||
| extended-description = """\ | ||||
| A fast Matrix homeserver that is optimized for smaller, personal servers, \ | ||||
| instead of a server that has high scalability.""" | ||||
| section = "net" | ||||
| priority = "optional" | ||||
| assets = [ | ||||
|   ["debian/env", "etc/matrix-conduit/env", "644"], | ||||
|   ["README.md", "usr/share/doc/matrix-conduit/", "644"], | ||||
|   ["target/release/conduit", "usr/sbin/matrix-conduit", "755"], | ||||
| ] | ||||
| conf-files = [ | ||||
|   "/etc/matrix-conduit/env" | ||||
| ] | ||||
| maintainer-scripts = "debian/" | ||||
| systemd-units = { unit-name = "matrix-conduit" } | ||||
|  |  | |||
							
								
								
									
										23
									
								
								debian/config
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								debian/config
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| #!/bin/sh | ||||
| set -e | ||||
| 
 | ||||
| # Source debconf library. | ||||
| . /usr/share/debconf/confmodule | ||||
| 
 | ||||
| CONDUIT_CONFIG_PATH=/etc/matrix-conduit | ||||
| CONDUIT_CONFIG_FILE="$CONDUIT_CONFIG_PATH/env" | ||||
| 
 | ||||
| # Ask for the Matrix homeserver name and port. | ||||
| db_input high matrix-conduit/hostname || true | ||||
| db_go | ||||
| 
 | ||||
| db_input medium matrix-conduit/port || true | ||||
| db_go | ||||
| 
 | ||||
| # Update the values in the config. | ||||
| db_get matrix-conduit/hostname | ||||
| sed -i -e "s/^ROCKET_SERVER_NAME=.*/ROCKET_SERVER_NAME=\"$RET\"/" $CONDUIT_CONFIG_FILE | ||||
| db_get matrix-conduit/port | ||||
| sed -i -e "s/^ROCKET_PORT=.*/ROCKET_PORT=\"$RET\"/" $CONDUIT_CONFIG_FILE | ||||
| 
 | ||||
| exit 0 | ||||
							
								
								
									
										48
									
								
								debian/env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								debian/env
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,48 @@ | |||
| # Conduit homeserver configuration | ||||
| # | ||||
| # Conduit is an application based on the Rocket web framework. | ||||
| # Configuration of Conduit can happen either via a `Rocket.toml` file that | ||||
| # is placed in /var/lib/matrix-conduit or via setting the environment | ||||
| # variables below. | ||||
| 
 | ||||
| # The server (host)name of the Matrix homeserver. | ||||
| # | ||||
| # This is the hostname the homeserver will be reachable at via a client. | ||||
| ROCKET_SERVER_NAME="YOURSERVERNAME.HERE" | ||||
| 
 | ||||
| # The address the Matrix homeserver listens on. | ||||
| # | ||||
| # By default the server listens on 0.0.0.0. Change this for example to | ||||
| # 127.0.0.1 to only listen on the localhost when using a reverse proxy. | ||||
| #ROCKET_ADDRESS="0.0.0.0" | ||||
| 
 | ||||
| # The port of the Matrix homeserver. | ||||
| # | ||||
| # This port is often accessed by a reverse proxy. | ||||
| ROCKET_PORT="14004" | ||||
| 
 | ||||
| # The maximum size of a Matrix HTTP requests in bytes. | ||||
| # | ||||
| # This mostly affects the size of files that can be downloaded/uploaded. | ||||
| ROCKET_MAX_REQUEST_SIZE=20000000 | ||||
| 
 | ||||
| # Whether user registration is allowed. | ||||
| # | ||||
| # User registration is allowed by default. | ||||
| #ROCKET_REGISTRATION_DISABLED=true | ||||
| 
 | ||||
| # Whether encryption is enabled. | ||||
| # | ||||
| # (End-to-end) encryption is enabled by default. | ||||
| #ROCKET_ENCRYPTION_DISABLED=true | ||||
| 
 | ||||
| # Whether federation with other Matrix servers is enabled. | ||||
| # | ||||
| # Federation is disabled by default; it is still experimental. | ||||
| #ROCKET_FEDERATION_ENABLED=true | ||||
| 
 | ||||
| # The log level of the homeserver. | ||||
| # | ||||
| # The log level is "critical" by default. | ||||
| # Allowed values are: "off", "normal", "debug", "critical" | ||||
| #ROCKET_LOG="normal" | ||||
							
								
								
									
										21
									
								
								debian/matrix-conduit.service
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								debian/matrix-conduit.service
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| [Unit] | ||||
| Description=Conduit Matrix homeserver | ||||
| After=network.target | ||||
| 
 | ||||
| [Service] | ||||
| User=_matrix-conduit | ||||
| Group=_matrix-conduit | ||||
| Type=simple | ||||
| 
 | ||||
| Environment="ROCKET_ENV=production" | ||||
| Environment="ROCKET_DATABASE_PATH=/var/lib/matrix-conduit" | ||||
| EnvironmentFile=/etc/matrix-conduit/env | ||||
| 
 | ||||
| ExecStart=/usr/sbin/matrix-conduit | ||||
| Restart=on-failure | ||||
| RestartSec=10 | ||||
| StartLimitInterval=1m | ||||
| StartLimitBurst=5 | ||||
| 
 | ||||
| [Install] | ||||
| WantedBy=multi-user.target | ||||
							
								
								
									
										26
									
								
								debian/postinst
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								debian/postinst
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | |||
| #!/bin/sh | ||||
| set -e | ||||
| 
 | ||||
| CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit | ||||
| 
 | ||||
| case "$1" in | ||||
|   configure) | ||||
|     # Create the `_matrix-conduit` user if it does not exist yet. | ||||
|     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 \ | ||||
|         --disabled-login \ | ||||
|         --force-badname \ | ||||
|         _matrix-conduit | ||||
|     fi | ||||
| 
 | ||||
|     # Create the database path if it does not exist yet. | ||||
|     if [ ! -d "$CONDUIT_DATABASE_PATH" ]; then | ||||
|       mkdir -p "$CONDUIT_DATABASE_PATH" | ||||
|       chown _matrix-conduit "$CONDUIT_DATABASE_PATH" | ||||
|     fi | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| #DEBHELPER# | ||||
							
								
								
									
										22
									
								
								debian/postrm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								debian/postrm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| #!/bin/sh | ||||
| set -e | ||||
| 
 | ||||
| CONDUIT_CONFIG_PATH=/etc/matrix-conduit | ||||
| CONDUIT_DATABASE_PATH=/var/lib/matrix-conduit | ||||
| 
 | ||||
| case $1 in | ||||
|   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." | ||||
|     if [ -d "$CONDUIT_CONFIG_PATH" ]; then | ||||
|       rm -r "$CONDUIT_CONFIG_PATH" | ||||
|     fi | ||||
| 
 | ||||
|     if [ -d "$CONDUIT_DATABASE_PATH" ]; then | ||||
|       rm -r "$CONDUIT_DATABASE_PATH" | ||||
|     fi | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| #DEBHELPER# | ||||
							
								
								
									
										14
									
								
								debian/templates
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								debian/templates
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| Template: matrix-conduit/hostname | ||||
| Type: string | ||||
| Default: localhost | ||||
| Description: The server (host)name of the Matrix homeserver. | ||||
|  This is the hostname the homeserver will be reachable at via a client. | ||||
|  . | ||||
|  If set to "localhost", you can connect with a client locally and clients | ||||
|  from other hosts and also other servers will not be able to reach you! | ||||
| 
 | ||||
| Template: matrix-conduit/port | ||||
| Type: string | ||||
| Default: 14004 | ||||
| Description: The port of the Matrix homeserver | ||||
|  This port is often accessed by a reverse proxy. | ||||
		Loading…
	
		Reference in a new issue