First of all I am sure many of you guys use github for a reason. You want to share code and that makes perfect sense! Thanks for sharing with the community! However some of us have different needs. We may want to build something that is not meant for public eyes.
And for that my favorite tool is gitea. it is an own private git server - can be set up in minutes and with this tutorial you can even avoid some hours of debugging.
First of all: I assume you got docker installed on your machine. If that is not the case, then do it.
Step 1:
Use this code here:
services:
gitea-db:
image: mariadb:10.11
container_name: gitea-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: gitea
MYSQL_USER: gitea
MYSQL_PASSWORD: giteapassword
volumes:
- ./data/db:/var/lib/mysql
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
depends_on:
- gitea-db
environment:
USER_UID: 1000
USER_GID: 1000
GITEA__database__DB_TYPE: mysql
GITEA__database__HOST: gitea-db:3306
GITEA__database__NAME: gitea
GITEA__database__USER: gitea
GITEA__database__PASSWD: giteapassword
GITEA__server__DISABLE_SSH: "false"
volumes:
- ./data/gitea:/data
ports:
- "3000:3000"
- "2222:22"
save as docker-compose.yml
then type
docker compose up -d
Then open http://localhost:3000 and add the password “giteapassword” and the admin user “gitea” (don’t do that on a prod git .. this is for local only) and then save the configuration.
Then create an access token for the mcp http://localhost:3000/user/settings/applications
copy it and then open vscode
add this to your config.toml:
[mcp_servers.gitea]
command = "docker"
args = [
"run",
"--rm",
"-i",
"--network",
"gitea_default",
"-e",
"GITEA_HOST=http://gitea:3000",
"-e",
"GITEA_ACCESS_TOKEN=____ADD YOUR ACCESS TOKEN HERE_____",
"docker.gitea.com/gitea-mcp-server:latest"
]
enabled = true
Create a SSH key:
ssh-keygen -t ed25519 -C "your_email@example.com"
Then take the public key
cat ~/.ssh/id_ed25519.pub
Then add it here: http://localhost:3000/user/settings/keys
Then add an entry to your ~/.ssh/config file (if it doesn’t exist then create it):
Host localhost
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
Port 2222
User gitea
And then you need to restart vscode and you can start talking to your git via chat.
I like to let it create issues
http://localhost:3000/gitea/base/issues
where I split the code into sections preferably modules that are lously coupled.
That means that I can run one agent per module without having any problems e.g. because two or more agents work on the same file…
Then I use a split pane tmux instance which looks like this:
Actually it looks like that after a run.
Have fun!




