diff --git a/templates/compose/gitea-with-mariadb.yaml b/templates/compose/gitea-with-mariadb.yaml new file mode 100644 index 000000000..e5a2e0ef1 --- /dev/null +++ b/templates/compose/gitea-with-mariadb.yaml @@ -0,0 +1,45 @@ +# documentation: https://docs.gitea.com +# slogan: Gitea (with MariaDB) is a self-hosted, lightweight Git service, offering version control, collaboration, and code hosting. +# tags: version control, collaboration, code, hosting, lightweight, mariadb + +services: + gitea: + image: gitea/gitea:latest + environment: + - SERVICE_FQDN_GITEA + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=mysql + - GITEA__database__HOST=mariadb + - GITEA__database__NAME=${MYSQL_DATABASE-gitea} + - GITEA__database__USER=$SERVICE_USER_MYSQL + - GITEA__database__PASSWD=$SERVICE_PASSWORD_MYSQL + volumes: + - gitea-data:/var/lib/gitea + - gitea-timezone:/etc/timezone:ro + - gitea-localtime:/etc/localtime:ro + labels: + - "traefik.http.services.gitea-websecure.loadbalancer.server.port=3000" + depends_on: + mariadb: + condition: service_healthy + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000"] + interval: 2s + timeout: 10s + retries: 15 + + mariadb: + image: mariadb:11 + volumes: + - gitea-mariadb-data:/var/lib/mysql + environment: + - MYSQL_USER=${SERVICE_USER_MYSQL} + - MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT} + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + interval: 5s + timeout: 20s + retries: 10 diff --git a/templates/compose/gitea-with-mysql.yaml b/templates/compose/gitea-with-mysql.yaml new file mode 100644 index 000000000..d7cdd8a4f --- /dev/null +++ b/templates/compose/gitea-with-mysql.yaml @@ -0,0 +1,45 @@ +# documentation: https://docs.gitea.com +# slogan: Gitea (with MySQL) is a self-hosted, lightweight Git service, offering version control, collaboration, and code hosting. +# tags: version control, collaboration, code, hosting, lightweight, mysql + +services: + gitea: + image: gitea/gitea:latest + environment: + - SERVICE_FQDN_GITEA + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=mysql + - GITEA__database__HOST=mysql + - GITEA__database__NAME=${MYSQL_DATABASE-gitea} + - GITEA__database__USER=$SERVICE_USER_MYSQL + - GITEA__database__PASSWD=$SERVICE_PASSWORD_MYSQL + volumes: + - gitea-data:/var/lib/gitea + - gitea-timezone:/etc/timezone:ro + - gitea-localtime:/etc/localtime:ro + labels: + - "traefik.http.services.gitea-websecure.loadbalancer.server.port=3000" + depends_on: + mysql: + condition: service_healthy + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000"] + interval: 2s + timeout: 10s + retries: 15 + + mysql: + image: mysql:8.0 + volumes: + - gitea-mysql-data:/var/lib/mysql + environment: + - MYSQL_USER=${SERVICE_USER_MYSQL} + - MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT} + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + interval: 5s + timeout: 20s + retries: 10 diff --git a/templates/compose/gitea-with-postgresql.yaml b/templates/compose/gitea-with-postgresql.yaml new file mode 100644 index 000000000..2de0dcabb --- /dev/null +++ b/templates/compose/gitea-with-postgresql.yaml @@ -0,0 +1,44 @@ +# documentation: https://docs.gitea.com +# slogan: Gitea (with PostgreSQL)vis a self-hosted, lightweight Git service, offering version control, collaboration, and code hosting. +# tags: version control, collaboration, code, hosting, lightweight, postgresql + +services: + gitea: + image: gitea/gitea:latest + environment: + - SERVICE_FQDN_GITEA + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=postgres + - GITEA__database__HOST=postgresql + - GITEA__database__NAME=${POSTGRESQL_DATABASE-gitea} + - GITEA__database__USER=$SERVICE_USER_POSTGRESQL + - GITEA__database__PASSWD=$SERVICE_PASSWORD_POSTGRESQL + volumes: + - gitea-data:/var/lib/gitea + - gitea-timezone:/etc/timezone:ro + - gitea-localtime:/etc/localtime:ro + labels: + - "traefik.http.services.gitea-websecure.loadbalancer.server.port=3000" + depends_on: + postgresql: + condition: service_healthy + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000"] + interval: 2s + timeout: 10s + retries: 15 + + postgresql: + image: postgres:15-alpine + volumes: + - gitea-postgresql-data:/var/lib/postgresql/data + environment: + - POSTGRES_USER=${SERVICE_USER_POSTGRESQL} + - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL} + - POSTGRES_DB=${POSTGRESQL_DATABASE} + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + interval: 5s + timeout: 20s + retries: 10 diff --git a/templates/compose/gitea.yaml b/templates/compose/gitea.yaml new file mode 100644 index 000000000..99d7f424a --- /dev/null +++ b/templates/compose/gitea.yaml @@ -0,0 +1,22 @@ +# documentation: https://docs.gitea.com +# slogan: Gitea is a self-hosted, lightweight Git service, offering version control, collaboration, and code hosting. +# tags: version control, collaboration, code, hosting, lightweight + +services: + gitea: + image: gitea/gitea:latest + environment: + - SERVICE_FQDN_GITEA + - USER_UID=1000 + - USER_GID=1000 + volumes: + - gitea-data:/var/lib/gitea + - gitea-timezone:/etc/timezone:ro + - gitea-localtime:/etc/localtime:ro + labels: + - "traefik.http.services.gitea-websecure.loadbalancer.server.port=3000" + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000"] + interval: 2s + timeout: 10s + retries: 15 diff --git a/templates/compose/nextcloud.yaml b/templates/compose/nextcloud.yaml new file mode 100644 index 000000000..218f06e53 --- /dev/null +++ b/templates/compose/nextcloud.yaml @@ -0,0 +1,20 @@ +# documentation: https://docs.nextcloud.com +# slogan: NextCloud is a self-hosted, open-source platform that provides file storage, collaboration, and communication tools for seamless data management. +# tags: cloud, collaboration, communication, filestorage, data + +services: + nextcloud: + image: lscr.io/linuxserver/nextcloud:latest + environment: + - SERVICE_FQDN_NEXTCLOUD + - PUID=1000 + - PGID=1000 + - TZ=Europe/Madrid + volumes: + - nextcloud-config:/config + - nextcloud-data:/data + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:80"] + interval: 2s + timeout: 10s + retries: 15