Gitea 서버 백업 및 복구

이 어려운 시기에 어떤 일이든 일어날 수 있습니다.

Page content

데이터베이스, 파일 저장소, 기타 Gitea 관련 파일 등을 백업해야 합니다. 바로 시작합니다.

열린 HDD의 매우 좋은 사진

테스트 Gitea 게시물에서는 Gitea 서버를 설치했습니다.

언제

이제 정말 나쁜 일들이 발생할 수 있는 경우를 대비해서, 백업 및 복구 절차를 연습해야 합니다.

안전은 항상 최선입니다.

어디서

Gitea 서버 데이터는 3가지 구성 요소로 이루어져 있습니다.

  • 코드
  • 파일 저장소
  • 데이터베이스

테스트 환경에서는 이 모든 항목이 약 700MB 이상 차지합니다:

Gitea 디스크 사용량

그들이 권장하는 바와 같이, 모든 서비스를 중지하고, 모든 항목을 하나의 트랜잭션으로 백업해야 합니다.

복구 역시, 동일한 트랜잭션으로 수행해야 합니다.

어떻게 - 백업

cd ~/gitea-srv-local

# 데이터베이스 백업
sudo docker exec -t gitea-srv-local_db_1 bash -c 'pg_dump gitea -U gitea  --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'

# Gitea 서버 중지
sudo docker-compose down

# 백업 폴더 확인
sudo ls postgres-backups

# 백업 폴더 생성
mkdir gitea-backups

# Gitea 폴더 백업
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea

# 저장소 폴더 백업
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git

# 다시 실행
sudo docker-compose up -d

마지막 단계는 다른 서버에 로그인하여 백업 폴더를 복사하거나, 더 복잡한 파일 조작을 수행하는 것입니다.

scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/gitea-backups ~/gitea-backups
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/postgres-backups ~/postgres-backups

어떻게 - 복구

실제로는 이보다 더 많은 작업이 필요합니다, 특히 권한과 훅(hook) 관련 작업이 필요하지만, 기본 아이디어는 같습니다.

하지만! 원본 문서를 확인하세요: https://docs.gitea.com/administration/backup-and-restore

# 먼저 설치
# 이후 서버 중지
sudo docker-compose down

# 파일 복구
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea

# 다시 실행
sudo docker-compose up -d

# 여기서 psql 또는 pg_restore 관련 작업 수행
sudo docker exec -t gitea-srv-local_db_1 bash -c 'psql gitea -U gitea  --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'

그 후 UI로 이동하여 확인합니다.

유용한 링크