lasthourcloud/scripts/install_podman_experiment.sh
Andras Bacsai 460ae85226
V2 (#111)
Just v2
2022-02-10 15:47:44 +01:00

115 lines
3.3 KiB
Bash

#!/usr/bin/env bash
clear
ARG1=$1
WHO=$(whoami)
APP_ID=$(cat /proc/sys/kernel/random/uuid)
RANDOM_SECRET=$(echo $(($(date +%s%N) / 1000000)) | sha256sum | base64 | head -c 32)
SENTRY_DSN="https://9e7a74326f29422584d2d0bebdc8b7d3@o1082494.ingest.sentry.io/6091062"
UBUNTU_MAJOR_MIN=20
UBUNTU_MINOR_MIN=04
OS_OK="nok"
set -eou pipefail
if [ $ARG1 ] && [ $ARG1 == "-d" ]; then
set -x
fi
function errorchecker() {
exitCode=$?
if [ $exitCode -ne "0" ]; then
echo "$0 exited unexpectedly with status: $exitCode"
exit $exitCode
fi
}
trap 'errorchecker' EXIT
if [ $WHO != 'root' ]; then
echo 'Run as root please: sudo sh -c "$(curl -fsSL https://get.coollabs.io/coolify/install.sh)"'
exit 1
fi
. /etc/lsb-release
if [ $DISTRIB_ID != 'Ubuntu' ]; then
echo 'Not supported OS, please open an issue on Github to get supported version.'
exit 1
fi
DISTRIB_RELEASE_MAJOR=$(echo "$DISTRIB_RELEASE" | cut -d'.' -f 1)
DISTRIB_RELEASE_MINOR=$(echo "$DISTRIB_RELEASE" | cut -d'.' -f 2)
if [ "$DISTRIB_RELEASE_MAJOR" -ge "$UBUNTU_MAJOR_MIN" ] &&
[ "$DISTRIB_RELEASE_MINOR" -ge "$UBUNTU_MINOR_MIN" ]; then
OS_OK="ok"
fi
if [ $OS_OK == 'nok' ]; then
echo "Ubuntu version less than $UBUNTU_MAJOR_MIN.$UBUNTU_MINOR_MIN."
exit 1
fi
function installPodman() {
apt-get update -y
apt-get install curl wget gnupg2 -y
if [ "$DISTRIB_RELEASE_MAJOR" -eq "20" ] && [ "$DISTRIB_RELEASE_MINOR" -eq "04" ]; then
echo 'Installing on 20.04'
source /etc/os-release
sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key -O- | apt-key add -
apt-get update -y
apt-get -y install podman
return 0
elif [ "$DISTRIB_RELEASE_MAJOR" -eq "20" ] && [ "$DISTRIB_RELEASE_MINOR" -eq "10" ]; then
apt-get -y install podman
return 0
elif [ "$DISTRIB_RELEASE_MAJOR" -gt "20" ]; then
apt-get -y install podman
return 0
else
exit 1
fi
}
if [ ! -x "$(command -v podman)" ]; then
while true; do
read -p "Podman not found, should I install it automatically? [Yy/Nn] " yn
case $yn in
[Yy]*)
installPodman
break
;;
[Nn]*)
echo "Please install docker manually and update it to the latest, but at least to $DOCKER_MAJOR.$DOCKER_MINOR"
exit 0
;;
*) echo "Please answer Yy or Nn." ;;
esac
done
fi
# Making base directory for coolify
if [ ! -d coolify ]; then
mkdir coolify
fi
echo "COOLIFY_APP_ID=$APP_ID
COOLIFY_SECRET_KEY=$RANDOM_SECRET
COOLIFY_DATABASE_URL=file:../db/prod.db
COOLIFY_SENTRY_DSN=$SENTRY_DSN
COOLIFY_HOSTED_ON=docker" >coolify/.env
systemctl start podman.socket
systemctl enable podman.socket
podman volume create coolify-db
podman volume create coolify-ssl-certs
podman volume create coolify-letsencrypt
cd coolify && podman run --privileged -tid --env-file .env -v /var/run/podman/podman.sock:/var/run/podman/podman.sock -v coolify-db-sqlite:/app/db docker.io/coollabsio/coolify:latest /bin/sh -c "env | grep COOLIFY > .env && docker-compose up -d --force-recreate"
echo "Done"
exit 0