mirror of
https://github.com/balzack/databag.git
synced 2025-04-25 02:55:21 +00:00
* Better dev docker containers, Simpler production docker file, caddy for ssl * Fix repeater docker image * Add depends on * Use recommended caddy volumes & change to using databag image * move to using examples folder for installation * lint * Tested example linux on bare metal * Add DATABAG_PORT env and fix caddy * Add dev_database for local sqlite testing * incorrect use -z * Add platform goarch goos optional envs * Add more caching for faster rebuilds
86 lines
2.3 KiB
Bash
Executable File
86 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
function confirm() {
|
|
read -p "Are you sure you want to continue? [Y/n] " reply
|
|
if [ "$reply" != "Y" ] && [ "$reply" != "y" ]; then
|
|
echo "Aborting"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
if ! id "databag" >/dev/null 2>&1; then
|
|
echo "User databag not found, creating..."
|
|
confirm
|
|
sudo useradd databag
|
|
fi
|
|
|
|
if [[ ! -d "/app/databag" ]]; then
|
|
echo "Creating app directory for databag, this requires sudo permissions"
|
|
sudo rm -rf /app/databag || true
|
|
sudo mkdir -p /app/databag
|
|
|
|
echo "Downloading databag repository into /app/databag"
|
|
git clone --depth 1 https://github.com/balzack/databag.git /app/databag
|
|
sudo chown -R databag:databag /app/databag
|
|
fi
|
|
cd /app/databag
|
|
|
|
# You might be running this script from the root of this repository
|
|
if [[ "/app/databag" != $(pwd) ]]; then
|
|
cd ../..
|
|
fi
|
|
|
|
if [[ "/app/databag" != $(pwd) ]]; then
|
|
echo "Install databag must be done from /app/databag"
|
|
echo "Please re-clone the github repository into /app/databag, like so:"
|
|
echo "mkdir -p /app; https://github.com/balzack/databag /app/databag"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -z $(which yarn) ]]; then
|
|
echo "Yarn is not installed, installing..."
|
|
npm install --global yarn
|
|
fi
|
|
|
|
echo "Building frontend files..."
|
|
cd net/web
|
|
yarn --frozen-lockfile
|
|
echo "Removing old frontend files, requires sudo permissions..."
|
|
sudo rm -rf build
|
|
yarn run build
|
|
sudo chown -R databag:databag build
|
|
cd ../..
|
|
|
|
echo "Building backend files..."
|
|
cd net/server
|
|
CGO_ENABLED=1 go build -o databag .
|
|
cd ../..
|
|
|
|
echo "Creating databag locations..."
|
|
sudo mkdir -p /opt/databag
|
|
sudo mkdir -p /var/lib/databag
|
|
sudo chown -R databag:databag /var/lib/databag
|
|
|
|
echo "Copying transform scripts..."
|
|
sudo mkdir -p /opt/databag/transform
|
|
sudo cp net/transform/*.sh /opt/databag/transform/
|
|
sudo chmod +x /opt/databag/transform/*.sh
|
|
|
|
if [[ ! -f /etc/systemd/system/databag.service ]]; then
|
|
function createService() {
|
|
echo "Creating databag service, requires sudo permissions..."
|
|
sudo cp examples/linux/databag.service /etc/systemd/system/databag.service
|
|
sudo chmod 664 /etc/systemd/system/databag.service
|
|
sudo systemctl daemon-reload
|
|
}
|
|
function startService() {
|
|
echo "Starting databag service..."
|
|
sudo systemctl start databag.service
|
|
}
|
|
createService $? "Failed to install databag service"
|
|
startService $? "Failed to start databag service"
|
|
fi
|
|
echo ""
|
|
echo "Done"
|