Update Gitea to latest version with support for SQLite, MySQL, and PostgreSQL (#283)

* Update Gitea to latest version with support for SQLite, MySQL, and PostgreSQL

* Update meta.json

* Update meta.json

* Update meta.json

* Update meta.json

* Update meta.json

* Update meta.json

* Update meta.json

* Remove Booklore and Statping-NG entries from meta.json

* The meta.json glow-up nobody saw coming (#281)

* removed

n8n (appears 2 times)
Authelia (appears 2 times)
SupaBase (appears 2 times)
Livekit (appears 2 times)
WG-Easy (appears 2 times)
Open Notebook (appears 2 times)
Booklore (appears 2 times)
Scrypted (appears 2 times)
Wallos (appears 2 times)
Statping-NG (appears 2 times)

* Replace application catalog entries with new software entries

* Test 1

* Updated Scripts

* Final Test

* Fix

* Remove redundant dependency installation steps from GitHub Actions workflow

* Test 2

* Update meta sorting logic to ASCII order and add --backup option for deduplication

* Fix meta.json: Remove duplicates and apply correct ASCII sorting

- Remove duplicate entries: scrypted, searxng (243 → 241 entries)
- Fix sorting algorithm to use ASCII order for CI/CD compatibility
- Update both dedupe-and-sort-meta.js and build-scripts/process-meta.js
- Add missing --backup CLI argument to build script
- Ensure consistent sorting across all processing interfaces

* Fix CI/CD pipeline: Count JSON entries instead of lines

- Update validate-meta.yml to count JSON entries using Node.js instead of wc -l
- Add custom JSON formatting functions to both processing scripts
- Ensure consistent output formatting across all processing interfaces
- Fix false positive where line count increased due to expanded JSON formatting

The CI/CD failure was caused by counting file lines (4124) instead of actual
JSON entries (241). Both files now produce identical results with proper
entry counting in the validation workflow.

* Fix meta.json formatting to match processing script output

- Apply consistent JSON formatting to meta.json using processing script
- Ensure file formatting matches expected CI/CD workflow output
- Files now pass diff comparison in validation workflow

This resolves the CI/CD pipeline failure where files had identical content
but different formatting, causing diff validation to fail.

* Test 3

* Removed duplicate and action worked :)

* Remove pull_request_template.md

* Remove duplicate meta entries to prevent processing conflicts

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>

* Update Gitea to latest version with support for SQLite, MySQL, and PostgreSQL

* Update Meta.json

* Remove Gitea entry from meta.json

* Format tags arrays in meta.json to multi-line for better readability

* Remove old Gitea blueprint files

* feat: add Gitea entries for MySQL, PostgreSQL, and SQLite

- Introduced new Gitea application entries in meta.json for MySQL, PostgreSQL, and SQLite, each with version 1.24.4.
- Added descriptions, logos, and relevant links for each entry.
- Categorized applications with appropriate tags for better discoverability.

* Remove outdated Gitea entry from meta.json to streamline application catalog.

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
This commit is contained in:
Jainil Prajapati 🪐
2025-08-23 10:55:31 +05:30
committed by GitHub
parent 5c97dbe3fe
commit 2e370b0770
12 changed files with 234 additions and 62 deletions

View File

@@ -0,0 +1,44 @@
version: "3.8"
services:
gitea:
image: docker.gitea.com/gitea:1.24.4
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=mysql:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=${GITEA_DB_PASSWORD:-gitea}
volumes:
- gitea-data:/data
expose:
- "3000"
- "22"
depends_on:
- mysql
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:3000/"]
interval: 15s
timeout: 5s
retries: 10
mysql:
image: docker.io/library/mysql:8
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-gitea}
- MYSQL_USER=gitea
- MYSQL_PASSWORD=${GITEA_DB_PASSWORD:-gitea}
- MYSQL_DATABASE=gitea
command: ["--default-authentication-plugin=mysql_native_password"]
volumes:
- mysql-data:/var/lib/mysql
expose:
- "3306"
volumes:
gitea-data: {}
mysql-data: {}

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,23 @@
[variables]
main_domain = "${domain}"
db_password = "${password:24}"
db_root_password = "${password:24}"
[config]
[[config.domains]]
serviceName = "gitea"
port = 3000
host = "${main_domain}"
[config.env]
USER_UID = "1000"
USER_GID = "1000"
GITEA__database__DB_TYPE = "mysql"
GITEA__database__HOST = "mysql:3306"
GITEA__database__NAME = "gitea"
GITEA__database__USER = "gitea"
GITEA__database__PASSWD = "${db_password}"
GITEA_DB_PASSWORD = "${db_password}"
MYSQL_ROOT_PASSWORD = "${db_root_password}"
[[config.mounts]]

View File

@@ -0,0 +1,42 @@
version: "3.8"
services:
gitea:
image: docker.gitea.com/gitea:1.24.4
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=postgres:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=${GITEA_DB_PASSWORD:-gitea}
volumes:
- gitea-data:/data
expose:
- "3000"
- "22"
depends_on:
- postgres
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:3000/"]
interval: 15s
timeout: 5s
retries: 10
postgres:
image: docker.io/library/postgres:14
restart: unless-stopped
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=${GITEA_DB_PASSWORD:-gitea}
- POSTGRES_DB=gitea
volumes:
- pg-data:/var/lib/postgresql/data
expose:
- "5432"
volumes:
gitea-data: {}
pg-data: {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,21 @@
[variables]
main_domain = "${domain}"
db_password = "${password:24}"
[config]
[[config.domains]]
serviceName = "gitea"
port = 3000
host = "${main_domain}"
[config.env]
USER_UID = "1000"
USER_GID = "1000"
GITEA__database__DB_TYPE = "postgres"
GITEA__database__HOST = "postgres:5432"
GITEA__database__NAME = "gitea"
GITEA__database__USER = "gitea"
GITEA__database__PASSWD = "${db_password}"
GITEA_DB_PASSWORD = "${db_password}"
[[config.mounts]]

View File

@@ -0,0 +1,25 @@
version: "3.8"
services:
gitea:
image: docker.gitea.com/gitea:1.24.4
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
# SQLite (default) lives at /data/gitea
# Example optional overrides (set in template.toml env or UI):
# - GITEA__mailer__ENABLED=true
volumes:
- gitea-data:/data
expose:
- "3000" # Web UI
- "22" # SSH (internal only)
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:3000/"]
interval: 15s
timeout: 5s
retries: 10
volumes:
gitea-data: {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -0,0 +1,23 @@
[variables]
main_domain = "${domain}"
[config]
[[config.domains]]
serviceName = "gitea"
port = 3000
host = "${main_domain}"
[config.env]
USER_UID = "1000"
USER_GID = "1000"
# Optional: enable SMTP (or set later in UI)
# GITEA__mailer__ENABLED = "true"
# GITEA__mailer__FROM = "gitea@${username}.example.com"
# GITEA__mailer__PROTOCOL = "smtps"
# GITEA__mailer__SMTP_ADDR = "smtp.example.com"
# GITEA__mailer__SMTP_PORT = "465"
# GITEA__mailer__USER = "apikey"
# GITEA__mailer__PASSWD = "${password:32}"
[[config.mounts]]

View File

@@ -1,35 +0,0 @@
version: "3.8"
services:
gitea:
image: gitea/gitea:1.22.3
environment:
- USER_UID=${USER_UID}
- USER_GID=${USER_GID}
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
volumes:
- gitea_server:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
- db
db:
image: postgres:17
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
volumes:
- gitea_db:/var/lib/postgresql/data
volumes:
gitea_db:
gitea_server:

View File

@@ -1,11 +0,0 @@
[variables]
main_domain = "${domain}"
[config]
env = ["USER_UID=1000", "USER_GID=1000"]
mounts = []
[[config.domains]]
serviceName = "gitea"
port = 3_000
host = "${main_domain}"

View File

@@ -1832,22 +1832,6 @@
"cms"
]
},
{
"id": "gitea",
"name": "Gitea",
"version": "1.22.3",
"description": "Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD.",
"logo": "gitea.png",
"links": {
"github": "https://github.com/go-gitea/gitea.git",
"website": "https://gitea.com/",
"docs": "https://docs.gitea.com/installation/install-with-docker"
},
"tags": [
"self-hosted",
"storage"
]
},
{
"id": "gitea-mirror",
"name": "Gitea Mirror",
@@ -1868,6 +1852,62 @@
"automation"
]
},
{
"id": "gitea-mysql",
"name": "Gitea (MySQL)",
"version": "1.24.4",
"description": "Gitea bundled with MySQL 8.",
"logo": "gitea.png",
"links": {
"github": "https://github.com/go-gitea/gitea",
"website": "https://gitea.io/",
"docs": "https://docs.gitea.com/"
},
"tags": [
"git",
"scm",
"mysql",
"developer-tools",
"self-hosted"
]
},
{
"id": "gitea-postgres",
"name": "Gitea (PostgreSQL)",
"version": "1.24.4",
"description": "Gitea bundled with PostgreSQL.",
"logo": "gitea.png",
"links": {
"github": "https://github.com/go-gitea/gitea",
"website": "https://gitea.io/",
"docs": "https://docs.gitea.com/"
},
"tags": [
"git",
"scm",
"postgres",
"developer-tools",
"self-hosted"
]
},
{
"id": "gitea-sqlite",
"name": "Gitea (SQLite)",
"version": "1.24.4",
"description": "Self-hosted Git service using SQLite for a simple one-container setup.",
"logo": "gitea.png",
"links": {
"github": "https://github.com/go-gitea/gitea",
"website": "https://gitea.io/",
"docs": "https://docs.gitea.com/"
},
"tags": [
"git",
"scm",
"developer-tools",
"self-hosted"
]
},
{
"id": "gitlab-ce",
"name": "GitLab CE",