포트폴리오용 프로젝트를 만들기에 앞서 프로젝트 파일들을 업로드하기 위해 클라우드 서버에 Git (UI) 환경을 구축하고 싶었다.
[준비물]
GCP 서버(Docker, 인증서)
-- 사설 인증서 만들기로 검색하면 인증서 만드는 내용은 많이 나온다.
도메인 <<<서버>>> 로 작성된 내부 주소(ex: gcp.example.com)
1. Docker Compose 파일 작성
version: '3'
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__server__ROOT_URL=https://<<<서버>>>/
volumes:
- ./gitea:/data
expose:
- "3000"
restart: always
networks:
- gitea
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/certs:/etc/nginx/certs:ro
restart: always
depends_on:
- gitea
networks:
- gitea
networks:
gitea:
nginx를 먼저 띄우고, ssl 적용 이후, gitea를 reverseProxy하는 절차대로 하나하나 테스트하면서 진행한다.
certs 폴더에는 다음과 같은 2개의 파일이 존재한다.
- fullchain.pem
- privkey.pem
2. ngnix.conf 작성
events {}
http {
server {
listen 80;
server_name <<<서버>>>;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name <<<서버>>>;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
location / {
client_max_body_size 512M;
proxy_pass http://gitea:3000;
proxy_set_header Connection $http_connection;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
** Reverse Proxy에 대한 공식 문서 설명
https://docs.gitea.com/next/administration/reverse-proxies#nginx-with-a-sub-path
3. Gitea 설정
gitea 폴더를 생성하고, 소유자를 적용해주는 것을 잊지 말자
sudo chown -R 1000:1000 ./gitea
4. docker-compose를 실행하고, 도메인으로 접속하면 다음과 같은 화면이 나온다.
...
필요한 설정들을 해주고 계정을 생성한다.
초기설정에서 관리자를 만들지 않은 경우, 최초로 생성된 사용자가 관리자 권한을 받는다.
5. 로컬과 연동 가능한지 확인
테스트용 저장소를 하나 만들고.. push 해주면...
승인 누르면 바로 push가 된다.
이 로그인 세션이 유지되는 동안에는 clone / push 모두 더이상의 인증 필요 없이 잘 수행된다.
오늘부터 포트폴리오용 BE / FE / GW 등을 업로드해야겠다.
'공부' 카테고리의 다른 글
모놀리식 아키텍처 vs 마이크로서비스 아키텍처 (0) | 2025.05.15 |
---|---|
브라우저에서 웹 서버로 정적 파일을 요청하는 과정 (0) | 2025.04.22 |
도메인 주도 개발(Domain Driven Development) (0) | 2025.03.18 |
HTTP, 웹을 움직이는 핵심 프로토콜 (0) | 2025.03.09 |
AWS MFA 인증 문제 해결기 (0) | 2025.03.07 |