포트폴리오용 프로젝트를 만들기에 앞서 프로젝트 파일들을 업로드하기 위해 클라우드 서버에 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
Reverse Proxies | Gitea Documentation
General configuration
docs.gitea.com
3. Gitea 설정
gitea 폴더를 생성하고, 소유자를 적용해주는 것을 잊지 말자
sudo chown -R 1000:1000 ./gitea
4. docker-compose를 실행하고, 도메인으로 접속하면 다음과 같은 화면이 나온다.
...
필요한 설정들을 해주고 계정을 생성한다.
초기설정에서 관리자를 만들지 않은 경우, 최초로 생성된 사용자가 관리자 권한을 받는다.
5. 로컬과 연동 가능한지 확인
테스트용 저장소를 하나 만들고.. push 해주면...
승인 누르면 바로 push가 된다.
이 로그인 세션이 유지되는 동안에는 clone / push 모두 더 이상의 인증 필요 없이 잘 수행된다.
2025.06.27 SSL 자동 갱신 추가
2025.06.13 - [공부] - [GCP] Nginx SSL 자동갱신
[GCP] Nginx SSL 자동갱신
GCP 서버에서 실행 중인 Nginx 서버의 인증서를 자동갱신하는 설정을 추가했다. 2025.05.20 - [공부] - [GCP] Gitea + Nginx(SSL) [GCP] Gitea + Nginx(SSL)포트폴리오용 프로젝트를 만들기에 앞서 프로젝트 파일들을
gooduck.net
사설 SSL을 적용하면 인증서가 만료되었을 때, 자동 갱신이 되지 않는 문제가 있다.
위의 포스팅에서 자동 갱신을 적용했다!
'공부' 카테고리의 다른 글
[FE] Lazy Loading & Code Splitting & Tree Shaking (0) | 2025.06.03 |
---|---|
[웹] Server Sent Event (0) | 2025.06.02 |
모놀리식 아키텍처 vs 마이크로서비스 아키텍처 (0) | 2025.05.15 |
브라우저에서 웹 서버로 정적 파일을 요청하는 과정 (0) | 2025.04.22 |
도메인 주도 개발(Domain Driven Development) (0) | 2025.03.18 |