diff --git a/README.md b/README.md index 64d3ac7..3655724 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,80 @@ # Gitea Installer -Installs [Gitea](https://gitea.io) (formerly gogs) as a systemd service +Installs [Gitea](https://gitea.io) (formerly Gogs) as a systemd service # Easy Install (Linux) -You can download and run the installer script: +You can download and run the installer script using this command: -```bash -wget -O install-gitea.bash https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/master/install.bash -bash install-gitea.bash -``` +`curl -fsSL https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/branch/master/install.bash | bash` -# Screencast +a screencast of me installing gitea and migrating one of my github repos -how to install Gitea +## Specific Versions -# Manual Install +You can pick a specific version to install. For example, if you were nostalgic for 1.2.0, you could run: +`curl -fsSL https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/branch/master/install.bash | bash -s version 1.2.0` + +# After Installing + +Once you have gitea installed and running you must choose +which database to use, certain gitea paths, an admin user, etc. + +Go to: http://localhost:3000/ + +You should see these fields: + +*The following is for basic usage with this script, for more advance usage see: [https://docs.gitea.io/en-us/customizing-gitea/](https://docs.gitea.io/en-us/customizing-gitea/)* + +`Database Type:` Use SQLite3 for the database. + +`Path:` Leave this alone. + +`Application Name:` Give your Gitea server a fancy name. + +`Repository Root Path:` Leave this alone. + +`LFS Root Path:` Leave this alone. + +`Run User:` Leave this alone. + +`Domain:` Replace this with your domain name for the server. + +`SSH Port:` Leave this alone unless you want a custom port for SSH. + +`HTTP Port:` Change this if you want Gitea to serve on a different port. You don't usually need to, Gitea is usually used behind a web server. + +`Application URL:` Enter the full URL for your Gitea instance, like https://example.com/ + +`Log Path:` Leave this alone. + +Click on "Admin Account Settings" to setup your user account and click "Install Gitea" when you are done. + +## Manual Install Or manually install by reading these instructions and following along: ```bash -# Create a 'gitea' user and group with the home /opt/gitea, no password (because it's a system user) and no GECOS +### Create a 'gitea' user and group with the home /opt/gitea, no password (because it's a system user) and no GECOS sudo adduser gitea --home /opt/gitea --disabled-password --gecos '' -# Make some other potentially useful directories for that user/group +### Make some other potentially useful directories for that user/group sudo mkdir -p /opt/gitea/ /var/log/gitea sudo chown -R gitea:gitea /opt/gitea/ /var/log/gitea -# Download and install gitea -sudo wget -O /opt/gitea/gitea https://dl.gitea.io/gitea/1.0.1/gitea-1.0.1-linux-amd64 +### Download and install gitea. Replace "amd64" with "i386" for 32 bit x86 or "arm-7" for ARMv7 and "arm-6" for ARMv6. +sudo wget -O /opt/gitea/gitea https://dl.gitea.io/gitea/1.4.1/gitea-1.4.1-linux-amd64 sudo chmod +x /opt/gitea/gitea -# Download and install the gitea.service for systemd +### Download and install the gitea.service for systemd sudo wget -O /etc/systemd/system/gitea.service https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/master/dist/etc/systemd/system/gitea.service -# Start gitea +### Start gitea sudo systemctl restart gitea ``` -## Gitea Web Setup (post install) - -Once you've gitea installed and running you must choose -which database to use, certain gitea paths, an admin user, etc. - -> http://localhost:3000/ +Then see the post-install instruction above. ## Customize Gitea @@ -68,7 +98,6 @@ All overrides to the existing theme can be placed in the `custom/public` and `cu * Change Landing Page * Google Analytics - ``` /opt/gitea/custom/public /opt/gitea/custom/templates @@ -89,6 +118,13 @@ You can find more information about customization and templates in the docs and * https://docs.gitea.io/en-us/customizing-gitea/ * https://github.com/go-gitea/gitea/tree/master/templates/ + # Troubleshooting systemd -See [Troubleshooting systemd](https://git.coolaj86.com/coolaj86/service-installer.sh/src/master/README.md#troubleshooting-systemd) \ No newline at end of file +See [Troubleshooting systemd](https://git.coolaj86.com/coolaj86/service-installer.sh/src/master/README.md#troubleshooting-systemd) + +# Removing Gitea + +Run this command to uninstall Gitea: (THIS WILL REMOVE ALL DATA if you are using SQLite!) + +`curl -fsSL https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/branch/master/remove.bash | bash` diff --git a/install.bash b/install.bash old mode 100644 new mode 100755 index 1061d13..2589839 --- a/install.bash +++ b/install.bash @@ -1,10 +1,33 @@ #!/bin/bash -VER=1.5.0 +# Most of the code credit for determining version is here: https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c +VER=$(curl --silent "https://api.github.com/repos/go-gitea/gitea/releases/latest" | # Get latest release from GitHub api + grep '"tag_name":' | # Get tag line + sed -E 's/.*"([^"]+)".*/\1/' | # Pluck JSON value + sed 's|[v,]||g' ) # Remove v -# wget -O install-gitea.bash https://git.coolaj86.com/coolaj86/gitea-installer/raw/master/install.bash; bash install-gitea.bash -# or -# wget -O - https://git.coolaj86.com/coolaj86/gitea-installer/raw/master/install.bash | bash +while [[ $# -gt 0 ]] +do + key="$1" + + case $key in + -v|version) + VER="$2" + shift # past argument + ;; + *) + # unknown option + if test -z "${unknown}" + then + unknown=$1 + else + echo "Unknown Option" + exit 1 + fi + ;; + esac + shift # past argument or value +done # Create a 'gitea' user and group with the home /opt/gitea, no password (because it's a system user) and no GECOS sudo adduser gitea --home /opt/gitea --disabled-password --gecos '' @@ -14,13 +37,36 @@ sudo mkdir -p /opt/gitea/ /var/log/gitea sudo chown -R gitea:gitea /opt/gitea/ /var/log/gitea # Download and install gitea -sudo wget -O "/opt/gitea/gitea-$VER" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-amd64" + + # Check if architecure is i386 and download Gitea +if [ -n "$(uname -a | grep i386)" ]; then + sudo curl -fsSL -o "/opt/gitea/gitea-$VER" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-386" +fi + + # Check if architecure is x86 and download Gitea +if [ -n "$(uname -a | grep x86_64)" ]; then + sudo curl -fsSL -o "/opt/gitea/gitea-$VER" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-amd64" +fi + +# Check if architecure is ARMv6 and download Gitea +if [ -n "$(uname -a | grep armv6l)" ]; then + sudo curl -fsSL -o "/opt/gitea/gitea-$VER" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-arm-6" +fi + + # Check if architecure is ARMv7 and download Gitea +if [ -n "$(uname -a | grep armv7l)" ]; then + sudo curl -fsSL -o "/opt/gitea/gitea-$VER" "https://dl.gitea.io/gitea/$VER/gitea-$VER-linux-arm-7" +fi + +# Setup Gitea symlink and permissions + sudo chmod +x /opt/gitea/gitea-$VER rm -f /opt/gitea/gitea -ln -sf gitea-$VER /opt/gitea/gitea +sudo ln -sf gitea-$VER /opt/gitea/gitea +sudo ln -sf gitea-$VER /usr/local/bin/gitea # Download and install the gitea.service for systemd -sudo wget -O /etc/systemd/system/gitea.service https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/master/dist/etc/systemd/system/gitea.service +sudo curl -fsSL -o /etc/systemd/system/gitea.service https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/branch/master/dist/etc/systemd/system/gitea.service # Start gitea sudo systemctl enable gitea @@ -32,13 +78,38 @@ sudo systemctl enable gitea # swapon /tmp.swap sudo systemctl restart gitea +set +e +my_ip=$(ifconfig | grep inet | grep Mask | grep -v ':127\\.0\\.0\\.1' | grep -v ':192\\.168' | grep -v ':10\\.' | head -n 1 | cut -f 2 -d ':' | cut -f 1 -d ' ') +my_ip=${my_ip:-localhost} +set -e + echo "" -echo "Please visit http://localhost:3000/ now to finish installing gitea" echo "" -echo "You may customize gitea" -echo " templates can be seen at https://github.com/go-gitea/gitea/tree/v$VER/templates" -echo " app.ini.sample can be seen at https://github.com/go-gitea/gitea/blob/v$VER/custom/conf/app.ini.sample" +echo "###########################" +echo "# Time to Configure #" +echo "###########################" +echo "" +echo "Just a few more steps to complete at the setup URL:" +echo "" +echo " http://$my_ip:3000/" +echo "" +echo "Future changes can be made by editing the config file:" +echo "" +echo " /opt/gitea/custom/conf/app.ini" +echo "" +echo "" +echo "P.S. Would you like to customize Gitea?" +echo "" +echo " Read basic instructions:" +echo " https://git.coolaj86.com/coolaj86/gitea-installer.sh/_edit/master/install.bash" +echo "" +echo " View current templates:" +echo " https://github.com/go-gitea/gitea/tree/v$VER/templates" +echo "" +echo " See a sample app.ini:" +echo " https://github.com/go-gitea/gitea/blob/v$VER/custom/conf/app.ini.sample" +echo "" # sleep 5 # swapoff /tmp.swap -# rm /tmp.swap \ No newline at end of file +# rm /tmp.swap diff --git a/remove.sh b/remove.sh new file mode 100644 index 0000000..1fb38b4 --- /dev/null +++ b/remove.sh @@ -0,0 +1,20 @@ +# Gitea Uninstall Script +# This script removes Gitea as installed by this script. THIS DELTES ALL DATA if you are using SQLite. + +echo "Removing Gitea and DELETING ALL DATA." + +echo "Stopping and removing the Gitea service." +sudo systemctl stop gitea # Stop the Gitea service +sudo systemctl disable gitea # Disable the Gitea service automatically starting on boot. +sudo rm /etc/systemd/system/gitea.service # Delete the Gitea service. + +echo "Deleting Gitea configuration and Data." + +sudo rm /usr/local/bin/gitea # Remove Gitea from Path +sudo rm -rf /opt/gitea # Remove Gitea Data + +if test ! -d /opt/gitea + echo "Gitea has been completely removed." +else + echo "Gitea has not been completely removed. File an issue here: https://git.coolaj86.com/coolaj86/gitea-installer.sh/issues/new" +fi