Add jekyll_install.sh
This commit is contained in:
commit
61795a4eeb
|
|
@ -0,0 +1,66 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "[+] Installing system dependencies..."
|
||||||
|
sudo pacman -Sy --noconfirm ruby base-devel
|
||||||
|
|
||||||
|
echo "[+] Setting up Ruby user gem path..."
|
||||||
|
GEM_PATH=$(ruby -e 'puts Gem.user_dir')
|
||||||
|
BIN_PATH="$GEM_PATH/bin"
|
||||||
|
|
||||||
|
# add to PATH if not already there
|
||||||
|
if ! grep -q "$BIN_PATH" ~/.bashrc; then
|
||||||
|
echo "export PATH=\"$BIN_PATH:\$PATH\"" >> ~/.bashrc
|
||||||
|
echo "[+] Added gem bin path to ~/.bashrc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export PATH="$BIN_PATH:$PATH"
|
||||||
|
|
||||||
|
echo "[+] Installing Jekyll + dependencies..."
|
||||||
|
gem install --user-install bundler jekyll webrick
|
||||||
|
|
||||||
|
echo "[+] Creating Jekyll site..."
|
||||||
|
SITE_DIR="$HOME/jekyll-site"
|
||||||
|
mkdir -p "$SITE_DIR"
|
||||||
|
cd "$SITE_DIR"
|
||||||
|
|
||||||
|
jekyll new . --force
|
||||||
|
|
||||||
|
echo "[+] Adding webrick to Gemfile..."
|
||||||
|
if ! grep -q "webrick" Gemfile; then
|
||||||
|
echo 'gem "webrick"' >> Gemfile
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[+] Installing bundle..."
|
||||||
|
bundle install
|
||||||
|
|
||||||
|
echo "[+] Testing Jekyll..."
|
||||||
|
bundle exec jekyll build
|
||||||
|
|
||||||
|
echo "[+] Creating systemd service..."
|
||||||
|
|
||||||
|
SERVICE_FILE="/etc/systemd/system/jekyll.service"
|
||||||
|
|
||||||
|
sudo bash -c "cat > $SERVICE_FILE" <<EOF
|
||||||
|
[Unit]
|
||||||
|
Description=Jekyll Site
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=$USER
|
||||||
|
WorkingDirectory=$SITE_DIR
|
||||||
|
ExecStart=$BIN_PATH/bundle exec jekyll serve --host 0.0.0.0 --port 4000
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "[+] Enabling service..."
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl enable --now jekyll
|
||||||
|
|
||||||
|
echo "[+] Done!"
|
||||||
|
echo "Access your site at: http://$(hostname -I | awk '{print $1}'):4000"
|
||||||
|
echo "Check logs with: journalctl -u jekyll -f"
|
||||||
Loading…
Reference in New Issue