diff --git a/install/gitea-mirror-install.sh b/install/gitea-mirror-install.sh new file mode 100644 index 00000000..7f15bd7a --- /dev/null +++ b/install/gitea-mirror-install.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: CrazyWolf13 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/RayLabsHQ/gitea-mirror + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing dependencies" +$STD apt-get install -y \ + build-essential \ + openssl \ + sqlite3 \ + unzip +msg_ok "Installed Dependencies" + +msg_info "Installing Bun" +export BUN_INSTALL=/opt/bun +curl -fsSL https://bun.sh/install | $STD bash +ln -sf /opt/bun/bin/bun /usr/local/bin/bun +ln -sf /opt/bun/bin/bun /usr/local/bin/bunx +msg_ok "Installed Bun" + +fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror" + +msg_info "Installing gitea-mirror" +cd /opt/gitea-mirror +$STD bun run setup +$STD bun run build +msg_ok "Installed gitea-mirror" + +msg_info "Creating Services" +APP_SECRET=$(openssl rand -base64 32) +APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4) +HOST_IP=$(hostname -I | awk '{print $1}') +cat </opt/gitea-mirror.env +# See here for config options: https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/ENVIRONMENT_VARIABLES.md +NODE_ENV=production +HOST=0.0.0.0 +PORT=4321 +DATABASE_URL=sqlite://data/gitea-mirror.db +BETTER_AUTH_URL=http://${HOST_IP}:4321 +BETTER_AUTH_SECRET=${APP_SECRET} +npm_package_version=${APP_VERSION} +EOF + +cat </etc/systemd/system/gitea-mirror.service +[Unit] +Description=Gitea Mirror +After=network.target +[Service] +Type=simple +WorkingDirectory=/opt/gitea-mirror +ExecStart=/usr/local/bin/bun dist/server/entry.mjs +Restart=on-failure +RestartSec=10 +EnvironmentFile=/opt/gitea-mirror.env +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now gitea-mirror +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned"