Compare commits

..
Author SHA1 Message Date
fauno f5dc94dc44 Merge branch 'main' into ssh-optional 2026-08-29 13:18:59 -03:00
fauno 9ac1a5fcd9 fix: disable ssh 2026-06-29 16:11:43 -03:00
fauno 7cfea87d99 feat: ssh server is optional 2026-06-29 14:33:04 -03:00
fauno d39848fcd8 fix: variable not in use 2026-06-29 14:32:46 -03:00
fauno 3577535b62 fix: the port number is hardcoded on traefik 2026-06-29 14:32:09 -03:00
fauno a0eeb57427 doc: forgejo 2026-06-29 14:31:20 -03:00
5 changed files with 21 additions and 35 deletions
+2 -12
View File
@@ -43,16 +43,6 @@ GITEA_CACHE_ADAPTER=memory
GITEA_CACHE_HOST= GITEA_CACHE_HOST=
GITEA_CACHE_ITEM_TTL=16h GITEA_CACHE_ITEM_TTL=16h
GITEA_LOGIN_MAX_FAILED_ATTEMPTS=5
GITEA_LOGIN_LOCKOUT_DURATION=1h
GITEA_WEBHOOK_ALLOWED_HOST_LIST=external,loopback
GITEA_WEBHOOK_DELIVER_TIMEOUT=5
GITEA_API_MAX_RESPONSE_ITEMS=50
GITEA_API_DEFAULT_PAGING_NUM=20
GITEA_API_ENABLE_SWAGGER=false
GITEA_REPO_UPLOAD_ENABLED=true GITEA_REPO_UPLOAD_ENABLED=true
GITEA_REPO_UPLOAD_ALLOWED_TYPES=*/* GITEA_REPO_UPLOAD_ALLOWED_TYPES=*/*
GITEA_REPO_UPLOAD_MAX_SIZE=50 GITEA_REPO_UPLOAD_MAX_SIZE=50
@@ -61,8 +51,8 @@ GITEA_REPO_UPLOAD_MAX_FILES=5
GITEA_MAILER_FROM=noreply@example.com GITEA_MAILER_FROM=noreply@example.com
GITEA_MAILER_USER=noreply@example.com GITEA_MAILER_USER=noreply@example.com
GITEA_SSH_PORT=2222 # SSH Support
GITEA_SSH_ENABLED=1 COMPOSE_FILE="$COMPOSE_FILE:compose.ssh.yml"
SECRET_INTERNAL_TOKEN_VERSION=v1 # length=105 SECRET_INTERNAL_TOKEN_VERSION=v1 # length=105
SECRET_DB_PASSWORD_VERSION=v1 SECRET_DB_PASSWORD_VERSION=v1
+3 -5
View File
@@ -52,15 +52,13 @@ abra app deploy YOURTRAEFIKAPP
``` ```
You might need to wait a bit. To check if it worked, you can run 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.
## Protect Forgejo from scrapers with Anubis ## Protect Forgejo from scrapers with Anubis
Uncomment the Anubis compose file from the `.env` file and re-deploy the Uncomment the Anubis compose file from the `.env` file and re-deploy the
+4 -14
View File
@@ -45,12 +45,6 @@ ALLOWED_USER_VISIBILITY_MODES = {{ env "GITEA_ALLOWED_USER_VISIBILITY_MODES" }}
DEFAULT_ORG_VISIBILITY = {{ env "GITEA_DEFAULT_ORG_VISIBILITY" }} DEFAULT_ORG_VISIBILITY = {{ env "GITEA_DEFAULT_ORG_VISIBILITY" }}
REQUIRE_SIGNIN_VIEW = {{ env "GITEA_REQUIRE_SIGNIN_VIEW" }} REQUIRE_SIGNIN_VIEW = {{ env "GITEA_REQUIRE_SIGNIN_VIEW" }}
ENABLE_INTERNAL_SIGNIN = {{ env "GITEA_ENABLE_INTERNAL_SIGNIN" }} ENABLE_INTERNAL_SIGNIN = {{ env "GITEA_ENABLE_INTERNAL_SIGNIN" }}
MAX_FAILED_ATTEMPTS = {{ or (env "GITEA_LOGIN_MAX_FAILED_ATTEMPTS") "5" }}
LOCKOUT_DURATION = {{ or (env "GITEA_LOGIN_LOCKOUT_DURATION") "1h" }}
[webhook]
ALLOWED_HOST_LIST = {{ or (env "GITEA_WEBHOOK_ALLOWED_HOST_LIST) "external,loopback" }}
DELIVER_TIMEOUT = {{ or (env "GITEA_WEBHOOK_DELIVER_TIMEOUT) "5" }}
[openid] [openid]
ENABLE_OPENID_SIGNIN = {{ env "GITEA_ENABLE_OPENID_SIGNIN" }} ENABLE_OPENID_SIGNIN = {{ env "GITEA_ENABLE_OPENID_SIGNIN" }}
@@ -93,9 +87,10 @@ DOMAIN = {{ env "GITEA_DOMAIN" }}
LANDING_PAGE = {{ env "GITEA_LANDING_PAGE" }} LANDING_PAGE = {{ env "GITEA_LANDING_PAGE" }}
ROOT_URL = https://%(DOMAIN)s/ ROOT_URL = https://%(DOMAIN)s/
SSH_DOMAIN = {{ env "GITEA_DOMAIN" }} SSH_DOMAIN = {{ env "GITEA_DOMAIN" }}
SSH_LISTEN_PORT = {{ env "GITEA_SSH_PORT" }} SSH_LISTEN_PORT = 2222
SSH_PORT = {{ env "GITEA_SSH_PORT" }} SSH_PORT = 2222
START_SSH_SERVER = true 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_START_SERVER = {{ env "GITEA_LFS_START_SERVER" }}
LFS_JWT_SECRET = {{ secret "lfs_jwt_secret" }} LFS_JWT_SECRET = {{ secret "lfs_jwt_secret" }}
@@ -160,8 +155,3 @@ ENABLED_ISSUE_BY_LABEL = {{ env "FORGEJO_METRICS_ENABLED_ISSUE_BY_LABEL" }}
ENABLED_ISSUE_BY_REPOSITORY = {{ env "FORGEJO_METRICS_ENABLED_ISSUE_BY_REPOSITORY" }} ENABLED_ISSUE_BY_REPOSITORY = {{ env "FORGEJO_METRICS_ENABLED_ISSUE_BY_REPOSITORY" }}
TOKEN = {{ secret "metrics_token" }} TOKEN = {{ secret "metrics_token" }}
{{ end }} {{ end }}
[api]
MAX_RESPONSE_ITEMS = {{ or (env "GITEA_API_MAX_RESPONSE_ITEMS") "50" }}
DEFAULT_PAGING_NUM = {{ or (env "GITEA_API_DEFAULT_PAGING_NUM") "20" }}
ENABLE_SWAGGER = {{ or (env "GITEA_API_ENABLE_SWAGGER") "false" }}
+11
View File
@@ -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}"
+1 -4
View File
@@ -26,7 +26,7 @@ services:
- GITEA_ENABLE_OPENID_SIGNIN - GITEA_ENABLE_OPENID_SIGNIN
- GITEA_ENABLE_OPENID_SIGNUP - GITEA_ENABLE_OPENID_SIGNUP
- GITEA_SMTP_MAILER_ENABLED - GITEA_SMTP_MAILER_ENABLED
- GITEA_SSH_PORT - GITEA_SSH_ENABLED=false
- GITEA_DISABLE_GRAVATAR - GITEA_DISABLE_GRAVATAR
- GITEA_ENABLE_FEDERATED_AVATAR - GITEA_ENABLE_FEDERATED_AVATAR
- GITEA_REGISTER_EMAIL_CONFIRM - GITEA_REGISTER_EMAIL_CONFIRM
@@ -81,9 +81,6 @@ services:
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=3000" - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=3000"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "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.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.accesscontrolallowmethods=GET,OPTIONS,PUT"
- "traefik.http.middlewares.${STACK_NAME}_cors.headers.accesscontrolallowheaders=content-type,authorization" - "traefik.http.middlewares.${STACK_NAME}_cors.headers.accesscontrolallowheaders=content-type,authorization"