From f4981e961a28d05db3851d00343fc45f075d59fb Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Sun, 8 Jun 2025 08:31:04 +0100 Subject: [PATCH] install.sh collects env vars --- install.sh | 73 ++++++++++++++++++++++++++++++++++--- resticprofile/profiles.toml | 1 - symfony/.env | 4 +- symfony/.gitignore | 6 +-- symfony/Dockerfile | 4 +- 5 files changed, 73 insertions(+), 15 deletions(-) diff --git a/install.sh b/install.sh index 10956d8..d02f21f 100755 --- a/install.sh +++ b/install.sh @@ -1,12 +1,73 @@ #!/bin/sh -set -eux -cd ${LIB_DIR:-/lib} -sudo git clone https://git.joeac.net/joeac/joeac.net.git -cd joeac.net -sudo chmod +x uninstall.sh update_and_restart.sh restart.sh -sudo echo << EOF >> ${CRONTABS_DIR:-/etc/cron.d}/joeacnet +install_prerequisite_software () +{ + if [ -n "$(which git)" ] & [ -n "$(which podman)" ] & [ -n "$(which podman-compose)" ] + then + echo "Git, podman and podman-compose are already installed." + elif [ -n "$(which apk)" ] + then + apk update + apk add git podman podman-compose + elif [ -n "$(which apt-get)" ] + then + apt-get update + apt-get install git podman podman-compose -y + elif [ -n "$(which dnf)" ] + then + dnf install git podman podman-compose + elif [ -n "$(which yum)" ] + then + yum install git podman podman-compose + elif [ -n "$(which pacman)" ] + then + pacman -S git podman podman-compose + else + echo "Could not install Git: could not identify package manager." + exit 1 + fi +} + +clone_repository () +{ + cd ${LIB_DIR:-/lib} + git clone https://git.joeac.net/joeac/joeac.net.git + cd joeac.net + chmod +x uninstall.sh update_and_restart.sh restart.sh +} + +add_cron_services () +{ + echo <<- EOF > ${CRONTABS_DIR:-/etc/cron.d}/joeacnet @reboot ${LIB_DIR:-/lib}/joeac.net/restart.sh 10 * * * * ${LIB_DIR:-/lib}/joeac.net/update_and_restart.sh EOF +} + +collect_env_vars () +{ + if ! [ -f /resticprofile.env ] + then + echo "Please provide resticprofile secrets in /resticprofile.env." + exit 1 + fi + cp /resticprofile.env "${LIB_DIR:-/lib}/joeac.net/resticprofile/.env" + + if ! [ -f /symfony.env ] + then + echo "Please provide symfony secrets in /symfony.env." + exit 1 + fi + cp /symfony.env "${LIB_DIR:-/lib}/joeac.net/symfony/.env" +} + +# Run me: +# curl https://git.joeac.net/joeac/joeac.net/raw/branch/main/install.sh | sudo -E sh + +set -eux +install_prerequisite_software +clone_repository +add_cron_services +set -e +ux +collect_env_vars ./restart.sh diff --git a/resticprofile/profiles.toml b/resticprofile/profiles.toml index 0481362..eb05780 100644 --- a/resticprofile/profiles.toml +++ b/resticprofile/profiles.toml @@ -9,7 +9,6 @@ version = "1" [default] description = "Back up database to BackBlazeB2 S3 Bucket" env-file = ".env" - password-file = "password.txt" repository = "s3:s3.eu-central-003.backblazeb2.com/joeac-net-backup/repo" verbose = 2 diff --git a/symfony/.env b/symfony/.env index e6a3200..67586fa 100644 --- a/symfony/.env +++ b/symfony/.env @@ -1,4 +1,4 @@ APP_ENV=dev -DATABASE_URL="sqlite:///%kernel.project_dir%/var/app.db" -#JOEAC_PASSWORD= +DATABASE_URL="sqlite:///%kernel.project_dir%/var/data_local.db" +JOEAC_PASSWORD=\$2y\$13\$lvuwCAj7qPoNYZccrrWsveTwDkZivRTgzMf6husO77y7aA8V3e.zG MESSENGER_TRANSPORT_DSN=doctrine://default diff --git a/symfony/.gitignore b/symfony/.gitignore index cda89ba..c2eb247 100644 --- a/symfony/.gitignore +++ b/symfony/.gitignore @@ -1,8 +1,6 @@ ###> symfony/framework-bundle ### -.env.local -.env.local.php -.env.*.local -.env.prod +.env +.env.* config/secrets/prod/prod.decrypt.private.php public/bundles/ var/ diff --git a/symfony/Dockerfile b/symfony/Dockerfile index 53bb1bd..6cc32f4 100644 --- a/symfony/Dockerfile +++ b/symfony/Dockerfile @@ -2,7 +2,7 @@ FROM docker.io/bitnami/php-fpm:8.4 AS database WORKDIR /app COPY ./composer.* ./symfony.* ./ COPY ./bin ./bin -COPY ./.env.prod ./.env +COPY ./.env ./.env COPY ./config ./config COPY ./migrations ./migrations COPY ./src ./src @@ -21,7 +21,7 @@ FROM apt-install AS composer-install COPY --from=database /app/var /app/var WORKDIR /app COPY ./composer.* ./symfony.* ./ -COPY ./.env.prod ./.env +COPY ./.env ./.env RUN composer install \ --no-cache \ --no-dev \