diff --git a/dependent/compose.yml b/dependent/compose.yml index a8be657..ac7080a 100644 --- a/dependent/compose.yml +++ b/dependent/compose.yml @@ -52,6 +52,9 @@ services: - net.ipv4.conf.all.src_valid_mark=1 - net.ipv6.conf.all.forwarding=1 # - net.ipv6.conf.all.src_valid_mark=1 + environment: + PUID: $(id -u) + PGID: $(whoami | id -g) env_file: - ${HOME}/.all.env labels: @@ -214,15 +217,15 @@ services: # @NOTE https://docs.gitea.com/administration/reverse-proxies # @NOTE https://docs.gitea.com/administration/config-cheat-sheet forge: - image: docker.gitea.com/gitea:1.26.4 + image: codeberg.org/forgejo/forgejo:16 container_name: forge restart: unless-stopped volumes: - /etc/localtime:/etc/localtime:ro - - ~/.config/gitea:/data:z + - ~/.config/forgejo:/data:z expose: - 3000 - - ${GITEA_SSH_PORT:-2323} + - ${FORGEJO_SSH_PORT:-2222} # networks: # - wg network_mode: "container:wgclient" @@ -235,54 +238,72 @@ services: - ${HOME}/.mysql.env - ${HOME}/.gitea.env environment: - GITEA_DEFAULT_RUN_USER: ${GITEA_MODE:-dev} - GITEA_DEFAULT_APP_NAME: ${GITEA_NAME} - GITEA_server_PROTOCOL: http - GITEA_server_DOMAIN: ${GITEA_SUBDOMAIN}.${SERVER_FQDN} + USER_UID: $(id -u) + USER_GID: $(whoami | id -g) + FORGEJO__RUN_USER: ${FORGEJO_MODE:-dev} + FORGEJO__APP_NAME: ${FORGEJO_NAME} + FORGEJO__APP_SLOGAN: ${FORGEJO_SLOGAN} + FORGEJO__ui.meta_AUTHOR: ${SERVER_FQDN%.*} + FORGEJO__ui.meta_DESCRIPTION: ${FORGEJO_DESC} + FORGEJO__server_PROTOCOL: ${FORGEJO_PROTOCOL} + FORGEJO__server_DOMAIN: ${FORGEJO_SUBDOMAIN}.${SERVER_FQDN} # @NOTE https://gist.github.com/erik-toth/087262f19941da9bf4c2ce449fe98a47 - GITEA_server_SSH_PORT: ${GITEA_SSH_PORT:-2323} - GITEA_server_SSH_EXPOSE_ANONYMOUS: "false" - GITEA_server_START_SSH_SERVER: "false" - GITEA_server_LANDING_PAGE: ${GITEA_LANDING:-explore} - GITEA_admin_DEFAULT_EMAIL_NOTIFICATIONS: onmention - GITEA_security_REVERSE_PROXY_TRUSTED_PROXIES: ${GITEA_TRUSTED_PROXIES} - GITEA_security_PASSWORD_COMPLEXITY: lower,upper,digit,spec - GITEA_security_PASSWORD_CHECK_PWN: "true" - GITEA_service_REGISTER_EMAIL_CONFIRM: "true" - GITEA_service_DISABLE_REGISTRATION: ${GITEA_PROHIBIT_REGISTRATION:-false} - GITEA_service_DEFAULT_KEEP_EMAIL_PRIVATE: "true" - GITEA_service_ENABLE_NOTIFY_MAIL: "true" - GITEA_picture_REPOSITORY_AVATAR_FALLBACK: image - GITEA_picture_REPOSITORY_AVATAR_FALLBACK_IMAGE: img/repo_default.svg - GITEA_log_MODE: file - GITEA_log_ENABLE_SSH_LOG: "true" - GITEA_mailer_ENABLED: "true" - GITEA_mailer_PROTOCOL: ${EMAIL_SEND_PROTOCOL:-smtp}s - GITEA_mailer_SMTP_ADDR: ${EMAIL_SMTP_HOST} - GITEA_mailer_SMTP_PORT: ${EMAIL_SMTP_PORT:-465} - GITEA_mailer_USER: ${EMAIL_SMTP_USERNAME} - GITEA_mailer_PASSWD_FILE: /run/secrets/email.pass - GITEA_mailer_FROM: ${EMAIL_SMTP_USER_ALIAS:-admin}@${EMAIL_SMTP_EMAIL_ALIAS} - GITEA_database_DB_TYPE: ${GITEA_DB_TYPE:-mysql} - GITEA_database_HOST: "${MYSQL_DB_HOST}:3306" - GITEA_database_NAME: ${GITEA_DB_NAME:-gitea} - GITEA_database_USER: ${MYSQL_DB_USER:-admin} - GITEA_database_PASSWD_FILE: /run/secrets/user-mysql.pass - GITEA_repository_DEFAULT_BRANCH: main - GITEA_repository_DEFAULT_PRIVATE: private - GITEA_repository_ORG_MAX_CREATION_LIMIT: 75 - GITEA_repository_ENABLE_PUSH_CREATE_USER: "true" - GITEA_repository_DEFAULT_CLOSE_ISSUES_VIA_COMMITS_IN_ANY_BRANCH: "true" - GITEA_repository.issue_MAX_PINNED: 6 - GITEA_federation_ENABLED: "true" + FORGEJO__server_SSH_PORT: ${FORGEJO_SSH_PORT:-2323} + FORGEJO__server_SSH_EXPOSE_ANONYMOUS: false + FORGEJO__server_START_SSH_SERVER: false + FORGEJO__server_SSH_AUTHORIZED_KEYS_BACKUP: true + FORGEJO__server_LANDING_PAGE: ${FORGEJO_LANDING:-explore} + FORGEJO__admin_DEFAULT_EMAIL_NOTIFICATIONS: onmention + FORGEJO__security_REVERSE_PROXY_TRUSTED_PROXIES: ${FORGEJO_TRUSTED_PROXIES} + FORGEJO__security_PASSWORD_COMPLEXITY: lower,upper,digit,spec + FORGEJO__security_PASSWORD_CHECK_PWN: true + FORGEJO__security_GLOBAL_TWO_FACTOR_REQUIREMENT: true + FORGEJO__service_REGISTER_EMAIL_CONFIRM: true + FORGEJO__service_DEFAULT_KEEP_EMAIL_PRIVATE: true + FORGEJO__service_DISABLE_REGISTRATION: ${FORGEJO_PROHIBIT_REGISTRATION:-true} + FORGEJO__service_ENABLE_NOTIFY_MAIL: true + FORGEJO__security_ENABLE_CAPTCHA: true + FORGEJO__picture_REPOSITORY_AVATAR_FALLBACK: image + FORGEJO__picture_REPOSITORY_AVATAR_FALLBACK_IMAGE: img/repo_default.svg + FORGEJO__picture_ENABLE_FEDERATED_AVATAR: true + FORGEJO__log_MODE: file + FORGEJO__mailer_ENABLED: true + FORGEJO__mailer_PROTOCOL: ${EMAIL_SEND_PROTOCOL:-smtp}s + FORGEJO__mailer_SMTP_ADDR: ${EMAIL_SMTP_HOST} + FORGEJO__mailer_SMTP_PORT: ${EMAIL_SMTP_PORT:-465} + FORGEJO__mailer_USER: ${EMAIL_SMTP_USERNAME} + FORGEJO__mailer_PASSWD_URI: file:/run/secrets/email.pass + FORGEJO__mailer_FROM: "\"${SERVER_FQDN%.*} Administrator\" <${EMAIL_SMTP_USER_ALIAS:-admin}@${EMAIL_SMTP_EMAIL_ALIAS}>" + FORGEJO__database_DB_TYPE: ${FORGEJO_DB_TYPE:-mysql} + FORGEJO__database_HOST: "${MYSQL_DB_HOST}:3306" + FORGEJO__database_NAME: ${FORGEJO_DB_NAME:-forgejo} + FORGEJO__database_USER: ${MYSQL_DB_USER:-admin} + FORGEJO__database_PASSWD_URI: file:/run/secrets/user-mysql.pass + FORGEJO__repository_DEFAULT_BRANCH: main + FORGEJO__repository_DEFAULT_PRIVATE: private + FORGEJO__repository_ENABLE_PUSH_CREATE_USER: true + FORGEJO__repository_DEFAULT_CLOSE_ISSUES_VIA_COMMITS_IN_ANY_BRANCH: true + FORGEJO__repository.issue_MAX_PINNED: 6 + FORGEJO__repository.issue_LOCK_REASON: ${FORGEJO_LOCK_REASONS} + FORGEJO__federation_ENABLED: true + FORGEJO__cors_ENABLED: true + FORGEJO__cors_ALLOW_DOMAIN: "${FORGEJO_PROTOCOL}://${SERVER_FQDN} ${FORGEJO_PROTOCOL}://${OG_SUBDOMAIN}.${SERVER_FQDN}" + FORGEJO__cors_ALLOW_CREDENTIALS: true + FORGEJO__ui_SHOW_USER_EMAIL: false + FORGEJO__ui_ONLY_SHOW_RELEVANT_REPOS: true + FORGEJO__project_PROJECT_BOARD_BASIC_KANBAN_TYPE: ${FORGEJO_KANBAN_COLUMNS} + FORGEJO__project_PROJECT_BOARD_BUG_TRIAGE_TYPE: ${FORGEJO_TRIAGE_CATEGORIES} + FORGEJO__migrations_ALLOW_DOMAINS: "*.${SERVER_FQDN},*.bebopfederation.org,github.com,*.github.com,gitlab.com,*.gitlab.com,codeberg.org,*.codeberg.org,sr.ht,*.sr.ht" + FORGEJO__moderation_ENABLED: true + FORGEJO__repository.editor_LINE_WRAP_EXTENSIONS: .txt,.md,.markdown,.mdown,.mkd,.livemd secrets: - "user-mysql.pass" - email.pass labels: - glance.name: Gitea - glance.id: gitea - glance.icon: "si:gitea" - glance.url: "${SERVER_FQDN_SCHEME}://${GITEA_SUBDOMAIN}.${SERVER_FQDN}" + glance.name: ForgeJO + glance.id: forgejo + glance.icon: "si:forgejo" + glance.url: "${SERVER_FQDN_SCHEME}://${FORGEJO_SUBDOMAIN}.${SERVER_FQDN}" glance.description: Git version control forge server gist: @@ -308,7 +329,7 @@ services: OG_OPENGIST_HOME: /opengist OG_LOG_OUTPUT: file OG_GIT_DEFAULT_BRANCH: main - OG_HTTP_GIT_ENABLED: "true" + OG_HTTP_GIT_ENABLED: true OG_EXTERNAL_URL: "${SERVER_FQDN_SCHEME}://${OG_SUBDOMAIN}.${SERVER_FQDN}" OG_CUSTOM_NAME: ${OG_NAME} OG_CUSTOM_LOGO: ${OG_LOGO:-logo.svg}