Initial project setup: Docker, Makefile, scripts, plugins
This commit is contained in:
Executable
+61
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
: "${WEBROOT:?WEBROOT is not set}"
|
||||
: "${SITE_CONFIG_DIR:?SITE_CONFIG_DIR is not set}"
|
||||
: "${USER_REPO:?USER_REPO is not set}"
|
||||
: "${MAIN_REPO:?MAIN_REPO is not set}"
|
||||
: "${GRAV_VERSION:?GRAV_VERSION is not set}"
|
||||
: "${PLUGINS:?PLUGINS is not set}"
|
||||
: "${GITEA_HOST:?GITEA_HOST is not set}"
|
||||
: "${GITEA_USER:?GITEA_USER is not set}"
|
||||
: "${GITEA_TOKEN:?GITEA_TOKEN is not set}"
|
||||
|
||||
trap 'rm -f ~/.netrc' EXIT
|
||||
|
||||
echo "==> Setting up credentials (temporary)"
|
||||
printf 'machine %s\nlogin %s\npassword %s\n' "$GITEA_HOST" "$GITEA_USER" "$GITEA_TOKEN" > ~/.netrc
|
||||
chmod 600 ~/.netrc
|
||||
|
||||
echo "==> Downloading Grav $GRAV_VERSION"
|
||||
cd "$WEBROOT"
|
||||
wget --no-verbose "https://getgrav.org/download/core/grav-admin/$GRAV_VERSION" -O grav-admin.zip
|
||||
unzip -oq grav-admin.zip
|
||||
cp -rf grav-admin/. .
|
||||
rm -rf grav-admin grav-admin.zip
|
||||
|
||||
echo "==> Cloning user repo"
|
||||
rm -rf user
|
||||
git clone "$USER_REPO" user
|
||||
|
||||
echo "==> Cloning main config repo to $SITE_CONFIG_DIR"
|
||||
if [ -d "$SITE_CONFIG_DIR/.git" ]; then
|
||||
git -C "$SITE_CONFIG_DIR" pull
|
||||
else
|
||||
rm -rf "$SITE_CONFIG_DIR"
|
||||
git clone "$MAIN_REPO" "$SITE_CONFIG_DIR"
|
||||
fi
|
||||
|
||||
echo "==> Creating required directories"
|
||||
mkdir -p user/plugins user/accounts user/data
|
||||
|
||||
echo "==> Installing plugins"
|
||||
php bin/gpm install $PLUGINS -y
|
||||
|
||||
echo "==> Setting permissions"
|
||||
find "$WEBROOT" -type f -exec chmod 664 {} \;
|
||||
find "$WEBROOT" -type d -exec chmod 775 {} \;
|
||||
|
||||
echo "==> Removing temporary credentials"
|
||||
rm -f ~/.netrc
|
||||
|
||||
echo ""
|
||||
echo "==> Done."
|
||||
echo ""
|
||||
echo "NEXT STEP — add this server's SSH public key to both Gitea repos as a deploy key"
|
||||
echo "so that 'make remote-fetch' and future git pulls work without credentials:"
|
||||
echo ""
|
||||
cat ~/.ssh/id_rsa.pub 2>/dev/null || cat ~/.ssh/id_ed25519.pub 2>/dev/null || \
|
||||
echo " No SSH key found. Generate one on the server: ssh-keygen -t ed25519 -C 'server-deploy'"
|
||||
echo ""
|
||||
echo "Visit your domain to complete Grav setup."
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if [ "$#" -ne 2 ]; then
|
||||
echo "Usage: server-maintenance.sh on|off <webroot>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MODE="$1"
|
||||
WEBROOT="$2"
|
||||
CONFIG="$WEBROOT/user/config/system.yaml"
|
||||
|
||||
if [ "$MODE" != "on" ] && [ "$MODE" != "off" ]; then
|
||||
echo "Usage: server-maintenance.sh on|off <webroot>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -f "$CONFIG" ] || { echo "Not found: $CONFIG"; exit 1; }
|
||||
|
||||
VALUE="false"
|
||||
[ "$MODE" = "on" ] && VALUE="true"
|
||||
|
||||
if grep -q "^[[:space:]]*offline:" "$CONFIG"; then
|
||||
sed -i "s/^\([[:space:]]*\)offline: .*/\1offline: $VALUE/" "$CONFIG"
|
||||
else
|
||||
printf '\npages:\n offline: %s\n' "$VALUE" >> "$CONFIG"
|
||||
fi
|
||||
|
||||
echo "Maintenance mode: $MODE (offline: $VALUE)"
|
||||
Reference in New Issue
Block a user