diff --git a/back/lib/admin/user/add b/back/lib/admin/user/add index c49501d..1f1874e 100755 --- a/back/lib/admin/user/add +++ b/back/lib/admin/user/add @@ -105,41 +105,41 @@ if ! printf 'IP addresses for %s created: %s %s\n' "${domain:?}" "${ipv4:?}" "${ fi # Create wg config -#privkey="$(/usr/bin/wg genkey)" -#pubkey="$(echo "${privkey}" | /usr/bin/wg pubkey)" -#address="${ipv4}/${IPV4_NET##*/},${ipv6}/${IPV6_NET##*/}" +privkey="$(/usr/bin/wg genkey)" +pubkey="$(echo "${privkey}" | /usr/bin/wg pubkey)" +address="${ipv4}/${IPV4_NET##*/},${ipv6}/${IPV6_NET##*/}" # Update nameserver -#if "${LIB_DIR}/ns_update_add" "${domain:?}" "${ipv4:?}" "${ipv6:?}" -# then printf 'Successfully added %s to DNS server.\n' "${domain}" >>"${LOGFILE}" -# else printf 'ERROR! Failed to add %s %s %s to DNS server!\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}" -#fi & +if "${LIB_DIR}/ns_update_add" "${domain:?}" "${ipv4:?}" "${ipv6:?}" + then printf 'Successfully added %s to DNS server.\n' "${domain}" >>"${LOGFILE}" + else printf 'ERROR! Failed to add %s %s %s to DNS server!\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}" +fi & # Create SSL cert -#if ! sudo mkdir "${SSL_CONFIG_DIR:?}/${username:?}/"; then -# printf 'Failed to create directory %s/%s/:\n' "${SSL_CONFIG_DIR}" "${username}" >>"${LOGFILE}" -# exit 7 -#fi -#if "${LIB_DIR}/ssl_peer_add" "${hostname:?}" "${username:?}" "IP:${ipv4},IP:${ipv6}" -# then printf 'Successfully signed SSL certs for %s\n' "${domain}" >>"${LOGFILE}" -# else printf 'ERROR! Failed to create certs for %s with IPS: %s %s!\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}" -#fi +if ! sudo mkdir "${SSL_CONFIG_DIR:?}/${username:?}/"; then + printf 'Failed to create directory %s/%s/:\n' "${SSL_CONFIG_DIR}" "${username}" >>"${LOGFILE}" + exit 7 +fi +if "${LIB_DIR}/ssl_peer_add" "${hostname:?}" "${username:?}" "IP:${ipv4},IP:${ipv6}" + then printf 'Successfully signed SSL certs for %s\n' "${domain}" >>"${LOGFILE}" + else printf 'ERROR! Failed to create certs for %s with IPS: %s %s!\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}" +fi # Do the wireguard and tell the user -#server_blocks='' -#while IFS=$'\t' read -r server_hostname server_ipv4 server_ipv6 server_pubkey server_endpoint server_admin server_secret; do -# [[ ${server_hostname:0:1} = \# ]] && continue -# server_psk="$(/usr/bin/wg genpsk)" -# server_blocks="${server_blocks}\n[Peer] # ${server_hostname}.${TLD}\nPublicKey=${server_pubkey}\nPresharedKey=${server_psk}\nAllowedIPs=${server_ipv4}/32,${server_ipv6}/128\nEndpoint=${server_endpoint}\n" -# if [ "${server_hostname}" == "${LOCAL_SERVER}" ]; then -# # Add new user to local server -# if "${LIB_DIR}/wg_peer_add" "${pubkey}" "${server_psk}" "${ipv4}/32,${ipv6}/128"; then -# printf 'Added %s to local wireguard server.\n' "${domain}" >>"${LOGFILE}" -# else -# printf 'ERROR! Failed to add %s to local wireguard server!\n' "${domain}" >>"${LOGFILE}" -# # TODO: clear existing progress -# exit 15 -# fi +server_blocks='' +while IFS=$'\t' read -r server_hostname server_ipv4 server_ipv6 server_pubkey server_endpoint server_admin server_secret; do + [[ ${server_hostname:0:1} = \# ]] && continue + server_psk="$(/usr/bin/wg genpsk)" + server_blocks="${server_blocks}\n[Peer] # ${server_hostname}.${TLD}\nPublicKey=${server_pubkey}\nPresharedKey=${server_psk}\nAllowedIPs=${server_ipv4}/32,${server_ipv6}/128\nEndpoint=${server_endpoint}\n" + if [ "${server_hostname}" == "${LOCAL_SERVER}" ]; then + # Add new user to local server + if "${LIB_DIR}/wg_peer_add" "${pubkey}" "${server_psk}" "${ipv4}/32,${ipv6}/128"; then + printf 'Added %s to local wireguard server.\n' "${domain}" >>"${LOGFILE}" + else + printf 'ERROR! Failed to add %s to local wireguard server!\n' "${domain}" >>"${LOGFILE}" + # TODO: clear existing progress + exit 15 + fi # TODO: Send new user config to federated server #else # if "${LIB_DIR}/fed_peer_add" "${server_admin}" "${pubkey}" "${server_psk}" "${ipv4}/32,${ipv6}/128" "${server_secret}"; then @@ -149,7 +149,7 @@ fi # # TODO: clear existing progress # exit 16 #fi -# fi -#done <"${SERVERS_FILE}" -#wg_config="[Interface] # ${hostname}.${username}.${TLD}\nPrivateKey=${privkey:?}\nAddress=${address:?}\n${WG_DNS}\n${server_blocks:?}" -#<<<"${wg_config}" "${LIB_DIR}/http_res" 202 + fi +done <"${SERVERS_FILE}" +wg_config="[Interface] # ${hostname}.${username}.${TLD}\nPrivateKey=${privkey:?}\nAddress=${address:?}\n${WG_DNS}\n${server_blocks:?}" +<<<"${wg_config}" "${LIB_DIR}/http_res" 202