mirror of
https://git.adityakumar.xyz/blog.git
synced 2024-11-21 23:22:53 +00:00
add gitea installation
This commit is contained in:
parent
2d3752a6e6
commit
881956aef7
1 changed files with 155 additions and 0 deletions
155
content/post/install-and-use-gitea.md
Normal file
155
content/post/install-and-use-gitea.md
Normal file
|
@ -0,0 +1,155 @@
|
||||||
|
---
|
||||||
|
title: "Install and Use Gitea"
|
||||||
|
date: 2023-02-12T11:11:29+05:30
|
||||||
|
lastmod: 2023-02-12T11:11:29+05:30
|
||||||
|
draft: false
|
||||||
|
keywords: [gitea git repository repo]
|
||||||
|
description: ""
|
||||||
|
tags: [gitea git]
|
||||||
|
categories: [linux server]
|
||||||
|
author: ""
|
||||||
|
|
||||||
|
# You can also close(false) or open(true) something for this content.
|
||||||
|
# P.S. comment can only be closed
|
||||||
|
comment: false
|
||||||
|
toc: true
|
||||||
|
autoCollapseToc: false
|
||||||
|
postMetaInFooter: true
|
||||||
|
hiddenFromHomePage: false
|
||||||
|
# You can also define another contentCopyright. e.g. contentCopyright: "This is another copyright."
|
||||||
|
contentCopyright: false
|
||||||
|
reward: false
|
||||||
|
mathjax: false
|
||||||
|
mathjaxEnableSingleDollar: false
|
||||||
|
mathjaxEnableAutoNumber: false
|
||||||
|
|
||||||
|
# You unlisted posts you might want not want the header or footer to show
|
||||||
|
hideHeaderAndFooter: false
|
||||||
|
|
||||||
|
# You can enable or disable out-of-date content warning for individual post.
|
||||||
|
# Comment this out to use the global config.
|
||||||
|
#enableOutdatedInfoWarning: false
|
||||||
|
|
||||||
|
flowchartDiagrams:
|
||||||
|
enable: false
|
||||||
|
options: ""
|
||||||
|
|
||||||
|
sequenceDiagrams:
|
||||||
|
enable: false
|
||||||
|
options: ""
|
||||||
|
|
||||||
|
---
|
||||||
|
Here I document my steps to get Gitea up and running on a Debian server.
|
||||||
|
<!--more-->
|
||||||
|
|
||||||
|
Gitea is a self-hosted service to host and accept contributions to your git repositories on the web.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
- git
|
||||||
|
- curl/wget to obtain the binary
|
||||||
|
- MySQL/PostgreSQL/MSSQL/SQLite3/TiDB
|
||||||
|
|
||||||
|
## Getting Gitea
|
||||||
|
Go to Gitea's official website for [installation instructions](https://docs.gitea.io/en-us/install-from-binary/).
|
||||||
|
|
||||||
|
It usually boils down to
|
||||||
|
1. Obtaining and verifying the binary
|
||||||
|
2. Creating a user
|
||||||
|
3. Creating directory structure
|
||||||
|
4. Creating a service file
|
||||||
|
5. Setting up a databse
|
||||||
|
6. Configuring Gitea
|
||||||
|
|
||||||
|
## Create user
|
||||||
|
Create a user to run Gitea. Here we name it 'gitea' for the sake of our convenience.
|
||||||
|
```bash
|
||||||
|
adduer \
|
||||||
|
--system \
|
||||||
|
--shell /bin/bash \
|
||||||
|
--gecos 'Gitea' \
|
||||||
|
--group \
|
||||||
|
--disabled-password \
|
||||||
|
--home /home/gitea \
|
||||||
|
gitea
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Create directory structure
|
||||||
|
```bash
|
||||||
|
mkdir -p /var/lib/gitea/{custom,data.log}
|
||||||
|
chown -R gitea:gitea /var/lib/gitea
|
||||||
|
chmod -R 750 /var/lib/gitea
|
||||||
|
mkdir /etc/gitea
|
||||||
|
chown root:gitea /etc/gitea
|
||||||
|
chmod 770 /etc/gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
## Copy Gitea binary to global location
|
||||||
|
```
|
||||||
|
cp gitea /usr/local/bin/gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
## Create a service file
|
||||||
|
Copy the sample [gitea.service](https://github.com/go-gitea/gitea/blob/main/contrib/systemd/gitea.service) to `/etc/systemd/system/gitea.service`, then edit the file with a text editor.
|
||||||
|
|
||||||
|
Replace the lines starting with `---` to `+++`.
|
||||||
|
```
|
||||||
|
--- #Wants=postgresql.service
|
||||||
|
--- #After=postgresql.service
|
||||||
|
+++ Wants=postgresql.service
|
||||||
|
+++ After=postgresql.service
|
||||||
|
|
||||||
|
--- User=git
|
||||||
|
--- Group=git
|
||||||
|
+++ User=gitea
|
||||||
|
+++ Group=gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
## Set up a database
|
||||||
|
As user `postgres`, run the following
|
||||||
|
```
|
||||||
|
createuser gitea
|
||||||
|
createdb gitea
|
||||||
|
psql
|
||||||
|
alter user gites with encrypted password 'super-secure-password';
|
||||||
|
grant all privileges on database gitea to gitea;
|
||||||
|
\q
|
||||||
|
```
|
||||||
|
|
||||||
|
## Set up a web server
|
||||||
|
Put the following configuration in `/etc/caddy/Caddyfile`
|
||||||
|
```
|
||||||
|
gitea.adityakumar.com {
|
||||||
|
reverse_proxy localhost:3000
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Now reload caddy
|
||||||
|
```bash
|
||||||
|
systemctl reload caddy
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configure Gitea
|
||||||
|
Enable and start Gitea
|
||||||
|
```bash
|
||||||
|
systemctl enable --now gitea.service
|
||||||
|
```
|
||||||
|
|
||||||
|
Head to the website, or go to `localhost:3000` if you have physical access to the server. Alternatively you can use port forwarding to configure Gitea using your local machine.
|
||||||
|
|
||||||
|
On the page,
|
||||||
|
- enter database username, password and database name.
|
||||||
|
- change Site Title to whatever you prefer.
|
||||||
|
- enter `gitea` in Run As Username field.
|
||||||
|
- change Gitea Base URL to the site's URL
|
||||||
|
|
||||||
|
Rest of the options should be left as is unless you have other requirements.
|
||||||
|
|
||||||
|
Click on Install Gitea. It should write the configuration to `/etc/gitea/app.ini` and ready for use.
|
||||||
|
|
||||||
|
Now change permissions on `/etc/gitea` to make it read-only.
|
||||||
|
```bash
|
||||||
|
chmod 750 /etc/gitea
|
||||||
|
chmod 640 /etc/gitea/app.ini
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in a new issue