Added baserow service
This commit is contained in:
parent
4d1b2fe72b
commit
6ee97ed203
@ -62,6 +62,7 @@ get_config() {
|
||||
. /federated/lib/proxy.sh
|
||||
. /federated/lib/wireguard.sh
|
||||
. /federated/lib/connector.sh
|
||||
. /federated/lib/baserow.sh
|
||||
|
||||
echo -ne "\nFederated Stack install script\n\n"
|
||||
read -p '* Enter domain name (domain.com): ' DOMAIN
|
||||
@ -92,12 +93,13 @@ check_ports
|
||||
config_network
|
||||
|
||||
# Configure and start each federated service
|
||||
for i in dns postgresql ldap mail collabora proxy nextcloud matrix element listmonk vaultwarden panel wireguard jitsi connector; do
|
||||
for i in dns postgresql ldap mail collabora proxy nextcloud matrix element listmonk vaultwarden panel wireguard jitsi connector baserow; do
|
||||
config_$i
|
||||
start_$i
|
||||
done
|
||||
|
||||
# Print out federated environment details
|
||||
echo -ne "\n\n"
|
||||
cat << EOF
|
||||
* The services are at these hostnames..
|
||||
mail.$DOMAIN
|
||||
@ -110,6 +112,7 @@ listmonk.$DOMAIN
|
||||
vaultwarden.$DOMAIN
|
||||
vpn.$DOMAIN
|
||||
connector.$DOMAIN
|
||||
baserow.$DOMAIN
|
||||
|
||||
* Your VPN Wireguard configuration is..
|
||||
EOF
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Federated Start Script
|
||||
|
||||
usage() {
|
||||
echo "$0: all|dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector"
|
||||
echo "$0: all|dns|postgresql|ldap|mail|collabora|nextcloud|matrix|element|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector|baserow"
|
||||
exit 2
|
||||
}
|
||||
startservice() {
|
||||
@ -11,7 +11,7 @@ startservice() {
|
||||
cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE up -d
|
||||
}
|
||||
startservice_all() {
|
||||
for i in dns postgresql ldap mail collabora nextcloud matrix jitsi listmonk vaultwarden panel proxy wireguard connector; do
|
||||
for i in dns postgresql ldap mail collabora nextcloud matrix element jitsi listmonk vaultwarden panel proxy wireguard connector baserow; do
|
||||
echo "* Starting $i.."
|
||||
cd /federated/apps/$i && docker-compose -f docker-compose.yml -p $i up -d
|
||||
done
|
||||
@ -22,6 +22,6 @@ SERVICE=$1
|
||||
|
||||
case "$SERVICE" in
|
||||
all) startservice_all;;
|
||||
dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector) startservice;;
|
||||
dns|postgresql|ldap|mail|collabora|nextcloud|matrix|element|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector|baserow) startservice;;
|
||||
*) usage;;
|
||||
esac
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Federated Stop Script
|
||||
|
||||
usage() {
|
||||
echo "$0: all|dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector"
|
||||
echo "$0: all|dns|postgresql|ldap|mail|collabora|nextcloud|matrix|element|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector|baserow"
|
||||
exit 2
|
||||
}
|
||||
stopservice() {
|
||||
@ -11,7 +11,7 @@ stopservice() {
|
||||
cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE down
|
||||
}
|
||||
stopservice_all() {
|
||||
for i in dns postgresql ldap mail collabora nextcloud matrix jitsi listmonk vaultwarden panel proxy wireguard connector; do
|
||||
for i in dns postgresql ldap mail collabora nextcloud matrix element jitsi listmonk vaultwarden panel proxy wireguard connector baserow; do
|
||||
echo "* Stopping $i.."
|
||||
cd /federated/apps/$i && docker-compose -f docker-compose.yml -p $i down
|
||||
done
|
||||
@ -22,6 +22,6 @@ SERVICE=$1
|
||||
|
||||
case "$SERVICE" in
|
||||
all) stopservice_all;;
|
||||
dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector) stopservice;;
|
||||
dns|postgresql|ldap|mail|collabora|nextcloud|matrix|element|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector|baserow) stopservice;;
|
||||
*) usage;;
|
||||
esac
|
||||
|
121
lib/baserow.sh
Normal file
121
lib/baserow.sh
Normal file
@ -0,0 +1,121 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Vaultwarden Service
|
||||
|
||||
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
|
||||
config_baserow() {
|
||||
echo -ne "\n* Configuring /federated/apps/baserow container.."
|
||||
spin &
|
||||
SPINPID=$!
|
||||
|
||||
if [ ! -d "/federated/apps/baserow" ]; then
|
||||
mkdir -p /federated/apps/baserow/data/baserow/data
|
||||
fi
|
||||
|
||||
DOMAIN_ARRAY=(${DOMAIN//./ })
|
||||
DOMAIN_FIRST=${DOMAIN_ARRAY[0]}
|
||||
DOMAIN_LAST=${DOMAIN_ARRAY[1]}
|
||||
|
||||
cat > /federated/apps/baserow/docker-compose.yml <<EOF
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
baserow:
|
||||
image: baserow/baserow:\${IMAGE_VERSION}
|
||||
container_name: baserow
|
||||
hostname: baserow.$DOMAIN
|
||||
domainname: $DOMAIN
|
||||
restart: always
|
||||
networks:
|
||||
federated:
|
||||
ipv4_address: 172.99.0.28
|
||||
env_file:
|
||||
- ./.env
|
||||
volumes:
|
||||
- ./data/baserow/data:/baserow/data
|
||||
|
||||
networks:
|
||||
federated:
|
||||
external: true
|
||||
EOF
|
||||
|
||||
cat > /federated/apps/baserow/.env <<EOF
|
||||
IMAGE_VERSION="1.14.0"
|
||||
BASEROW_PUBLIC_URL=https://baserow.$DOMAIN
|
||||
DATABASE_HOST=postgresql.$DOMAIN
|
||||
DATABASE_NAME=baserow
|
||||
DATABASE_USER=baserow
|
||||
DATABASE_PASSWORD_FILE=/baserow/data/.federated.postgresql.secret
|
||||
DATABASE_PORT=5432
|
||||
BASEROW_AMOUNT_OF_WORKERS=1
|
||||
BASEROW_AMOUNT_OF_GUNICORN_WORKERS=1
|
||||
BASEROW_RUN_MINIMAL=1
|
||||
BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION="false"
|
||||
VIRTUAL_PROTO=http
|
||||
VIRTUAL_PORT=80
|
||||
VIRTUAL_HOST=baserow.$DOMAIN
|
||||
EOF
|
||||
chmod 600 /federated/apps/baserow/.env
|
||||
|
||||
echo "$BASEROW_SECRET" > /federated/apps/baserow/data/baserow/data/.federated.postgresql.secret
|
||||
|
||||
cat > /federated/apps/baserow/data/createuser.sh <<EOF
|
||||
#!/bin/bash
|
||||
|
||||
curl -X POST -H 'Content-Type: application/json' -i http://localhost/api/user/ --data '{
|
||||
"name": "admin",
|
||||
"email": "admin@$DOMAIN",
|
||||
"password": "$ADMINPASS"
|
||||
}'
|
||||
EOF
|
||||
chmod +x /federated/apps/baserow/data/createuser.sh
|
||||
|
||||
kill -9 $SPINPID &> /dev/null
|
||||
echo -ne "done."
|
||||
}
|
||||
|
||||
start_baserow() {
|
||||
# Start /federated/apps/baserow with output to /dev/null
|
||||
echo -ne "\n* Starting /federated/apps/baserow service.."
|
||||
spin &
|
||||
SPINPID=$!
|
||||
|
||||
if [ $DEBUG ]; then
|
||||
# Start /federated/apps/baserow with output to console for debug
|
||||
docker-compose -f /federated/apps/baserow/docker-compose.yml -p baserow up
|
||||
[ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service /federated/apps/baserow"
|
||||
else
|
||||
docker-compose -f /federated/apps/baserow/docker-compose.yml -p baserow up -d &> /dev/null
|
||||
|
||||
# Keep trying baserow port 3000 to make sure it's up
|
||||
# before we proceed
|
||||
RETRY="30"
|
||||
while [ $RETRY -gt 0 ]; do
|
||||
docker exec -it baserow curl http://localhost:3000 &> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
break
|
||||
else
|
||||
if [ "$RETRY" == 1 ]; then
|
||||
docker-compose -f /federated/apps/baserow/docker-compose.yml -p baserow down &> /dev/null
|
||||
kill -9 $SPINPID &> /dev/null
|
||||
fail "There was a problem starting service /federated/apps/baserow\nCheck the output of 'docker logs baserow' or turn on\ndebug with -d"
|
||||
fi
|
||||
((RETRY--))
|
||||
sleep 7
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Move createuser.sh and set it executable
|
||||
mv /federated/apps/baserow/data/createuser.sh /federated/apps/baserow/data/baserow/data/
|
||||
docker exec -it baserow chmod 755 /baserow/data/createuser.sh
|
||||
[ $? -ne 0 ] && fail "Couldn't chown createuser.sh in /federated/apps/baserow container"
|
||||
|
||||
# Run createuser.sh inside baserow container
|
||||
docker exec -it baserow /baserow/data/createuser.sh
|
||||
[ $? -ne 0 ] && fail "Couldn't run createuser.sh in /federated/apps/baserow container"
|
||||
|
||||
kill -9 $SPINPID &> /dev/null
|
||||
echo -ne "done."
|
||||
}
|
@ -76,6 +76,7 @@ chmod 600 /federated/apps/postgresql/.postgresql.secret
|
||||
VAULTWARDEN_SECRET=$(create_password);
|
||||
LISTMONK_SECRET=$(create_password);
|
||||
MATRIX_SECRET=$(create_password);
|
||||
BASEROW_SECRET=$(create_password);
|
||||
|
||||
# cat postgresql/data/docker-entrypoint-initdb.d/init.sql
|
||||
cat > /federated/apps/postgresql/data/docker-entrypoint-initdb.d/init.sql <<EOF
|
||||
@ -88,6 +89,9 @@ GRANT ALL PRIVILEGES ON DATABASE listmonk TO listmonk;
|
||||
CREATE USER matrix WITH PASSWORD '$MATRIX_SECRET';
|
||||
CREATE DATABASE matrix;
|
||||
GRANT ALL PRIVILEGES ON DATABASE matrix TO matrix;
|
||||
CREATE USER baserow WITH PASSWORD '$BASEROW_SECRET';
|
||||
CREATE DATABASE baserow;
|
||||
GRANT ALL PRIVILEGES ON DATABASE baserow TO baserow;
|
||||
EOF
|
||||
|
||||
kill -9 $SPINPID &> /dev/null
|
||||
|
Loading…
x
Reference in New Issue
Block a user