From a0eeb5742703ef8505150ba6618c7aa51868a7ac Mon Sep 17 00:00:00 2001 From: f Date: Mon, 29 Jun 2026 14:31:20 -0300 Subject: [PATCH 1/5] doc: forgejo --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3fcd575..f457189 100644 --- a/README.md +++ b/README.md @@ -52,11 +52,11 @@ abra app deploy YOURTRAEFIKAPP ``` You might need to wait a bit. To check if it worked, you can run ``` -telnet my.gitea.example.com 2222 +telnet my.forgejo.example.com 2222 ``` -Once you have added a public SSH key, you can check that you can connect to your gitea server with +Once you have added a public SSH key, you can check that you can connect to your Forgejo server with ``` -ssh -T -p 2222 git@my.gitea.example.com +ssh -T -p 2222 git@my.forgejo.example.com ``` Note that gitea should be configured to listen to port 2222, i.e. `GITEA_SSH_PORT=2222` in the gitea config. -- 2.52.0 From 3577535b6221a5ed7a3f3356a892259a5739b97c Mon Sep 17 00:00:00 2001 From: f Date: Mon, 29 Jun 2026 14:32:09 -0300 Subject: [PATCH 2/5] fix: the port number is hardcoded on traefik --- .env.sample | 1 - README.md | 2 -- abra.sh | 2 +- app.ini.tmpl | 4 ++-- compose.yml | 1 - 5 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.env.sample b/.env.sample index 90889a6..d1badff 100644 --- a/.env.sample +++ b/.env.sample @@ -51,7 +51,6 @@ GITEA_REPO_UPLOAD_MAX_FILES=5 GITEA_MAILER_FROM=noreply@example.com GITEA_MAILER_USER=noreply@example.com -GITEA_SSH_PORT=2222 GITEA_SSH_ENABLED=1 SECRET_INTERNAL_TOKEN_VERSION=v1 # length=105 diff --git a/README.md b/README.md index f457189..fe9144e 100644 --- a/README.md +++ b/README.md @@ -59,8 +59,6 @@ Once you have added a public SSH key, you can check that you can connect to your ssh -T -p 2222 git@my.forgejo.example.com ``` -Note that gitea should be configured to listen to port 2222, i.e. `GITEA_SSH_PORT=2222` in the gitea config. - ## Protect Forgejo from scrapers with Anubis Uncomment the Anubis compose file from the `.env` file and re-deploy the diff --git a/abra.sh b/abra.sh index cf7461f..4bf51e7 100644 --- a/abra.sh +++ b/abra.sh @@ -1,4 +1,4 @@ -export APP_INI_VERSION=v26 +export APP_INI_VERSION=v27 export DOCKER_SETUP_SH_VERSION=v1 export PG_BACKUP_VERSION=v1 diff --git a/app.ini.tmpl b/app.ini.tmpl index 94cd6f8..45498fe 100644 --- a/app.ini.tmpl +++ b/app.ini.tmpl @@ -75,8 +75,8 @@ DOMAIN = {{ env "GITEA_DOMAIN" }} LANDING_PAGE = {{ env "GITEA_LANDING_PAGE" }} ROOT_URL = https://%(DOMAIN)s/ SSH_DOMAIN = {{ env "GITEA_DOMAIN" }} -SSH_LISTEN_PORT = {{ env "GITEA_SSH_PORT" }} -SSH_PORT = {{ env "GITEA_SSH_PORT" }} +SSH_LISTEN_PORT = 2222 +SSH_PORT = 2222 START_SSH_SERVER = true LFS_START_SERVER = {{ env "GITEA_LFS_START_SERVER" }} LFS_JWT_SECRET = {{ secret "lfs_jwt_secret" }} diff --git a/compose.yml b/compose.yml index 45172c7..d0f0440 100644 --- a/compose.yml +++ b/compose.yml @@ -26,7 +26,6 @@ services: - GITEA_ENABLE_OPENID_SIGNIN - GITEA_ENABLE_OPENID_SIGNUP - GITEA_SMTP_MAILER_ENABLED - - GITEA_SSH_PORT - GITEA_DISABLE_GRAVATAR - GITEA_ENABLE_FEDERATED_AVATAR - GITEA_REGISTER_EMAIL_CONFIRM -- 2.52.0 From d39848fcd802d7d6d5e66dae5914eb8f1f399ee6 Mon Sep 17 00:00:00 2001 From: f Date: Mon, 29 Jun 2026 14:32:46 -0300 Subject: [PATCH 3/5] fix: variable not in use --- .env.sample | 1 - 1 file changed, 1 deletion(-) diff --git a/.env.sample b/.env.sample index d1badff..61bf596 100644 --- a/.env.sample +++ b/.env.sample @@ -51,7 +51,6 @@ GITEA_REPO_UPLOAD_MAX_FILES=5 GITEA_MAILER_FROM=noreply@example.com GITEA_MAILER_USER=noreply@example.com -GITEA_SSH_ENABLED=1 SECRET_INTERNAL_TOKEN_VERSION=v1 # length=105 SECRET_DB_PASSWORD_VERSION=v1 -- 2.52.0 From 7cfea87d99b7eeab00d7b61bd47d597fd90fff5c Mon Sep 17 00:00:00 2001 From: f Date: Mon, 29 Jun 2026 14:33:04 -0300 Subject: [PATCH 4/5] feat: ssh server is optional --- .env.sample | 2 ++ app.ini.tmpl | 2 +- compose.ssh.yml | 11 +++++++++++ compose.yml | 4 +--- 4 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 compose.ssh.yml diff --git a/.env.sample b/.env.sample index 61bf596..b95d121 100644 --- a/.env.sample +++ b/.env.sample @@ -51,6 +51,8 @@ GITEA_REPO_UPLOAD_MAX_FILES=5 GITEA_MAILER_FROM=noreply@example.com GITEA_MAILER_USER=noreply@example.com +# SSH Support +COMPOSE_FILE="$COMPOSE_FILE:compose.ssh.yml" SECRET_INTERNAL_TOKEN_VERSION=v1 # length=105 SECRET_DB_PASSWORD_VERSION=v1 diff --git a/app.ini.tmpl b/app.ini.tmpl index 45498fe..788fa57 100644 --- a/app.ini.tmpl +++ b/app.ini.tmpl @@ -77,7 +77,7 @@ ROOT_URL = https://%(DOMAIN)s/ SSH_DOMAIN = {{ env "GITEA_DOMAIN" }} SSH_LISTEN_PORT = 2222 SSH_PORT = 2222 -START_SSH_SERVER = true +START_SSH_SERVER = {{ env "GITEA_SSH_ENABLED" }} LFS_START_SERVER = {{ env "GITEA_LFS_START_SERVER" }} LFS_JWT_SECRET = {{ secret "lfs_jwt_secret" }} diff --git a/compose.ssh.yml b/compose.ssh.yml new file mode 100644 index 0000000..40abca4 --- /dev/null +++ b/compose.ssh.yml @@ -0,0 +1,11 @@ +--- +version: "3.8" +services: + app: + environment: + - GITEA_SSH_ENABLED=true + deploy: + labels: + - "traefik.tcp.routers.${STACK_NAME}-ssh.rule=HostSNI(`*`)" + - "traefik.tcp.routers.${STACK_NAME}-ssh.entrypoints=gitea-ssh" + - "traefik.tcp.services.${STACK_NAME}-ssh.loadbalancer.server.port=${GITEA_SSH_PORT}" diff --git a/compose.yml b/compose.yml index d0f0440..4d9b09e 100644 --- a/compose.yml +++ b/compose.yml @@ -26,6 +26,7 @@ services: - GITEA_ENABLE_OPENID_SIGNIN - GITEA_ENABLE_OPENID_SIGNUP - GITEA_SMTP_MAILER_ENABLED + - GITEA_SSH_ENABLED=false - GITEA_DISABLE_GRAVATAR - GITEA_ENABLE_FEDERATED_AVATAR - GITEA_REGISTER_EMAIL_CONFIRM @@ -80,9 +81,6 @@ services: - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=3000" - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - - "traefik.tcp.routers.${STACK_NAME}-ssh.rule=HostSNI(`*`)" - - "traefik.tcp.routers.${STACK_NAME}-ssh.entrypoints=gitea-ssh" - - "traefik.tcp.services.${STACK_NAME}-ssh.loadbalancer.server.port=${GITEA_SSH_PORT}" - "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}_cors" - "traefik.http.middlewares.${STACK_NAME}_cors.headers.accesscontrolallowmethods=GET,OPTIONS,PUT" - "traefik.http.middlewares.${STACK_NAME}_cors.headers.accesscontrolallowheaders=content-type,authorization" -- 2.52.0 From 9ac1a5fcd92bc5becdec85792c11d85f2986f518 Mon Sep 17 00:00:00 2001 From: f Date: Mon, 29 Jun 2026 16:11:43 -0300 Subject: [PATCH 5/5] fix: disable ssh --- app.ini.tmpl | 1 + 1 file changed, 1 insertion(+) diff --git a/app.ini.tmpl b/app.ini.tmpl index 788fa57..40b50a7 100644 --- a/app.ini.tmpl +++ b/app.ini.tmpl @@ -78,6 +78,7 @@ SSH_DOMAIN = {{ env "GITEA_DOMAIN" }} SSH_LISTEN_PORT = 2222 SSH_PORT = 2222 START_SSH_SERVER = {{ env "GITEA_SSH_ENABLED" }} +DISABLE_SSH = {{ if eq (env "GITEA_SSH_ENABLED") "true" }}false{{ else }}true{{ end }} LFS_START_SERVER = {{ env "GITEA_LFS_START_SERVER" }} LFS_JWT_SECRET = {{ secret "lfs_jwt_secret" }} -- 2.52.0