Gitea là một nhánh của Gogs, dịch vụ Git tự lưu trữ dễ sử dụng. Nó tương tự như GitHub, Bitbucket và Gitlab. Gitea là giải pháp lưu trữ mã nhẹ được viết bằng Go, có thể chạy trên các yêu cầu phần cứng tối thiểu. Đây là một ứng dụng đa nền tảng, có thể chạy ở bất kỳ đâu có thể biên dịch Go như Windows, Linux, MacOS, ARM, v.v.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn từng bước cách cài đặt và cấu hình dịch vụ Git nhẹ bằng Gitea. Chúng tôi sẽ triển khai máy chủ Gitea bằng Docker và sẽ sử dụng cơ sở dữ liệu PostgreSQL và proxy ngược Traefik. Đối với hướng dẫn này, chúng tôi sẽ sử dụng Ubuntu 18.04 Server mới nhất.
Thêm Docker và kho lưu trữ Docker bằng cách chạy các lệnh bên dưới.
Lệnh 'add-apt-repository' sẽ tự động cập nhật kho lưu trữ.
Bây giờ hãy cài đặt gói Docker CE.
Khi quá trình cài đặt hoàn tất, hãy khởi động dịch vụ docker và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống.
Docker CE đã hoạt động trên Ubuntu Máy chủ 18.04. Xác minh cài đặt bằng cách kiểm tra phiên bản docker.
hoặc chạy docker 'hello-world'.
Cài đặt Docker Compose bằng cách tải xuống tệp nhị phân và biến nó thành tệp thực thi.
Bây giờ hãy kiểm tra lệnh docker-compose.
Docker Compose hiện đã được cài đặt.
Kiểm tra danh sách docker network.
Bây giờ hãy tạo một mạng cầu tùy chỉnh mới có tên là 'hakasenet'.
Kiểm tra lại.
Bây giờ bạn sẽ nhận được mạng 'hakasenet' trong danh sách.
Bây giờ hãy tạo thư mục mới 'gitea' và khối lượng dữ liệu 'postgres'.
Tạo tệp mới 'acme.json' và thay đổi quyền của tệp. tệp này sẽ được sử dụng để lưu trữ dữ liệu Letsencrypt.
Bây giờ hãy tạo tệp cấu hình traefik toàn cục 'traefik.toml'.
Và bên dưới là các tệp và thư mục chúng ta có để cài đặt Gitea bằng Docker.
Chúng ta sẽ sử dụng hình ảnh Postgres 9.6, sử dụng 'gitea' làm tên cơ sở dữ liệu, người dùng và mật khẩu, và thiết lập khối lượng dữ liệu postgres.
Chỉnh sửa tệp 'docker-compose.yml' bằng vim.
Dán cấu hình bên dưới.
Lưu và thoát.
Dịch vụ traefik sẽ chạy dưới các cổng mặc định HTTP và HTTPS, chạy trên mạng cầu tùy chỉnh có tên là 'hakasenet' và chúng ta sẽ cấu hình để sử dụng chứng chỉ Letsencrypt sẽ được xác định trên tệp 'traefik.toml'.
Chỉnh sửa tập lệnh soạn thảo.
Dán cấu hình vào cấu hình dịch vụ db.
Lưu và thoát.
Bây giờ hãy chỉnh sửa tệp cấu hình 'traefik.toml'.
Và dán cấu hình sau.
Lưu và thoát.
Lưu ý:
Dán cấu hình dịch vụ gitea vào cuối dòng.
Lưu và thoát.
Dịch vụ Gitea sẽ chạy trên cổng TCP '3000', sử dụng hai mạng docker đó là 'internal' và 'hakasenet' và sẽ chạy dưới proxy ngược traefik trên miền 'git.hakase-labs.io'.
Docker Cấu hình composes cho triển khai Gitea đã hoàn tất.
Lệnh sẽ tải xuống tất cả các hình ảnh docker cần thiết và chạy các dịch vụ được xác định trên tập lệnh docker-compose.
Và khi hoàn tất, hãy kiểm tra các dịch vụ khả dụng trên docker bằng tùy chọn ps như bên dưới.
Bây giờ bạn sẽ nhận được kết quả như bên dưới.
Cơ sở dữ liệu PostgreSQL, Gitea và các vùng chứa proxy ngược traefik hiện đã hoạt động. Dịch vụ cơ sở dữ liệu đang chạy trên cổng mặc định '5432', máy chủ gitea đang chạy trên cổng '3000' và proxy traefik đang chạy trên cổng HTTP và HTTPS, có thể truy cập từ mạng/internet bên ngoài.
Nếu bạn muốn kiểm tra tất cả các bản ghi từ docker check, hãy chạy lệnh bên dưới.
Bây giờ bạn sẽ nhận được trang Gitea mặc định.
Thêm đường dẫn cài đặt vào URL.
Bây giờ bạn sẽ nhận được trang cài đặt Gitea.
Bây giờ hãy nhấp vào nút 'Cài đặt Gitea'.
Và bạn sẽ được chuyển hướng đến bảng điều khiển người dùng mặc định của Gitea.
Bây giờ hãy nhập thông tin chi tiết về kho lưu trữ mà bạn muốn tạo.
và nhấp vào nút 'Tạo kho lưu trữ'.
Kho lưu trữ đã được tạo.
Chạy lệnh git bên dưới.
Bây giờ hãy sao chép kho lưu trữ.
Đi tới thư mục kho lưu trữ 'myyrepo' và chỉnh sửa tệp README.md.
thực hiện các thay đổi trên tệp README, sau đó lưu và thoát.
Bây giờ hãy commit kho lưu trữ.
Và đẩy nó lên máy chủ.
Nhập tên người dùng và mật khẩu của bạn.
Và sau đây là kết quả.
Kiểm tra trang kho lưu trữ và đảm bảo bạn nhận được các thay đổi như bên dưới.
Quá trình cài đặt Gitea với Docker trên Ubuntu 18.04 đã hoàn tất thành công.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn từng bước cách cài đặt và cấu hình dịch vụ Git nhẹ bằng Gitea. Chúng tôi sẽ triển khai máy chủ Gitea bằng Docker và sẽ sử dụng cơ sở dữ liệu PostgreSQL và proxy ngược Traefik. Đối với hướng dẫn này, chúng tôi sẽ sử dụng Ubuntu 18.04 Server mới nhất.
Điều kiện tiên quyết
- Ubuntu 18.04
- Quyền root
Chúng ta sẽ làm gì?
- Cài đặt Docker-CE
- Cài đặt Docker Compose
- Triển khai Gitea dưới dạng Container bằng Docker
- Sau khi cài đặt Gitea
- Tạo kho lưu trữ đầu tiên
- Kiểm tra lần cam kết đầu tiên
Bước 1 - Cài đặt Docker-CE
Bước đầu tiên chúng ta sẽ thực hiện đối với hướng dẫn này là cài đặt phiên bản cộng đồng Docker vào máy chủ Ubuntu 18.04. Chúng tôi sẽ cài đặt gói Docker CE từ kho lưu trữ Docker chính thức.Thêm Docker và kho lưu trữ Docker bằng cách chạy các lệnh bên dưới.
Mã:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Lệnh 'add-apt-repository' sẽ tự động cập nhật kho lưu trữ.
Bây giờ hãy cài đặt gói Docker CE.
Mã:
sudo apt policy docker-ce
sudo apt install docker-ce=18.06.1~ce~3-0~ubuntu
Khi quá trình cài đặt hoàn tất, hãy khởi động dịch vụ docker và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống.
Mã:
sudo systemctl start docker
sudo systemctl enable docker
Mã:
phiên bản docker
hoặc chạy docker 'hello-world'.
Mã:
docker run hello-world
Bước 2 - Cài đặt Docker Compose
Docker-Compose là một công cụ dòng lệnh để xác định và quản lý các ứng dụng docker đa container. Nó cho phép bạn tạo một container dưới dạng dịch vụ, rất phù hợp cho môi trường phát triển, thử nghiệm và dàn dựng của bạn.Cài đặt Docker Compose bằng cách tải xuống tệp nhị phân và biến nó thành tệp thực thi.
Mã:
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Mã:
phiên bản docker-compose
Bước 3 - Triển khai Gitea dưới dạng Docker Container
Trong bước này, chúng tôi sẽ tạo một tập lệnh docker-compose mới chứa tất cả cấu hình dịch vụ bao gồm Cơ sở dữ liệu PostgreSQL và proxy ngược Traefik. Chúng tôi sẽ thiết lập tất cả các tệp triển khai trên thư mục có tên 'deployment'.Tạo Mạng Docker Tùy chỉnh
Trước khi tạo cấu hình triển khai, hãy tạo một mạng cầu nối tùy chỉnh mới. Nó sẽ được sử dụng cho proxy ngược traefik dịch vụ bên ngoài.Kiểm tra danh sách docker network.
Mã:
docker network ls
Mã:
docker network create hakasenet
Mã:
docker network ls
Thiết lập thư mục triển khai và tệp
Tạo một thư mục mới có tên là 'deployment' và tập lệnh 'docker-compose.yml' trên đó.
Mã:
mkdir implementation; cd triển khai
touch docker-compose.yml
Mã:
mkdir -p gitea/ postgres/
Mã:
touch acme.json
chmod 600 acme.json
Mã:
touch traefik.toml
Mã:
tree
Thiết lập dịch vụ PostgreSQL
Dịch vụ cơ sở dữ liệu PostgreSQL là dịch vụ đầu tiên mà chúng ta muốn cấu hình. Dịch vụ cơ sở dữ liệu sẽ chỉ chạy trên mạng docker nội bộ.Chúng ta sẽ sử dụng hình ảnh Postgres 9.6, sử dụng 'gitea' làm tên cơ sở dữ liệu, người dùng và mật khẩu, và thiết lập khối lượng dữ liệu postgres.
Chỉnh sửa tệp 'docker-compose.yml' bằng vim.
Mã:
vim docker-compose.yml
Mã:
phiên bản: "3"mạng: hakasenet: bên ngoài: đúng bên trong: bên ngoài: saidịch vụ: db: hình ảnh: postgres:9.6 khởi động lại: luôn luôn môi trường: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea - POSTGRES_DB=gitea nhãn: - "traefik.enable=false" mạng: - khối lượng nội bộ: - ./postgres:/var/lib/postgresql/data
Thiết lập Proxy ngược Traefik
Bây giờ chúng ta sẽ cấu hình proxy ngược Traefik cho cài đặt Gitea của chúng ta.Dịch vụ traefik sẽ chạy dưới các cổng mặc định HTTP và HTTPS, chạy trên mạng cầu tùy chỉnh có tên là 'hakasenet' và chúng ta sẽ cấu hình để sử dụng chứng chỉ Letsencrypt sẽ được xác định trên tệp 'traefik.toml'.
Chỉnh sửa tập lệnh soạn thảo.
Mã:
vim docker-compose.yml
Mã:
traefik: image: traefik:latest command: --docker ports: - 80:80 - 443:443 labels: - "traefik.enable=true" - "traefik.backend=dashboard" - "traefik.frontend.rule=Host:traefik.hakase-labs.io" - "traefik.port=8080" networks: - hakasenet volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/traefik.toml - ./acme.json:/acme.json container_name: traefik restart: always
Bây giờ hãy chỉnh sửa tệp cấu hình 'traefik.toml'.
Mã:
vim traefik.toml
Mã:
#Cấu hình toàn cục Traefikdebug = falsecheckNewVersion = truelogLevel = "ERROR"#Xác định EntryPoint cho HTTP và HTTPSdefaultEntryPoints = ["https","http"]#Xác định cổng HTTP 80 và#Cổng HTTPS 443 EntryPoint#Bật tự động chuyển hướng HTTP đến HTTPS[entryPoints][entryPoints.http]address = ":80"[entryPoints.http.redirect]entryPoint = "https"[entryPoints.https]address = ":443"[entryPoints.https.tls]#Bật Traefik Dashboard trên cổng 8080#với phương thức xác thực cơ bản#hakase và mật khẩu[entryPoints.dash]address=":8080"[entryPoints.dash.auth][entryPoints.dash.auth.basic] users = [ "hakase:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.", ][api]entrypoint="dash"dashboard = true#Bật thử lại gửi yêu cầu nếu lỗi mạng[retry]#Xác định cấu hình Docker Backend[docker]endpoint = "unix:///var/run/docker.sock"domain = "hakase-labs.io"watch = trueexposedbydefault = false#Đăng ký Letsencrypt#Xác định thử thách Letsencrypt ACME HTTP[acme]email = "[emailprotected]"storage = "acme.json"entryPoint = "https"OnHostRule = true [acme.httpChallenge] entryPoint = "http"
Lưu ý:
- Thay đổi email acme letsencrypt bằng địa chỉ email hợp lệ của bạn.
Thiết lập Dịch vụ Gitea
Chỉnh sửa tệp cấu hình 'docker-compose.yml'.
Mã:
vim docker-compose.yml
Mã:
máy chủ: hình ảnh: gitea/gitea:môi trường mới nhất: - USER_UID=1000 - USER_GID=1000 khởi động lại: luôn luôn mạng: - khối lượng nội bộ: - ./gitea:/dữ liệu cổng: - "3000" - "22" nhãn: - "traefik.enabled=true" - "traefik.backend=gitea" - "traefik.frontend.rule=Host:git.hakase-labs.io" - "traefik.docker.network=hakasenet" - "traefik.port=3000" mạng: - nội bộ - hakasenet phụ thuộc vào: - db - traefik
Dịch vụ Gitea sẽ chạy trên cổng TCP '3000', sử dụng hai mạng docker đó là 'internal' và 'hakasenet' và sẽ chạy dưới proxy ngược traefik trên miền 'git.hakase-labs.io'.
Docker Cấu hình composes cho triển khai Gitea đã hoàn tất.
Triển khai tất cả các dịch vụ
Bây giờ triển khai ngăn xếp bằng lệnh 'docker-compose' bên dưới.
Mã:
docker-compose up -d
Và khi hoàn tất, hãy kiểm tra các dịch vụ khả dụng trên docker bằng tùy chọn ps như bên dưới.
Mã:
docker-compose ps
Cơ sở dữ liệu PostgreSQL, Gitea và các vùng chứa proxy ngược traefik hiện đã hoạt động. Dịch vụ cơ sở dữ liệu đang chạy trên cổng mặc định '5432', máy chủ gitea đang chạy trên cổng '3000' và proxy traefik đang chạy trên cổng HTTP và HTTPS, có thể truy cập từ mạng/internet bên ngoài.
Nếu bạn muốn kiểm tra tất cả các bản ghi từ docker check, hãy chạy lệnh bên dưới.
Mã:
docker-compose logs
Bước 4 - Cài đặt Gitea sau
Mở trình duyệt web của bạn và nhập URL cài đặt Gitea. Của tôi là:Bây giờ bạn sẽ nhận được trang Gitea mặc định.
Thêm đường dẫn cài đặt vào URL.
Bây giờ bạn sẽ nhận được trang cài đặt Gitea.
Cấu hình cơ sở dữ liệu
Nhập thông tin chi tiết về cơ sở dữ liệu PostgreSQL và sử dụng 'db' làm máy chủ.Cấu hình Gitea chung
Thay đổi 'Tiêu đề trang web' bằng tiêu đề của riêng bạn, 'Miền máy chủ SSH' (không có https) và 'URL cơ sở Gitea' bằng URL máy chủ gitea của bạn.Cài đặt tài khoản quản trị
Trên cài đặt quản trị, nhập tên người dùng, mật khẩu và địa chỉ email của quản trị viên.Bây giờ hãy nhấp vào nút 'Cài đặt Gitea'.
Và bạn sẽ được chuyển hướng đến bảng điều khiển người dùng mặc định của Gitea.
Bước 5 - Tạo kho lưu trữ đầu tiên trong Gitea
Trên trang chủ của người dùng, nhấp vào nút '+'.Bây giờ hãy nhập thông tin chi tiết về kho lưu trữ mà bạn muốn tạo.
và nhấp vào nút 'Tạo kho lưu trữ'.
Kho lưu trữ đã được tạo.
Bước 6 - Kiểm tra lần commit đầu tiên
Quay lại shell terminal của bạn và thiết lập người dùng git và email mặc định.Chạy lệnh git bên dưới.
Mã:
git config --global user.name "hakase"
git config --global user.email "[emailprotected]"
Mã:
git clone https://git.hakase-labs.io/hakase/myrepo.git
Mã:
cd myrepo/
vim README.md
Bây giờ hãy commit kho lưu trữ.
Mã:
git add .
git commit -m 'Chỉnh sửa tệp README.md file by hakase-labs'
Mã:
git push origin master
Và sau đây là kết quả.
Kiểm tra trang kho lưu trữ và đảm bảo bạn nhận được các thay đổi như bên dưới.
Quá trình cài đặt Gitea với Docker trên Ubuntu 18.04 đã hoàn tất thành công.