Split config into a Debian and local part
* The Debian part will be generated and managed by Debconf and configure homeserver name, address and port * The local part will just be a config file that shows the other configuration options Added the address configuration and moved the config generation from the config to the postinst script.
This commit is contained in:
		
							parent
							
								
									79692db45d
								
							
						
					
					
						commit
						f72554de10
					
				
					 7 changed files with 98 additions and 64 deletions
				
			
		|  | @ -85,12 +85,12 @@ instead of a server that has high scalability.""" | ||||||
| section = "net" | section = "net" | ||||||
| priority = "optional" | priority = "optional" | ||||||
| assets = [ | assets = [ | ||||||
|   ["debian/env", "etc/matrix-conduit/env", "644"], |   ["debian/env.local", "etc/matrix-conduit/local", "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/env" |   "/etc/matrix-conduit/local" | ||||||
| ] | ] | ||||||
| maintainer-scripts = "debian/" | maintainer-scripts = "debian/" | ||||||
| systemd-units = { unit-name = "matrix-conduit" } | systemd-units = { unit-name = "matrix-conduit" } | ||||||
|  |  | ||||||
							
								
								
									
										14
									
								
								debian/config
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								debian/config
									
									
									
									
										vendored
									
									
								
							|  | @ -4,20 +4,14 @@ set -e | ||||||
| # Source debconf library. | # Source debconf library. | ||||||
| . /usr/share/debconf/confmodule | . /usr/share/debconf/confmodule | ||||||
| 
 | 
 | ||||||
| CONDUIT_CONFIG_PATH=/etc/matrix-conduit | # Ask for the Matrix homeserver name, address and port. | ||||||
| CONDUIT_CONFIG_FILE="$CONDUIT_CONFIG_PATH/env" |  | ||||||
| 
 |  | ||||||
| # Ask for the Matrix homeserver name and port. |  | ||||||
| db_input high matrix-conduit/hostname || true | db_input high matrix-conduit/hostname || true | ||||||
| db_go | db_go | ||||||
| 
 | 
 | ||||||
|  | db_input low matrix-conduit/address || true | ||||||
|  | db_go | ||||||
|  | 
 | ||||||
| db_input medium matrix-conduit/port || true | db_input medium matrix-conduit/port || true | ||||||
| db_go | 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 | exit 0 | ||||||
|  |  | ||||||
							
								
								
									
										48
									
								
								debian/env
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								debian/env
									
									
									
									
										vendored
									
									
								
							|  | @ -1,48 +0,0 @@ | ||||||
| # 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" |  | ||||||
							
								
								
									
										33
									
								
								debian/env.local
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								debian/env.local
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | ||||||
|  | # 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" | ||||||
							
								
								
									
										3
									
								
								debian/matrix-conduit.service
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								debian/matrix-conduit.service
									
									
									
									
										vendored
									
									
								
							|  | @ -9,7 +9,8 @@ Type=simple | ||||||
| 
 | 
 | ||||||
| Environment="ROCKET_ENV=production" | Environment="ROCKET_ENV=production" | ||||||
| Environment="ROCKET_DATABASE_PATH=/var/lib/matrix-conduit" | Environment="ROCKET_DATABASE_PATH=/var/lib/matrix-conduit" | ||||||
| EnvironmentFile=/etc/matrix-conduit/env | 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 | ||||||
|  |  | ||||||
							
								
								
									
										47
									
								
								debian/postinst
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								debian/postinst
									
									
									
									
										vendored
									
									
								
							|  | @ -1,6 +1,10 @@ | ||||||
| #!/bin/sh | #!/bin/sh | ||||||
| set -e | 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_DATABASE_PATH=/var/lib/matrix-conduit | ||||||
| 
 | 
 | ||||||
| case "$1" in | case "$1" in | ||||||
|  | @ -20,6 +24,49 @@ case "$1" in | ||||||
|       mkdir -p "$CONDUIT_DATABASE_PATH" |       mkdir -p "$CONDUIT_DATABASE_PATH" | ||||||
|       chown _matrix-conduit "$CONDUIT_DATABASE_PATH" |       chown _matrix-conduit "$CONDUIT_DATABASE_PATH" | ||||||
|     fi |     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. | ||||||
|  | 
 | ||||||
|  | # 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. | ||||||
|  | 
 | ||||||
|  | # 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. | ||||||
|  | # | ||||||
|  | # 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" | ||||||
|  | 
 | ||||||
|  | # 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" | ||||||
|  | 
 | ||||||
|  | # THIS FILE IS GENERATED BY DEBCONF AND WILL BE OVERRIDDEN! | ||||||
|  | EOF | ||||||
|     ;; |     ;; | ||||||
| esac | esac | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								debian/templates
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								debian/templates
									
									
									
									
										vendored
									
									
								
							|  | @ -1,14 +1,21 @@ | ||||||
| Template: matrix-conduit/hostname | Template: matrix-conduit/hostname | ||||||
| Type: string | Type: string | ||||||
| Default: localhost | Default: localhost | ||||||
| Description: The server (host)name of the Matrix homeserver. | Description: The server (host)name of the Matrix homeserver | ||||||
|  This is the hostname the homeserver will be reachable at via a client. |  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 |  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! |  from other hosts and also other homeservers will not be able to reach you! | ||||||
|  | 
 | ||||||
|  | Template: matrix-conduit/address | ||||||
|  | Type: string | ||||||
|  | Default: 127.0.0.1 | ||||||
|  | Description: The listen address of the Matrix homeserver | ||||||
|  |  This is the address the homeserver will listen on. Leave it set to 127.0.0.1 | ||||||
|  |  when using a reverse proxy. | ||||||
| 
 | 
 | ||||||
| Template: matrix-conduit/port | Template: matrix-conduit/port | ||||||
| Type: string | Type: string | ||||||
| Default: 14004 | Default: 14004 | ||||||
| Description: The port of the Matrix homeserver | Description: The port of the Matrix homeserver | ||||||
|  This port is often accessed by a reverse proxy. |  This port is most often just accessed by a reverse proxy. | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue