124 lines
3.2 KiB
Bash
124 lines
3.2 KiB
Bash
#!/bin/bash
|
|
|
|
# Start some stuff: Sidekiq Web UI, collectd web UI, MariaDB container, Redis container.
|
|
#
|
|
# Looks like shell scripts are also going into here. You may additionally backup_database.
|
|
#
|
|
# Hey it's starting to turn into a real deploy script!
|
|
|
|
set -euox
|
|
|
|
DOCKER=podman
|
|
MARIADB_IMAGE=localhost/alpine-mariadb
|
|
REDIS_IMAGE=localhost/redis-7.2-rc-alpine
|
|
SCHEMACRAWLER_DIR=$HOME/schemacrawler-16.20.4-bin
|
|
|
|
function message(){
|
|
plus="+"
|
|
[[ $1 -ne 0 ]] && plus=-
|
|
shift
|
|
echo "[${plus}] $@"
|
|
}
|
|
|
|
# This will probably either go away or be moved to mariadb database as we migrate (eventually)
|
|
function backup_database() {
|
|
shift
|
|
running_container=
|
|
if [ $# -eq 0 ]
|
|
then
|
|
running_container=$(${DOCKER} ps --format '{{.Image}} {{.Names}}' | grep cl-deck-builder2 | awk '{print $2}')
|
|
else
|
|
running_container="$1"
|
|
fi
|
|
if [ "x$running_container" = "x" ]
|
|
then
|
|
message 1 "deck builder container not running?"
|
|
else
|
|
message 0 "found $running_container"
|
|
message 0 "copying database $running_container:/home/quicklisp/quicklisp/local-projects/cl-deck-builder2/deck_builder.sqlite3"
|
|
$DOCKER cp "$running_container:/home/quicklisp/quicklisp/local-projects/cl-deck-builder2/deck_builder.sqlite3" \
|
|
~/sqlite3/$(date '+%Y-%m-%d')-deck_builder.sqlite3
|
|
ls -l ~/sqlite3/$(date '+%Y-%m-%d')-deck_builder.sqlite3
|
|
fi
|
|
}
|
|
|
|
function psychiq_up(){
|
|
ps -C rackup >/dev/null
|
|
if [ $? -ne 0 ]
|
|
then
|
|
message 0 "Starting Psychiq Web UI"
|
|
rackup /home/user/code/cl-deck-builder2/ruby/config.ru &
|
|
else
|
|
message 1 "Psychiq Web UI already running."
|
|
fi
|
|
}
|
|
|
|
function collectd_up() {
|
|
ps -C python3 >/dev/null
|
|
if [ $? -ne 0 ]
|
|
then
|
|
message 0 "Starting collectd Web UI"
|
|
pushd /home/user/code/alpine-collectd-web/
|
|
python3 runserver.py &
|
|
popd
|
|
else
|
|
message 1 "collectd Web UI already running."
|
|
fi
|
|
}
|
|
|
|
function mariadb_up (){
|
|
mkdir -p ~/mariadb
|
|
$DOCKER ps 2>&1| grep 3306 2>&1>/dev/null
|
|
if [ $? -ne 0 ]
|
|
then
|
|
$DOCKER run --restart always -d -P -p 3306:3306 -v $HOME/mariadb:/var/lib/mysql $MARIADB_IMAGE
|
|
else
|
|
message 1 "mariadb already running."
|
|
fi
|
|
}
|
|
|
|
function redis_up(){
|
|
mkdir -p ~/redis
|
|
$DOCKER ps 2>&1| grep 6379 2>&1>/dev/null
|
|
if [ $? -ne 0 ]
|
|
then
|
|
$DOCKER run --restart always -d -P -p 6379:6379 -v $HOME/redis:/data $REDIS_IMAGE
|
|
else
|
|
message 1 "redis already running."
|
|
fi
|
|
}
|
|
|
|
function schemacrawler(){
|
|
ORIG_DIR="$(pwd)"
|
|
cd $SCHEMACRAWLER_DIR
|
|
# Gentoo Strikes Again!
|
|
# https://github.com/schemacrawler/SchemaCrawler/issues/394
|
|
_JAVA_OPTIONS=-Djava.io.tmpdir=. \
|
|
bash bin/schemacrawler.sh \
|
|
--user= \
|
|
--password= \
|
|
--database "$ORIG_DIR/deck_builder.sqlite3" \
|
|
--server sqlite \
|
|
--weak-associations=true \
|
|
-i standard \
|
|
-c schema \
|
|
-o ~/www/db.png
|
|
|
|
chown :www-data ~/www/db.png
|
|
}
|
|
|
|
function main(){
|
|
# backup_database
|
|
psychiq_up
|
|
collectd_up
|
|
mariadb_up
|
|
redis_up
|
|
}
|
|
|
|
if [ $# -lt 1 ]
|
|
then
|
|
message 1 "Usage: $0 [main | backup_database | psychiq_up | collectd_up | mariadb_up | redis_up | schemacrawler]"
|
|
else
|
|
"$1" "$@"
|
|
fi
|