PortValhalla/scripts/Common/Software/docker/services/firefox-sync/main.fish

64 lines
2.4 KiB
Fish

#!/bin/env fish
begin
set -l domain sync
set -l dir (status dirname)
set -l source "$dir/docker-compose.overrides.yml"
source "$dir/../service.fish"
function installSW -V dir -V source
set -l root (getServiceRoot $argv)
initializeServiceInstallation $argv
sudo cp \
"$dir/"{docker-compose.{base,overrides}.yml,.dockerignore,Dockerfile,public-url.patch} \
"$root"
sudo cp -r "$dir/init" "$root"
installDockerService $argv
end
function configureSW -V dir -V domain
set -l overrides (getServiceOverrides $argv)
set -l envKey ".services.sync-server.environment"
set -l url https://$domain.nuth.ch/firefox
set databases sync SYNCSTORAGE \
token TOKENSERVER
for variable in masterSecret metricsSecret syncPW tokenPW
set $variable (nix-shell -p keepassxc --run "keepassxc-cli generate --length 64")
end
sudo SECRET="$masterSecret" yq -i "$envKey.SYNC_MASTER_SECRET = env(SECRET)" "$overrides"
sudo SECRET="$metricsSecret" yq -i "$envKey.SYNC_TOKENSERVER__FXA_METRICS_HASH_SECRET = env(SECRET)" "$overrides"
sudo URL=$url yq -i "$envKey.SYNC_PUBLIC_URL = env(URL)" "$overrides"
sudo URL=$url yq -i ".services.token-db.environment.SYNC_PUBLIC_URL = env(URL)" "$overrides"
configureDockerService $argv
for i in $(seq 1 2 (count $databases))
set -l prefix $databases[$i]
set -l section $databases[(math "$i + 1")]
set -l pwVar "$prefix""PW"
set -l pw $$pwVar
set -l dbEnv ".services.$prefix-db.environment"
set -l db (yq "$dbEnv.MARIADB_DATABASE" "$overrides")
set -l user (yq "$dbEnv.MARIADB_USER" "$overrides")
sudo PW=$pw yq -i "$dbEnv.MARIADB_PASSWORD = env(PW)" "$overrides"
sudo CONNECTION="mysql://$user:$pw@$prefix-db/$db" yq -i ".services.sync-server.environment.SYNC_"$section"__DATABASE_URL = env(CONNECTION)" "$overrides"
end
end
function getServiceServers -V domain
printf "$domain" ""
end
function getServiceLocations -V domain
printf "%s\0" "sync-server" /firefox/ "Firefox Sync"
end
function getServiceLocationConfig -a domain s location -V service -V flood
getServiceDefaultProxy $argv --path "/"
end
runInstaller --force $argv
end