Added baserow service
This commit is contained in:
parent
4d1b2fe72b
commit
6ee97ed203
@ -62,6 +62,7 @@ get_config() {
|
|||||||
. /federated/lib/proxy.sh
|
. /federated/lib/proxy.sh
|
||||||
. /federated/lib/wireguard.sh
|
. /federated/lib/wireguard.sh
|
||||||
. /federated/lib/connector.sh
|
. /federated/lib/connector.sh
|
||||||
|
. /federated/lib/baserow.sh
|
||||||
|
|
||||||
echo -ne "\nFederated Stack install script\n\n"
|
echo -ne "\nFederated Stack install script\n\n"
|
||||||
read -p '* Enter domain name (domain.com): ' DOMAIN
|
read -p '* Enter domain name (domain.com): ' DOMAIN
|
||||||
@ -92,12 +93,13 @@ check_ports
|
|||||||
config_network
|
config_network
|
||||||
|
|
||||||
# Configure and start each federated service
|
# 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
|
config_$i
|
||||||
start_$i
|
start_$i
|
||||||
done
|
done
|
||||||
|
|
||||||
# Print out federated environment details
|
# Print out federated environment details
|
||||||
|
echo -ne "\n\n"
|
||||||
cat << EOF
|
cat << EOF
|
||||||
* The services are at these hostnames..
|
* The services are at these hostnames..
|
||||||
mail.$DOMAIN
|
mail.$DOMAIN
|
||||||
@ -110,6 +112,7 @@ listmonk.$DOMAIN
|
|||||||
vaultwarden.$DOMAIN
|
vaultwarden.$DOMAIN
|
||||||
vpn.$DOMAIN
|
vpn.$DOMAIN
|
||||||
connector.$DOMAIN
|
connector.$DOMAIN
|
||||||
|
baserow.$DOMAIN
|
||||||
|
|
||||||
* Your VPN Wireguard configuration is..
|
* Your VPN Wireguard configuration is..
|
||||||
EOF
|
EOF
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
# Federated Start Script
|
# Federated Start Script
|
||||||
|
|
||||||
usage() {
|
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
|
exit 2
|
||||||
}
|
}
|
||||||
startservice() {
|
startservice() {
|
||||||
@ -11,7 +11,7 @@ startservice() {
|
|||||||
cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE up -d
|
cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE up -d
|
||||||
}
|
}
|
||||||
startservice_all() {
|
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.."
|
echo "* Starting $i.."
|
||||||
cd /federated/apps/$i && docker-compose -f docker-compose.yml -p $i up -d
|
cd /federated/apps/$i && docker-compose -f docker-compose.yml -p $i up -d
|
||||||
done
|
done
|
||||||
@ -22,6 +22,6 @@ SERVICE=$1
|
|||||||
|
|
||||||
case "$SERVICE" in
|
case "$SERVICE" in
|
||||||
all) startservice_all;;
|
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;;
|
*) usage;;
|
||||||
esac
|
esac
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
# Federated Stop Script
|
# Federated Stop Script
|
||||||
|
|
||||||
usage() {
|
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
|
exit 2
|
||||||
}
|
}
|
||||||
stopservice() {
|
stopservice() {
|
||||||
@ -11,7 +11,7 @@ stopservice() {
|
|||||||
cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE down
|
cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE down
|
||||||
}
|
}
|
||||||
stopservice_all() {
|
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.."
|
echo "* Stopping $i.."
|
||||||
cd /federated/apps/$i && docker-compose -f docker-compose.yml -p $i down
|
cd /federated/apps/$i && docker-compose -f docker-compose.yml -p $i down
|
||||||
done
|
done
|
||||||
@ -22,6 +22,6 @@ SERVICE=$1
|
|||||||
|
|
||||||
case "$SERVICE" in
|
case "$SERVICE" in
|
||||||
all) stopservice_all;;
|
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;;
|
*) usage;;
|
||||||
esac
|
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);
|
VAULTWARDEN_SECRET=$(create_password);
|
||||||
LISTMONK_SECRET=$(create_password);
|
LISTMONK_SECRET=$(create_password);
|
||||||
MATRIX_SECRET=$(create_password);
|
MATRIX_SECRET=$(create_password);
|
||||||
|
BASEROW_SECRET=$(create_password);
|
||||||
|
|
||||||
# cat postgresql/data/docker-entrypoint-initdb.d/init.sql
|
# cat postgresql/data/docker-entrypoint-initdb.d/init.sql
|
||||||
cat > /federated/apps/postgresql/data/docker-entrypoint-initdb.d/init.sql <<EOF
|
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 USER matrix WITH PASSWORD '$MATRIX_SECRET';
|
||||||
CREATE DATABASE matrix;
|
CREATE DATABASE matrix;
|
||||||
GRANT ALL PRIVILEGES ON DATABASE matrix TO 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
|
EOF
|
||||||
|
|
||||||
kill -9 $SPINPID &> /dev/null
|
kill -9 $SPINPID &> /dev/null
|
||||||
|
Loading…
x
Reference in New Issue
Block a user