From 1312cb1df6e5d64a19f684a1f6d9f47732aaefc5 Mon Sep 17 00:00:00 2001 From: tituspijean Date: Sat, 8 Jul 2023 18:49:51 +0200 Subject: [PATCH 1/2] Do not override resolvconf, use dnsmasq --- conf/dnsmasq | 4 ++++ scripts/backup | 6 ++++++ scripts/install | 4 ++++ scripts/remove | 4 ++++ scripts/restore | 8 ++++++++ scripts/upgrade | 11 +++++++++++ 6 files changed, 37 insertions(+) create mode 100644 conf/dnsmasq diff --git a/conf/dnsmasq b/conf/dnsmasq new file mode 100644 index 0000000..25847f6 --- /dev/null +++ b/conf/dnsmasq @@ -0,0 +1,4 @@ +# Created by __APP__ +# We assume that only one tailscale installation exists on the server, replace `tailscale0` below if needed +interface=tailscale0 +server=/__BASE_DOMAIN__/100.100.100.100 diff --git a/scripts/backup b/scripts/backup index 68a1633..e898622 100755 --- a/scripts/backup +++ b/scripts/backup @@ -41,6 +41,12 @@ ynh_backup --src_path="/etc/logrotate.d/$app" ynh_backup --src_path="/etc/systemd/system/$app.service" +#================================================= +# BACKUP DNSMASQ CONFIG +#================================================= + +ynh_backup --src_path="/etc/dnsmasq.d/$app" + #================================================= # BACKUP THE DATABASE #================================================= diff --git a/scripts/install b/scripts/install index 12a1000..eb106fc 100755 --- a/scripts/install +++ b/scripts/install @@ -75,6 +75,10 @@ ynh_add_config --template="config.yaml" --destination="$install_dir/config.yaml" chmod 600 "$install_dir/config.yaml" chown $app:$app "$install_dir/config.yaml" +# Add dnsmasq configuration to avoid overriding resolvconf +ynh_add_config --template="dnsmasq" --destination="/etc/dnsmasq.d/$app" +ynh_systemd_action --service_name="dnsmasq" --action="reload" + #================================================= # SETUP SYSTEMD #================================================= diff --git a/scripts/remove b/scripts/remove index 78d5d13..03198dc 100755 --- a/scripts/remove +++ b/scripts/remove @@ -73,6 +73,10 @@ ynh_script_progression --message="Removing various files..." --weight=1 # Remove the log files ynh_secure_remove --file="/var/log/$app" +# Remove dnsmasq configuration +ynh_secure_remove --file="/etc/dnsmasq.d/$app" +ynh_systemd_action --service_name=dnsmasq --action="reload" + #================================================= # GENERIC FINALIZATION #================================================= diff --git a/scripts/restore b/scripts/restore index 0dfc655..031fc5c 100755 --- a/scripts/restore +++ b/scripts/restore @@ -46,6 +46,14 @@ ynh_script_progression --message="Restoring the logrotate configuration..." --we ynh_restore_file --origin_path="/etc/logrotate.d/$app" +#================================================= +# RESTORE THE DNSMASQ CONFIGURATION +#================================================= +ynh_script_progression --message="Restoring the dnsmasq configuration..." --weight=1 + +ynh_restore_file --origin_path="/etc/dnsmasq.d/$app" +ynh_systemd_action --service_name="dnsmasq" --action="reload" + #================================================= # INTEGRATE SERVICE IN YUNOHOST #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 24948a7..caafce2 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -13,6 +13,17 @@ upgrade_type=$(ynh_check_app_version_changed) #================================================= # STANDARD UPGRADE STEPS +#================================================= +# ENSURE DOWNWARD COMPATIBILITY +#================================================= +ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 + +if [ ! -f "/etc/dnsmasq.d/$app" ]; then + # Add dnsmasq configuration to avoid overriding resolvconf + ynh_add_config --template="dnsmasq" --destination="/etc/dnsmasq.d/$app" + ynh_systemd_action --service_name="dnsmasq" --action="reload" +fi + #================================================= # STOP SYSTEMD SERVICE #================================================= From 446c561fae706f4aa677638561aaf74f43ed2027 Mon Sep 17 00:00:00 2001 From: tituspijean Date: Fri, 11 Aug 2023 12:56:15 +0200 Subject: [PATCH 2/2] Allow fake base domains for MagicDNS --- manifest.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.toml b/manifest.toml index 44f0186..3f68d72 100644 --- a/manifest.toml +++ b/manifest.toml @@ -42,9 +42,9 @@ ram.runtime = "50M" default = "/dex" [install.base_domain] - type = "domain" + type = "string" ask.en = "Choose the base domain for Headscale's MagicDNS feature" - help.en = "MagicDNS will allow you to access your hosts with a domain like `myhost.username.basedomain.tld`" + help.en = "MagicDNS will allow you to access your hosts with a domain like `myhost.username.basedomain.tld`. It can be from a fake TLD, but beware of conflicts." [resources] [resources.sources.main]