dist/etc/systemd/system | ||
install.bash | ||
README.md |
Gitea Installer
Installs Gitea as a systemd service
Linux Install Script
You can download and run the installer script:
wget -O install-gitea.bash https://git.coolaj86.com/coolaj86/gitea-installer.sh/raw/master/install.bash
bash install-gitea.bash
Or manually install by reading these instructions and following along:
# 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
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
sudo chmod +x /opt/gitea/gitea
# Download and install the gitea.service for systemd
sudo wget -O /etc/systemd/system/gitea.service https://git.coolaj86.com/coolaj86/gitea-installer/raw/master/dist/etc/systemd/system/gitea.service
# 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.
Troubleshooting
Error 226/Namespace
Most likely a directory that is supposed to be writable doesn't exist.
Failed to get repository owner (foobar): no such table: user
Your custom/conf/app.ini
has a line like this:
[database]
DB_TYPE = sqlite3
PATH = data/gitea.db
And it should probably look like this instead:
[database]
DB_TYPE = sqlite3
PATH = /opt/gitea/data/gitea.db
Gitea: Invalid key ID
Gitea: Invalid key ID
Invalid key ID[key-2]: public key does not exist [id: 2]
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
You are connecting to gitea with a different ssh key (usually id_rsa.pub
)
than the one you uploaded. You can usually fix this by uploading your default key
or by manually specifying which key to use, for example:
~/.ssh/config
:
Host git.example.com
User gitea
IdentityFile ~/.ssh/id_rsa
Expect user 'foobar' but current user is: gitea
remote: 2017/10/25 23:53:10 [...s/setting/setting.go:625 NewContext()] [E] Expect user 'aj' but current user is: gitea
remote: error: hook declined to update refs/heads/master
To ssh://git.coolaj86.com:22042/coolaj86/hexdump.js.git
! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'ssh://gitea@git.coolaj86.com:22042/coolaj86/hexdump.js.git'
If you copied a previous installation of gitea over to a new user, you may get this error.
I haven't yet found where it comes from, but deleting the repository in the UI and re-adding it seems to do the trick
from what I can tell. Remember to git fetch --all
first before deleting.
203/EXEC
The downloaded gitea file is not executable
Oct 28 00:06:19 git-ldsconnect systemd[1]: gitea.service: Main process exited, code=exited, status=203/EXEC
Oct 28 00:06:19 git-ldsconnect systemd[1]: gitea.service: Unit entered failed state.
Oct 28 00:06:19 git-ldsconnect systemd[1]: gitea.service: Failed with result 'exit-code'.
Try this:
sudo chmod +x /opt/gitea/gitea
sudo systemctl restart gitea
But wait, there's more!
This could also be due to missing rx
permissions on a parent directory of the executable file, which could be the result of having an existing but empty /etc/tmpfiles.d/gitea.conf
(it will default to and change the permissions of /
if it is empty).