Setup Gitea SSH with Cloudflare Tunnel

requirements

  • docker-compose
  • cloudflare tunnel

gitea docker-compose.yml

version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: docker.gitea.com/gitea:1.23.5
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - SSH_DOMAIN="ssh-gitea.yourdomain.com"
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      #- /home/git/.ssh/:/data/git/.ssh
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3300:3000"
      - "222:22"

set up gitea ssh domain

#app.ini
[server]
SSH_DOMAIN=ssh-gitea.youdomain.com

ssh clone

SSH with client-side cloudflared

proxy client side ssh to tunnel service

.ssh/config
Host ssh-gitea.yourdomain.com
    ProxyCommand /usr/bin/cloudflared access ssh --hostname %h

result