2

Self-Hosting Your Own Cloud – Part 13: Git Service with Gitea

 2 years ago
source link: https://spin.atomicobject.com/2022/02/08/git-service-gitea/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

In my last post, I wrote about self-hosting Notes. Today, we’ll be setting up a simple and easy self-hosted Git Service, Gitea.

This is the 13th post in a series about protecting your privacy by self-hosting while attempting to maintain the conveniences of public cloud services. See the bottom of this post for a list.

Simple and Easy Self-Hosted Git Service

I have several personal side-projects going on that are related to tracking my finances and my health. Because these projects are personal in nature, I thought that it would be great to be able to take advantage of private version control similar to GitHub or GitLab but hosted on my own server inside my home network. I came across Gitea sometime last year and found it to be super easy to set up and get going.

Setup

Setting up Gitea in Docker is super easy. We’ll just create a gitea/docker-compose.yml that contains both Gitea and a PostgreSQL database:

Docker
version: "3"

  services:
    web:
      image: gitea/gitea:latest
      volumes:
        - /data/gitea/data:/data
        - /etc/timezone:/etc/timezone:ro
        - /etc/localtime:/etc/localtime:ro
      ports:
        - "3000:3000"
        - "2222:22"
      depends_on:
        - db
      restart: unless-stopped
      environment:
        - USER_UID=1000
        - USER_GID=1000
        - DB_TYPE=postgres
        - DB_HOST=db:5432
        - DB_NAME=gitea
        - DB_USER=gitea
        - DB_PASSWD=finale-ravishing-fool9
        - SSH_LISTEN_PORT=22
        - SSH_PORT=2222
        - SSH_DOMAIN=10.10.10.10
        - ROOT_URL=http://10.10.10.10:3000
    db:
      image: postgres:13.1
      restart: unless-stopped
      environment:
        - POSTGRES_USER=gitea
        - POSTGRES_PASSWORD=finale-ravishing-fool9
        - POSTGRES_DB=gitea
      volumes:
        - /data/gitea/postgres:/var/lib/postgresql/data

You’ll notice that ports 3000 (used for HTTP) and 2222 (used for Git via SSH) are made available on the host. You can configure this to fit your needs. Also notice that in this setup, SSH_DOMAIN and ROOT_URL are simply configured to point to an IP and specific port. In my case, I am running my server on 10.10.10.10.

In my setup, I have custom nameserver records, a reverse proxy server, and a trusted certificate authority set up to allow connecting to the server via HTTPS. Since this is out of the scope of setting up Gitea, I’ll cover this setup in a future blog post. In the meantime you can just access it via the IP and port combination you specified.

$ docker-compose up -d

Then simply navigate to http://10.10.10.10:3000 (or whatever IP address or hostname you have configured) and follow the setup from there.

Once you are up and running, you can create new repositories and push your code up just like you do in GitHub or GitLab.

Gitea


Self-Hosting Your Own Cloud


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK