129 lines
2.2 KiB
Markdown
129 lines
2.2 KiB
Markdown
# Gitea Setup - git.idunara.com
|
|
|
|
Private Gitea instance at **https://git.idunara.com**
|
|
|
|
- SSH port: **222**
|
|
- Web: **https://git.idunara.com**
|
|
- CLI tool: [tea](https://gitea.com/gitea/tea)
|
|
|
|
---
|
|
|
|
## 1. New Device Setup
|
|
|
|
Run these steps once on any new machine.
|
|
|
|
### Install tea
|
|
|
|
```bash
|
|
brew install tea
|
|
```
|
|
|
|
### Generate SSH key (skip if you already have one)
|
|
|
|
```bash
|
|
ssh-keygen -t ed25519 -C "my-device-name"
|
|
```
|
|
|
|
### Configure SSH for Gitea
|
|
|
|
```bash
|
|
mkdir -p ~/.ssh
|
|
cat >> ~/.ssh/config << 'EOF'
|
|
|
|
Host git.idunara.com
|
|
Port 222
|
|
User git
|
|
IdentityFile ~/.ssh/id_ed25519
|
|
EOF
|
|
chmod 600 ~/.ssh/config
|
|
```
|
|
|
|
### Add your SSH key to Gitea
|
|
|
|
1. Copy your public key:
|
|
```bash
|
|
cat ~/.ssh/id_ed25519.pub
|
|
```
|
|
2. Go to https://git.idunara.com/user/settings/keys
|
|
3. Click **Add Key**, paste it, save.
|
|
|
|
### Log in with tea
|
|
|
|
```bash
|
|
tea login add --name git.idunara.com --url https://git.idunara.com --user emmanuel
|
|
```
|
|
|
|
You will be prompted for your password. This creates a local token.
|
|
|
|
### Verify
|
|
|
|
```bash
|
|
tea repo ls
|
|
```
|
|
|
|
---
|
|
|
|
## 2. Create a New Repo
|
|
|
|
```bash
|
|
tea repo create --name my-project --init --private && tea clone emmanuel/my-project
|
|
```
|
|
|
|
Then start working:
|
|
|
|
```bash
|
|
cd my-project
|
|
# ... write code ...
|
|
git add .
|
|
git commit -m "initial commit"
|
|
git push
|
|
```
|
|
|
|
---
|
|
|
|
## 3. Add Gitea to an Existing Repo
|
|
|
|
From inside your project directory:
|
|
|
|
```bash
|
|
tea repo create --name my-project --private
|
|
git remote add origin git@git.idunara.com:emmanuel/my-project.git
|
|
git push -u origin main
|
|
```
|
|
|
|
Note: don't use `--init` here since you already have commits.
|
|
|
|
---
|
|
|
|
## Shell Helper (optional)
|
|
|
|
Add this to your `~/.bashrc` or `~/.zshrc`:
|
|
|
|
```bash
|
|
ginit() {
|
|
if [ -z "$1" ]; then
|
|
echo "Usage: ginit <repo-name> [--existing]"
|
|
return 1
|
|
fi
|
|
if [ "$2" = "--existing" ]; then
|
|
tea repo create --name "$1" --private
|
|
git remote add origin "git@git.idunara.com:emmanuel/$1.git"
|
|
git push -u origin main
|
|
else
|
|
tea repo create --name "$1" --init --private && tea clone "emmanuel/$1"
|
|
cd "$1"
|
|
fi
|
|
}
|
|
```
|
|
|
|
Usage:
|
|
|
|
```bash
|
|
# New project (creates repo + clones it)
|
|
ginit my-project
|
|
|
|
# Existing project (creates repo + adds remote + pushes)
|
|
cd my-existing-project
|
|
ginit my-existing-project --existing
|
|
```
|