From 67c8f80883f2e09dabe555e64c2712ccb50b6a13 Mon Sep 17 00:00:00 2001 From: pooneyy <85266337+pooneyy@users.noreply.github.com> Date: Wed, 4 Feb 2026 14:48:14 +0800 Subject: [PATCH] refactor(forgejo): consolidate version directories and add rootless mode option - remove separate directories for versions 14, 14-rootless, and 14.0.2-rootless - consolidate configuration into a single 14.0.2 directory - add rootless mode as a selectable option in the data.yml form - update docker-compose.yml to use dynamic image selection based on rootless mode - add init.sh and upgrade.sh scripts to handle rootless mode setup and image selection - update volume paths to support both root and rootless container modes --- apps/forgejo/14-rootless/data.yml | 116 ------------------ apps/forgejo/14-rootless/docker-compose.yml | 27 ---- apps/forgejo/14.0.2-rootless/data.yml | 116 ------------------ .../14.0.2-rootless/docker-compose.yml | 27 ---- apps/forgejo/14.0.2/data.yml | 21 ++++ apps/forgejo/14.0.2/docker-compose.yml | 6 +- apps/forgejo/14.0.2/scripts/init.sh | 13 ++ apps/forgejo/14.0.2/scripts/upgrade.sh | 5 + apps/forgejo/14/data.yml | 116 ------------------ apps/forgejo/14/docker-compose.yml | 26 ---- 10 files changed, 43 insertions(+), 430 deletions(-) delete mode 100644 apps/forgejo/14-rootless/data.yml delete mode 100644 apps/forgejo/14-rootless/docker-compose.yml delete mode 100644 apps/forgejo/14.0.2-rootless/data.yml delete mode 100644 apps/forgejo/14.0.2-rootless/docker-compose.yml create mode 100644 apps/forgejo/14.0.2/scripts/init.sh create mode 100644 apps/forgejo/14.0.2/scripts/upgrade.sh delete mode 100644 apps/forgejo/14/data.yml delete mode 100644 apps/forgejo/14/docker-compose.yml diff --git a/apps/forgejo/14-rootless/data.yml b/apps/forgejo/14-rootless/data.yml deleted file mode 100644 index adf1b031a..000000000 --- a/apps/forgejo/14-rootless/data.yml +++ /dev/null @@ -1,116 +0,0 @@ -additionalProperties: - formFields: - - default: 3000 - envKey: PANEL_APP_PORT_HTTP - labelZh: HTTP 端口 - labelEn: HTTP Port - label: - zh: HTTP 端口 - zh-Hant: HTTP 埠 - en: HTTP Port - ja: HTTP ポート - ko: HTTP 포트 - ms: HTTP Port - pt-br: HTTP Porta - ru: HTTP Порт - required: true - type: number - edit: true - rule: paramPort - - default: 222 - envKey: PANEL_APP_PORT_SSH - labelZh: SSH 端口 - labelEn: SSH Port - label: - zh: SSH 端口 - zh-Hant: SSH 埠 - en: SSH Port - ja: SSH ポート - ko: SSH 포트 - ms: SSH Port - pt-br: SSH Porta - ru: SSH Порт - required: true - type: number - edit: true - rule: paramPort - - default: mysql - envKey: PANEL_DB_TYPE - labelZh: 数据库 - labelEn: Database - label: - en: Database - ja: データベース - ko: 데이터베이스 - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - tr: Veritabanı - zh: 数据库 - zh-Hant: 資料庫 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: PostgreSQL - value: postgres - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - - default: forgejo - envKey: PANEL_DB_NAME - labelZh: 数据库名 - labelEn: Database Name - label: - en: Database Name - ja: データベース名 - ko: 데이터베이스 이름 - ms: Nama Pangkalan Data - pt-br: Nome do Banco de Dados - ru: Имя базы данных - tr: Veritabanı Adı - zh: 数据库名 - zh-Hant: 資料庫名稱 - required: true - type: text - rule: paramCommon - random: true - - default: forgejo_user - envKey: PANEL_DB_USER - labelZh: 数据库用户名 - labelEn: Database Username - label: - en: Database Username - ja: データベースユーザー名 - ko: 데이터베이스 사용자 이름 - ms: Nama Pengguna Pangkalan Data - pt-br: Nome de Usuário do Banco de Dados - ru: Имя пользователя базы данных - tr: Veritabanı Kullanıcı Adı - zh: 数据库用户名 - zh-Hant: 資料庫使用者名稱 - required: true - type: text - rule: paramCommon - random: true - - default: forgejo_pass - envKey: PANEL_DB_USER_PASSWORD - labelZh: 数据库密码 - labelEn: Database Password - label: - en: Database Password - ja: データベースパスワード - ko: 데이터베이스 비밀번호 - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - tr: Veritabanı Parolası - zh: 数据库密码 - zh-Hant: 資料庫密碼 - required: true - type: password - rule: paramComplexity - random: true diff --git a/apps/forgejo/14-rootless/docker-compose.yml b/apps/forgejo/14-rootless/docker-compose.yml deleted file mode 100644 index 66c405ff8..000000000 --- a/apps/forgejo/14-rootless/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -services: - forgejo: - image: codeberg.org/forgejo/forgejo:14-rootless - container_name: ${CONTAINER_NAME} - environment: - - USER_UID=1000 - - USER_GID=1000 - - FORGEJO__database__DB_TYPE=${PANEL_DB_TYPE} - - FORGEJO__database__HOST=${PANEL_DB_HOST}:${PANEL_DB_PORT} - - FORGEJO__database__NAME=${PANEL_DB_NAME} - - FORGEJO__database__USER=${PANEL_DB_USER} - - FORGEJO__database__PASSWD=${PANEL_DB_USER_PASSWORD} - restart: always - networks: - - 1panel-network - volumes: - - ./forgejo:/var/lib/gitea - - ./conf:/etc/gitea - - /etc/localtime:/etc/localtime:ro - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - - ${PANEL_APP_PORT_SSH}:2222 - labels: - createdBy: Apps -networks: - 1panel-network: - external: true diff --git a/apps/forgejo/14.0.2-rootless/data.yml b/apps/forgejo/14.0.2-rootless/data.yml deleted file mode 100644 index adf1b031a..000000000 --- a/apps/forgejo/14.0.2-rootless/data.yml +++ /dev/null @@ -1,116 +0,0 @@ -additionalProperties: - formFields: - - default: 3000 - envKey: PANEL_APP_PORT_HTTP - labelZh: HTTP 端口 - labelEn: HTTP Port - label: - zh: HTTP 端口 - zh-Hant: HTTP 埠 - en: HTTP Port - ja: HTTP ポート - ko: HTTP 포트 - ms: HTTP Port - pt-br: HTTP Porta - ru: HTTP Порт - required: true - type: number - edit: true - rule: paramPort - - default: 222 - envKey: PANEL_APP_PORT_SSH - labelZh: SSH 端口 - labelEn: SSH Port - label: - zh: SSH 端口 - zh-Hant: SSH 埠 - en: SSH Port - ja: SSH ポート - ko: SSH 포트 - ms: SSH Port - pt-br: SSH Porta - ru: SSH Порт - required: true - type: number - edit: true - rule: paramPort - - default: mysql - envKey: PANEL_DB_TYPE - labelZh: 数据库 - labelEn: Database - label: - en: Database - ja: データベース - ko: 데이터베이스 - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - tr: Veritabanı - zh: 数据库 - zh-Hant: 資料庫 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: PostgreSQL - value: postgres - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - - default: forgejo - envKey: PANEL_DB_NAME - labelZh: 数据库名 - labelEn: Database Name - label: - en: Database Name - ja: データベース名 - ko: 데이터베이스 이름 - ms: Nama Pangkalan Data - pt-br: Nome do Banco de Dados - ru: Имя базы данных - tr: Veritabanı Adı - zh: 数据库名 - zh-Hant: 資料庫名稱 - required: true - type: text - rule: paramCommon - random: true - - default: forgejo_user - envKey: PANEL_DB_USER - labelZh: 数据库用户名 - labelEn: Database Username - label: - en: Database Username - ja: データベースユーザー名 - ko: 데이터베이스 사용자 이름 - ms: Nama Pengguna Pangkalan Data - pt-br: Nome de Usuário do Banco de Dados - ru: Имя пользователя базы данных - tr: Veritabanı Kullanıcı Adı - zh: 数据库用户名 - zh-Hant: 資料庫使用者名稱 - required: true - type: text - rule: paramCommon - random: true - - default: forgejo_pass - envKey: PANEL_DB_USER_PASSWORD - labelZh: 数据库密码 - labelEn: Database Password - label: - en: Database Password - ja: データベースパスワード - ko: 데이터베이스 비밀번호 - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - tr: Veritabanı Parolası - zh: 数据库密码 - zh-Hant: 資料庫密碼 - required: true - type: password - rule: paramComplexity - random: true diff --git a/apps/forgejo/14.0.2-rootless/docker-compose.yml b/apps/forgejo/14.0.2-rootless/docker-compose.yml deleted file mode 100644 index b39d2b8dc..000000000 --- a/apps/forgejo/14.0.2-rootless/docker-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -services: - forgejo: - image: codeberg.org/forgejo/forgejo:14.0.2-rootless - container_name: ${CONTAINER_NAME} - environment: - - USER_UID=1000 - - USER_GID=1000 - - FORGEJO__database__DB_TYPE=${PANEL_DB_TYPE} - - FORGEJO__database__HOST=${PANEL_DB_HOST}:${PANEL_DB_PORT} - - FORGEJO__database__NAME=${PANEL_DB_NAME} - - FORGEJO__database__USER=${PANEL_DB_USER} - - FORGEJO__database__PASSWD=${PANEL_DB_USER_PASSWORD} - restart: always - networks: - - 1panel-network - volumes: - - ./forgejo:/var/lib/gitea - - ./conf:/etc/gitea - - /etc/localtime:/etc/localtime:ro - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - - ${PANEL_APP_PORT_SSH}:2222 - labels: - createdBy: Apps -networks: - 1panel-network: - external: true diff --git a/apps/forgejo/14.0.2/data.yml b/apps/forgejo/14.0.2/data.yml index adf1b031a..799cee173 100644 --- a/apps/forgejo/14.0.2/data.yml +++ b/apps/forgejo/14.0.2/data.yml @@ -34,6 +34,27 @@ additionalProperties: type: number edit: true rule: paramPort + - default: "false" + envKey: ROOTLESS + labelZh: 无根模式 + labelEn: Rootless Mode + label: + zh: 无根模式 + zh-Hant: 無根模式 + en: Rootless Mode + ja: Rootlessモード + ko: 루트리스 모ード + ms: Mod Tanpa Keistimewaan + pt-br: Modo Sem Privilégios + ru: Беспривилегированный режим + tr: Ayrıcalıksız Mod + required: false + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" - default: mysql envKey: PANEL_DB_TYPE labelZh: 数据库 diff --git a/apps/forgejo/14.0.2/docker-compose.yml b/apps/forgejo/14.0.2/docker-compose.yml index eed61d197..f5036a482 100644 --- a/apps/forgejo/14.0.2/docker-compose.yml +++ b/apps/forgejo/14.0.2/docker-compose.yml @@ -1,6 +1,6 @@ services: forgejo: - image: codeberg.org/forgejo/forgejo:14.0.2 + image: ${IMAGE} container_name: ${CONTAINER_NAME} environment: - USER_UID=1000 @@ -14,7 +14,9 @@ services: networks: - 1panel-network volumes: - - ./forgejo:/data + - ./data:/data + - ./data-rootless/forgejo:/var/lib/gitea + - ./data-rootless/conf:/etc/gitea - /etc/localtime:/etc/localtime:ro ports: - ${PANEL_APP_PORT_HTTP}:3000 diff --git a/apps/forgejo/14.0.2/scripts/init.sh b/apps/forgejo/14.0.2/scripts/init.sh new file mode 100644 index 000000000..9fc85841b --- /dev/null +++ b/apps/forgejo/14.0.2/scripts/init.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +[ -f ./.env ] && source ./.env + +# renovate: datasource=docker depName=forgejo/forgejo +IMAGE=codeberg.org/forgejo/forgejo:14.0.2 + +if [ "${ROOTLESS}" = "true" ]; then + IMAGE="${IMAGE}-rootless" + mkdir -p ./data-rootless/forgejo ./data-rootless/conf + chown -R 1000:1000 ./data-rootless/forgejo ./data-rootless/conf +fi +echo "IMAGE=${IMAGE}" >> .env \ No newline at end of file diff --git a/apps/forgejo/14.0.2/scripts/upgrade.sh b/apps/forgejo/14.0.2/scripts/upgrade.sh new file mode 100644 index 000000000..62a799a25 --- /dev/null +++ b/apps/forgejo/14.0.2/scripts/upgrade.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +if [ -f ./scripts/init.sh ]; then + bash ./scripts/init.sh +fi diff --git a/apps/forgejo/14/data.yml b/apps/forgejo/14/data.yml deleted file mode 100644 index adf1b031a..000000000 --- a/apps/forgejo/14/data.yml +++ /dev/null @@ -1,116 +0,0 @@ -additionalProperties: - formFields: - - default: 3000 - envKey: PANEL_APP_PORT_HTTP - labelZh: HTTP 端口 - labelEn: HTTP Port - label: - zh: HTTP 端口 - zh-Hant: HTTP 埠 - en: HTTP Port - ja: HTTP ポート - ko: HTTP 포트 - ms: HTTP Port - pt-br: HTTP Porta - ru: HTTP Порт - required: true - type: number - edit: true - rule: paramPort - - default: 222 - envKey: PANEL_APP_PORT_SSH - labelZh: SSH 端口 - labelEn: SSH Port - label: - zh: SSH 端口 - zh-Hant: SSH 埠 - en: SSH Port - ja: SSH ポート - ko: SSH 포트 - ms: SSH Port - pt-br: SSH Porta - ru: SSH Порт - required: true - type: number - edit: true - rule: paramPort - - default: mysql - envKey: PANEL_DB_TYPE - labelZh: 数据库 - labelEn: Database - label: - en: Database - ja: データベース - ko: 데이터베이스 - ms: Pangkalan Data - pt-br: Banco de Dados - ru: База данных - tr: Veritabanı - zh: 数据库 - zh-Hant: 資料庫 - required: true - type: apps - values: - - label: MySQL - value: mysql - - label: PostgreSQL - value: postgres - child: - default: "" - envKey: PANEL_DB_HOST - required: true - type: service - - default: forgejo - envKey: PANEL_DB_NAME - labelZh: 数据库名 - labelEn: Database Name - label: - en: Database Name - ja: データベース名 - ko: 데이터베이스 이름 - ms: Nama Pangkalan Data - pt-br: Nome do Banco de Dados - ru: Имя базы данных - tr: Veritabanı Adı - zh: 数据库名 - zh-Hant: 資料庫名稱 - required: true - type: text - rule: paramCommon - random: true - - default: forgejo_user - envKey: PANEL_DB_USER - labelZh: 数据库用户名 - labelEn: Database Username - label: - en: Database Username - ja: データベースユーザー名 - ko: 데이터베이스 사용자 이름 - ms: Nama Pengguna Pangkalan Data - pt-br: Nome de Usuário do Banco de Dados - ru: Имя пользователя базы данных - tr: Veritabanı Kullanıcı Adı - zh: 数据库用户名 - zh-Hant: 資料庫使用者名稱 - required: true - type: text - rule: paramCommon - random: true - - default: forgejo_pass - envKey: PANEL_DB_USER_PASSWORD - labelZh: 数据库密码 - labelEn: Database Password - label: - en: Database Password - ja: データベースパスワード - ko: 데이터베이스 비밀번호 - ms: Kata Laluan Pangkalan Data - pt-br: Senha do Banco de Dados - ru: Пароль базы данных - tr: Veritabanı Parolası - zh: 数据库密码 - zh-Hant: 資料庫密碼 - required: true - type: password - rule: paramComplexity - random: true diff --git a/apps/forgejo/14/docker-compose.yml b/apps/forgejo/14/docker-compose.yml deleted file mode 100644 index 880a76deb..000000000 --- a/apps/forgejo/14/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ -services: - forgejo: - image: codeberg.org/forgejo/forgejo:14 - container_name: ${CONTAINER_NAME} - environment: - - USER_UID=1000 - - USER_GID=1000 - - FORGEJO__database__DB_TYPE=${PANEL_DB_TYPE} - - FORGEJO__database__HOST=${PANEL_DB_HOST}:${PANEL_DB_PORT} - - FORGEJO__database__NAME=${PANEL_DB_NAME} - - FORGEJO__database__USER=${PANEL_DB_USER} - - FORGEJO__database__PASSWD=${PANEL_DB_USER_PASSWORD} - restart: always - networks: - - 1panel-network - volumes: - - ./forgejo:/data - - /etc/localtime:/etc/localtime:ro - ports: - - ${PANEL_APP_PORT_HTTP}:3000 - - ${PANEL_APP_PORT_SSH}:22 - labels: - createdBy: Apps -networks: - 1panel-network: - external: true