fix(service): repair forgejo templates and enable forgejo with runner

- Database variants: use the same database name in Forgejo and the database
  container (`forgejo` by default); Postgres stayed unhealthy and MySQL/MariaDB
  installs failed with access denied.
- SSH: publish ${FORGEJO_SSH_PORT:-22222} and set SSH_PORT, DOMAIN and
  SSH_DOMAIN, so clone URLs are correct and several instances fit on a server.
- Runner variants: start Forgejo from /usr/bin/s6-svscan, lock the install
  with a generated admin, register runner 13.2.0 with a generated shared
  secret, and enable the templates.

Closes #11924
This commit is contained in:
Andras Bacsai committed 2026-10-18 12:45:49 +02:00
1 parent 34b3a18307
commit 6099c0b4a3
10 files changed
+364 -198

No files matched your search

+6 -3
View File
@@ -13,11 +13,14 @@ services:
- FORGEJO__server__ROOT_URL=${SERVICE_URL_FORGEJO}
- FORGEJO__migrations__ALLOWED_DOMAINS=${FORGEJO__migrations__ALLOWED_DOMAINS}
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS-false}
- FORGEJO__server__DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_PORT=${FORGEJO_SSH_PORT:-22222}
- USER_UID=1000
- USER_GID=1000
- FORGEJO__database__DB_TYPE=mysql
- FORGEJO__database__HOST=mariadb
- FORGEJO__database__NAME=${MYSQL_DATABASE-forgejo}
- FORGEJO__database__NAME=${MYSQL_DATABASE:-forgejo}
- FORGEJO__database__USER=$SERVICE_USER_MYSQL
- FORGEJO__database__PASSWD=$SERVICE_PASSWORD_MYSQL
volumes:
@@ -25,7 +28,7 @@ services:
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
ports:
- 22222:22
- ${FORGEJO_SSH_PORT:-22222}:22
depends_on:
mariadb:
condition: service_healthy
@@ -42,7 +45,7 @@ services:
environment:
- MYSQL_USER=${SERVICE_USER_MYSQL}
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_DATABASE=${MYSQL_DATABASE:-forgejo}
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
+6 -3
View File
@@ -13,11 +13,14 @@ services:
- FORGEJO__server__ROOT_URL=${SERVICE_URL_FORGEJO}
- FORGEJO__migrations__ALLOWED_DOMAINS=${FORGEJO__migrations__ALLOWED_DOMAINS}
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS-false}
- FORGEJO__server__DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_PORT=${FORGEJO_SSH_PORT:-22222}
- USER_UID=1000
- USER_GID=1000
- FORGEJO__database__DB_TYPE=mysql
- FORGEJO__database__HOST=mysql
- FORGEJO__database__NAME=${MYSQL_DATABASE-forgejo}
- FORGEJO__database__NAME=${MYSQL_DATABASE:-forgejo}
- FORGEJO__database__USER=$SERVICE_USER_MYSQL
- FORGEJO__database__PASSWD=$SERVICE_PASSWORD_MYSQL
volumes:
@@ -25,7 +28,7 @@ services:
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
ports:
- 22222:22
- ${FORGEJO_SSH_PORT:-22222}:22
depends_on:
mysql:
condition: service_healthy
@@ -42,7 +45,7 @@ services:
environment:
- MYSQL_USER=${SERVICE_USER_MYSQL}
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_DATABASE=${MYSQL_DATABASE:-forgejo}
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
@@ -13,11 +13,14 @@ services:
- FORGEJO__server__ROOT_URL=${SERVICE_URL_FORGEJO}
- FORGEJO__migrations__ALLOWED_DOMAINS=${FORGEJO__migrations__ALLOWED_DOMAINS}
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS-false}
- FORGEJO__server__DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_PORT=${FORGEJO_SSH_PORT:-22222}
- USER_UID=1000
- USER_GID=1000
- FORGEJO__database__DB_TYPE=postgres
- FORGEJO__database__HOST=postgresql
- FORGEJO__database__NAME=${POSTGRESQL_DATABASE-forgejo}
- FORGEJO__database__NAME=${POSTGRESQL_DATABASE:-forgejo}
- FORGEJO__database__USER=$SERVICE_USER_POSTGRESQL
- FORGEJO__database__PASSWD=$SERVICE_PASSWORD_POSTGRESQL
volumes:
@@ -25,7 +28,7 @@ services:
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
ports:
- 22222:22
- ${FORGEJO_SSH_PORT:-22222}:22
depends_on:
postgresql:
condition: service_healthy
@@ -42,7 +45,7 @@ services:
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
- POSTGRES_DB=${POSTGRESQL_DATABASE}
- POSTGRES_DB=${POSTGRESQL_DATABASE:-forgejo}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
@@ -1,4 +1,3 @@
# ignore: true
# documentation: https://forgejo.org/docs
# slogan: Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.
# category: git
@@ -13,15 +12,22 @@ services:
- SERVICE_URL_FORGEJO_3000
- FORGEJO__server__ROOT_URL=${SERVICE_URL_FORGEJO}
- FORGEJO__migrations__ALLOWED_DOMAINS=${FORGEJO__migrations__ALLOWED_DOMAINS}
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS-false}
- USER_UID=1000
- USER_GID=1000
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS:-false}
- FORGEJO__server__DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_PORT=${FORGEJO_SSH_PORT:-22222}
- FORGEJO__database__DB_TYPE=mysql
- FORGEJO__database__HOST=mariadb
- FORGEJO__database__NAME=${MYSQL_DATABASE-forgejo}
- FORGEJO__database__NAME=${MYSQL_DATABASE:-forgejo}
- FORGEJO__database__USER=$SERVICE_USER_MYSQL
- FORGEJO__database__PASSWD=$SERVICE_PASSWORD_MYSQL
- RUNNER_SHARED_SECRET=${RUNNER_SHARED_SECRET-0000000000000000000000000000000000000000}
- USER_UID=1000
- USER_GID=1000
- RUNNER_SHARED_SECRET=${SERVICE_HEX_64_RUNNER}
- FORGEJO__security__INSTALL_LOCK=true
- FORGEJO_ADMIN_USER=${SERVICE_USER_ADMIN}
- FORGEJO_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
- FORGEJO_ADMIN_EMAIL=${FORGEJO_ADMIN_EMAIL:-admin@example.com}
- FORGEJO__repository__ENABLE_PUSH_CREATE_USER=true
- FORGEJO__repository__DEFAULT_PUSH_CREATE_PRIVATE=false
- FORGEJO__repository__DEFAULT_REPO_UNITS=repo.code,repo.actions
@@ -30,21 +36,23 @@ services:
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
ports:
- 22222:22
- ${FORGEJO_SSH_PORT:-22222}:22
depends_on:
mariadb:
condition: service_healthy
# Healthy only after the runner is registered, so the runner starts after it.
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000"]
interval: 2s
test: ["CMD-SHELL", "curl -fs http://127.0.0.1:3000 > /dev/null && test -f /tmp/runner-registered"]
interval: 5s
timeout: 10s
retries: 15
retries: 30
command: >-
bash -c '
/bin/s6-svscan /etc/s6 &
sleep 10 ;
su -c "forgejo forgejo-cli actions register --secret ${RUNNER_SHARED_SECRET}" git ;
sleep infinity
/usr/bin/s6-svscan /etc/s6 &
until su -c "forgejo forgejo-cli actions register --keep-labels --secret $${RUNNER_SHARED_SECRET:0:40}" git ; do sleep 5 ; done ;
su -c "forgejo admin user create --admin --username \"$$FORGEJO_ADMIN_USER\" --password \"$$FORGEJO_ADMIN_PASSWORD\" --email \"$$FORGEJO_ADMIN_EMAIL\" --must-change-password=false" git || true ;
touch /tmp/runner-registered ;
wait
'
mariadb:
@@ -54,7 +62,7 @@ services:
environment:
- MYSQL_USER=${SERVICE_USER_MYSQL}
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_DATABASE=${MYSQL_DATABASE:-forgejo}
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
@@ -67,56 +75,48 @@ services:
hostname: docker
privileged: true
healthcheck:
test: ["CMD", "pgrep", "dockerd"]
test: ["CMD", "docker", "-H", "unix:///var/run/docker.sock", "info"]
interval: 10s
timeout: 30s
retries: 10
environment:
DOCKER_TLS_CERTDIR: /certs
DOCKER_HOST: docker-in-docker
- DOCKER_TLS_CERTDIR=/certs
- DOCKER_HOST=docker-in-docker
volumes:
- forgejo-did-certs:/certs
runner-register:
image: code.forgejo.org/forgejo/runner:3.5.0
image: data.forgejo.org/forgejo/runner:13.2.0
restart: 'no'
links:
- docker-in-docker
- forgejo
exclude_from_hc: true
environment:
- DOCKER_HOST=tcp://docker-in-docker:2376
- RUNNER_SHARED_SECRET=${RUNNER_SHARED_SECRET}
- RUNNER_SHARED_SECRET=${SERVICE_HEX_64_RUNNER}
volumes:
- forgejo-runner-data:/data
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
healthcheck:
disable: true
user: 0:0
command: >-
bash -ec '
while : ; do
forgejo-runner create-runner-file --connect --instance http://forgejo:3000 --name runner --secret ${RUNNER_SHARED_SECRET} && break ;
sleep 1 ;
done ;
sed -i -e "s|\"labels\": null|\"labels\": [\"docker:docker://node:20-bookworm\", \"ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04\"]|" .runner ;
secret=$${RUNNER_SHARED_SECRET:0:40} ;
uuid=$$(printf %s "$${secret:0:16}" | od -An -tx1 | tr -d " \n" | sed -E "s/(.{8})(.{4})(.{4})(.{4})(.{12})/\1-\2-\3-\4-\5/") ;
forgejo-runner generate-config > config.yml ;
sed -i -e "s| labels: \[\]| labels: [\"docker:docker://node:22-bookworm\", \"ubuntu-latest:docker://catthehacker/ubuntu:act-22.04\", \"ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04\"]|" config.yml ;
sed -i -e "s|network: .*|network: host|" config.yml ;
sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://docker:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ;
sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ;
sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ;
chown -R 1000:1000 /data ;
exit 0
sed -i -e "s| connections:| connections:\n default:\n url: http://forgejo:3000\n uuid: $$uuid\n token: $$secret|" config.yml ;
chown -R 1000:1000 /data
'
runner:
image: code.forgejo.org/forgejo/runner:3.5.0
links:
- docker-in-docker
- forgejo
image: data.forgejo.org/forgejo/runner:13.2.0
depends_on:
forgejo:
condition: service_healthy
docker-in-docker:
condition: service_started
condition: service_healthy
runner-register:
condition: service_completed_successfully
environment:
- DOCKER_HOST=tcp://docker:2376
- DOCKER_CERT_PATH=/certs/client
@@ -125,14 +125,9 @@ services:
volumes:
- forgejo-runner-data:/data
- forgejo-did-certs:/certs
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
healthcheck:
test: ["CMD", "pgrep", "forgejo-runner"]
interval: 10s
timeout: 30s
retries: 10
command: >-
bash -c '
while : ; do test -w .runner && forgejo-runner --config config.yml daemon ; sleep 1 ; done
'
command: forgejo-runner --config config.yml daemon
@@ -1,4 +1,3 @@
# ignore: true
# documentation: https://forgejo.org/docs
# slogan: Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.
# category: git
@@ -13,15 +12,22 @@ services:
- SERVICE_URL_FORGEJO_3000
- FORGEJO__server__ROOT_URL=${SERVICE_URL_FORGEJO}
- FORGEJO__migrations__ALLOWED_DOMAINS=${FORGEJO__migrations__ALLOWED_DOMAINS}
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS-false}
- USER_UID=1000
- USER_GID=1000
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS:-false}
- FORGEJO__server__DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_PORT=${FORGEJO_SSH_PORT:-22222}
- FORGEJO__database__DB_TYPE=mysql
- FORGEJO__database__HOST=mysql
- FORGEJO__database__NAME=${MYSQL_DATABASE-forgejo}
- FORGEJO__database__NAME=${MYSQL_DATABASE:-forgejo}
- FORGEJO__database__USER=$SERVICE_USER_MYSQL
- FORGEJO__database__PASSWD=$SERVICE_PASSWORD_MYSQL
- RUNNER_SHARED_SECRET=${RUNNER_SHARED_SECRET-0000000000000000000000000000000000000000}
- USER_UID=1000
- USER_GID=1000
- RUNNER_SHARED_SECRET=${SERVICE_HEX_64_RUNNER}
- FORGEJO__security__INSTALL_LOCK=true
- FORGEJO_ADMIN_USER=${SERVICE_USER_ADMIN}
- FORGEJO_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
- FORGEJO_ADMIN_EMAIL=${FORGEJO_ADMIN_EMAIL:-admin@example.com}
- FORGEJO__repository__ENABLE_PUSH_CREATE_USER=true
- FORGEJO__repository__DEFAULT_PUSH_CREATE_PRIVATE=false
- FORGEJO__repository__DEFAULT_REPO_UNITS=repo.code,repo.actions
@@ -30,21 +36,23 @@ services:
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
ports:
- 22222:22
- ${FORGEJO_SSH_PORT:-22222}:22
depends_on:
mysql:
condition: service_healthy
# Healthy only after the runner is registered, so the runner starts after it.
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000"]
interval: 2s
test: ["CMD-SHELL", "curl -fs http://127.0.0.1:3000 > /dev/null && test -f /tmp/runner-registered"]
interval: 5s
timeout: 10s
retries: 15
retries: 30
command: >-
bash -c '
/bin/s6-svscan /etc/s6 &
sleep 10 ;
su -c "forgejo forgejo-cli actions register --secret ${RUNNER_SHARED_SECRET}" git ;
sleep infinity
/usr/bin/s6-svscan /etc/s6 &
until su -c "forgejo forgejo-cli actions register --keep-labels --secret $${RUNNER_SHARED_SECRET:0:40}" git ; do sleep 5 ; done ;
su -c "forgejo admin user create --admin --username \"$$FORGEJO_ADMIN_USER\" --password \"$$FORGEJO_ADMIN_PASSWORD\" --email \"$$FORGEJO_ADMIN_EMAIL\" --must-change-password=false" git || true ;
touch /tmp/runner-registered ;
wait
'
mysql:
@@ -54,7 +62,7 @@ services:
environment:
- MYSQL_USER=${SERVICE_USER_MYSQL}
- MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_DATABASE=${MYSQL_DATABASE:-forgejo}
- MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
@@ -67,56 +75,48 @@ services:
hostname: docker
privileged: true
healthcheck:
test: ["CMD", "pgrep", "dockerd"]
test: ["CMD", "docker", "-H", "unix:///var/run/docker.sock", "info"]
interval: 10s
timeout: 30s
retries: 10
environment:
DOCKER_TLS_CERTDIR: /certs
DOCKER_HOST: docker-in-docker
- DOCKER_TLS_CERTDIR=/certs
- DOCKER_HOST=docker-in-docker
volumes:
- forgejo-did-certs:/certs
runner-register:
image: code.forgejo.org/forgejo/runner:3.5.0
image: data.forgejo.org/forgejo/runner:13.2.0
restart: 'no'
links:
- docker-in-docker
- forgejo
exclude_from_hc: true
environment:
- DOCKER_HOST=tcp://docker-in-docker:2376
- RUNNER_SHARED_SECRET=${RUNNER_SHARED_SECRET}
- RUNNER_SHARED_SECRET=${SERVICE_HEX_64_RUNNER}
volumes:
- forgejo-runner-data:/data
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
healthcheck:
disable: true
user: 0:0
command: >-
bash -ec '
while : ; do
forgejo-runner create-runner-file --connect --instance http://forgejo:3000 --name runner --secret ${RUNNER_SHARED_SECRET} && break ;
sleep 1 ;
done ;
sed -i -e "s|\"labels\": null|\"labels\": [\"docker:docker://node:20-bookworm\", \"ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04\"]|" .runner ;
secret=$${RUNNER_SHARED_SECRET:0:40} ;
uuid=$$(printf %s "$${secret:0:16}" | od -An -tx1 | tr -d " \n" | sed -E "s/(.{8})(.{4})(.{4})(.{4})(.{12})/\1-\2-\3-\4-\5/") ;
forgejo-runner generate-config > config.yml ;
sed -i -e "s| labels: \[\]| labels: [\"docker:docker://node:22-bookworm\", \"ubuntu-latest:docker://catthehacker/ubuntu:act-22.04\", \"ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04\"]|" config.yml ;
sed -i -e "s|network: .*|network: host|" config.yml ;
sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://docker:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ;
sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ;
sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ;
chown -R 1000:1000 /data ;
exit 0
sed -i -e "s| connections:| connections:\n default:\n url: http://forgejo:3000\n uuid: $$uuid\n token: $$secret|" config.yml ;
chown -R 1000:1000 /data
'
runner:
image: code.forgejo.org/forgejo/runner:3.5.0
links:
- docker-in-docker
- forgejo
image: data.forgejo.org/forgejo/runner:13.2.0
depends_on:
forgejo:
condition: service_healthy
docker-in-docker:
condition: service_started
condition: service_healthy
runner-register:
condition: service_completed_successfully
environment:
- DOCKER_HOST=tcp://docker:2376
- DOCKER_CERT_PATH=/certs/client
@@ -125,14 +125,9 @@ services:
volumes:
- forgejo-runner-data:/data
- forgejo-did-certs:/certs
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
healthcheck:
test: ["CMD", "pgrep", "forgejo-runner"]
interval: 10s
timeout: 30s
retries: 10
command: >-
bash -c '
while : ; do test -w .runner && forgejo-runner --config config.yml daemon ; sleep 1 ; done
'
command: forgejo-runner --config config.yml daemon
@@ -1,8 +1,7 @@
# ignore: true
# documentation: https://forgejo.org/docs
# slogan: Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.
# category: git
# tags: version control, collaboration, code, hosting, lightweight, runner, postresql, actions, cicd, ci
# tags: version control, collaboration, code, hosting, lightweight, runner, postgresql, actions, cicd, ci
# logo: svgs/forgejo.svg
# port: 3000
@@ -13,15 +12,22 @@ services:
- SERVICE_URL_FORGEJO_3000
- FORGEJO__server__ROOT_URL=${SERVICE_URL_FORGEJO}
- FORGEJO__migrations__ALLOWED_DOMAINS=${FORGEJO__migrations__ALLOWED_DOMAINS}
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS-false}
- USER_UID=1000
- USER_GID=1000
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS:-false}
- FORGEJO__server__DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_PORT=${FORGEJO_SSH_PORT:-22222}
- FORGEJO__database__DB_TYPE=postgres
- FORGEJO__database__HOST=postgresql
- FORGEJO__database__NAME=${POSTGRESQL_DATABASE-forgejo}
- FORGEJO__database__NAME=${POSTGRESQL_DATABASE:-forgejo}
- FORGEJO__database__USER=$SERVICE_USER_POSTGRESQL
- FORGEJO__database__PASSWD=$SERVICE_PASSWORD_POSTGRESQL
- RUNNER_SHARED_SECRET=${RUNNER_SHARED_SECRET-0000000000000000000000000000000000000000}
- USER_UID=1000
- USER_GID=1000
- RUNNER_SHARED_SECRET=${SERVICE_HEX_64_RUNNER}
- FORGEJO__security__INSTALL_LOCK=true
- FORGEJO_ADMIN_USER=${SERVICE_USER_ADMIN}
- FORGEJO_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
- FORGEJO_ADMIN_EMAIL=${FORGEJO_ADMIN_EMAIL:-admin@example.com}
- FORGEJO__repository__ENABLE_PUSH_CREATE_USER=true
- FORGEJO__repository__DEFAULT_PUSH_CREATE_PRIVATE=false
- FORGEJO__repository__DEFAULT_REPO_UNITS=repo.code,repo.actions
@@ -30,21 +36,23 @@ services:
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
ports:
- 22222:22
- ${FORGEJO_SSH_PORT:-22222}:22
depends_on:
postgresql:
condition: service_healthy
# Healthy only after the runner is registered, so the runner starts after it.
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000"]
interval: 2s
test: ["CMD-SHELL", "curl -fs http://127.0.0.1:3000 > /dev/null && test -f /tmp/runner-registered"]
interval: 5s
timeout: 10s
retries: 15
retries: 30
command: >-
bash -c '
/bin/s6-svscan /etc/s6 &
sleep 10 ;
su -c "forgejo forgejo-cli actions register --secret ${RUNNER_SHARED_SECRET}" git ;
sleep infinity
/usr/bin/s6-svscan /etc/s6 &
until su -c "forgejo forgejo-cli actions register --keep-labels --secret $${RUNNER_SHARED_SECRET:0:40}" git ; do sleep 5 ; done ;
su -c "forgejo admin user create --admin --username \"$$FORGEJO_ADMIN_USER\" --password \"$$FORGEJO_ADMIN_PASSWORD\" --email \"$$FORGEJO_ADMIN_EMAIL\" --must-change-password=false" git || true ;
touch /tmp/runner-registered ;
wait
'
postgresql:
@@ -54,7 +62,7 @@ services:
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRESQL}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}
- POSTGRES_DB=${POSTGRESQL_DATABASE}
- POSTGRES_DB=${POSTGRESQL_DATABASE:-forgejo}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
@@ -66,56 +74,48 @@ services:
hostname: docker
privileged: true
healthcheck:
test: ["CMD", "pgrep", "dockerd"]
test: ["CMD", "docker", "-H", "unix:///var/run/docker.sock", "info"]
interval: 10s
timeout: 30s
retries: 10
environment:
DOCKER_TLS_CERTDIR: /certs
DOCKER_HOST: docker-in-docker
- DOCKER_TLS_CERTDIR=/certs
- DOCKER_HOST=docker-in-docker
volumes:
- forgejo-did-certs:/certs
runner-register:
image: code.forgejo.org/forgejo/runner:3.5.0
image: data.forgejo.org/forgejo/runner:13.2.0
restart: 'no'
links:
- docker-in-docker
- forgejo
exclude_from_hc: true
environment:
- DOCKER_HOST=tcp://docker-in-docker:2376
- RUNNER_SHARED_SECRET=${RUNNER_SHARED_SECRET}
- RUNNER_SHARED_SECRET=${SERVICE_HEX_64_RUNNER}
volumes:
- forgejo-runner-data:/data
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
healthcheck:
disable: true
user: 0:0
command: >-
bash -ec '
while : ; do
forgejo-runner create-runner-file --connect --instance http://forgejo:3000 --name runner --secret ${RUNNER_SHARED_SECRET} && break ;
sleep 1 ;
done ;
sed -i -e "s|\"labels\": null|\"labels\": [\"docker:docker://node:20-bookworm\", \"ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04\"]|" .runner ;
secret=$${RUNNER_SHARED_SECRET:0:40} ;
uuid=$$(printf %s "$${secret:0:16}" | od -An -tx1 | tr -d " \n" | sed -E "s/(.{8})(.{4})(.{4})(.{4})(.{12})/\1-\2-\3-\4-\5/") ;
forgejo-runner generate-config > config.yml ;
sed -i -e "s| labels: \[\]| labels: [\"docker:docker://node:22-bookworm\", \"ubuntu-latest:docker://catthehacker/ubuntu:act-22.04\", \"ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04\"]|" config.yml ;
sed -i -e "s|network: .*|network: host|" config.yml ;
sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://docker:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ;
sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ;
sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ;
chown -R 1000:1000 /data ;
exit 0
sed -i -e "s| connections:| connections:\n default:\n url: http://forgejo:3000\n uuid: $$uuid\n token: $$secret|" config.yml ;
chown -R 1000:1000 /data
'
runner:
image: code.forgejo.org/forgejo/runner:3.5.0
links:
- docker-in-docker
- forgejo
image: data.forgejo.org/forgejo/runner:13.2.0
depends_on:
forgejo:
condition: service_healthy
docker-in-docker:
condition: service_started
condition: service_healthy
runner-register:
condition: service_completed_successfully
environment:
- DOCKER_HOST=tcp://docker:2376
- DOCKER_CERT_PATH=/certs/client
@@ -124,14 +124,9 @@ services:
volumes:
- forgejo-runner-data:/data
- forgejo-did-certs:/certs
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
healthcheck:
test: ["CMD", "pgrep", "forgejo-runner"]
interval: 10s
timeout: 30s
retries: 10
command: >-
bash -c '
while : ; do test -w .runner && forgejo-runner --config config.yml daemon ; sleep 1 ; done
'
command: forgejo-runner --config config.yml daemon
+36 -41
View File
@@ -1,4 +1,3 @@
# ignore: true
# documentation: https://forgejo.org/docs
# slogan: Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.
# category: git
@@ -14,9 +13,16 @@ services:
- FORGEJO__server__ROOT_URL=${SERVICE_URL_FORGEJO}
- FORGEJO__migrations__ALLOWED_DOMAINS=${FORGEJO__migrations__ALLOWED_DOMAINS}
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS:-false}
- FORGEJO__server__DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_PORT=${FORGEJO_SSH_PORT:-22222}
- USER_UID=1000
- USER_GID=1000
- RUNNER_SHARED_SECRET=${RUNNER_SHARED_SECRET-0000000000000000000000000000000000000000}
- RUNNER_SHARED_SECRET=${SERVICE_HEX_64_RUNNER}
- FORGEJO__security__INSTALL_LOCK=true
- FORGEJO_ADMIN_USER=${SERVICE_USER_ADMIN}
- FORGEJO_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
- FORGEJO_ADMIN_EMAIL=${FORGEJO_ADMIN_EMAIL:-admin@example.com}
- FORGEJO__repository__ENABLE_PUSH_CREATE_USER=true
- FORGEJO__repository__DEFAULT_PUSH_CREATE_PRIVATE=false
- FORGEJO__repository__DEFAULT_REPO_UNITS=repo.code,repo.actions
@@ -25,18 +31,20 @@ services:
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
ports:
- 22222:22
- ${FORGEJO_SSH_PORT:-22222}:22
# Healthy only after the runner is registered, so the runner starts after it.
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000"]
interval: 2s
test: ["CMD-SHELL", "curl -fs http://127.0.0.1:3000 > /dev/null && test -f /tmp/runner-registered"]
interval: 5s
timeout: 10s
retries: 15
retries: 30
command: >-
bash -c '
/bin/s6-svscan /etc/s6 &
sleep 10 ;
su -c "forgejo forgejo-cli actions register --secret ${RUNNER_SHARED_SECRET}" git ;
sleep infinity
/usr/bin/s6-svscan /etc/s6 &
until su -c "forgejo forgejo-cli actions register --keep-labels --secret $${RUNNER_SHARED_SECRET:0:40}" git ; do sleep 5 ; done ;
su -c "forgejo admin user create --admin --username \"$$FORGEJO_ADMIN_USER\" --password \"$$FORGEJO_ADMIN_PASSWORD\" --email \"$$FORGEJO_ADMIN_EMAIL\" --must-change-password=false" git || true ;
touch /tmp/runner-registered ;
wait
'
docker-in-docker:
@@ -44,56 +52,48 @@ services:
hostname: docker
privileged: true
healthcheck:
test: ["CMD", "pgrep", "dockerd"]
test: ["CMD", "docker", "-H", "unix:///var/run/docker.sock", "info"]
interval: 10s
timeout: 30s
retries: 10
environment:
DOCKER_TLS_CERTDIR=/certs
DOCKER_HOST=docker-in-docker
- DOCKER_TLS_CERTDIR=/certs
- DOCKER_HOST=docker-in-docker
volumes:
- forgejo-did-certs:/certs
runner-register:
image: code.forgejo.org/forgejo/runner:3.5.0
image: data.forgejo.org/forgejo/runner:13.2.0
restart: 'no'
links:
- docker-in-docker
- forgejo
exclude_from_hc: true
environment:
- DOCKER_HOST=tcp://docker-in-docker:2376
- RUNNER_SHARED_SECRET=${RUNNER_SHARED_SECRET}
- RUNNER_SHARED_SECRET=${SERVICE_HEX_64_RUNNER}
volumes:
- forgejo-runner-data:/data
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
healthcheck:
disable: true
user: 0:0
command: >-
bash -ec '
while : ; do
forgejo-runner create-runner-file --connect --instance ${SERVICE_URL_FORGEJO}:3000 --name runner --secret ${RUNNER_SHARED_SECRET} && break ;
sleep 1 ;
done ;
sed -i -e "s|\"labels\": null|\"labels\": [\"docker:docker://node:20-bookworm\", \"ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04\"]|" .runner ;
secret=$${RUNNER_SHARED_SECRET:0:40} ;
uuid=$$(printf %s "$${secret:0:16}" | od -An -tx1 | tr -d " \n" | sed -E "s/(.{8})(.{4})(.{4})(.{4})(.{12})/\1-\2-\3-\4-\5/") ;
forgejo-runner generate-config > config.yml ;
sed -i -e "s| labels: \[\]| labels: [\"docker:docker://node:22-bookworm\", \"ubuntu-latest:docker://catthehacker/ubuntu:act-22.04\", \"ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04\"]|" config.yml ;
sed -i -e "s|network: .*|network: host|" config.yml ;
sed -i -e "s|^ envs:$$| envs:\n DOCKER_HOST: tcp://docker:2376\n DOCKER_TLS_VERIFY: 1\n DOCKER_CERT_PATH: /certs/client|" config.yml ;
sed -i -e "s|^ options:| options: -v /certs/client:/certs/client|" config.yml ;
sed -i -e "s| valid_volumes: \[\]$$| valid_volumes:\n - /certs/client|" config.yml ;
chown -R 1000:1000 /data ;
exit 0
sed -i -e "s| connections:| connections:\n default:\n url: http://forgejo:3000\n uuid: $$uuid\n token: $$secret|" config.yml ;
chown -R 1000:1000 /data
'
runner:
image: code.forgejo.org/forgejo/runner:3.5.0
links:
- docker-in-docker
- forgejo
image: data.forgejo.org/forgejo/runner:13.2.0
depends_on:
forgejo:
condition: service_healthy
docker-in-docker:
condition: service_started
condition: service_healthy
runner-register:
condition: service_completed_successfully
environment:
- DOCKER_HOST=tcp://docker:2376
- DOCKER_CERT_PATH=/certs/client
@@ -102,14 +102,9 @@ services:
volumes:
- forgejo-runner-data:/data
- forgejo-did-certs:/certs
- forgejo-timezone:/etc/timezone:ro
- forgejo-localtime:/etc/localtime:ro
healthcheck:
test: ["CMD", "pgrep", "forgejo-runner"]
interval: 10s
timeout: 30s
retries: 10
command: >-
bash -c '
while : ; do test -w .runner && forgejo-runner --config config.yml daemon ; sleep 1 ; done
'
command: forgejo-runner --config config.yml daemon
+4 -1
View File
@@ -13,10 +13,13 @@ services:
- FORGEJO__server__ROOT_URL=${SERVICE_URL_FORGEJO}
- FORGEJO__migrations__ALLOWED_DOMAINS=${FORGEJO__migrations__ALLOWED_DOMAINS}
- FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS-false}
- FORGEJO__server__DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_DOMAIN=${SERVICE_FQDN_FORGEJO}
- FORGEJO__server__SSH_PORT=${FORGEJO_SSH_PORT:-22222}
- USER_UID=1000
- USER_GID=1000
ports:
- 22222:22
- ${FORGEJO_SSH_PORT:-22222}:22
volumes:
- forgejo-data:/data
- forgejo-timezone:/etc/timezone:ro
+91 -4
View File
@@ -1684,7 +1684,7 @@
"forgejo-with-mariadb": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTLWZhbHNlfScKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19EQl9UWVBFPW15c3FsCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0hPU1Q9bWFyaWFkYgogICAgICAtICdGT1JHRUpPX19kYXRhYmFzZV9fTkFNRT0ke01ZU1FMX0RBVEFCQVNFLWZvcmdlam99JwogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19VU0VSPSRTRVJWSUNFX1VTRVJfTVlTUUwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fUEFTU1dEPSRTRVJWSUNFX1BBU1NXT1JEX01ZU1FMCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRhdGE6L2RhdGEnCiAgICAgIC0gJ2Zvcmdlam8tdGltZXpvbmU6L2V0Yy90aW1lem9uZTpybycKICAgICAgLSAnZm9yZ2Vqby1sb2NhbHRpbWU6L2V0Yy9sb2NhbHRpbWU6cm8nCiAgICBwb3J0czoKICAgICAgLSAnMjIyMjI6MjInCiAgICBkZXBlbmRzX29uOgogICAgICBtYXJpYWRiOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6MzAwMCcKICAgICAgaW50ZXJ2YWw6IDJzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAxNQogIG1hcmlhZGI6CiAgICBpbWFnZTogJ21hcmlhZGI6MTEnCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLW1hcmlhZGItZGF0YTovdmFyL2xpYi9teXNxbCcKICAgIGVudmlyb25tZW50OgogICAgICAtICdNWVNRTF9VU0VSPSR7U0VSVklDRV9VU0VSX01ZU1FMfScKICAgICAgLSAnTVlTUUxfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMfScKICAgICAgLSAnTVlTUUxfREFUQUJBU0U9JHtNWVNRTF9EQVRBQkFTRX0nCiAgICAgIC0gJ01ZU1FMX1JPT1RfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMUk9PVH0nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gaGVhbHRoY2hlY2suc2gKICAgICAgICAtICctLWNvbm5lY3QnCiAgICAgICAgLSAnLS1pbm5vZGJfaW5pdGlhbGl6ZWQnCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAK",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTLWZhbHNlfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfUE9SVD0ke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfScKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19EQl9UWVBFPW15c3FsCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0hPU1Q9bWFyaWFkYgogICAgICAtICdGT1JHRUpPX19kYXRhYmFzZV9fTkFNRT0ke01ZU1FMX0RBVEFCQVNFOi1mb3JnZWpvfScKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fVVNFUj0kU0VSVklDRV9VU0VSX01ZU1FMCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1BBU1NXRD0kU0VSVklDRV9QQVNTV09SRF9NWVNRTAogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kYXRhOi9kYXRhJwogICAgICAtICdmb3JnZWpvLXRpbWV6b25lOi9ldGMvdGltZXpvbmU6cm8nCiAgICAgIC0gJ2Zvcmdlam8tbG9jYWx0aW1lOi9ldGMvbG9jYWx0aW1lOnJvJwogICAgcG9ydHM6CiAgICAgIC0gJyR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9OjIyJwogICAgZGVwZW5kc19vbjoKICAgICAgbWFyaWFkYjoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjMwMDAnCiAgICAgIGludGVydmFsOiAycwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTUKICBtYXJpYWRiOgogICAgaW1hZ2U6ICdtYXJpYWRiOjExJwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1tYXJpYWRiLWRhdGE6L3Zhci9saWIvbXlzcWwnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnTVlTUUxfVVNFUj0ke1NFUlZJQ0VfVVNFUl9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX0RBVEFCQVNFPSR7TVlTUUxfREFUQUJBU0U6LWZvcmdlam99JwogICAgICAtICdNWVNRTF9ST09UX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTFJPT1R9JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGhlYWx0aGNoZWNrLnNoCiAgICAgICAgLSAnLS1jb25uZWN0JwogICAgICAgIC0gJy0taW5ub2RiX2luaXRpYWxpemVkJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==",
"tags": [
"version control",
"collaboration",
@@ -1702,7 +1702,7 @@
"forgejo-with-mysql": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTLWZhbHNlfScKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19EQl9UWVBFPW15c3FsCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0hPU1Q9bXlzcWwKICAgICAgLSAnRk9SR0VKT19fZGF0YWJhc2VfX05BTUU9JHtNWVNRTF9EQVRBQkFTRS1mb3JnZWpvfScKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fVVNFUj0kU0VSVklDRV9VU0VSX01ZU1FMCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1BBU1NXRD0kU0VSVklDRV9QQVNTV09SRF9NWVNRTAogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kYXRhOi9kYXRhJwogICAgICAtICdmb3JnZWpvLXRpbWV6b25lOi9ldGMvdGltZXpvbmU6cm8nCiAgICAgIC0gJ2Zvcmdlam8tbG9jYWx0aW1lOi9ldGMvbG9jYWx0aW1lOnJvJwogICAgcG9ydHM6CiAgICAgIC0gJzIyMjIyOjIyJwogICAgZGVwZW5kc19vbjoKICAgICAgbXlzcWw6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTozMDAwJwogICAgICBpbnRlcnZhbDogMnMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDE1CiAgbXlzcWw6CiAgICBpbWFnZTogJ215c3FsOjgnCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLW15c3FsLWRhdGE6L3Zhci9saWIvbXlzcWwnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnTVlTUUxfVVNFUj0ke1NFUlZJQ0VfVVNFUl9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX0RBVEFCQVNFPSR7TVlTUUxfREFUQUJBU0V9JwogICAgICAtICdNWVNRTF9ST09UX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTFJPT1R9JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIG15c3FsYWRtaW4KICAgICAgICAtIHBpbmcKICAgICAgICAtICctaCcKICAgICAgICAtIDEyNy4wLjAuMQogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTLWZhbHNlfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfUE9SVD0ke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfScKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19EQl9UWVBFPW15c3FsCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0hPU1Q9bXlzcWwKICAgICAgLSAnRk9SR0VKT19fZGF0YWJhc2VfX05BTUU9JHtNWVNRTF9EQVRBQkFTRTotZm9yZ2Vqb30nCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1VTRVI9JFNFUlZJQ0VfVVNFUl9NWVNRTAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19QQVNTV0Q9JFNFUlZJQ0VfUEFTU1dPUkRfTVlTUUwKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tZGF0YTovZGF0YScKICAgICAgLSAnZm9yZ2Vqby10aW1lem9uZTovZXRjL3RpbWV6b25lOnJvJwogICAgICAtICdmb3JnZWpvLWxvY2FsdGltZTovZXRjL2xvY2FsdGltZTpybycKICAgIHBvcnRzOgogICAgICAtICcke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfToyMicKICAgIGRlcGVuZHNfb246CiAgICAgIG15c3FsOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6MzAwMCcKICAgICAgaW50ZXJ2YWw6IDJzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAxNQogIG15c3FsOgogICAgaW1hZ2U6ICdteXNxbDo4JwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1teXNxbC1kYXRhOi92YXIvbGliL215c3FsJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ01ZU1FMX1VTRVI9JHtTRVJWSUNFX1VTRVJfTVlTUUx9JwogICAgICAtICdNWVNRTF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUx9JwogICAgICAtICdNWVNRTF9EQVRBQkFTRT0ke01ZU1FMX0RBVEFCQVNFOi1mb3JnZWpvfScKICAgICAgLSAnTVlTUUxfUk9PVF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUxST09UfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBteXNxbGFkbWluCiAgICAgICAgLSBwaW5nCiAgICAgICAgLSAnLWgnCiAgICAgICAgLSAxMjcuMC4wLjEKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAo=",
"tags": [
"version control",
"collaboration",
@@ -1720,7 +1720,7 @@
"forgejo-with-postgresql": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTLWZhbHNlfScKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19EQl9UWVBFPXBvc3RncmVzCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0hPU1Q9cG9zdGdyZXNxbAogICAgICAtICdGT1JHRUpPX19kYXRhYmFzZV9fTkFNRT0ke1BPU1RHUkVTUUxfREFUQUJBU0UtZm9yZ2Vqb30nCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1VTRVI9JFNFUlZJQ0VfVVNFUl9QT1NUR1JFU1FMCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1BBU1NXRD0kU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU1FMCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRhdGE6L2RhdGEnCiAgICAgIC0gJ2Zvcmdlam8tdGltZXpvbmU6L2V0Yy90aW1lem9uZTpybycKICAgICAgLSAnZm9yZ2Vqby1sb2NhbHRpbWU6L2V0Yy9sb2NhbHRpbWU6cm8nCiAgICBwb3J0czoKICAgICAgLSAnMjIyMjI6MjInCiAgICBkZXBlbmRzX29uOgogICAgICBwb3N0Z3Jlc3FsOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6MzAwMCcKICAgICAgaW50ZXJ2YWw6IDJzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAxNQogIHBvc3RncmVzcWw6CiAgICBpbWFnZTogJ3Bvc3RncmVzOjE2LWFscGluZScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tcG9zdGdyZXNxbC1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YScKICAgIGVudmlyb25tZW50OgogICAgICAtICdQT1NUR1JFU19VU0VSPSR7U0VSVklDRV9VU0VSX1BPU1RHUkVTUUx9JwogICAgICAtICdQT1NUR1JFU19QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVNRTH0nCiAgICAgIC0gJ1BPU1RHUkVTX0RCPSR7UE9TVEdSRVNRTF9EQVRBQkFTRX0nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ3BnX2lzcmVhZHkgLVUgJCR7UE9TVEdSRVNfVVNFUn0gLWQgJCR7UE9TVEdSRVNfREJ9JwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTLWZhbHNlfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfUE9SVD0ke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfScKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19EQl9UWVBFPXBvc3RncmVzCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0hPU1Q9cG9zdGdyZXNxbAogICAgICAtICdGT1JHRUpPX19kYXRhYmFzZV9fTkFNRT0ke1BPU1RHUkVTUUxfREFUQUJBU0U6LWZvcmdlam99JwogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19VU0VSPSRTRVJWSUNFX1VTRVJfUE9TVEdSRVNRTAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19QQVNTV0Q9JFNFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVNRTAogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kYXRhOi9kYXRhJwogICAgICAtICdmb3JnZWpvLXRpbWV6b25lOi9ldGMvdGltZXpvbmU6cm8nCiAgICAgIC0gJ2Zvcmdlam8tbG9jYWx0aW1lOi9ldGMvbG9jYWx0aW1lOnJvJwogICAgcG9ydHM6CiAgICAgIC0gJyR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9OjIyJwogICAgZGVwZW5kc19vbjoKICAgICAgcG9zdGdyZXNxbDoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjMwMDAnCiAgICAgIGludGVydmFsOiAycwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTUKICBwb3N0Z3Jlc3FsOgogICAgaW1hZ2U6ICdwb3N0Z3JlczoxNi1hbHBpbmUnCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLXBvc3RncmVzcWwtZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnUE9TVEdSRVNfVVNFUj0ke1NFUlZJQ0VfVVNFUl9QT1NUR1JFU1FMfScKICAgICAgLSAnUE9TVEdSRVNfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTUUx9JwogICAgICAtICdQT1NUR1JFU19EQj0ke1BPU1RHUkVTUUxfREFUQUJBU0U6LWZvcmdlam99JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAo=",
"tags": [
"version control",
"collaboration",
@@ -1735,10 +1735,97 @@
"template_last_updated_at": "2026-08-10T11:35:20+02:00",
"port": "3000"
},
"forgejo-with-runner-with-mariadb": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTOi1mYWxzZX0nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fRE9NQUlOPSR7U0VSVklDRV9GUUROX0ZPUkdFSk99JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1NTSF9ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX1BPUlQ9JHtGT1JHRUpPX1NTSF9QT1JUOi0yMjIyMn0nCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0RCX1RZUEU9bXlzcWwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fSE9TVD1tYXJpYWRiCiAgICAgIC0gJ0ZPUkdFSk9fX2RhdGFiYXNlX19OQU1FPSR7TVlTUUxfREFUQUJBU0U6LWZvcmdlam99JwogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19VU0VSPSRTRVJWSUNFX1VTRVJfTVlTUUwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fUEFTU1dEPSRTRVJWSUNFX1BBU1NXT1JEX01ZU1FMCiAgICAgIC0gVVNFUl9VSUQ9MTAwMAogICAgICAtIFVTRVJfR0lEPTEwMDAKICAgICAgLSAnUlVOTkVSX1NIQVJFRF9TRUNSRVQ9JHtTRVJWSUNFX0hFWF82NF9SVU5ORVJ9JwogICAgICAtIEZPUkdFSk9fX3NlY3VyaXR5X19JTlNUQUxMX0xPQ0s9dHJ1ZQogICAgICAtICdGT1JHRUpPX0FETUlOX1VTRVI9JHtTRVJWSUNFX1VTRVJfQURNSU59JwogICAgICAtICdGT1JHRUpPX0FETUlOX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9BRE1JTn0nCiAgICAgIC0gJ0ZPUkdFSk9fQURNSU5fRU1BSUw9JHtGT1JHRUpPX0FETUlOX0VNQUlMOi1hZG1pbkBleGFtcGxlLmNvbX0nCiAgICAgIC0gRk9SR0VKT19fcmVwb3NpdG9yeV9fRU5BQkxFX1BVU0hfQ1JFQVRFX1VTRVI9dHJ1ZQogICAgICAtIEZPUkdFSk9fX3JlcG9zaXRvcnlfX0RFRkFVTFRfUFVTSF9DUkVBVEVfUFJJVkFURT1mYWxzZQogICAgICAtICdGT1JHRUpPX19yZXBvc2l0b3J5X19ERUZBVUxUX1JFUE9fVU5JVFM9cmVwby5jb2RlLHJlcG8uYWN0aW9ucycKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tZGF0YTovZGF0YScKICAgICAgLSAnZm9yZ2Vqby10aW1lem9uZTovZXRjL3RpbWV6b25lOnJvJwogICAgICAtICdmb3JnZWpvLWxvY2FsdGltZTovZXRjL2xvY2FsdGltZTpybycKICAgIHBvcnRzOgogICAgICAtICcke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfToyMicKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAnY3VybCAtZnMgaHR0cDovLzEyNy4wLjAuMTozMDAwID4gL2Rldi9udWxsICYmIHRlc3QgLWYgL3RtcC9ydW5uZXItcmVnaXN0ZXJlZCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAzMAogICAgY29tbWFuZDogJ2Jhc2ggLWMgJycgL3Vzci9iaW4vczYtc3ZzY2FuIC9ldGMvczYgJiB1bnRpbCBzdSAtYyAiZm9yZ2VqbyBmb3JnZWpvLWNsaSBhY3Rpb25zIHJlZ2lzdGVyIC0ta2VlcC1sYWJlbHMgLS1zZWNyZXQgJCR7UlVOTkVSX1NIQVJFRF9TRUNSRVQ6MDo0MH0iIGdpdCA7IGRvIHNsZWVwIDUgOyBkb25lIDsgc3UgLWMgImZvcmdlam8gYWRtaW4gdXNlciBjcmVhdGUgLS1hZG1pbiAtLXVzZXJuYW1lIFwiJCRGT1JHRUpPX0FETUlOX1VTRVJcIiAtLXBhc3N3b3JkIFwiJCRGT1JHRUpPX0FETUlOX1BBU1NXT1JEXCIgLS1lbWFpbCBcIiQkRk9SR0VKT19BRE1JTl9FTUFJTFwiIC0tbXVzdC1jaGFuZ2UtcGFzc3dvcmQ9ZmFsc2UiIGdpdCB8fCB0cnVlIDsgdG91Y2ggL3RtcC9ydW5uZXItcmVnaXN0ZXJlZCA7IHdhaXQgJycnCiAgbWFyaWFkYjoKICAgIGltYWdlOiAnbWFyaWFkYjoxMScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tbWFyaWFkYi1kYXRhOi92YXIvbGliL215c3FsJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ01ZU1FMX1VTRVI9JHtTRVJWSUNFX1VTRVJfTVlTUUx9JwogICAgICAtICdNWVNRTF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUx9JwogICAgICAtICdNWVNRTF9EQVRBQkFTRT0ke01ZU1FMX0RBVEFCQVNFOi1mb3JnZWpvfScKICAgICAgLSAnTVlTUUxfUk9PVF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUxST09UfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBoZWFsdGhjaGVjay5zaAogICAgICAgIC0gJy0tY29ubmVjdCcKICAgICAgICAtICctLWlubm9kYl9pbml0aWFsaXplZCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAogIGRvY2tlci1pbi1kb2NrZXI6CiAgICBpbWFnZTogJ2RvY2tlcjpkaW5kJwogICAgaG9zdG5hbWU6IGRvY2tlcgogICAgcHJpdmlsZWdlZDogdHJ1ZQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGRvY2tlcgogICAgICAgIC0gJy1IJwogICAgICAgIC0gJ3VuaXg6Ly8vdmFyL3J1bi9kb2NrZXIuc29jaycKICAgICAgICAtIGluZm8KICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiAzMHMKICAgICAgcmV0cmllczogMTAKICAgIGVudmlyb25tZW50OgogICAgICAtIERPQ0tFUl9UTFNfQ0VSVERJUj0vY2VydHMKICAgICAgLSBET0NLRVJfSE9TVD1kb2NrZXItaW4tZG9ja2VyCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRpZC1jZXJ0czovY2VydHMnCiAgcnVubmVyLXJlZ2lzdGVyOgogICAgaW1hZ2U6ICdkYXRhLmZvcmdlam8ub3JnL2Zvcmdlam8vcnVubmVyOjEzLjIuMCcKICAgIHJlc3RhcnQ6ICdubycKICAgIGV4Y2x1ZGVfZnJvbV9oYzogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ1JVTk5FUl9TSEFSRURfU0VDUkVUPSR7U0VSVklDRV9IRVhfNjRfUlVOTkVSfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tcnVubmVyLWRhdGE6L2RhdGEnCiAgICB1c2VyOiAnMDowJwogICAgY29tbWFuZDogJ2Jhc2ggLWVjICcnIHNlY3JldD0kJHtSVU5ORVJfU0hBUkVEX1NFQ1JFVDowOjQwfSA7IHV1aWQ9JCQocHJpbnRmICVzICIkJHtzZWNyZXQ6MDoxNn0iIHwgb2QgLUFuIC10eDEgfCB0ciAtZCAiIFxuIiB8IHNlZCAtRSAicy8oLns4fSkoLns0fSkoLns0fSkoLns0fSkoLnsxMn0pL1wxLVwyLVwzLVw0LVw1LyIpIDsgZm9yZ2Vqby1ydW5uZXIgZ2VuZXJhdGUtY29uZmlnID4gY29uZmlnLnltbCA7IHNlZCAtaSAtZSAic3wgIGxhYmVsczogXFtcXXwgIGxhYmVsczogW1wiZG9ja2VyOmRvY2tlcjovL25vZGU6MjItYm9va3dvcm1cIiwgXCJ1YnVudHUtbGF0ZXN0OmRvY2tlcjovL2NhdHRoZWhhY2tlci91YnVudHU6YWN0LTIyLjA0XCIsIFwidWJ1bnR1LTIyLjA0OmRvY2tLine truncated
"tags": [
"version control",
"collaboration",
"code",
"hosting",
"lightweight",
"runner",
"mariadb",
"actions",
"cicd",
"ci"
],
"category": "git",
"logo": "svgs/forgejo.svg",
"minversion": "0.0.0",
"template_last_updated_at": "2026-08-10T11:35:20+02:00",
"port": "3000"
},
"forgejo-with-runner-with-mysql": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTOi1mYWxzZX0nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fRE9NQUlOPSR7U0VSVklDRV9GUUROX0ZPUkdFSk99JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1NTSF9ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX1BPUlQ9JHtGT1JHRUpPX1NTSF9QT1JUOi0yMjIyMn0nCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0RCX1RZUEU9bXlzcWwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fSE9TVD1teXNxbAogICAgICAtICdGT1JHRUpPX19kYXRhYmFzZV9fTkFNRT0ke01ZU1FMX0RBVEFCQVNFOi1mb3JnZWpvfScKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fVVNFUj0kU0VSVklDRV9VU0VSX01ZU1FMCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1BBU1NXRD0kU0VSVklDRV9QQVNTV09SRF9NWVNRTAogICAgICAtIFVTRVJfVUlEPTEwMDAKICAgICAgLSBVU0VSX0dJRD0xMDAwCiAgICAgIC0gJ1JVTk5FUl9TSEFSRURfU0VDUkVUPSR7U0VSVklDRV9IRVhfNjRfUlVOTkVSfScKICAgICAgLSBGT1JHRUpPX19zZWN1cml0eV9fSU5TVEFMTF9MT0NLPXRydWUKICAgICAgLSAnRk9SR0VKT19BRE1JTl9VU0VSPSR7U0VSVklDRV9VU0VSX0FETUlOfScKICAgICAgLSAnRk9SR0VKT19BRE1JTl9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfQURNSU59JwogICAgICAtICdGT1JHRUpPX0FETUlOX0VNQUlMPSR7Rk9SR0VKT19BRE1JTl9FTUFJTDotYWRtaW5AZXhhbXBsZS5jb219JwogICAgICAtIEZPUkdFSk9fX3JlcG9zaXRvcnlfX0VOQUJMRV9QVVNIX0NSRUFURV9VU0VSPXRydWUKICAgICAgLSBGT1JHRUpPX19yZXBvc2l0b3J5X19ERUZBVUxUX1BVU0hfQ1JFQVRFX1BSSVZBVEU9ZmFsc2UKICAgICAgLSAnRk9SR0VKT19fcmVwb3NpdG9yeV9fREVGQVVMVF9SRVBPX1VOSVRTPXJlcG8uY29kZSxyZXBvLmFjdGlvbnMnCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRhdGE6L2RhdGEnCiAgICAgIC0gJ2Zvcmdlam8tdGltZXpvbmU6L2V0Yy90aW1lem9uZTpybycKICAgICAgLSAnZm9yZ2Vqby1sb2NhbHRpbWU6L2V0Yy9sb2NhbHRpbWU6cm8nCiAgICBwb3J0czoKICAgICAgLSAnJHtGT1JHRUpPX1NTSF9QT1JUOi0yMjIyMn06MjInCiAgICBkZXBlbmRzX29uOgogICAgICBteXNxbDoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdjdXJsIC1mcyBodHRwOi8vMTI3LjAuMC4xOjMwMDAgPiAvZGV2L251bGwgJiYgdGVzdCAtZiAvdG1wL3J1bm5lci1yZWdpc3RlcmVkJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDMwCiAgICBjb21tYW5kOiAnYmFzaCAtYyAnJyAvdXNyL2Jpbi9zNi1zdnNjYW4gL2V0Yy9zNiAmIHVudGlsIHN1IC1jICJmb3JnZWpvIGZvcmdlam8tY2xpIGFjdGlvbnMgcmVnaXN0ZXIgLS1rZWVwLWxhYmVscyAtLXNlY3JldCAkJHtSVU5ORVJfU0hBUkVEX1NFQ1JFVDowOjQwfSIgZ2l0IDsgZG8gc2xlZXAgNSA7IGRvbmUgOyBzdSAtYyAiZm9yZ2VqbyBhZG1pbiB1c2VyIGNyZWF0ZSAtLWFkbWluIC0tdXNlcm5hbWUgXCIkJEZPUkdFSk9fQURNSU5fVVNFUlwiIC0tcGFzc3dvcmQgXCIkJEZPUkdFSk9fQURNSU5fUEFTU1dPUkRcIiAtLWVtYWlsIFwiJCRGT1JHRUpPX0FETUlOX0VNQUlMXCIgLS1tdXN0LWNoYW5nZS1wYXNzd29yZD1mYWxzZSIgZ2l0IHx8IHRydWUgOyB0b3VjaCAvdG1wL3J1bm5lci1yZWdpc3RlcmVkIDsgd2FpdCAnJycKICBteXNxbDoKICAgIGltYWdlOiAnbXlzcWw6OCcKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tbXlzcWwtZGF0YTovdmFyL2xpYi9teXNxbCcKICAgIGVudmlyb25tZW50OgogICAgICAtICdNWVNRTF9VU0VSPSR7U0VSVklDRV9VU0VSX01ZU1FMfScKICAgICAgLSAnTVlTUUxfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMfScKICAgICAgLSAnTVlTUUxfREFUQUJBU0U9JHtNWVNRTF9EQVRBQkFTRTotZm9yZ2Vqb30nCiAgICAgIC0gJ01ZU1FMX1JPT1RfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMUk9PVH0nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gbXlzcWxhZG1pbgogICAgICAgIC0gcGluZwogICAgICAgIC0gJy1oJwogICAgICAgIC0gMTI3LjAuMC4xCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAKICBkb2NrZXItaW4tZG9ja2VyOgogICAgaW1hZ2U6ICdkb2NrZXI6ZGluZCcKICAgIGhvc3RuYW1lOiBkb2NrZXIKICAgIHByaXZpbGVnZWQ6IHRydWUKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBkb2NrZXIKICAgICAgICAtICctSCcKICAgICAgICAtICd1bml4Oi8vL3Zhci9ydW4vZG9ja2VyLnNvY2snCiAgICAgICAgLSBpbmZvCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogMzBzCiAgICAgIHJldHJpZXM6IDEwCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBET0NLRVJfVExTX0NFUlRESVI9L2NlcnRzCiAgICAgIC0gRE9DS0VSX0hPU1Q9ZG9ja2VyLWluLWRvY2tlcgogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kaWQtY2VydHM6L2NlcnRzJwogIHJ1bm5lci1yZWdpc3RlcjoKICAgIGltYWdlOiAnZGF0YS5mb3JnZWpvLm9yZy9mb3JnZWpvL3J1bm5lcjoxMy4yLjAnCiAgICByZXN0YXJ0OiAnbm8nCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICAtICdSVU5ORVJfU0hBUkVEX1NFQ1JFVD0ke1NFUlZJQ0VfSEVYXzY0X1JVTk5FUn0nCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLXJ1bm5lci1kYXRhOi9kYXRhJwogICAgdXNlcjogJzA6MCcKICAgIGNvbW1hbmQ6ICdiYXNoIC1lYyAnJyBzZWNyZXQ9JCR7UlVOTkVSX1NIQVJFRF9TRUNSRVQ6MDo0MH0gOyB1dWlkPSQkKHByaW50ZiAlcyAiJCR7c2VjcmV0OjA6MTZ9IiB8IG9kIC1BbiAtdHgxIHwgdHIgLWQgIiBcbiIgfCBzZWQgLUUgInMvKC57OH0pKC57NH0pKC57NH0pKC57NH0pKC57MTJ9KS9cMS1cMi1cMy1cNC1cNS8iKSA7IGZvcmdlam8tcnVubmVyIGdlbmVyYXRlLWNvbmZpZyA+IGNvbmZpZy55bWwgOyBzZWQgLWkgLWUgInN8ICBsYWJlbHM6IFxbXF18ICBsYWJlbHM6IFtcImRvY2tlcjpkb2NrZXI6Ly9ub2RlOjIyLWJvb2t3b3JtXCIsIFwidWJ1bnR1LWxhdGVzdDpkb2NrZXI6Ly9jYXR0aGVoYWNrZXIvdWJ1bnR1OmFjdC0yMi4wNFwiLCBcInVidW50dS0yMi4wNDpkb2NrZXI6Ly9jYXR0aGVoYWNrZXIvdWJLine truncated
"tags": [
"version control",
"collaboration",
"code",
"hosting",
"lightweight",
"runner",
"mysql",
"actions",
"cicd",
"ci"
],
"category": "git",
"logo": "svgs/forgejo.svg",
"minversion": "0.0.0",
"template_last_updated_at": "2026-08-10T11:35:20+02:00",
"port": "3000"
},
"forgejo-with-runner-with-postgresql": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTOi1mYWxzZX0nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fRE9NQUlOPSR7U0VSVklDRV9GUUROX0ZPUkdFSk99JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1NTSF9ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX1BPUlQ9JHtGT1JHRUpPX1NTSF9QT1JUOi0yMjIyMn0nCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0RCX1RZUEU9cG9zdGdyZXMKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fSE9TVD1wb3N0Z3Jlc3FsCiAgICAgIC0gJ0ZPUkdFSk9fX2RhdGFiYXNlX19OQU1FPSR7UE9TVEdSRVNRTF9EQVRBQkFTRTotZm9yZ2Vqb30nCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1VTRVI9JFNFUlZJQ0VfVVNFUl9QT1NUR1JFU1FMCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1BBU1NXRD0kU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU1FMCiAgICAgIC0gVVNFUl9VSUQ9MTAwMAogICAgICAtIFVTRVJfR0lEPTEwMDAKICAgICAgLSAnUlVOTkVSX1NIQVJFRF9TRUNSRVQ9JHtTRVJWSUNFX0hFWF82NF9SVU5ORVJ9JwogICAgICAtIEZPUkdFSk9fX3NlY3VyaXR5X19JTlNUQUxMX0xPQ0s9dHJ1ZQogICAgICAtICdGT1JHRUpPX0FETUlOX1VTRVI9JHtTRVJWSUNFX1VTRVJfQURNSU59JwogICAgICAtICdGT1JHRUpPX0FETUlOX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9BRE1JTn0nCiAgICAgIC0gJ0ZPUkdFSk9fQURNSU5fRU1BSUw9JHtGT1JHRUpPX0FETUlOX0VNQUlMOi1hZG1pbkBleGFtcGxlLmNvbX0nCiAgICAgIC0gRk9SR0VKT19fcmVwb3NpdG9yeV9fRU5BQkxFX1BVU0hfQ1JFQVRFX1VTRVI9dHJ1ZQogICAgICAtIEZPUkdFSk9fX3JlcG9zaXRvcnlfX0RFRkFVTFRfUFVTSF9DUkVBVEVfUFJJVkFURT1mYWxzZQogICAgICAtICdGT1JHRUpPX19yZXBvc2l0b3J5X19ERUZBVUxUX1JFUE9fVU5JVFM9cmVwby5jb2RlLHJlcG8uYWN0aW9ucycKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tZGF0YTovZGF0YScKICAgICAgLSAnZm9yZ2Vqby10aW1lem9uZTovZXRjL3RpbWV6b25lOnJvJwogICAgICAtICdmb3JnZWpvLWxvY2FsdGltZTovZXRjL2xvY2FsdGltZTpybycKICAgIHBvcnRzOgogICAgICAtICcke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfToyMicKICAgIGRlcGVuZHNfb246CiAgICAgIHBvc3RncmVzcWw6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAnY3VybCAtZnMgaHR0cDovLzEyNy4wLjAuMTozMDAwID4gL2Rldi9udWxsICYmIHRlc3QgLWYgL3RtcC9ydW5uZXItcmVnaXN0ZXJlZCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAzMAogICAgY29tbWFuZDogJ2Jhc2ggLWMgJycgL3Vzci9iaW4vczYtc3ZzY2FuIC9ldGMvczYgJiB1bnRpbCBzdSAtYyAiZm9yZ2VqbyBmb3JnZWpvLWNsaSBhY3Rpb25zIHJlZ2lzdGVyIC0ta2VlcC1sYWJlbHMgLS1zZWNyZXQgJCR7UlVOTkVSX1NIQVJFRF9TRUNSRVQ6MDo0MH0iIGdpdCA7IGRvIHNsZWVwIDUgOyBkb25lIDsgc3UgLWMgImZvcmdlam8gYWRtaW4gdXNlciBjcmVhdGUgLS1hZG1pbiAtLXVzZXJuYW1lIFwiJCRGT1JHRUpPX0FETUlOX1VTRVJcIiAtLXBhc3N3b3JkIFwiJCRGT1JHRUpPX0FETUlOX1BBU1NXT1JEXCIgLS1lbWFpbCBcIiQkRk9SR0VKT19BRE1JTl9FTUFJTFwiIC0tbXVzdC1jaGFuZ2UtcGFzc3dvcmQ9ZmFsc2UiIGdpdCB8fCB0cnVlIDsgdG91Y2ggL3RtcC9ydW5uZXItcmVnaXN0ZXJlZCA7IHdhaXQgJycnCiAgcG9zdGdyZXNxbDoKICAgIGltYWdlOiAncG9zdGdyZXM6MTYtYWxwaW5lJwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1wb3N0Z3Jlc3FsLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ1BPU1RHUkVTX1VTRVI9JHtTRVJWSUNFX1VTRVJfUE9TVEdSRVNRTH0nCiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU1FMfScKICAgICAgLSAnUE9TVEdSRVNfREI9JHtQT1NUR1JFU1FMX0RBVEFCQVNFOi1mb3JnZWpvfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAncGdfaXNyZWFkeSAtVSAkJHtQT1NUR1JFU19VU0VSfSAtZCAkJHtQT1NUR1JFU19EQn0nCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAKICBkb2NrZXItaW4tZG9ja2VyOgogICAgaW1hZ2U6ICdkb2NrZXI6ZGluZCcKICAgIGhvc3RuYW1lOiBkb2NrZXIKICAgIHByaXZpbGVnZWQ6IHRydWUKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBkb2NrZXIKICAgICAgICAtICctSCcKICAgICAgICAtICd1bml4Oi8vL3Zhci9ydW4vZG9ja2VyLnNvY2snCiAgICAgICAgLSBpbmZvCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogMzBzCiAgICAgIHJldHJpZXM6IDEwCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBET0NLRVJfVExTX0NFUlRESVI9L2NlcnRzCiAgICAgIC0gRE9DS0VSX0hPU1Q9ZG9ja2VyLWluLWRvY2tlcgogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kaWQtY2VydHM6L2NlcnRzJwogIHJ1bm5lci1yZWdpc3RlcjoKICAgIGltYWdlOiAnZGF0YS5mb3JnZWpvLm9yZy9mb3JnZWpvL3J1bm5lcjoxMy4yLjAnCiAgICByZXN0YXJ0OiAnbm8nCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICAtICdSVU5ORVJfU0hBUkVEX1NFQ1JFVD0ke1NFUlZJQ0VfSEVYXzY0X1JVTk5FUn0nCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLXJ1bm5lci1kYXRhOi9kYXRhJwogICAgdXNlcjogJzA6MCcKICAgIGNvbW1hbmQ6ICdiYXNoIC1lYyAnJyBzZWNyZXQ9JCR7UlVOTkVSX1NIQVJFRF9TRUNSRVQ6MDo0MH0gOyB1dWlkPSQkKHByaW50ZiAlcyAiJCR7c2VjcmV0OjA6MTZ9IiB8IG9kIC1BbiAtdHgxIHwgdHIgLWQgIiBcbiIgfCBzZWQgLUUgInMvKC57OH0pKC57NH0pKC57NH0pKC57NH0pKC57MTJ9KS9cMS1cMi1cMy1cNC1cNS8iKSA7IGZvcmdlam8tcnVubmVyIGdlbmVyYXRlLWNvbmZpZyA+IGNvbmZpZy55bWwgOyBzZWQgLWkgLWUgInN8ICBsYWJlbHM6IFxbXF18ICBsYWJlbHM6IFtcImRvY2tlcjpkb2NrZXI6Ly9ub2RlOjIyLWJvb2t3b3JtXCIsIFwidWJ1bnR1LWxhdGVzdDpkb2NrZXI6Ly9jYXR0aGVoYWNrZXIvdWJ1bnR1OmFjdC0yMi4wNFwiLCBcInVidW50dS0yMi4wNDpkb2NrZXI6Ly9Line truncated
"tags": [
"version control",
"collaboration",
"code",
"hosting",
"lightweight",
"runner",
"postgresql",
"actions",
"cicd",
"ci"
],
"category": "git",
"logo": "svgs/forgejo.svg",
"minversion": "0.0.0",
"template_last_updated_at": "2026-08-10T11:35:20+02:00",
"port": "3000"
},
"forgejo-with-runner": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTOi1mYWxzZX0nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fRE9NQUlOPSR7U0VSVklDRV9GUUROX0ZPUkdFSk99JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1NTSF9ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX1BPUlQ9JHtGT1JHRUpPX1NTSF9QT1JUOi0yMjIyMn0nCiAgICAgIC0gVVNFUl9VSUQ9MTAwMAogICAgICAtIFVTRVJfR0lEPTEwMDAKICAgICAgLSAnUlVOTkVSX1NIQVJFRF9TRUNSRVQ9JHtTRVJWSUNFX0hFWF82NF9SVU5ORVJ9JwogICAgICAtIEZPUkdFSk9fX3NlY3VyaXR5X19JTlNUQUxMX0xPQ0s9dHJ1ZQogICAgICAtICdGT1JHRUpPX0FETUlOX1VTRVI9JHtTRVJWSUNFX1VTRVJfQURNSU59JwogICAgICAtICdGT1JHRUpPX0FETUlOX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9BRE1JTn0nCiAgICAgIC0gJ0ZPUkdFSk9fQURNSU5fRU1BSUw9JHtGT1JHRUpPX0FETUlOX0VNQUlMOi1hZG1pbkBleGFtcGxlLmNvbX0nCiAgICAgIC0gRk9SR0VKT19fcmVwb3NpdG9yeV9fRU5BQkxFX1BVU0hfQ1JFQVRFX1VTRVI9dHJ1ZQogICAgICAtIEZPUkdFSk9fX3JlcG9zaXRvcnlfX0RFRkFVTFRfUFVTSF9DUkVBVEVfUFJJVkFURT1mYWxzZQogICAgICAtICdGT1JHRUpPX19yZXBvc2l0b3J5X19ERUZBVUxUX1JFUE9fVU5JVFM9cmVwby5jb2RlLHJlcG8uYWN0aW9ucycKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tZGF0YTovZGF0YScKICAgICAgLSAnZm9yZ2Vqby10aW1lem9uZTovZXRjL3RpbWV6b25lOnJvJwogICAgICAtICdmb3JnZWpvLWxvY2FsdGltZTovZXRjL2xvY2FsdGltZTpybycKICAgIHBvcnRzOgogICAgICAtICcke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfToyMicKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAnY3VybCAtZnMgaHR0cDovLzEyNy4wLjAuMTozMDAwID4gL2Rldi9udWxsICYmIHRlc3QgLWYgL3RtcC9ydW5uZXItcmVnaXN0ZXJlZCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAzMAogICAgY29tbWFuZDogJ2Jhc2ggLWMgJycgL3Vzci9iaW4vczYtc3ZzY2FuIC9ldGMvczYgJiB1bnRpbCBzdSAtYyAiZm9yZ2VqbyBmb3JnZWpvLWNsaSBhY3Rpb25zIHJlZ2lzdGVyIC0ta2VlcC1sYWJlbHMgLS1zZWNyZXQgJCR7UlVOTkVSX1NIQVJFRF9TRUNSRVQ6MDo0MH0iIGdpdCA7IGRvIHNsZWVwIDUgOyBkb25lIDsgc3UgLWMgImZvcmdlam8gYWRtaW4gdXNlciBjcmVhdGUgLS1hZG1pbiAtLXVzZXJuYW1lIFwiJCRGT1JHRUpPX0FETUlOX1VTRVJcIiAtLXBhc3N3b3JkIFwiJCRGT1JHRUpPX0FETUlOX1BBU1NXT1JEXCIgLS1lbWFpbCBcIiQkRk9SR0VKT19BRE1JTl9FTUFJTFwiIC0tbXVzdC1jaGFuZ2UtcGFzc3dvcmQ9ZmFsc2UiIGdpdCB8fCB0cnVlIDsgdG91Y2ggL3RtcC9ydW5uZXItcmVnaXN0ZXJlZCA7IHdhaXQgJycnCiAgZG9ja2VyLWluLWRvY2tlcjoKICAgIGltYWdlOiAnZG9ja2VyOmRpbmQnCiAgICBob3N0bmFtZTogZG9ja2VyCiAgICBwcml2aWxlZ2VkOiB0cnVlCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gZG9ja2VyCiAgICAgICAgLSAnLUgnCiAgICAgICAgLSAndW5peDovLy92YXIvcnVuL2RvY2tlci5zb2NrJwogICAgICAgIC0gaW5mbwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDMwcwogICAgICByZXRyaWVzOiAxMAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gRE9DS0VSX1RMU19DRVJURElSPS9jZXJ0cwogICAgICAtIERPQ0tFUl9IT1NUPWRvY2tlci1pbi1kb2NrZXIKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tZGlkLWNlcnRzOi9jZXJ0cycKICBydW5uZXItcmVnaXN0ZXI6CiAgICBpbWFnZTogJ2RhdGEuZm9yZ2Vqby5vcmcvZm9yZ2Vqby9ydW5uZXI6MTMuMi4wJwogICAgcmVzdGFydDogJ25vJwogICAgZXhjbHVkZV9mcm9tX2hjOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnUlVOTkVSX1NIQVJFRF9TRUNSRVQ9JHtTRVJWSUNFX0hFWF82NF9SVU5ORVJ9JwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1ydW5uZXItZGF0YTovZGF0YScKICAgIHVzZXI6ICcwOjAnCiAgICBjb21tYW5kOiAnYmFzaCAtZWMgJycgc2VjcmV0PSQke1JVTk5FUl9TSEFSRURfU0VDUkVUOjA6NDB9IDsgdXVpZD0kJChwcmludGYgJXMgIiQke3NlY3JldDowOjE2fSIgfCBvZCAtQW4gLXR4MSB8IHRyIC1kICIgXG4iIHwgc2VkIC1FICJzLyguezh9KSguezR9KSguezR9KSguezR9KSguezEyfSkvXDEtXDItXDMtXDQtXDUvIikgOyBmb3JnZWpvLXJ1bm5lciBnZW5lcmF0ZS1jb25maWcgPiBjb25maWcueW1sIDsgc2VkIC1pIC1lICJzfCAgbGFiZWxzOiBcW1xdfCAgbGFiZWxzOiBbXCJkb2NrZXI6ZG9ja2VyOi8vbm9kZToyMi1ib29rd29ybVwiLCBcInVidW50dS1sYXRlc3Q6ZG9ja2VyOi8vY2F0dGhlaGFja2VyL3VidW50dTphY3QtMjIuMDRcIiwgXCJ1YnVudHUtMjIuMDQ6ZG9ja2VyOi8vY2F0dGhlaGFja2VyL3VidW50dTphY3QtMjIuMDRcIl18IiBjb25maWcueW1sIDsgc2VkIC1pIC1lICJzfG5ldHdvcms6IC4qfG5ldHdvcms6IGhvc3R8IiBjb25maWcueW1sIDsgc2VkIC1pIC1lICJzfF4gIGVudnM6JCR8ICBlbnZzOlxuICAgIERPQ0tFUl9IT1NUOiB0Y3A6Ly9kb2NrZXI6MjM3NlxuICAgIERPQ0tFUl9UTFNfVkVSSUZZOiAxXG4gICAgRE9DS0VSX0NFUlRfUEFUSDogL2NlcnRzL2NsaWVudHwiIGNvbmZpZy55bWwgOyBzZWQgLWkgLWUgInN8XiAgb3B0aW9uczp8ICBvcHRpb25zOiAtdiAvY2VydHMvY2xpZW50Oi9jZXJ0cy9jbGllbnR8IiBjb25maWcueW1sIDsgc2VkIC1pIC1lICJzfCAgdmFsaWRfdm9sdW1lczogXFtcXSQkfCAgdmFsaWRfdm9sdW1lczpcbiAgICAtIC9jZXJ0cy9jbGllbnR8IiBjb25maWcueW1sIDsgc2VkIC1pIC1lICJzfCAgY29ubmVjdGlvbnM6fCAgY29ubmVjdGlvbnM6XG4gICAgZGVmYXVsdDpcbiAgICAgIHVybDogaHR0cDovL2Zvcmdlam86MzAwMFxuICAgICAgdXVpZDogJCR1dWlkXG4gICAgICB0b2tlbjogJCRzZWNyZXR8IiBjb25maWcueW1sIDsgY2hvd24gLVIgMTAwMDoxMDAwIC9kYXRhICcnJwogIHJ1bm5lcjoKICAgIGltYWdlOiAnZGF0YS5mb3JnZWpvLm9yZy9mb3JnZWpvL3J1bm5lcjoxMy4yLjAnCiAgICBkZXBlbmRzX29uOgogICAgICBmb3JnZWpvOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICAgIGRvY2tlci1pbi1kb2NrZXI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgICAgcnVubmVyLXJlZ2lzdGVyOgogICALine truncated
"tags": [
"version control",
"collaboration",
"code",
"hosting",
"lightweight",
"runner",
"actions",
"cicd",
"ci"
],
"category": "git",
"logo": "svgs/forgejo.svg",
"minversion": "0.0.0",
"template_last_updated_at": "2026-08-10T11:35:20+02:00",
"port": "3000"
},
"forgejo": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTLWZhbHNlfScKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgcG9ydHM6CiAgICAgIC0gJzIyMjIyOjIyJwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kYXRhOi9kYXRhJwogICAgICAtICdmb3JnZWpvLXRpbWV6b25lOi9ldGMvdGltZXpvbmU6cm8nCiAgICAgIC0gJ2Zvcmdlam8tbG9jYWx0aW1lOi9ldGMvbG9jYWx0aW1lOnJvJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjMwMDAnCiAgICAgIGludGVydmFsOiAycwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTUK",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX0ZPUkdFSk9fMzAwMAogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1JPT1RfVVJMPSR7U0VSVklDRV9VUkxfRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XRURfRE9NQUlOU30nCiAgICAgIC0gJ0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M9JHtGT1JHRUpPX19taWdyYXRpb25zX19BTExPV19MT0NBTE5FVFdPUktTLWZhbHNlfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfUE9SVD0ke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfScKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgcG9ydHM6CiAgICAgIC0gJyR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9OjIyJwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kYXRhOi9kYXRhJwogICAgICAtICdmb3JnZWpvLXRpbWV6b25lOi9ldGMvdGltZXpvbmU6cm8nCiAgICAgIC0gJ2Zvcmdlam8tbG9jYWx0aW1lOi9ldGMvbG9jYWx0aW1lOnJvJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjMwMDAnCiAgICAgIGludGVydmFsOiAycwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTUK",
"tags": [
"version control",
"collaboration",
+91 -4
View File
@@ -1684,7 +1684,7 @@
"forgejo-with-mariadb": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1MtZmFsc2V9JwogICAgICAtIFVTRVJfVUlEPTEwMDAKICAgICAgLSBVU0VSX0dJRD0xMDAwCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0RCX1RZUEU9bXlzcWwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fSE9TVD1tYXJpYWRiCiAgICAgIC0gJ0ZPUkdFSk9fX2RhdGFiYXNlX19OQU1FPSR7TVlTUUxfREFUQUJBU0UtZm9yZ2Vqb30nCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1VTRVI9JFNFUlZJQ0VfVVNFUl9NWVNRTAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19QQVNTV0Q9JFNFUlZJQ0VfUEFTU1dPUkRfTVlTUUwKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tZGF0YTovZGF0YScKICAgICAgLSAnZm9yZ2Vqby10aW1lem9uZTovZXRjL3RpbWV6b25lOnJvJwogICAgICAtICdmb3JnZWpvLWxvY2FsdGltZTovZXRjL2xvY2FsdGltZTpybycKICAgIHBvcnRzOgogICAgICAtICcyMjIyMjoyMicKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTozMDAwJwogICAgICBpbnRlcnZhbDogMnMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDE1CiAgbWFyaWFkYjoKICAgIGltYWdlOiAnbWFyaWFkYjoxMScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tbWFyaWFkYi1kYXRhOi92YXIvbGliL215c3FsJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ01ZU1FMX1VTRVI9JHtTRVJWSUNFX1VTRVJfTVlTUUx9JwogICAgICAtICdNWVNRTF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUx9JwogICAgICAtICdNWVNRTF9EQVRBQkFTRT0ke01ZU1FMX0RBVEFCQVNFfScKICAgICAgLSAnTVlTUUxfUk9PVF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUxST09UfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBoZWFsdGhjaGVjay5zaAogICAgICAgIC0gJy0tY29ubmVjdCcKICAgICAgICAtICctLWlubm9kYl9pbml0aWFsaXplZCcKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAo=",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1MtZmFsc2V9JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfRE9NQUlOPSR7U0VSVklDRV9GUUROX0ZPUkdFSk99JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1NTSF9QT1JUPSR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9JwogICAgICAtIFVTRVJfVUlEPTEwMDAKICAgICAgLSBVU0VSX0dJRD0xMDAwCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0RCX1RZUEU9bXlzcWwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fSE9TVD1tYXJpYWRiCiAgICAgIC0gJ0ZPUkdFSk9fX2RhdGFiYXNlX19OQU1FPSR7TVlTUUxfREFUQUJBU0U6LWZvcmdlam99JwogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19VU0VSPSRTRVJWSUNFX1VTRVJfTVlTUUwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fUEFTU1dEPSRTRVJWSUNFX1BBU1NXT1JEX01ZU1FMCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRhdGE6L2RhdGEnCiAgICAgIC0gJ2Zvcmdlam8tdGltZXpvbmU6L2V0Yy90aW1lem9uZTpybycKICAgICAgLSAnZm9yZ2Vqby1sb2NhbHRpbWU6L2V0Yy9sb2NhbHRpbWU6cm8nCiAgICBwb3J0czoKICAgICAgLSAnJHtGT1JHRUpPX1NTSF9QT1JUOi0yMjIyMn06MjInCiAgICBkZXBlbmRzX29uOgogICAgICBtYXJpYWRiOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6MzAwMCcKICAgICAgaW50ZXJ2YWw6IDJzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAxNQogIG1hcmlhZGI6CiAgICBpbWFnZTogJ21hcmlhZGI6MTEnCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLW1hcmlhZGItZGF0YTovdmFyL2xpYi9teXNxbCcKICAgIGVudmlyb25tZW50OgogICAgICAtICdNWVNRTF9VU0VSPSR7U0VSVklDRV9VU0VSX01ZU1FMfScKICAgICAgLSAnTVlTUUxfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMfScKICAgICAgLSAnTVlTUUxfREFUQUJBU0U9JHtNWVNRTF9EQVRBQkFTRTotZm9yZ2Vqb30nCiAgICAgIC0gJ01ZU1FMX1JPT1RfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMUk9PVH0nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gaGVhbHRoY2hlY2suc2gKICAgICAgICAtICctLWNvbm5lY3QnCiAgICAgICAgLSAnLS1pbm5vZGJfaW5pdGlhbGl6ZWQnCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAK",
"tags": [
"version control",
"collaboration",
@@ -1702,7 +1702,7 @@
"forgejo-with-mysql": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1MtZmFsc2V9JwogICAgICAtIFVTRVJfVUlEPTEwMDAKICAgICAgLSBVU0VSX0dJRD0xMDAwCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0RCX1RZUEU9bXlzcWwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fSE9TVD1teXNxbAogICAgICAtICdGT1JHRUpPX19kYXRhYmFzZV9fTkFNRT0ke01ZU1FMX0RBVEFCQVNFLWZvcmdlam99JwogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19VU0VSPSRTRVJWSUNFX1VTRVJfTVlTUUwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fUEFTU1dEPSRTRVJWSUNFX1BBU1NXT1JEX01ZU1FMCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRhdGE6L2RhdGEnCiAgICAgIC0gJ2Zvcmdlam8tdGltZXpvbmU6L2V0Yy90aW1lem9uZTpybycKICAgICAgLSAnZm9yZ2Vqby1sb2NhbHRpbWU6L2V0Yy9sb2NhbHRpbWU6cm8nCiAgICBwb3J0czoKICAgICAgLSAnMjIyMjI6MjInCiAgICBkZXBlbmRzX29uOgogICAgICBteXNxbDoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjMwMDAnCiAgICAgIGludGVydmFsOiAycwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTUKICBteXNxbDoKICAgIGltYWdlOiAnbXlzcWw6OCcKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tbXlzcWwtZGF0YTovdmFyL2xpYi9teXNxbCcKICAgIGVudmlyb25tZW50OgogICAgICAtICdNWVNRTF9VU0VSPSR7U0VSVklDRV9VU0VSX01ZU1FMfScKICAgICAgLSAnTVlTUUxfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMfScKICAgICAgLSAnTVlTUUxfREFUQUJBU0U9JHtNWVNRTF9EQVRBQkFTRX0nCiAgICAgIC0gJ01ZU1FMX1JPT1RfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMUk9PVH0nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gbXlzcWxhZG1pbgogICAgICAgIC0gcGluZwogICAgICAgIC0gJy1oJwogICAgICAgIC0gMTI3LjAuMC4xCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAK",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1MtZmFsc2V9JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfRE9NQUlOPSR7U0VSVklDRV9GUUROX0ZPUkdFSk99JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1NTSF9QT1JUPSR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9JwogICAgICAtIFVTRVJfVUlEPTEwMDAKICAgICAgLSBVU0VSX0dJRD0xMDAwCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0RCX1RZUEU9bXlzcWwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fSE9TVD1teXNxbAogICAgICAtICdGT1JHRUpPX19kYXRhYmFzZV9fTkFNRT0ke01ZU1FMX0RBVEFCQVNFOi1mb3JnZWpvfScKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fVVNFUj0kU0VSVklDRV9VU0VSX01ZU1FMCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1BBU1NXRD0kU0VSVklDRV9QQVNTV09SRF9NWVNRTAogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kYXRhOi9kYXRhJwogICAgICAtICdmb3JnZWpvLXRpbWV6b25lOi9ldGMvdGltZXpvbmU6cm8nCiAgICAgIC0gJ2Zvcmdlam8tbG9jYWx0aW1lOi9ldGMvbG9jYWx0aW1lOnJvJwogICAgcG9ydHM6CiAgICAgIC0gJyR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9OjIyJwogICAgZGVwZW5kc19vbjoKICAgICAgbXlzcWw6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTozMDAwJwogICAgICBpbnRlcnZhbDogMnMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDE1CiAgbXlzcWw6CiAgICBpbWFnZTogJ215c3FsOjgnCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLW15c3FsLWRhdGE6L3Zhci9saWIvbXlzcWwnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnTVlTUUxfVVNFUj0ke1NFUlZJQ0VfVVNFUl9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX0RBVEFCQVNFPSR7TVlTUUxfREFUQUJBU0U6LWZvcmdlam99JwogICAgICAtICdNWVNRTF9ST09UX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTFJPT1R9JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIG15c3FsYWRtaW4KICAgICAgICAtIHBpbmcKICAgICAgICAtICctaCcKICAgICAgICAtIDEyNy4wLjAuMQogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==",
"tags": [
"version control",
"collaboration",
@@ -1720,7 +1720,7 @@
"forgejo-with-postgresql": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1MtZmFsc2V9JwogICAgICAtIFVTRVJfVUlEPTEwMDAKICAgICAgLSBVU0VSX0dJRD0xMDAwCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0RCX1RZUEU9cG9zdGdyZXMKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fSE9TVD1wb3N0Z3Jlc3FsCiAgICAgIC0gJ0ZPUkdFSk9fX2RhdGFiYXNlX19OQU1FPSR7UE9TVEdSRVNRTF9EQVRBQkFTRS1mb3JnZWpvfScKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fVVNFUj0kU0VSVklDRV9VU0VSX1BPU1RHUkVTUUwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fUEFTU1dEPSRTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTUUwKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tZGF0YTovZGF0YScKICAgICAgLSAnZm9yZ2Vqby10aW1lem9uZTovZXRjL3RpbWV6b25lOnJvJwogICAgICAtICdmb3JnZWpvLWxvY2FsdGltZTovZXRjL2xvY2FsdGltZTpybycKICAgIHBvcnRzOgogICAgICAtICcyMjIyMjoyMicKICAgIGRlcGVuZHNfb246CiAgICAgIHBvc3RncmVzcWw6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTozMDAwJwogICAgICBpbnRlcnZhbDogMnMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDE1CiAgcG9zdGdyZXNxbDoKICAgIGltYWdlOiAncG9zdGdyZXM6MTYtYWxwaW5lJwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1wb3N0Z3Jlc3FsLWRhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ1BPU1RHUkVTX1VTRVI9JHtTRVJWSUNFX1VTRVJfUE9TVEdSRVNRTH0nCiAgICAgIC0gJ1BPU1RHUkVTX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU1FMfScKICAgICAgLSAnUE9TVEdSRVNfREI9JHtQT1NUR1JFU1FMX0RBVEFCQVNFfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ELVNIRUxMCiAgICAgICAgLSAncGdfaXNyZWFkeSAtVSAkJHtQT1NUR1JFU19VU0VSfSAtZCAkJHtQT1NUR1JFU19EQn0nCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogMTAK",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1MtZmFsc2V9JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfRE9NQUlOPSR7U0VSVklDRV9GUUROX0ZPUkdFSk99JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1NTSF9QT1JUPSR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9JwogICAgICAtIFVTRVJfVUlEPTEwMDAKICAgICAgLSBVU0VSX0dJRD0xMDAwCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX0RCX1RZUEU9cG9zdGdyZXMKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fSE9TVD1wb3N0Z3Jlc3FsCiAgICAgIC0gJ0ZPUkdFSk9fX2RhdGFiYXNlX19OQU1FPSR7UE9TVEdSRVNRTF9EQVRBQkFTRTotZm9yZ2Vqb30nCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1VTRVI9JFNFUlZJQ0VfVVNFUl9QT1NUR1JFU1FMCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1BBU1NXRD0kU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFU1FMCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRhdGE6L2RhdGEnCiAgICAgIC0gJ2Zvcmdlam8tdGltZXpvbmU6L2V0Yy90aW1lem9uZTpybycKICAgICAgLSAnZm9yZ2Vqby1sb2NhbHRpbWU6L2V0Yy9sb2NhbHRpbWU6cm8nCiAgICBwb3J0czoKICAgICAgLSAnJHtGT1JHRUpPX1NTSF9QT1JUOi0yMjIyMn06MjInCiAgICBkZXBlbmRzX29uOgogICAgICBwb3N0Z3Jlc3FsOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6MzAwMCcKICAgICAgaW50ZXJ2YWw6IDJzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAxNQogIHBvc3RncmVzcWw6CiAgICBpbWFnZTogJ3Bvc3RncmVzOjE2LWFscGluZScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tcG9zdGdyZXNxbC1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YScKICAgIGVudmlyb25tZW50OgogICAgICAtICdQT1NUR1JFU19VU0VSPSR7U0VSVklDRV9VU0VSX1BPU1RHUkVTUUx9JwogICAgICAtICdQT1NUR1JFU19QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfUE9TVEdSRVNRTH0nCiAgICAgIC0gJ1BPU1RHUkVTX0RCPSR7UE9TVEdSRVNRTF9EQVRBQkFTRTotZm9yZ2Vqb30nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ3BnX2lzcmVhZHkgLVUgJCR7UE9TVEdSRVNfVVNFUn0gLWQgJCR7UE9TVEdSRVNfREJ9JwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==",
"tags": [
"version control",
"collaboration",
@@ -1735,10 +1735,97 @@
"template_last_updated_at": "2026-08-10T11:35:20+02:00",
"port": "3000"
},
"forgejo-with-runner-with-mariadb": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M6LWZhbHNlfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfUE9SVD0ke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfScKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fREJfVFlQRT1teXNxbAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19IT1NUPW1hcmlhZGIKICAgICAgLSAnRk9SR0VKT19fZGF0YWJhc2VfX05BTUU9JHtNWVNRTF9EQVRBQkFTRTotZm9yZ2Vqb30nCiAgICAgIC0gRk9SR0VKT19fZGF0YWJhc2VfX1VTRVI9JFNFUlZJQ0VfVVNFUl9NWVNRTAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19QQVNTV0Q9JFNFUlZJQ0VfUEFTU1dPUkRfTVlTUUwKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgICAtICdSVU5ORVJfU0hBUkVEX1NFQ1JFVD0ke1NFUlZJQ0VfSEVYXzY0X1JVTk5FUn0nCiAgICAgIC0gRk9SR0VKT19fc2VjdXJpdHlfX0lOU1RBTExfTE9DSz10cnVlCiAgICAgIC0gJ0ZPUkdFSk9fQURNSU5fVVNFUj0ke1NFUlZJQ0VfVVNFUl9BRE1JTn0nCiAgICAgIC0gJ0ZPUkdFSk9fQURNSU5fUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX0FETUlOfScKICAgICAgLSAnRk9SR0VKT19BRE1JTl9FTUFJTD0ke0ZPUkdFSk9fQURNSU5fRU1BSUw6LWFkbWluQGV4YW1wbGUuY29tfScKICAgICAgLSBGT1JHRUpPX19yZXBvc2l0b3J5X19FTkFCTEVfUFVTSF9DUkVBVEVfVVNFUj10cnVlCiAgICAgIC0gRk9SR0VKT19fcmVwb3NpdG9yeV9fREVGQVVMVF9QVVNIX0NSRUFURV9QUklWQVRFPWZhbHNlCiAgICAgIC0gJ0ZPUkdFSk9fX3JlcG9zaXRvcnlfX0RFRkFVTFRfUkVQT19VTklUUz1yZXBvLmNvZGUscmVwby5hY3Rpb25zJwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kYXRhOi9kYXRhJwogICAgICAtICdmb3JnZWpvLXRpbWV6b25lOi9ldGMvdGltZXpvbmU6cm8nCiAgICAgIC0gJ2Zvcmdlam8tbG9jYWx0aW1lOi9ldGMvbG9jYWx0aW1lOnJvJwogICAgcG9ydHM6CiAgICAgIC0gJyR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9OjIyJwogICAgZGVwZW5kc19vbjoKICAgICAgbWFyaWFkYjoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdjdXJsIC1mcyBodHRwOi8vMTI3LjAuMC4xOjMwMDAgPiAvZGV2L251bGwgJiYgdGVzdCAtZiAvdG1wL3J1bm5lci1yZWdpc3RlcmVkJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDMwCiAgICBjb21tYW5kOiAnYmFzaCAtYyAnJyAvdXNyL2Jpbi9zNi1zdnNjYW4gL2V0Yy9zNiAmIHVudGlsIHN1IC1jICJmb3JnZWpvIGZvcmdlam8tY2xpIGFjdGlvbnMgcmVnaXN0ZXIgLS1rZWVwLWxhYmVscyAtLXNlY3JldCAkJHtSVU5ORVJfU0hBUkVEX1NFQ1JFVDowOjQwfSIgZ2l0IDsgZG8gc2xlZXAgNSA7IGRvbmUgOyBzdSAtYyAiZm9yZ2VqbyBhZG1pbiB1c2VyIGNyZWF0ZSAtLWFkbWluIC0tdXNlcm5hbWUgXCIkJEZPUkdFSk9fQURNSU5fVVNFUlwiIC0tcGFzc3dvcmQgXCIkJEZPUkdFSk9fQURNSU5fUEFTU1dPUkRcIiAtLWVtYWlsIFwiJCRGT1JHRUpPX0FETUlOX0VNQUlMXCIgLS1tdXN0LWNoYW5nZS1wYXNzd29yZD1mYWxzZSIgZ2l0IHx8IHRydWUgOyB0b3VjaCAvdG1wL3J1bm5lci1yZWdpc3RlcmVkIDsgd2FpdCAnJycKICBtYXJpYWRiOgogICAgaW1hZ2U6ICdtYXJpYWRiOjExJwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1tYXJpYWRiLWRhdGE6L3Zhci9saWIvbXlzcWwnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnTVlTUUxfVVNFUj0ke1NFUlZJQ0VfVVNFUl9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX0RBVEFCQVNFPSR7TVlTUUxfREFUQUJBU0U6LWZvcmdlam99JwogICAgICAtICdNWVNRTF9ST09UX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTFJPT1R9JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGhlYWx0aGNoZWNrLnNoCiAgICAgICAgLSAnLS1jb25uZWN0JwogICAgICAgIC0gJy0taW5ub2RiX2luaXRpYWxpemVkJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCiAgZG9ja2VyLWluLWRvY2tlcjoKICAgIGltYWdlOiAnZG9ja2VyOmRpbmQnCiAgICBob3N0bmFtZTogZG9ja2VyCiAgICBwcml2aWxlZ2VkOiB0cnVlCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gZG9ja2VyCiAgICAgICAgLSAnLUgnCiAgICAgICAgLSAndW5peDovLy92YXIvcnVuL2RvY2tlci5zb2NrJwogICAgICAgIC0gaW5mbwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDMwcwogICAgICByZXRyaWVzOiAxMAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gRE9DS0VSX1RMU19DRVJURElSPS9jZXJ0cwogICAgICAtIERPQ0tFUl9IT1NUPWRvY2tlci1pbi1kb2NrZXIKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tZGlkLWNlcnRzOi9jZXJ0cycKICBydW5uZXItcmVnaXN0ZXI6CiAgICBpbWFnZTogJ2RhdGEuZm9yZ2Vqby5vcmcvZm9yZ2Vqby9ydW5uZXI6MTMuMi4wJwogICAgcmVzdGFydDogJ25vJwogICAgZXhjbHVkZV9mcm9tX2hjOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnUlVOTkVSX1NIQVJFRF9TRUNSRVQ9JHtTRVJWSUNFX0hFWF82NF9SVU5ORVJ9JwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1ydW5uZXItZGF0YTovZGF0YScKICAgIHVzZXI6ICcwOjAnCiAgICBjb21tYW5kOiAnYmFzaCAtZWMgJycgc2VjcmV0PSQke1JVTk5FUl9TSEFSRURfU0VDUkVUOjA6NDB9IDsgdXVpZD0kJChwcmludGYgJXMgIiQke3NlY3JldDowOjE2fSIgfCBvZCAtQW4gLXR4MSB8IHRyIC1kICIgXG4iIHwgc2VkIC1FICJzLyguezh9KSguezR9KSguezR9KSguezR9KSguezEyfSkvXDEtXDItXDMtXDQtXDUvIikgOyBmb3JnZWpvLXJ1bm5lciBnZW5lcmF0ZS1jb25maWcgPiBjb25maWcueW1sIDsgc2VkIC1pIC1lICJzfCAgbGFiZWxzOiBcW1xdfCAgbGFiZWxzOiBbXCJkb2NrZXI6ZG9ja2VyOi8vbm9kZToyMi1ib29rd29ybVwiLCBcInVidW50dS1sYXRlc3Q6ZG9ja2VyOi8vY2F0dGhlaGFja2VyL3VidW50dTphY3QtMjIuMDRcIiwgXCJ1YnVudHUtMjIuMDQ6ZG9Line truncated
"tags": [
"version control",
"collaboration",
"code",
"hosting",
"lightweight",
"runner",
"mariadb",
"actions",
"cicd",
"ci"
],
"category": "git",
"logo": "svgs/forgejo.svg",
"minversion": "0.0.0",
"template_last_updated_at": "2026-08-10T11:35:20+02:00",
"port": "3000"
},
"forgejo-with-runner-with-mysql": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M6LWZhbHNlfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfUE9SVD0ke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfScKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fREJfVFlQRT1teXNxbAogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19IT1NUPW15c3FsCiAgICAgIC0gJ0ZPUkdFSk9fX2RhdGFiYXNlX19OQU1FPSR7TVlTUUxfREFUQUJBU0U6LWZvcmdlam99JwogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19VU0VSPSRTRVJWSUNFX1VTRVJfTVlTUUwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fUEFTU1dEPSRTRVJWSUNFX1BBU1NXT1JEX01ZU1FMCiAgICAgIC0gVVNFUl9VSUQ9MTAwMAogICAgICAtIFVTRVJfR0lEPTEwMDAKICAgICAgLSAnUlVOTkVSX1NIQVJFRF9TRUNSRVQ9JHtTRVJWSUNFX0hFWF82NF9SVU5ORVJ9JwogICAgICAtIEZPUkdFSk9fX3NlY3VyaXR5X19JTlNUQUxMX0xPQ0s9dHJ1ZQogICAgICAtICdGT1JHRUpPX0FETUlOX1VTRVI9JHtTRVJWSUNFX1VTRVJfQURNSU59JwogICAgICAtICdGT1JHRUpPX0FETUlOX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9BRE1JTn0nCiAgICAgIC0gJ0ZPUkdFSk9fQURNSU5fRU1BSUw9JHtGT1JHRUpPX0FETUlOX0VNQUlMOi1hZG1pbkBleGFtcGxlLmNvbX0nCiAgICAgIC0gRk9SR0VKT19fcmVwb3NpdG9yeV9fRU5BQkxFX1BVU0hfQ1JFQVRFX1VTRVI9dHJ1ZQogICAgICAtIEZPUkdFSk9fX3JlcG9zaXRvcnlfX0RFRkFVTFRfUFVTSF9DUkVBVEVfUFJJVkFURT1mYWxzZQogICAgICAtICdGT1JHRUpPX19yZXBvc2l0b3J5X19ERUZBVUxUX1JFUE9fVU5JVFM9cmVwby5jb2RlLHJlcG8uYWN0aW9ucycKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tZGF0YTovZGF0YScKICAgICAgLSAnZm9yZ2Vqby10aW1lem9uZTovZXRjL3RpbWV6b25lOnJvJwogICAgICAtICdmb3JnZWpvLWxvY2FsdGltZTovZXRjL2xvY2FsdGltZTpybycKICAgIHBvcnRzOgogICAgICAtICcke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfToyMicKICAgIGRlcGVuZHNfb246CiAgICAgIG15c3FsOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ2N1cmwgLWZzIGh0dHA6Ly8xMjcuMC4wLjE6MzAwMCA+IC9kZXYvbnVsbCAmJiB0ZXN0IC1mIC90bXAvcnVubmVyLXJlZ2lzdGVyZWQnCiAgICAgIGludGVydmFsOiA1cwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMzAKICAgIGNvbW1hbmQ6ICdiYXNoIC1jICcnIC91c3IvYmluL3M2LXN2c2NhbiAvZXRjL3M2ICYgdW50aWwgc3UgLWMgImZvcmdlam8gZm9yZ2Vqby1jbGkgYWN0aW9ucyByZWdpc3RlciAtLWtlZXAtbGFiZWxzIC0tc2VjcmV0ICQke1JVTk5FUl9TSEFSRURfU0VDUkVUOjA6NDB9IiBnaXQgOyBkbyBzbGVlcCA1IDsgZG9uZSA7IHN1IC1jICJmb3JnZWpvIGFkbWluIHVzZXIgY3JlYXRlIC0tYWRtaW4gLS11c2VybmFtZSBcIiQkRk9SR0VKT19BRE1JTl9VU0VSXCIgLS1wYXNzd29yZCBcIiQkRk9SR0VKT19BRE1JTl9QQVNTV09SRFwiIC0tZW1haWwgXCIkJEZPUkdFSk9fQURNSU5fRU1BSUxcIiAtLW11c3QtY2hhbmdlLXBhc3N3b3JkPWZhbHNlIiBnaXQgfHwgdHJ1ZSA7IHRvdWNoIC90bXAvcnVubmVyLXJlZ2lzdGVyZWQgOyB3YWl0ICcnJwogIG15c3FsOgogICAgaW1hZ2U6ICdteXNxbDo4JwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1teXNxbC1kYXRhOi92YXIvbGliL215c3FsJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ01ZU1FMX1VTRVI9JHtTRVJWSUNFX1VTRVJfTVlTUUx9JwogICAgICAtICdNWVNRTF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUx9JwogICAgICAtICdNWVNRTF9EQVRBQkFTRT0ke01ZU1FMX0RBVEFCQVNFOi1mb3JnZWpvfScKICAgICAgLSAnTVlTUUxfUk9PVF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUxST09UfScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBteXNxbGFkbWluCiAgICAgICAgLSBwaW5nCiAgICAgICAgLSAnLWgnCiAgICAgICAgLSAxMjcuMC4wLjEKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAogIGRvY2tlci1pbi1kb2NrZXI6CiAgICBpbWFnZTogJ2RvY2tlcjpkaW5kJwogICAgaG9zdG5hbWU6IGRvY2tlcgogICAgcHJpdmlsZWdlZDogdHJ1ZQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGRvY2tlcgogICAgICAgIC0gJy1IJwogICAgICAgIC0gJ3VuaXg6Ly8vdmFyL3J1bi9kb2NrZXIuc29jaycKICAgICAgICAtIGluZm8KICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiAzMHMKICAgICAgcmV0cmllczogMTAKICAgIGVudmlyb25tZW50OgogICAgICAtIERPQ0tFUl9UTFNfQ0VSVERJUj0vY2VydHMKICAgICAgLSBET0NLRVJfSE9TVD1kb2NrZXItaW4tZG9ja2VyCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRpZC1jZXJ0czovY2VydHMnCiAgcnVubmVyLXJlZ2lzdGVyOgogICAgaW1hZ2U6ICdkYXRhLmZvcmdlam8ub3JnL2Zvcmdlam8vcnVubmVyOjEzLjIuMCcKICAgIHJlc3RhcnQ6ICdubycKICAgIGV4Y2x1ZGVfZnJvbV9oYzogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ1JVTk5FUl9TSEFSRURfU0VDUkVUPSR7U0VSVklDRV9IRVhfNjRfUlVOTkVSfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tcnVubmVyLWRhdGE6L2RhdGEnCiAgICB1c2VyOiAnMDowJwogICAgY29tbWFuZDogJ2Jhc2ggLWVjICcnIHNlY3JldD0kJHtSVU5ORVJfU0hBUkVEX1NFQ1JFVDowOjQwfSA7IHV1aWQ9JCQocHJpbnRmICVzICIkJHtzZWNyZXQ6MDoxNn0iIHwgb2QgLUFuIC10eDEgfCB0ciAtZCAiIFxuIiB8IHNlZCAtRSAicy8oLns4fSkoLns0fSkoLns0fSkoLns0fSkoLnsxMn0pL1wxLVwyLVwzLVw0LVw1LyIpIDsgZm9yZ2Vqby1ydW5uZXIgZ2VuZXJhdGUtY29uZmlnID4gY29uZmlnLnltbCA7IHNlZCAtaSAtZSAic3wgIGxhYmVsczogXFtcXXwgIGxhYmVsczogW1wiZG9ja2VyOmRvY2tlcjovL25vZGU6MjItYm9va3dvcm1cIiwgXCJ1YnVudHUtbGF0ZXN0OmRvY2tlcjovL2NhdHRoZWhhY2tlci91YnVudHU6YWN0LTIyLjA0XCIsIFwidWJ1bnR1LTIyLjA0OmRvY2tlcjovL2NhdHRoZWhhY2tlci9Line truncated
"tags": [
"version control",
"collaboration",
"code",
"hosting",
"lightweight",
"runner",
"mysql",
"actions",
"cicd",
"ci"
],
"category": "git",
"logo": "svgs/forgejo.svg",
"minversion": "0.0.0",
"template_last_updated_at": "2026-08-10T11:35:20+02:00",
"port": "3000"
},
"forgejo-with-runner-with-postgresql": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M6LWZhbHNlfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfUE9SVD0ke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfScKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fREJfVFlQRT1wb3N0Z3JlcwogICAgICAtIEZPUkdFSk9fX2RhdGFiYXNlX19IT1NUPXBvc3RncmVzcWwKICAgICAgLSAnRk9SR0VKT19fZGF0YWJhc2VfX05BTUU9JHtQT1NUR1JFU1FMX0RBVEFCQVNFOi1mb3JnZWpvfScKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fVVNFUj0kU0VSVklDRV9VU0VSX1BPU1RHUkVTUUwKICAgICAgLSBGT1JHRUpPX19kYXRhYmFzZV9fUEFTU1dEPSRTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTUUwKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgICAtICdSVU5ORVJfU0hBUkVEX1NFQ1JFVD0ke1NFUlZJQ0VfSEVYXzY0X1JVTk5FUn0nCiAgICAgIC0gRk9SR0VKT19fc2VjdXJpdHlfX0lOU1RBTExfTE9DSz10cnVlCiAgICAgIC0gJ0ZPUkdFSk9fQURNSU5fVVNFUj0ke1NFUlZJQ0VfVVNFUl9BRE1JTn0nCiAgICAgIC0gJ0ZPUkdFSk9fQURNSU5fUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX0FETUlOfScKICAgICAgLSAnRk9SR0VKT19BRE1JTl9FTUFJTD0ke0ZPUkdFSk9fQURNSU5fRU1BSUw6LWFkbWluQGV4YW1wbGUuY29tfScKICAgICAgLSBGT1JHRUpPX19yZXBvc2l0b3J5X19FTkFCTEVfUFVTSF9DUkVBVEVfVVNFUj10cnVlCiAgICAgIC0gRk9SR0VKT19fcmVwb3NpdG9yeV9fREVGQVVMVF9QVVNIX0NSRUFURV9QUklWQVRFPWZhbHNlCiAgICAgIC0gJ0ZPUkdFSk9fX3JlcG9zaXRvcnlfX0RFRkFVTFRfUkVQT19VTklUUz1yZXBvLmNvZGUscmVwby5hY3Rpb25zJwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kYXRhOi9kYXRhJwogICAgICAtICdmb3JnZWpvLXRpbWV6b25lOi9ldGMvdGltZXpvbmU6cm8nCiAgICAgIC0gJ2Zvcmdlam8tbG9jYWx0aW1lOi9ldGMvbG9jYWx0aW1lOnJvJwogICAgcG9ydHM6CiAgICAgIC0gJyR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9OjIyJwogICAgZGVwZW5kc19vbjoKICAgICAgcG9zdGdyZXNxbDoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdjdXJsIC1mcyBodHRwOi8vMTI3LjAuMC4xOjMwMDAgPiAvZGV2L251bGwgJiYgdGVzdCAtZiAvdG1wL3J1bm5lci1yZWdpc3RlcmVkJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDMwCiAgICBjb21tYW5kOiAnYmFzaCAtYyAnJyAvdXNyL2Jpbi9zNi1zdnNjYW4gL2V0Yy9zNiAmIHVudGlsIHN1IC1jICJmb3JnZWpvIGZvcmdlam8tY2xpIGFjdGlvbnMgcmVnaXN0ZXIgLS1rZWVwLWxhYmVscyAtLXNlY3JldCAkJHtSVU5ORVJfU0hBUkVEX1NFQ1JFVDowOjQwfSIgZ2l0IDsgZG8gc2xlZXAgNSA7IGRvbmUgOyBzdSAtYyAiZm9yZ2VqbyBhZG1pbiB1c2VyIGNyZWF0ZSAtLWFkbWluIC0tdXNlcm5hbWUgXCIkJEZPUkdFSk9fQURNSU5fVVNFUlwiIC0tcGFzc3dvcmQgXCIkJEZPUkdFSk9fQURNSU5fUEFTU1dPUkRcIiAtLWVtYWlsIFwiJCRGT1JHRUpPX0FETUlOX0VNQUlMXCIgLS1tdXN0LWNoYW5nZS1wYXNzd29yZD1mYWxzZSIgZ2l0IHx8IHRydWUgOyB0b3VjaCAvdG1wL3J1bm5lci1yZWdpc3RlcmVkIDsgd2FpdCAnJycKICBwb3N0Z3Jlc3FsOgogICAgaW1hZ2U6ICdwb3N0Z3JlczoxNi1hbHBpbmUnCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLXBvc3RncmVzcWwtZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnUE9TVEdSRVNfVVNFUj0ke1NFUlZJQ0VfVVNFUl9QT1NUR1JFU1FMfScKICAgICAgLSAnUE9TVEdSRVNfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTUUx9JwogICAgICAtICdQT1NUR1JFU19EQj0ke1BPU1RHUkVTUUxfREFUQUJBU0U6LWZvcmdlam99JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAogIGRvY2tlci1pbi1kb2NrZXI6CiAgICBpbWFnZTogJ2RvY2tlcjpkaW5kJwogICAgaG9zdG5hbWU6IGRvY2tlcgogICAgcHJpdmlsZWdlZDogdHJ1ZQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGRvY2tlcgogICAgICAgIC0gJy1IJwogICAgICAgIC0gJ3VuaXg6Ly8vdmFyL3J1bi9kb2NrZXIuc29jaycKICAgICAgICAtIGluZm8KICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiAzMHMKICAgICAgcmV0cmllczogMTAKICAgIGVudmlyb25tZW50OgogICAgICAtIERPQ0tFUl9UTFNfQ0VSVERJUj0vY2VydHMKICAgICAgLSBET0NLRVJfSE9TVD1kb2NrZXItaW4tZG9ja2VyCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRpZC1jZXJ0czovY2VydHMnCiAgcnVubmVyLXJlZ2lzdGVyOgogICAgaW1hZ2U6ICdkYXRhLmZvcmdlam8ub3JnL2Zvcmdlam8vcnVubmVyOjEzLjIuMCcKICAgIHJlc3RhcnQ6ICdubycKICAgIGV4Y2x1ZGVfZnJvbV9oYzogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ1JVTk5FUl9TSEFSRURfU0VDUkVUPSR7U0VSVklDRV9IRVhfNjRfUlVOTkVSfScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Zvcmdlam8tcnVubmVyLWRhdGE6L2RhdGEnCiAgICB1c2VyOiAnMDowJwogICAgY29tbWFuZDogJ2Jhc2ggLWVjICcnIHNlY3JldD0kJHtSVU5ORVJfU0hBUkVEX1NFQ1JFVDowOjQwfSA7IHV1aWQ9JCQocHJpbnRmICVzICIkJHtzZWNyZXQ6MDoxNn0iIHwgb2QgLUFuIC10eDEgfCB0ciAtZCAiIFxuIiB8IHNlZCAtRSAicy8oLns4fSkoLns0fSkoLns0fSkoLns0fSkoLnsxMn0pL1wxLVwyLVwzLVw0LVw1LyIpIDsgZm9yZ2Vqby1ydW5uZXIgZ2VuZXJhdGUtY29uZmlnID4gY29uZmlnLnltbCA7IHNlZCAtaSAtZSAic3wgIGxhYmVsczogXFtcXXwgIGxhYmVsczogW1wiZG9ja2VyOmRvY2tlcjovL25vZGU6MjItYm9va3dvcm1cIiwgXCJ1YnVudHUtbGF0ZXN0OmRvY2tlcjovL2NhdHRoZWhhY2tlci91YnVudHU6YWN0LTIyLjA0XCIsIFwidWJ1bnR1LTIyLjA0OmRvY2tlcjoLine truncated
"tags": [
"version control",
"collaboration",
"code",
"hosting",
"lightweight",
"runner",
"postgresql",
"actions",
"cicd",
"ci"
],
"category": "git",
"logo": "svgs/forgejo.svg",
"minversion": "0.0.0",
"template_last_updated_at": "2026-08-10T11:35:20+02:00",
"port": "3000"
},
"forgejo-with-runner": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1M6LWZhbHNlfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ET01BSU49JHtTRVJWSUNFX0ZRRE5fRk9SR0VKT30nCiAgICAgIC0gJ0ZPUkdFSk9fX3NlcnZlcl9fU1NIX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfUE9SVD0ke0ZPUkdFSk9fU1NIX1BPUlQ6LTIyMjIyfScKICAgICAgLSBVU0VSX1VJRD0xMDAwCiAgICAgIC0gVVNFUl9HSUQ9MTAwMAogICAgICAtICdSVU5ORVJfU0hBUkVEX1NFQ1JFVD0ke1NFUlZJQ0VfSEVYXzY0X1JVTk5FUn0nCiAgICAgIC0gRk9SR0VKT19fc2VjdXJpdHlfX0lOU1RBTExfTE9DSz10cnVlCiAgICAgIC0gJ0ZPUkdFSk9fQURNSU5fVVNFUj0ke1NFUlZJQ0VfVVNFUl9BRE1JTn0nCiAgICAgIC0gJ0ZPUkdFSk9fQURNSU5fUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX0FETUlOfScKICAgICAgLSAnRk9SR0VKT19BRE1JTl9FTUFJTD0ke0ZPUkdFSk9fQURNSU5fRU1BSUw6LWFkbWluQGV4YW1wbGUuY29tfScKICAgICAgLSBGT1JHRUpPX19yZXBvc2l0b3J5X19FTkFCTEVfUFVTSF9DUkVBVEVfVVNFUj10cnVlCiAgICAgIC0gRk9SR0VKT19fcmVwb3NpdG9yeV9fREVGQVVMVF9QVVNIX0NSRUFURV9QUklWQVRFPWZhbHNlCiAgICAgIC0gJ0ZPUkdFSk9fX3JlcG9zaXRvcnlfX0RFRkFVTFRfUkVQT19VTklUUz1yZXBvLmNvZGUscmVwby5hY3Rpb25zJwogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kYXRhOi9kYXRhJwogICAgICAtICdmb3JnZWpvLXRpbWV6b25lOi9ldGMvdGltZXpvbmU6cm8nCiAgICAgIC0gJ2Zvcmdlam8tbG9jYWx0aW1lOi9ldGMvbG9jYWx0aW1lOnJvJwogICAgcG9ydHM6CiAgICAgIC0gJyR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9OjIyJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdjdXJsIC1mcyBodHRwOi8vMTI3LjAuMC4xOjMwMDAgPiAvZGV2L251bGwgJiYgdGVzdCAtZiAvdG1wL3J1bm5lci1yZWdpc3RlcmVkJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDMwCiAgICBjb21tYW5kOiAnYmFzaCAtYyAnJyAvdXNyL2Jpbi9zNi1zdnNjYW4gL2V0Yy9zNiAmIHVudGlsIHN1IC1jICJmb3JnZWpvIGZvcmdlam8tY2xpIGFjdGlvbnMgcmVnaXN0ZXIgLS1rZWVwLWxhYmVscyAtLXNlY3JldCAkJHtSVU5ORVJfU0hBUkVEX1NFQ1JFVDowOjQwfSIgZ2l0IDsgZG8gc2xlZXAgNSA7IGRvbmUgOyBzdSAtYyAiZm9yZ2VqbyBhZG1pbiB1c2VyIGNyZWF0ZSAtLWFkbWluIC0tdXNlcm5hbWUgXCIkJEZPUkdFSk9fQURNSU5fVVNFUlwiIC0tcGFzc3dvcmQgXCIkJEZPUkdFSk9fQURNSU5fUEFTU1dPUkRcIiAtLWVtYWlsIFwiJCRGT1JHRUpPX0FETUlOX0VNQUlMXCIgLS1tdXN0LWNoYW5nZS1wYXNzd29yZD1mYWxzZSIgZ2l0IHx8IHRydWUgOyB0b3VjaCAvdG1wL3J1bm5lci1yZWdpc3RlcmVkIDsgd2FpdCAnJycKICBkb2NrZXItaW4tZG9ja2VyOgogICAgaW1hZ2U6ICdkb2NrZXI6ZGluZCcKICAgIGhvc3RuYW1lOiBkb2NrZXIKICAgIHByaXZpbGVnZWQ6IHRydWUKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBkb2NrZXIKICAgICAgICAtICctSCcKICAgICAgICAtICd1bml4Oi8vL3Zhci9ydW4vZG9ja2VyLnNvY2snCiAgICAgICAgLSBpbmZvCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogMzBzCiAgICAgIHJldHJpZXM6IDEwCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBET0NLRVJfVExTX0NFUlRESVI9L2NlcnRzCiAgICAgIC0gRE9DS0VSX0hPU1Q9ZG9ja2VyLWluLWRvY2tlcgogICAgdm9sdW1lczoKICAgICAgLSAnZm9yZ2Vqby1kaWQtY2VydHM6L2NlcnRzJwogIHJ1bm5lci1yZWdpc3RlcjoKICAgIGltYWdlOiAnZGF0YS5mb3JnZWpvLm9yZy9mb3JnZWpvL3J1bm5lcjoxMy4yLjAnCiAgICByZXN0YXJ0OiAnbm8nCiAgICBleGNsdWRlX2Zyb21faGM6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICAtICdSVU5ORVJfU0hBUkVEX1NFQ1JFVD0ke1NFUlZJQ0VfSEVYXzY0X1JVTk5FUn0nCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLXJ1bm5lci1kYXRhOi9kYXRhJwogICAgdXNlcjogJzA6MCcKICAgIGNvbW1hbmQ6ICdiYXNoIC1lYyAnJyBzZWNyZXQ9JCR7UlVOTkVSX1NIQVJFRF9TRUNSRVQ6MDo0MH0gOyB1dWlkPSQkKHByaW50ZiAlcyAiJCR7c2VjcmV0OjA6MTZ9IiB8IG9kIC1BbiAtdHgxIHwgdHIgLWQgIiBcbiIgfCBzZWQgLUUgInMvKC57OH0pKC57NH0pKC57NH0pKC57NH0pKC57MTJ9KS9cMS1cMi1cMy1cNC1cNS8iKSA7IGZvcmdlam8tcnVubmVyIGdlbmVyYXRlLWNvbmZpZyA+IGNvbmZpZy55bWwgOyBzZWQgLWkgLWUgInN8ICBsYWJlbHM6IFxbXF18ICBsYWJlbHM6IFtcImRvY2tlcjpkb2NrZXI6Ly9ub2RlOjIyLWJvb2t3b3JtXCIsIFwidWJ1bnR1LWxhdGVzdDpkb2NrZXI6Ly9jYXR0aGVoYWNrZXIvdWJ1bnR1OmFjdC0yMi4wNFwiLCBcInVidW50dS0yMi4wNDpkb2NrZXI6Ly9jYXR0aGVoYWNrZXIvdWJ1bnR1OmFjdC0yMi4wNFwiXXwiIGNvbmZpZy55bWwgOyBzZWQgLWkgLWUgInN8bmV0d29yazogLip8bmV0d29yazogaG9zdHwiIGNvbmZpZy55bWwgOyBzZWQgLWkgLWUgInN8XiAgZW52czokJHwgIGVudnM6XG4gICAgRE9DS0VSX0hPU1Q6IHRjcDovL2RvY2tlcjoyMzc2XG4gICAgRE9DS0VSX1RMU19WRVJJRlk6IDFcbiAgICBET0NLRVJfQ0VSVF9QQVRIOiAvY2VydHMvY2xpZW50fCIgY29uZmlnLnltbCA7IHNlZCAtaSAtZSAic3xeICBvcHRpb25zOnwgIG9wdGlvbnM6IC12IC9jZXJ0cy9jbGllbnQ6L2NlcnRzL2NsaWVudHwiIGNvbmZpZy55bWwgOyBzZWQgLWkgLWUgInN8ICB2YWxpZF92b2x1bWVzOiBcW1xdJCR8ICB2YWxpZF92b2x1bWVzOlxuICAgIC0gL2NlcnRzL2NsaWVudHwiIGNvbmZpZy55bWwgOyBzZWQgLWkgLWUgInN8ICBjb25uZWN0aW9uczp8ICBjb25uZWN0aW9uczpcbiAgICBkZWZhdWx0OlxuICAgICAgdXJsOiBodHRwOi8vZm9yZ2VqbzozMDAwXG4gICAgICB1dWlkOiAkJHV1aWRcbiAgICAgIHRva2VuOiAkJHNlY3JldHwiIGNvbmZpZy55bWwgOyBjaG93biAtUiAxMDAwOjEwMDAgL2RhdGEgJycnCiAgcnVubmVyOgogICAgaW1hZ2U6ICdkYXRhLmZvcmdlam8ub3JnL2Zvcmdlam8vcnVubmVyOjEzLjIuMCcKICAgIGRlcGVuZHNfb246CiAgICAgIGZvcmdlam86CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgICAgZG9ja2VyLWluLWRvY2tlcjoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgICBydW5uZXItcmVnaXN0ZXI6CiALine truncated
"tags": [
"version control",
"collaboration",
"code",
"hosting",
"lightweight",
"runner",
"actions",
"cicd",
"ci"
],
"category": "git",
"logo": "svgs/forgejo.svg",
"minversion": "0.0.0",
"template_last_updated_at": "2026-08-10T11:35:20+02:00",
"port": "3000"
},
"forgejo": {
"documentation": "https://forgejo.org/docs?utm_source=coolify.io",
"slogan": "Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1MtZmFsc2V9JwogICAgICAtIFVTRVJfVUlEPTEwMDAKICAgICAgLSBVU0VSX0dJRD0xMDAwCiAgICBwb3J0czoKICAgICAgLSAnMjIyMjI6MjInCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRhdGE6L2RhdGEnCiAgICAgIC0gJ2Zvcmdlam8tdGltZXpvbmU6L2V0Yy90aW1lem9uZTpybycKICAgICAgLSAnZm9yZ2Vqby1sb2NhbHRpbWU6L2V0Yy9sb2NhbHRpbWU6cm8nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6MzAwMCcKICAgICAgaW50ZXJ2YWw6IDJzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAxNQo=",
"compose": "c2VydmljZXM6CiAgZm9yZ2VqbzoKICAgIGltYWdlOiAnY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2VqbzoxNScKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9GT1JHRUpPXzMwMDAKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19ST09UX1VSTD0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TPSR7Rk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dFRF9ET01BSU5TfScKICAgICAgLSAnRk9SR0VKT19fbWlncmF0aW9uc19fQUxMT1dfTE9DQUxORVRXT1JLUz0ke0ZPUkdFSk9fX21pZ3JhdGlvbnNfX0FMTE9XX0xPQ0FMTkVUV09SS1MtZmFsc2V9JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX0RPTUFJTj0ke1NFUlZJQ0VfRlFETl9GT1JHRUpPfScKICAgICAgLSAnRk9SR0VKT19fc2VydmVyX19TU0hfRE9NQUlOPSR7U0VSVklDRV9GUUROX0ZPUkdFSk99JwogICAgICAtICdGT1JHRUpPX19zZXJ2ZXJfX1NTSF9QT1JUPSR7Rk9SR0VKT19TU0hfUE9SVDotMjIyMjJ9JwogICAgICAtIFVTRVJfVUlEPTEwMDAKICAgICAgLSBVU0VSX0dJRD0xMDAwCiAgICBwb3J0czoKICAgICAgLSAnJHtGT1JHRUpPX1NTSF9QT1JUOi0yMjIyMn06MjInCiAgICB2b2x1bWVzOgogICAgICAtICdmb3JnZWpvLWRhdGE6L2RhdGEnCiAgICAgIC0gJ2Zvcmdlam8tdGltZXpvbmU6L2V0Yy90aW1lem9uZTpybycKICAgICAgLSAnZm9yZ2Vqby1sb2NhbHRpbWU6L2V0Yy9sb2NhbHRpbWU6cm8nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6MzAwMCcKICAgICAgaW50ZXJ2YWw6IDJzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAxNQo=",
"tags": [
"version control",
"collaboration",