From cce95dc9e484fd25963ca9e9b543adae7a5495fb Mon Sep 17 00:00:00 2001 From: Valentin Date: Sun, 25 Feb 2024 17:14:22 +0100 Subject: [PATCH] deploy nuxt --- install.sh | 78 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 20 deletions(-) diff --git a/install.sh b/install.sh index 0dca020..7cbd2a2 100644 --- a/install.sh +++ b/install.sh @@ -90,12 +90,6 @@ if [[ "$answer" == "y" ]]; then ufw allow https fi -# -# TODO : ZABBIX AND URBACKUP -# - -echo -e "${PURPLE}${BOLD}TODO : Zabbix and Urbackup${RESET}" - # # CADDY # @@ -266,9 +260,8 @@ if [[ "$answer" == "y" ]]; then npm init -y &&\ npx directus bootstrap --skipAdminInit" $username - session="directus" - su -c "tmux new-session -d -s ${session} &&\ - tmux send-keys -t ${session} \"cd /home/${username}/${cms_folder} && npx directus start\" C-m" $username + su -c "tmux new-session -d -s directus &&\ + tmux send-keys -t directus \"cd /home/${username}/${cms_folder} && npx directus start\" C-m" $username su -c "cd /home/${username}/${cms_folder} &&\ npx directus roles create --role Administrator --admin true &&\ @@ -299,28 +292,73 @@ if [[ "$answer" == "y" ]]; then echo "}" >> $caddyfile caddy fmt $caddyfile -w caddy reload -c $caddyfile + + echo -e "${PURPLE}${BOLD}Import Directus data model ? (y/N) ${RESET}" + read answer + if [[ "$answer" == "y" ]]; then + + echo -e "${PURPLE}${BOLD}Import local Directus data model${RESET}" + echo -e "${PURPLE}npx directus schema snapshot ./snapshot.yaml${RESET}" + echo -e "${PURPLE}scp /local/path/to/snapshot.yaml ${username}@${ip}:/home/${username}/snapshot.yaml${RESET}" + echo -e "${PURPLE}${BOLD}Press any key when done${RESET}" + read + + su -c "cd /home/${username}/${cms_folder} &&\ + npx directus schema apply --yes ../snapshot.yaml" $username + + echo -e "${PURPLE}${BOLD}You can now add some content${RESET}" + echo -e "${ORANGE}${BOLD}Do not forget to set the permissions${RESET}" + echo -e "${ORANGE}${BOLD}Website role ${RESET}${ORANGE}Read content collections and directus_files${RESET}" + echo -e "${ORANGE}${BOLD}User role ${RESET}${ORANGE}All permissions on content collections and directus_files${RESET}" + fi + + echo -e "${PURPLE}${BOLD}Access Directus ${RESET}${PURPLE}https://cms.${domain_name}${RESET}" fi # -# DIRECTUS IMPORTS +# NUXT # - -echo -e "${PURPLE}${BOLD}Import Directus data model and content ? (y/N) ${RESET}" +echo -e "${PURPLE}${BOLD}Install the front-end ? (y/N) ${RESET}" read answer if [[ "$answer" == "y" ]]; then get_username - get_ip - echo -e "${PURPLE}${BOLD}Import local Directus data model${RESET}" - echo -e "${PURPLE}npx directus schema snapshot ./snapshot.yaml${RESET}" - echo -e "${PURPLE}scp ${username}@${ip}:/home/${username}/snapshot.yaml /path/to/snapshot.yaml${RESET}" - echo -e "${PURPLE}${BOLD}Press any key when done${RESET}" - read + echo -e "${PURPLE}${BOLD}Create and push a prod branch on the repo${RESET}" + echo -e "${PURPLE}git checkout -b prod${RESET}" + echo -e "${PURPLE}git add . && git commit -m "first commit to prod"${RESET}" + echo -e "${PURPLE}git push origin prod${RESET}" + echo -e "${PURPLE}${BOLD}What is the .git url of the repo${RESET}" + read repo_url - su -c "cd /home/${username}/${cms_folder} &&\ - npx directus schema apply --dry-run --yes ../snapshot.yaml" $username + front_folder=$(echo "$repo_url" | sed 's#.*/\([^/]*\)\.git#\1#') + if [[ -z "$website_token" ]]; then + echo -e "${PURPLE}${BOLD}Enter the Directus Website user static token${RESET}" + read website_token + fi + + su -c "cd /home/${username} &&\ + git clone ${repo_url} &&\ + cd ${front_folder} &&\ + git checkout prod &&\ + echo \"DIRECTUS_API_TOKEN=${website_token}\" > .env &&\ + echo \"URL=https://${domain_name}\" >> .env &&\ + echo \"DIRECTUS_URL=https://cms.${domain_name}\" >> .env &&\ + npm install &&\ + tmux send-keys -t directus C-c &&\ + npm run build &&\ + tmux new-session -d -s front &&\ + tmux send-keys -t front \"cd /home/${username}/${front_folder} && node .output/server/index.mjs\" C-m &&\ + tmux send-keys -t directus "npx directus start" C-m" $username + + + echo -e "${PURPLE}${BOLD}Setup a webhook ? (y/N) ${RESET}" + read answer + if [[ "$answer" == "y" ]]; then + + fi fi + # TODO # REMOVE EXPECT AT THE END IF IT IS INSTALLED # CREATE AN ASSETS FOLDER WITH THE DIRECTUS ENV