mirror of
https://github.com/coollabsio/coolify.git
synced 2026-10-28 09:34:36 +08:00
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:
1 parent
34b3a18307
commit
6099c0b4a3
10 files changed
+364
-198
No files matched your search
@@ -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"]
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in new issue
Block a user