사악미소
현대마법의 공방
사악미소
전체 방문자
오늘
어제
  • 분류 전체보기
    • Document
    • JavaScript
    • jQuery
    • Spring Web
      • Spring Framework
      • Spring Boot
    • Android
      • Java Code
      • Setting
    • iOS
      • Swift Code
      • Setting
    • PHP
      • Code
      • Setting
    • AWS
    • LINUX
      • Rocky Linux
      • CentOS
    • Node.js
    • Developer Tool
    • GIT
    • MAC
    • Scraping Document
    • MariaDB
    • WYSIWYG
    • Scouter
    • Docker
    • Planning
    • 용어정리
반응형

인기 글

최근 댓글

Programmer 사악미소.
사악미소

사악미소의 현대마법의 공방

카테고리 없음

로키 리눅스 Gitea 설치하기 - 작성중

2025. 2. 23. 21:47
728x90

 

 

1. 방화벽 해제하기

 

$ sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
success

3015로 도전

 

$ sudo firewall-cmd --reload
success

 

 

 

1. Gitea 다운로드

 

wget 명령어를 이용하여 Gtiea Linux 바이너리를 다운로드 한다.

 

다운로드 경로는 /home/사용자_디렉토리/ 경로에 gitea-버전-linux.amd64 파일을 다운로드 받을 것이다.

$ wget -O /home/사용자_디렉토리/gitea https://dl.gitea.com/gitea/1.23.1/gitea-1.23.1-linux-amd64
--2025-01-29 10:46:17--  https://dl.gitea.com/gitea/1.23.1/gitea-1.23.1-linux-amd64
Resolving dl.gitea.com (dl.gitea.com)... 54.230.176.38, 54.230.176.120, 54.230.176.28, ...
Connecting to dl.gitea.com (dl.gitea.com)|54.230.176.38|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 114451088 (109M) [binary/octet-stream]
Saving to: `/home/saakmiso/gitea'

/home/saakmiso/gitea                                               100%[=========================================================================>] 109.15M  8.59MB/s    in 12s     

2025-01-29 10:46:30 (8.91 MB/s) - `/home/사용자_디렉토리/gitea' saved [114451088/114451088]

 

 

위 명령을 실행하면 /home/사용자_디렉토리/ 경로에 gitea라는 이름으로 파일이 저장된다.

 

 

 

Gitea를 시스템 전역에서 실행할수 있도록  gitea 바이너리 파일을 "/usr/local/bin"으로 이동시킨다.

$ sudo mv /home/사용자_디렉토리/gitea /usr/local/bin

 

이제 gitea 명령어를 터미널 어디에서든 실행 시킬 수 있다.

 

 

 

Gitea가 /usr/local/bin으로 이동한 후, 실행권한을 부여해 주어야 한다.

$ sudo chmod +x /usr/local/bin/gitea

 

이제 gitea를 실행할 수 있다.

 

 

 

3. Gitea 시스템 사용자 생성

 

$ sudo groupadd --system gitea

 

 

먼저, gitea라는 시스템 사용자를 생성해야 합니다.

$ sudo useradd --system --create-home --home-dir /var/lib/gitea --shell /bin/bash --gid gitea gitea

--system → 시스템 계정으로 생성
--create-home → 홈 디렉토리 생성
--home-dir /var/lib/gitea → 홈 디렉토리를 /var/lib/gitea로 지정
--shell /bin/bash → 기본 셸을 /bin/bash로 설정
--gid gitea → gitea 그룹을 지정
gitea → 생성할 사용자 이름

 

 

사용자 정보 확인

$ id gitea
uid=991(gitea) gid=988(gitea) groups=988(gitea)

 

 

 

4. Gitea 디렉토리 생성 및 권한 설정

 

 

 

$ sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
$ sudo chown gitea:gitea /var/lib/gitea/{data,indexers,log}
$ sudo chmod 750 /var/lib/gitea/{data,indexers,log}
$ sudo mkdir /etc/gitea
$ sudo chown gitea:gitea /etc/gitea
$ sudo chmod 770 /etc/gitea

 

 

 

 

$ sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}

 

$ sudo chown -R gitea:gitea /var/lib/gitea/{data,indexers,log}

 

$ sudo chmod 750 /var/lib/gitea/{data,indexers,log}

 

 

$ sudo mkdir /etc/gitea

 

 

 

 

$ sudo chown -R gitea:gitea /etc/gitea

 

$ sudo chmod 770 /etc/gitea

 

 

 

 

 

$ sudo mkdir -p /var/lib/gitea/.ssh

 

$ sudo chown -R gitea:gitea /var/lib/gitea/.ssh

 

$ sudo chmod 700 /var/lib/gitea/.ssh

 

 

 

 

 

다음 명령을 사용하여 파일 권한을 부여한다.

$ restorecon -rv /usr/local/bin/gitea
Relabeled /usr/local/bin/gitea from unconfined_u:object_r:user_home_t:s0 to unconfined_u:object_r:bin_t:s0

 

 

 

Systemd Unit File을 만듭니다.

Systemd Unit File이란?
systemd는 리눅스 시스템에서 서비스(daemon), 장치, 마운트 포인트 등을 관리하는 기본적인 시스템 및 서비스 관리 도구입니다. systemd의 구성 요소 중 하나인 Unit File은 특정 서비스나 프로세스를 정의하고 관리하는 설정 파일입니다.

 

 

 

 

다음 명령을 사용하여 "/etc/systemd/system/" 디렉터리에 파일을 다운로드합니다.

$ sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/

--2025-02-05 19:51:35--  https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.109.133, 185.199.108.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2435 (2.4K) [text/plain]
Saving to: `/etc/systemd/system/gitea.service'

gitea.service                                100%[===========================================================================================>]   2.38K  --.-KB/s    in 0s      

2025-02-05 19:51:35 (33.6 MB/s) - `/etc/systemd/system/gitea.service' saved [2435/2435]

 

 

 

$ sudo vim /etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target
###
# Don't forget to add the database service dependencies
###
#
#Wants=mysql.service
#After=mysql.service
#
#Wants=mariadb.service
#After=mariadb.service
#
#Wants=postgresql.service
#After=postgresql.service
#
#Wants=memcached.service
#After=memcached.service
#
#Wants=redis.service
#After=redis.service
#
###
# If using socket activation for main http/s
###
#
#After=gitea.main.socket
#Requires=gitea.main.socket
#
###
# (You can also provide gitea an http fallback and/or ssh socket too)
#
# An example of /etc/systemd/system/gitea.main.socket
###
##
## [Unit]
## Description=Gitea Web Socket
## PartOf=gitea.service
##
## [Socket]
## Service=gitea.service
## ListenStream=<some_port>
## NoDelay=true
##
## [Install]
## WantedBy=sockets.target
##
###

[Service]
# Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that
# LimitNOFILE=524288:524288
RestartSec=2s
Type=simple

## User 변경
User=git

## Group 변경
Group=git

WorkingDirectory=/var/lib/gitea/
# If using Unix socket: tells systemd to create the /run/gitea folder, which will contain the gitea.sock file
# (manually creating /run/gitea doesn't work, because it would not persist across reboots)
#RuntimeDirectory=gitea
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always

## USER, HOME 변경
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea

# If you install Git to directory prefix other than default PATH (which happens
# for example if you install other versions of Git side-to-side with
# distribution version), uncomment below line and add that prefix to PATH
# Don't forget to place git-lfs binary on the PATH below if you want to enable
# Git LFS support
#Environment=PATH=/path/to/git/bin:/bin:/sbin:/usr/bin:/usr/sbin
# If you want to bind Gitea to a port below 1024, uncomment
# the two values below, or use socket activation to pass Gitea its ports as above
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
###
# In some cases, when using CapabilityBoundingSet and AmbientCapabilities option, you may want to
# set the following value to false to allow capabilities to be applied on gitea process. The following
# value if set to true sandboxes gitea service and prevent any processes from running with privileges
# in the host user namespace.
###
#PrivateUsers=false
###

[Install]
WantedBy=multi-user.target

 

 

User=gitea
Group=gitea

 

Environment=USER=gitea HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea

 

 

 

$ sudo chown gitea:gitea /usr/local/bin/gitea
$ sudo chmod 750 /usr/local/bin/gitea

 

 

 

 

 

포트 이쪽으로

 

$ sudo vim /etc/gitea/app.ini
[server]
HTTP_ADDR = 0.0.0.0
HTTP_PORT = 3000

 

 

Gitea 서비스를 다시 로드합니다.

$ sudo systemctl enable --now gitea
Created symlink /etc/systemd/system/multi-user.target.wants/gitea.service → /etc/systemd/system/gitea.service.

 

 

Gitea 서비스 시작

$ sudo systemctl start gitea

 

 

Gitea 서비스의 상태를 확인한다.

$ systemctl status gitea
gitea.service - Gitea (Git with a cup of tea)
     Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: disabled)
     Active: active (running) since Wed 2022-07-20 18:25:45 CEST; 23s ago
   Main PID: 14699 (gitea)
      Tasks: 8 (limit: 11120)
     Memory: 127.1M
        CPU: 896ms
     CGroup: /system.slice/gitea.service
             └─14699 /usr/local/bin/gitea web --config /etc/gitea/app.ini

 

 

 

 

$ sudo vim /etc/gitea/app.ini

 

APP_NAME = Gitea: Git with a cup of tea
RUN_USER = gitea
WORK_PATH = /var/lib/gitea
RUN_MODE = prod

[server]
HTTP_ADDR = 0.0.0.0
HTTP_PORT = 3015
SSH_DOMAIN = https://gitea.saakmiso.com/
DOMAIN = https://gitea.saakmiso.com/
ROOT_URL = https://gitea.saakmiso.com/
APP_DATA_PATH = /var/lib/gitea/data
DISABLE_SSH = false
SSH_PORT = 22
LFS_START_SERVER = true
LFS_JWT_SECRET = ie2WNu7p5eF7LN_ZRQLM1IVzdQZYXVRGEAxh0QPfFyw
OFFLINE_MODE = true

[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gitea_db
USER = gitea
PASSWD = 비밀번호
SCHEMA = 
SSL_MODE = disable
PATH = /var/lib/gitea/data/gitea.db
LOG_SQL = false

[repository]
ROOT = /var/lib/gitea/data/gitea-repositories

[lfs]
PATH = /var/lib/gitea/data/lfs

[mailer]
ENABLED = false

[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.localhost

[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true

[cron.update_checker]
ENABLED = false

[session]
PROVIDER = file

[log]
MODE = console
LEVEL = info
ROOT_PATH = /var/lib/gitea/log

[repository.pull-request]
DEFAULT_MERGE_STYLE = merge

[repository.signing]
DEFAULT_TRUST_MODEL = committer

[security]
INSTALL_LOCK = true
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NDA5MDYxMjJ9.Cu7KpkpK0a5gvzRK-KgJxGQm5LeWj92oHrVN7lDTHwo
PASSWORD_HASH_ALGO = pbkdf2

[oauth2]
JWT_SECRET = fu0xNRS416tNjtapiDjGDwrA_jgNW7DlR4U4TEbRaTY
728x90
    사악미소
    사악미소

    티스토리툴바