1
0
Fork 0

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
This commit is contained in:
pooneyy 2026-02-04 14:48:14 +08:00
parent 7080624537
commit 67c8f80883
No known key found for this signature in database
10 changed files with 43 additions and 430 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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: 数据库

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,5 @@
#!/bin/bash
if [ -f ./scripts/init.sh ]; then
bash ./scripts/init.sh
fi

View File

@ -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

View File

@ -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