1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/synapse_ynh.git synced 2024-09-03 20:26:38 +02:00

well-known support (#136)

* Update README.md

* Update manifest.json

* a

* Delete a

* avoid boolean for public but ask a clear choice Yes/No

* Update check_process

Add server_name="domain2.tld"    (DOMAIN)

* .well-known

DNS conf become optionnal with .well-known edition

* .well-known redirection for access by federation

Create .well-known redirection for access by federation

* .well-known redirection for access by federation

If not existing, create .well-known redirection for access by federation

* Update README.md

back to 0.99.5.2

* back to 0.99.5.2

* back to 0.99.5.2

* back to 0.99.5.2

* Update install

* Update upgrade

* Update install

* Update upgrade

* Update install

* Update upgrade

* Update .well-known redirection

for access by federation and applications like Riot.im

* Update .well-known redirection

for access by federation and applications like Riot.im

* update to 1.1.0

* update to 1.1.0

* update to 1.1.0

* update to 1.1.0

* update to 1.1.0

* update to 1.1.0

* Update install

* Update upgrade

* Update to 1.2.1

* Update to 1.2.1

* Update to 1.2.1

* Back to v1.1.0

* Back to v1.1.0

* Back to v1.1.0

* Update to v1.2.1

* Update to v1.2.1

* Update to v1.2.1

* Important update of upgrade script

ynh_replace_string __SERVER_NAME__ $server_name "$homeserver_config_path" was missing

* Back to v1.1.0

* Back to v1.1.0

* Back to v1.1.0

* Fix typo for ipv6 validation

* Upgrade to v1.2.1

* Upgrade to v1.2.1

* Upgrade to v1.2.1

* remove server_name's nginx conf

remove /etc/nginx/conf.d/${server_name}.d/server_name.conf

* Create server_name.conf

To allow the automatic well-known system for server-name detection instead of DNS record

* Update install

In
# Create .well-known redirection for access by federation
change
  cat > /etc/nginx/conf.d/${server_name}.d/server_name.conf <<EOF
    location /.well-known/matrix/ {
        return 200 '{"m.server": "$domain", "m.homeserver": "https://$domain"}';
        add_header Content-Type application/json;
        add_header Access-Control-Allow-Origin '*';
        }
EOF
to 
cp ../conf/server_name.conf /etc/nginx/conf.d/${server_name}.d/server_name.conf
after creation of ../conf/server_name.conf file.

* Update upgrade

In
# Create .well-known redirection for access by federation if it doesn't exist
change
  cat > /etc/nginx/conf.d/${server_name}.d/server_name.conf <<EOF
    location /.well-known/matrix/ {
        return 200 '{"m.server": "$domain", "m.homeserver": "https://$domain"}';
        add_header Content-Type application/json;
        add_header Access-Control-Allow-Origin '*';
        }
EOF
to
cp ../conf/server_name.conf /etc/nginx/conf.d/${server_name}.d/server_name.conf

* backup well.known server_name nginx cond

add
ynh_backup "/etc/nginx/conf.d/${server_name}.d/server_name.conf"

* Backup well.known server-name nging conf

add
server_name=$(ynh_app_setting_get $app server_name) 
to make
ynh_backup "/etc/nginx/conf.d/${server_name}.d/server_name.conf"
understood

* Update backup

* Update scripts/install

Co-Authored-By: Josue-T <josue@tille.ch>

* Update install

* Update README.md

Co-Authored-By: Josue-T <josue@tille.ch>

* Update scripts/upgrade

Co-Authored-By: Josue-T <josue@tille.ch>

* Update conf/server_name.conf

Co-Authored-By: Josue-T <josue@tille.ch>

* move .well-known redirection to config section

move #Create .well-known redirection for access by federation to end of config section

* move .well-known redirection to config section 

move #Create .well-known redirection to the end of config section and Indentation

* add checksum management for server_name.conf

add checksum management for server_name.conf with the helper ynh_store_file_checksum

* add checksum management for server_name.conf

add checksum management for server_name.conf with the helper ynh_store_file_checksum

* replace __SERVER_NAME__

* replace __SERVER_NAME__

* delete a blank line

* Update upgrade

* Update install

* Update check_process

Co-Authored-By: Josue-T <josue@tille.ch>

* Update conf/server_name.conf

Co-Authored-By: Josue-T <josue@tille.ch>

* remove blank line

* ynh_store_file_checksum after cp inside if block

* change order checksum and cp

change order to ynh_backup_if_checksum_is_different then cp then ynh_store_file_checksum

* Update install

* Update upgrade

* Update backup

* Update backup

* Update scripts/backup

Co-Authored-By: Josue-T <josue@tille.ch>

* Update scripts/install

Co-Authored-By: Josue-T <josue@tille.ch>

* Update scripts/install

Co-Authored-By: Josue-T <josue@tille.ch>

* Update scripts/install

Co-Authored-By: Josue-T <josue@tille.ch>

* Update install

* Update remove

* Update upgrade
This commit is contained in:
Thatoo 2019-12-01 22:18:56 +01:00 committed by Josue-T
parent 2b8c998f8b
commit 663ae2c352
7 changed files with 34 additions and 1 deletions

View file

@ -35,7 +35,7 @@ If you want a web client you can also install riot with this package: https://gi
If your server name is identical to the domain on which synapse is installed, and the default port 8448 is used, your server is normally already accessible by the federation.
If not, you may need to put the following line in the dns configuration:
If not, you can add the following line in the dns configuration but you normally don't need it as a .well-known file is edited during the install to declare your server name and port to the federation.
```
_matrix._tcp.<server_name.tld> <ttl> IN SRV 10 0 <port> <domain-or-subdomain-of-synapse.tld>

View file

@ -3,6 +3,7 @@
domain="domain.tld" (DOMAIN)
path="/_matrix/static/" (PATH)
is_public=1 (PUBLIC|public=1|private=0)
server_name="domain2.tld" (DOMAIN)
; Checks
pkg_linter=1
setup_sub_dir=1

5
conf/server_name.conf Normal file
View file

@ -0,0 +1,5 @@
location /.well-known/matrix/ {
return 200 '{"m.server": "__DOMAIN__:__PORT__"}';
add_header Content-Type application/json;
add_header Access-Control-Allow-Origin '*';
}

View file

@ -25,6 +25,7 @@ ynh_script_progression --message="Loading installation settings..." --weight=2
app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get --app=$app --key=special_domain)
server_name=$(ynh_app_setting_get --app=$app --key=server_name)
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
#=================================================
@ -51,6 +52,10 @@ ynh_backup --src_path="$final_path"
ynh_script_progression --message="Backing up nginx web server configuration..." --weight=1
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
if yunohost --output-as plain domain list | grep -q "^$server_name$"
then
ynh_backup --src_path="/etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf"
fi
#=================================================
# BACKUP THE POSTGRESQL DATABASE

View file

@ -293,6 +293,16 @@ fi
ynh_store_file_checksum --file="$homeserver_config_path"
ynh_store_file_checksum --file="/etc/matrix-$app/log.yaml"
# Create .well-known redirection for access by federation
if yunohost --output-as plain domain list | grep -q "^$server_name$"
then
cp ../conf/server_name.conf /etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf
ynh_replace_string --match_string=__DOMAIN__ --replace_string=$domain --target_file="/etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf"
ynh_replace_string --match_string=__PORT__ --replace_string=$synapse_tls_port --target_file="/etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf"
ynh_store_file_checksum --file="/etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf"
fi
#=================================================
# SET COTURN CONFIG
#=================================================

View file

@ -18,6 +18,7 @@ ynh_script_progression --message="Loading installation settings..." --weight=3
app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get --app=$app --key=special_domain)
server_name=$(ynh_app_setting_get --app=$app --key=server_name)
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
synapse_tls_port=$(ynh_app_setting_get --app=$app --key=synapse_tls_port)
turnserver_tls_port=$(ynh_app_setting_get --app=$app --key=turnserver_tls_port)
@ -91,6 +92,7 @@ ynh_secure_remove --file=/var/log/matrix-$app
ynh_secure_remove --file=/etc/matrix-$app
ynh_secure_remove --file=/etc/default/matrix-$app
ynh_secure_remove --file=/etc/default/coturn-$app
ynh_secure_remove --file=/etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf
#=================================================
# REMOVE NGINX CONFIGURATION

View file

@ -212,6 +212,16 @@ fi
ynh_store_file_checksum --file="$homeserver_config_path"
ynh_store_file_checksum --file="/etc/matrix-$app/log.yaml"
# Create .well-known redirection for access by federation if it doesn't exist
if yunohost --output-as plain domain list | grep -q "^$server_name$"
then
ynh_backup_if_checksum_is_different --file=/etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf
cp ../conf/server_name.conf /etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf
ynh_replace_string --match_string=__DOMAIN__ --replace_string=$domain --target_file="/etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf"
ynh_replace_string --match_string=__PORT__ --replace_string=$synapse_tls_port --target_file="/etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf"
ynh_store_file_checksum --file="/etc/nginx/conf.d/${server_name}.d/${app}_server_name.conf"
fi
#=================================================
# MIGRATION 2 : MULTINSTANCE SUPPORT
#=================================================