diff --git a/install.sh b/install.sh index 10956d8..f14a6ed 100755 --- a/install.sh +++ b/install.sh @@ -1,12 +1,92 @@ #!/bin/sh +# Run me: +# curl https://git.joeac.net/joeac/joeac.net.net/raw/branch/main/install.sh | sudo -E 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 [ -z "$AWS_ACCESS_KEY_ID" ] + then + echo "Please provide AWS_ACCESS_KEY_ID." + exit 1 + fi + if [ -z "$AWS_SECRET_ACCESS_KEY" ] + then + echo "Please provide AWS_SECRET_ACCESS_KEY." + exit 1 + fi + if [ -z "$RESTIC_PASSWORD" ] + then + echo "Please provide RESTIC_PASSWORD." + exit 1 + fi + if [ -z "$JOEAC_PASSWORD" ] + then + echo "Please provide JOEAC_PASSWORD." + exit 1 + fi + + echo << EOF > resticprofile/.env +export AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}" +export AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}" +export RESTIC_PASSWORD="${RESTIC_PASSWORD}" +EOF + + echo << EOF > symfony/.env +APP_ENV=prod +DATABASE_URL="sqlite:///%kernel.project_dir%/var/app.db" +JOEAC_PASSWORD="${JOEAC_PASSWORD}" +MESSENGER_TRANSPORT_DSN=doctrine://default +EOF +} + +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/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 \