Redesign landing page and add Caddy deployment for nomadro.com
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
4
deploy/Caddyfile
Normal file
4
deploy/Caddyfile
Normal file
@@ -0,0 +1,4 @@
|
||||
nomadro.com, www.nomadro.com {
|
||||
encode gzip
|
||||
reverse_proxy 127.0.0.1:4003
|
||||
}
|
||||
15
deploy/deploy.sh
Normal file
15
deploy/deploy.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# 日常更新部署
|
||||
set -euo pipefail
|
||||
|
||||
APP_DIR="/var/www/nomadro.com"
|
||||
BRANCH="${BRANCH:-test}"
|
||||
|
||||
cd "$APP_DIR"
|
||||
git fetch origin
|
||||
git checkout "$BRANCH"
|
||||
git pull origin "$BRANCH"
|
||||
pnpm install --frozen-lockfile
|
||||
pnpm build
|
||||
systemctl restart nomadro
|
||||
echo "Deployed $(git rev-parse --short HEAD)"
|
||||
15
deploy/nomadro.service
Normal file
15
deploy/nomadro.service
Normal file
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=Nomadro Next.js App
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=/var/www/nomadro.com
|
||||
Environment=PORT=4003
|
||||
Environment=NODE_ENV=production
|
||||
ExecStart=/usr/bin/pnpm start
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
78
deploy/setup-server.sh
Normal file
78
deploy/setup-server.sh
Normal file
@@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
# 首次部署:安装依赖、克隆代码、配置 Caddy + systemd
|
||||
# 不影响 nginx:23794 / sing-box 等现有业务
|
||||
set -euo pipefail
|
||||
|
||||
APP_DIR="/var/www/nomadro.com"
|
||||
REPO_URL="${REPO_URL:-https://gitea.dsx2020.com/eric/gitlab-instance-0a899031_nomadro.git}"
|
||||
BRANCH="${BRANCH:-test}"
|
||||
GIT_USER="${GIT_USER:-eric}"
|
||||
GIT_PASS="${GIT_PASS:?Set GIT_PASS}"
|
||||
|
||||
echo "==> Install Node.js 20"
|
||||
if ! command -v node >/dev/null 2>&1; then
|
||||
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
||||
apt-get install -y nodejs
|
||||
fi
|
||||
|
||||
echo "==> Install pnpm"
|
||||
if ! command -v pnpm >/dev/null 2>&1; then
|
||||
corepack enable
|
||||
corepack prepare pnpm@10.25.0 --activate
|
||||
fi
|
||||
|
||||
echo "==> Install Caddy"
|
||||
if ! command -v caddy >/dev/null 2>&1; then
|
||||
apt-get install -y debian-keyring debian-archive-keyring apt-transport-https curl
|
||||
curl -1sLf 'https://dl.caddyserver.com/api/download/installer/deb/caddy-stable/caddy-stable.list' \
|
||||
| tee /etc/apt/sources.list.d/caddy-stable.list
|
||||
curl -1sLf 'https://dl.caddyserver.com/api/download/installer/deb/caddy-stable/caddy-stable-archive-keyring.gpg' \
|
||||
| tee /usr/share/keyrings/caddy-stable-archive-keyring.gpg >/dev/null
|
||||
apt-get update
|
||||
apt-get install -y caddy
|
||||
fi
|
||||
|
||||
echo "==> Clone or update app"
|
||||
mkdir -p /var/www
|
||||
if [ -d "$APP_DIR/.git" ]; then
|
||||
cd "$APP_DIR"
|
||||
git fetch origin
|
||||
git checkout "$BRANCH"
|
||||
git pull origin "$BRANCH"
|
||||
else
|
||||
git clone -b "$BRANCH" "https://${GIT_USER}:${GIT_PASS}@${REPO_URL#https://}" "$APP_DIR"
|
||||
cd "$APP_DIR"
|
||||
fi
|
||||
|
||||
echo "==> Build app"
|
||||
pnpm install --frozen-lockfile
|
||||
pnpm build
|
||||
|
||||
echo "==> Configure Caddy (only nomadro.com, keep nginx untouched)"
|
||||
CADDY_MAIN="/etc/caddy/Caddyfile"
|
||||
SNIPPET="# nomadro.com - managed by nomadro deploy"
|
||||
if [ -f "$CADDY_MAIN" ] && grep -q "nomadro.com" "$CADDY_MAIN"; then
|
||||
echo "Caddy nomadro.com block already exists"
|
||||
else
|
||||
if [ ! -f "$CADDY_MAIN" ] || [ ! -s "$CADDY_MAIN" ]; then
|
||||
cp "$APP_DIR/deploy/Caddyfile" "$CADDY_MAIN"
|
||||
else
|
||||
echo "" >> "$CADDY_MAIN"
|
||||
echo "$SNIPPET" >> "$CADDY_MAIN"
|
||||
cat "$APP_DIR/deploy/Caddyfile" >> "$CADDY_MAIN"
|
||||
fi
|
||||
fi
|
||||
caddy validate --config "$CADDY_MAIN"
|
||||
systemctl enable caddy
|
||||
systemctl reload caddy || systemctl restart caddy
|
||||
|
||||
echo "==> Configure systemd service"
|
||||
cp "$APP_DIR/deploy/nomadro.service" /etc/systemd/system/nomadro.service
|
||||
systemctl daemon-reload
|
||||
systemctl enable nomadro
|
||||
systemctl restart nomadro
|
||||
|
||||
echo "==> Done"
|
||||
systemctl status nomadro --no-pager | head -10
|
||||
systemctl status caddy --no-pager | head -10
|
||||
ss -tlnp | grep -E ':80 |:443 |:4003 ' || true
|
||||
Reference in New Issue
Block a user