diff --git a/templates/compose/seafile.yaml b/templates/compose/seafile.yaml index ddd1919d44..0ab40d669a 100644 --- a/templates/compose/seafile.yaml +++ b/templates/compose/seafile.yaml @@ -30,6 +30,8 @@ services: - JWT_PRIVATE_KEY=${SERVICE_PASSWORD_64_JWT} - SEAFILE_LOG_TO_STDOUT=${SEAFILE_LOG_TO_STDOUT:-true} - 'FILE_SERVER_ROOT=${SERVICE_URL_SEAFILE}/seafhttp' + - ENABLE_SEADOC=${ENABLE_SEADOC:-true} + - SEADOC_SERVER_URL=${SERVICE_URL_SEADOC} depends_on: mariadb: condition: service_healthy @@ -41,6 +43,30 @@ services: timeout: 20s retries: 5 + seadoc: + image: seafileltd/sdoc-server:1.0-latest + volumes: + - seadoc-data:/shared + environment: + - SERVICE_URL_SEADOC_80 + - DB_HOST=mariadb + - DB_PORT=3306 + - DB_USER=${SERVICE_USER_MYSQL} + - DB_PASSWORD=${SERVICE_PASSWORD_MYSQL} + - DB_NAME=${SEAFILE_MYSQL_DB_SEAHUB_DB_NAME:-seahub_db} + - TIME_ZONE=${TIME_ZONE:-UTC} + - JWT_PRIVATE_KEY=${SERVICE_PASSWORD_64_JWT} + - NON_ROOT=${NON_ROOT:-false} + - SEAHUB_SERVICE_URL=http://seafile + depends_on: + mariadb: + condition: service_healthy + healthcheck: + test: ["CMD", "curl", "-f", "http://127.0.0.1:80/ping"] + interval: 10s + timeout: 20s + retries: 5 + mariadb: image: mariadb:11 volumes: diff --git a/templates/service-templates-latest.json b/templates/service-templates-latest.json index 57a358a233..c41d67790f 100644 --- a/templates/service-templates-latest.json +++ b/templates/service-templates-latest.json @@ -4891,7 +4891,7 @@ "seafile": { "documentation": "https://manual.seafile.com?utm_source=coolify.io", "slogan": "Open source cloud storage system for file sync, share and document collaboration", - "compose": "c2VydmljZXM6CiAgc2VhZmlsZToKICAgIGltYWdlOiAnc2VhZmlsZWx0ZC9zZWFmaWxlLW1jOjEyLjAtbGF0ZXN0JwogICAgdm9sdW1lczoKICAgICAgLSAnc2VhZmlsZS1kYXRhOi9zaGFyZWQnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX1VSTF9TRUFGSUxFXzgwCiAgICAgIC0gJ1NFQUZJTEVfU0VSVkVSX0hPU1ROQU1FPSR7U0VSVklDRV9GUUROX1NFQUZJTEV9JwogICAgICAtIERCX0hPU1Q9bWFyaWFkYgogICAgICAtIERCX1BPUlQ9MzMwNgogICAgICAtICdEQl9ST09UX1BBU1NXRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUxST09UfScKICAgICAgLSAnREJfVVNFUj0ke1NFUlZJQ0VfVVNFUl9NWVNRTH0nCiAgICAgIC0gJ0RCX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICAgIC0gJ1NFQUZJTEVfTVlTUUxfREJfQ0NORVRfREJfTkFNRT0ke1NFQUZJTEVfTVlTUUxfREJfQ0NORVRfREJfTkFNRTotY2NuZXRfZGJ9JwogICAgICAtICdTRUFGSUxFX01ZU1FMX0RCX1NFQUZJTEVfREJfTkFNRT0ke1NFQUZJTEVfTVlTUUxfREJfU0VBRklMRV9EQl9OQU1FOi1zZWFmaWxlX2RifScKICAgICAgLSAnU0VBRklMRV9NWVNRTF9EQl9TRUFIVUJfREJfTkFNRT0ke1NFQUZJTEVfTVlTUUxfREJfU0VBSFVCX0RCX05BTUU6LXNlYWh1Yl9kYn0nCiAgICAgIC0gJ1RJTUVfWk9ORT0ke1RJTUVfWk9ORTotVVRDfScKICAgICAgLSAnSU5JVF9TRUFGSUxFX0FETUlOX0VNQUlMPSR7SU5JVF9TRUFGSUxFX0FETUlOX0VNQUlMOi10ZXN0QGV4YW1wbGUuY29tfScKICAgICAgLSAnSU5JVF9TRUFGSUxFX0FETUlOX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9BRE1JTn0nCiAgICAgIC0gU0VBRklMRV9TRVJWRVJfUFJPVE9DT0w9aHR0cHMKICAgICAgLSAnU0lURV9ST09UPSR7U0lURV9ST09UOi0vfScKICAgICAgLSAnTk9OX1JPT1Q9JHtOT05fUk9PVDotZmFsc2V9JwogICAgICAtICdKV1RfUFJJVkFURV9LRVk9JHtTRVJWSUNFX1BBU1NXT1JEXzY0X0pXVH0nCiAgICAgIC0gJ1NFQUZJTEVfTE9HX1RPX1NURE9VVD0ke1NFQUZJTEVfTE9HX1RPX1NURE9VVDotdHJ1ZX0nCiAgICAgIC0gJ0ZJTEVfU0VSVkVSX1JPT1Q9JHtTRVJWSUNFX1VSTF9TRUFGSUxFfS9zZWFmaHR0cCcKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgICAgbWVtY2FjaGVkOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9zdGFydGVkCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAvYXBpMi9waW5nJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiA1CiAgbWFyaWFkYjoKICAgIGltYWdlOiAnbWFyaWFkYjoxMScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3NlYWZpbGVfbWFyaWFkYl9kYXRhOi92YXIvbGliL215c3FsJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ01ZU1FMX1JPT1RfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMUk9PVH0nCiAgICAgIC0gJ01ZU1FMX1VTRVI9JHtTRVJWSUNFX1VTRVJfTVlTUUx9JwogICAgICAtICdNWVNRTF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUx9JwogICAgICAtICdNWVNRTF9EQVRBQkFTRT0ke01ZU1FMX0RBVEFCQVNFOi1zZWFmaWxlLWRifScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBoZWFsdGhjaGVjay5zaAogICAgICAgIC0gJy0tY29ubmVjdCcKICAgICAgICAtICctLWlubm9kYl9pbml0aWFsaXplZCcKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogNQogIG1lbWNhY2hlZDoKICAgIGltYWdlOiAnbWVtY2FjaGVkOmxhdGVzdCcKICAgIGVudHJ5cG9pbnQ6ICdtZW1jYWNoZWQgLW0gMjU2JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdiYXNoIC1jICJlY2hvIHZlcnNpb24gfCAoZXhlYyAzPD4vZGV2L3RjcC9sb2NhbGhvc3QvMTEyMTE7IGNhdCA+JjM7IHRpbWVvdXQgMC41IGNhdCA8JjM7IGV4ZWMgMzwmLSkiJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiA1Cg==", + "compose": "c2VydmljZXM6CiAgc2VhZmlsZToKICAgIGltYWdlOiAnc2VhZmlsZWx0ZC9zZWFmaWxlLW1jOjEyLjAtbGF0ZXN0JwogICAgdm9sdW1lczoKICAgICAgLSAnc2VhZmlsZS1kYXRhOi9zaGFyZWQnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX1VSTF9TRUFGSUxFXzgwCiAgICAgIC0gJ1NFQUZJTEVfU0VSVkVSX0hPU1ROQU1FPSR7U0VSVklDRV9GUUROX1NFQUZJTEV9JwogICAgICAtIERCX0hPU1Q9bWFyaWFkYgogICAgICAtIERCX1BPUlQ9MzMwNgogICAgICAtICdEQl9ST09UX1BBU1NXRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUxST09UfScKICAgICAgLSAnREJfVVNFUj0ke1NFUlZJQ0VfVVNFUl9NWVNRTH0nCiAgICAgIC0gJ0RCX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICAgIC0gJ1NFQUZJTEVfTVlTUUxfREJfQ0NORVRfREJfTkFNRT0ke1NFQUZJTEVfTVlTUUxfREJfQ0NORVRfREJfTkFNRTotY2NuZXRfZGJ9JwogICAgICAtICdTRUFGSUxFX01ZU1FMX0RCX1NFQUZJTEVfREJfTkFNRT0ke1NFQUZJTEVfTVlTUUxfREJfU0VBRklMRV9EQl9OQU1FOi1zZWFmaWxlX2RifScKICAgICAgLSAnU0VBRklMRV9NWVNRTF9EQl9TRUFIVUJfREJfTkFNRT0ke1NFQUZJTEVfTVlTUUxfREJfU0VBSFVCX0RCX05BTUU6LXNlYWh1Yl9kYn0nCiAgICAgIC0gJ1RJTUVfWk9ORT0ke1RJTUVfWk9ORTotVVRDfScKICAgICAgLSAnSU5JVF9TRUFGSUxFX0FETUlOX0VNQUlMPSR7SU5JVF9TRUFGSUxFX0FETUlOX0VNQUlMOi10ZXN0QGV4YW1wbGUuY29tfScKICAgICAgLSAnSU5JVF9TRUFGSUxFX0FETUlOX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9BRE1JTn0nCiAgICAgIC0gU0VBRklMRV9TRVJWRVJfUFJPVE9DT0w9aHR0cHMKICAgICAgLSAnU0lURV9ST09UPSR7U0lURV9ST09UOi0vfScKICAgICAgLSAnTk9OX1JPT1Q9JHtOT05fUk9PVDotZmFsc2V9JwogICAgICAtICdKV1RfUFJJVkFURV9LRVk9JHtTRVJWSUNFX1BBU1NXT1JEXzY0X0pXVH0nCiAgICAgIC0gJ1NFQUZJTEVfTE9HX1RPX1NURE9VVD0ke1NFQUZJTEVfTE9HX1RPX1NURE9VVDotdHJ1ZX0nCiAgICAgIC0gJ0ZJTEVfU0VSVkVSX1JPT1Q9JHtTRVJWSUNFX1VSTF9TRUFGSUxFfS9zZWFmaHR0cCcKICAgICAgLSAnRU5BQkxFX1NFQURPQz0ke0VOQUJMRV9TRUFET0M6LXRydWV9JwogICAgICAtICdTRUFET0NfU0VSVkVSX1VSTD0ke1NFUlZJQ0VfVVJMX1NFQURPQ30nCiAgICBkZXBlbmRzX29uOgogICAgICBtYXJpYWRiOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICAgIG1lbWNhY2hlZDoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2Vfc3RhcnRlZAogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwL2FwaTIvcGluZycKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogNQogIHNlYWRvYzoKICAgIGltYWdlOiAnc2VhZmlsZWx0ZC9zZG9jLXNlcnZlcjoxLjAtbGF0ZXN0JwogICAgdm9sdW1lczoKICAgICAgLSAnc2VhZG9jLWRhdGE6L3NoYXJlZCcKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfVVJMX1NFQURPQ184MAogICAgICAtIERCX0hPU1Q9bWFyaWFkYgogICAgICAtIERCX1BPUlQ9MzMwNgogICAgICAtICdEQl9VU0VSPSR7U0VSVklDRV9VU0VSX01ZU1FMfScKICAgICAgLSAnREJfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMfScKICAgICAgLSAnREJfTkFNRT0ke1NFQUZJTEVfTVlTUUxfREJfU0VBSFVCX0RCX05BTUU6LXNlYWh1Yl9kYn0nCiAgICAgIC0gJ1RJTUVfWk9ORT0ke1RJTUVfWk9ORTotVVRDfScKICAgICAgLSAnSldUX1BSSVZBVEVfS0VZPSR7U0VSVklDRV9QQVNTV09SRF82NF9KV1R9JwogICAgICAtICdOT05fUk9PVD0ke05PTl9ST09UOi1mYWxzZX0nCiAgICAgIC0gJ1NFQUhVQl9TRVJWSUNFX1VSTD1odHRwOi8vc2VhZmlsZScKICAgIGRlcGVuZHNfb246CiAgICAgIG1hcmlhZGI6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHkKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MC9waW5nJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiA1CiAgbWFyaWFkYjoKICAgIGltYWdlOiAnbWFyaWFkYjoxMScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3NlYWZpbGVfbWFyaWFkYl9kYXRhOi92YXIvbGliL215c3FsJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gJ01ZU1FMX1JPT1RfUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMUk9PVH0nCiAgICAgIC0gJ01ZU1FMX1VTRVI9JHtTRVJWSUNFX1VTRVJfTVlTUUx9JwogICAgICAtICdNWVNRTF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUx9JwogICAgICAtICdNWVNRTF9EQVRBQkFTRT0ke01ZU1FMX0RBVEFCQVNFOi1zZWFmaWxlLWRifScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBoZWFsdGhjaGVjay5zaAogICAgICAgIC0gJy0tY29ubmVjdCcKICAgICAgICAtICctLWlubm9kYl9pbml0aWFsaXplZCcKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogNQogIG1lbWNhY2hlZDoKICAgIGltYWdlOiAnbWVtY2FjaGVkOmxhdGVzdCcKICAgIGVudHJ5cG9pbnQ6ICdtZW1jYWNoZWQgLW0gMjU2JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdiYXNoIC1jICJlY2hvIHZlcnNpb24gfCAoZXhlYyAzPD4vZGV2L3RjcC9sb2NhbGhvc3QvMTEyMTE7IGNhdCA+JjM7IHRpbWVvdXQgMC41IGNhdCA8JjM7IGV4ZWMgMzwmLSkiJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiA1Cg==", "tags": [ "file-manager", "file-sharing", diff --git a/templates/service-templates.json b/templates/service-templates.json index e78bfce78b..2800797dc5 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -4891,7 +4891,7 @@ "seafile": { "documentation": "https://manual.seafile.com?utm_source=coolify.io", "slogan": "Open source cloud storage system for file sync, share and document collaboration", - "compose": "c2VydmljZXM6CiAgc2VhZmlsZToKICAgIGltYWdlOiAnc2VhZmlsZWx0ZC9zZWFmaWxlLW1jOjEyLjAtbGF0ZXN0JwogICAgdm9sdW1lczoKICAgICAgLSAnc2VhZmlsZS1kYXRhOi9zaGFyZWQnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fU0VBRklMRV84MAogICAgICAtICdTRUFGSUxFX1NFUlZFUl9IT1NUTkFNRT0ke1NFUlZJQ0VfRlFETl9TRUFGSUxFfScKICAgICAgLSBEQl9IT1NUPW1hcmlhZGIKICAgICAgLSBEQl9QT1JUPTMzMDYKICAgICAgLSAnREJfUk9PVF9QQVNTV0Q9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMUk9PVH0nCiAgICAgIC0gJ0RCX1VTRVI9JHtTRVJWSUNFX1VTRVJfTVlTUUx9JwogICAgICAtICdEQl9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUx9JwogICAgICAtICdTRUFGSUxFX01ZU1FMX0RCX0NDTkVUX0RCX05BTUU9JHtTRUFGSUxFX01ZU1FMX0RCX0NDTkVUX0RCX05BTUU6LWNjbmV0X2RifScKICAgICAgLSAnU0VBRklMRV9NWVNRTF9EQl9TRUFGSUxFX0RCX05BTUU9JHtTRUFGSUxFX01ZU1FMX0RCX1NFQUZJTEVfREJfTkFNRTotc2VhZmlsZV9kYn0nCiAgICAgIC0gJ1NFQUZJTEVfTVlTUUxfREJfU0VBSFVCX0RCX05BTUU9JHtTRUFGSUxFX01ZU1FMX0RCX1NFQUhVQl9EQl9OQU1FOi1zZWFodWJfZGJ9JwogICAgICAtICdUSU1FX1pPTkU9JHtUSU1FX1pPTkU6LVVUQ30nCiAgICAgIC0gJ0lOSVRfU0VBRklMRV9BRE1JTl9FTUFJTD0ke0lOSVRfU0VBRklMRV9BRE1JTl9FTUFJTDotdGVzdEBleGFtcGxlLmNvbX0nCiAgICAgIC0gJ0lOSVRfU0VBRklMRV9BRE1JTl9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfQURNSU59JwogICAgICAtIFNFQUZJTEVfU0VSVkVSX1BST1RPQ09MPWh0dHBzCiAgICAgIC0gJ1NJVEVfUk9PVD0ke1NJVEVfUk9PVDotL30nCiAgICAgIC0gJ05PTl9ST09UPSR7Tk9OX1JPT1Q6LWZhbHNlfScKICAgICAgLSAnSldUX1BSSVZBVEVfS0VZPSR7U0VSVklDRV9QQVNTV09SRF82NF9KV1R9JwogICAgICAtICdTRUFGSUxFX0xPR19UT19TVERPVVQ9JHtTRUFGSUxFX0xPR19UT19TVERPVVQ6LXRydWV9JwogICAgICAtICdGSUxFX1NFUlZFUl9ST09UPSR7U0VSVklDRV9GUUROX1NFQUZJTEV9L3NlYWZodHRwJwogICAgZGVwZW5kc19vbjoKICAgICAgbWFyaWFkYjoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgICBtZW1jYWNoZWQ6CiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX3N0YXJ0ZWQKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovLzEyNy4wLjAuMTo4MC9hcGkyL3BpbmcnCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDUKICBtYXJpYWRiOgogICAgaW1hZ2U6ICdtYXJpYWRiOjExJwogICAgdm9sdW1lczoKICAgICAgLSAnc2VhZmlsZV9tYXJpYWRiX2RhdGE6L3Zhci9saWIvbXlzcWwnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnTVlTUUxfUk9PVF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUxST09UfScKICAgICAgLSAnTVlTUUxfVVNFUj0ke1NFUlZJQ0VfVVNFUl9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX0RBVEFCQVNFPSR7TVlTUUxfREFUQUJBU0U6LXNlYWZpbGUtZGJ9JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGhlYWx0aGNoZWNrLnNoCiAgICAgICAgLSAnLS1jb25uZWN0JwogICAgICAgIC0gJy0taW5ub2RiX2luaXRpYWxpemVkJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiA1CiAgbWVtY2FjaGVkOgogICAgaW1hZ2U6ICdtZW1jYWNoZWQ6bGF0ZXN0JwogICAgZW50cnlwb2ludDogJ21lbWNhY2hlZCAtbSAyNTYnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ2Jhc2ggLWMgImVjaG8gdmVyc2lvbiB8IChleGVjIDM8Pi9kZXYvdGNwL2xvY2FsaG9zdC8xMTIxMTsgY2F0ID4mMzsgdGltZW91dCAwLjUgY2F0IDwmMzsgZXhlYyAzPCYtKSInCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDUK", + "compose": "c2VydmljZXM6CiAgc2VhZmlsZToKICAgIGltYWdlOiAnc2VhZmlsZWx0ZC9zZWFmaWxlLW1jOjEyLjAtbGF0ZXN0JwogICAgdm9sdW1lczoKICAgICAgLSAnc2VhZmlsZS1kYXRhOi9zaGFyZWQnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fU0VBRklMRV84MAogICAgICAtICdTRUFGSUxFX1NFUlZFUl9IT1NUTkFNRT0ke1NFUlZJQ0VfRlFETl9TRUFGSUxFfScKICAgICAgLSBEQl9IT1NUPW1hcmlhZGIKICAgICAgLSBEQl9QT1JUPTMzMDYKICAgICAgLSAnREJfUk9PVF9QQVNTV0Q9JHtTRVJWSUNFX1BBU1NXT1JEX01ZU1FMUk9PVH0nCiAgICAgIC0gJ0RCX1VTRVI9JHtTRVJWSUNFX1VTRVJfTVlTUUx9JwogICAgICAtICdEQl9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUx9JwogICAgICAtICdTRUFGSUxFX01ZU1FMX0RCX0NDTkVUX0RCX05BTUU9JHtTRUFGSUxFX01ZU1FMX0RCX0NDTkVUX0RCX05BTUU6LWNjbmV0X2RifScKICAgICAgLSAnU0VBRklMRV9NWVNRTF9EQl9TRUFGSUxFX0RCX05BTUU9JHtTRUFGSUxFX01ZU1FMX0RCX1NFQUZJTEVfREJfTkFNRTotc2VhZmlsZV9kYn0nCiAgICAgIC0gJ1NFQUZJTEVfTVlTUUxfREJfU0VBSFVCX0RCX05BTUU9JHtTRUFGSUxFX01ZU1FMX0RCX1NFQUhVQl9EQl9OQU1FOi1zZWFodWJfZGJ9JwogICAgICAtICdUSU1FX1pPTkU9JHtUSU1FX1pPTkU6LVVUQ30nCiAgICAgIC0gJ0lOSVRfU0VBRklMRV9BRE1JTl9FTUFJTD0ke0lOSVRfU0VBRklMRV9BRE1JTl9FTUFJTDotdGVzdEBleGFtcGxlLmNvbX0nCiAgICAgIC0gJ0lOSVRfU0VBRklMRV9BRE1JTl9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfQURNSU59JwogICAgICAtIFNFQUZJTEVfU0VSVkVSX1BST1RPQ09MPWh0dHBzCiAgICAgIC0gJ1NJVEVfUk9PVD0ke1NJVEVfUk9PVDotL30nCiAgICAgIC0gJ05PTl9ST09UPSR7Tk9OX1JPT1Q6LWZhbHNlfScKICAgICAgLSAnSldUX1BSSVZBVEVfS0VZPSR7U0VSVklDRV9QQVNTV09SRF82NF9KV1R9JwogICAgICAtICdTRUFGSUxFX0xPR19UT19TVERPVVQ9JHtTRUFGSUxFX0xPR19UT19TVERPVVQ6LXRydWV9JwogICAgICAtICdGSUxFX1NFUlZFUl9ST09UPSR7U0VSVklDRV9GUUROX1NFQUZJTEV9L3NlYWZodHRwJwogICAgICAtICdFTkFCTEVfU0VBRE9DPSR7RU5BQkxFX1NFQURPQzotdHJ1ZX0nCiAgICAgIC0gJ1NFQURPQ19TRVJWRVJfVVJMPSR7U0VSVklDRV9GUUROX1NFQURPQ30nCiAgICBkZXBlbmRzX29uOgogICAgICBtYXJpYWRiOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICAgIG1lbWNhY2hlZDoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2Vfc3RhcnRlZAogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwL2FwaTIvcGluZycKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiAyMHMKICAgICAgcmV0cmllczogNQogIHNlYWRvYzoKICAgIGltYWdlOiAnc2VhZmlsZWx0ZC9zZG9jLXNlcnZlcjoxLjAtbGF0ZXN0JwogICAgdm9sdW1lczoKICAgICAgLSAnc2VhZG9jLWRhdGE6L3NoYXJlZCcKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9TRUFET0NfODAKICAgICAgLSBEQl9IT1NUPW1hcmlhZGIKICAgICAgLSBEQl9QT1JUPTMzMDYKICAgICAgLSAnREJfVVNFUj0ke1NFUlZJQ0VfVVNFUl9NWVNRTH0nCiAgICAgIC0gJ0RCX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICAgIC0gJ0RCX05BTUU9JHtTRUFGSUxFX01ZU1FMX0RCX1NFQUhVQl9EQl9OQU1FOi1zZWFodWJfZGJ9JwogICAgICAtICdUSU1FX1pPTkU9JHtUSU1FX1pPTkU6LVVUQ30nCiAgICAgIC0gJ0pXVF9QUklWQVRFX0tFWT0ke1NFUlZJQ0VfUEFTU1dPUkRfNjRfSldUfScKICAgICAgLSAnTk9OX1JPT1Q9JHtOT05fUk9PVDotZmFsc2V9JwogICAgICAtICdTRUFIVUJfU0VSVklDRV9GUUROPWh0dHA6Ly9zZWFmaWxlJwogICAgZGVwZW5kc19vbjoKICAgICAgbWFyaWFkYjoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwL3BpbmcnCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDUKICBtYXJpYWRiOgogICAgaW1hZ2U6ICdtYXJpYWRiOjExJwogICAgdm9sdW1lczoKICAgICAgLSAnc2VhZmlsZV9tYXJpYWRiX2RhdGE6L3Zhci9saWIvbXlzcWwnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSAnTVlTUUxfUk9PVF9QQVNTV09SRD0ke1NFUlZJQ0VfUEFTU1dPUkRfTVlTUUxST09UfScKICAgICAgLSAnTVlTUUxfVVNFUj0ke1NFUlZJQ0VfVVNFUl9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9NWVNRTH0nCiAgICAgIC0gJ01ZU1FMX0RBVEFCQVNFPSR7TVlTUUxfREFUQUJBU0U6LXNlYWZpbGUtZGJ9JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGhlYWx0aGNoZWNrLnNoCiAgICAgICAgLSAnLS1jb25uZWN0JwogICAgICAgIC0gJy0taW5ub2RiX2luaXRpYWxpemVkJwogICAgICBpbnRlcnZhbDogMTBzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiA1CiAgbWVtY2FjaGVkOgogICAgaW1hZ2U6ICdtZW1jYWNoZWQ6bGF0ZXN0JwogICAgZW50cnlwb2ludDogJ21lbWNhY2hlZCAtbSAyNTYnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ2Jhc2ggLWMgImVjaG8gdmVyc2lvbiB8IChleGVjIDM8Pi9kZXYvdGNwL2xvY2FsaG9zdC8xMTIxMTsgY2F0ID4mMzsgdGltZW91dCAwLjUgY2F0IDwmMzsgZXhlYyAzPCYtKSInCiAgICAgIGludGVydmFsOiAxMHMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDUK", "tags": [ "file-manager", "file-sharing", diff --git a/tests/Unit/SeafileServiceTemplateTest.php b/tests/Unit/SeafileServiceTemplateTest.php new file mode 100644 index 0000000000..ad4a05a143 --- /dev/null +++ b/tests/Unit/SeafileServiceTemplateTest.php @@ -0,0 +1,23 @@ +toStartWith('seafileltd/sdoc-server:') + ->and($seadoc)->toContain('SERVICE_URL_SEADOC_80') + ->and($seafile)->toContain('ENABLE_SEADOC=${ENABLE_SEADOC:-true}') + // Seahub needs an absolute URL with a scheme, so SERVICE_FQDN_* (host only) does not work here. + ->and($seafile)->toContain('SEADOC_SERVER_URL=${SERVICE_URL_SEADOC}') + ->and($seadoc)->toContain('JWT_PRIVATE_KEY=${SERVICE_PASSWORD_64_JWT}') + ->and($seafile)->toContain('JWT_PRIVATE_KEY=${SERVICE_PASSWORD_64_JWT}') + ->and($seadoc)->toContain('DB_NAME=${SEAFILE_MYSQL_DB_SEAHUB_DB_NAME:-seahub_db}') + ->and($seafile)->toContain('SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=${SEAFILE_MYSQL_DB_SEAHUB_DB_NAME:-seahub_db}'); + + $templates = json_decode(file_get_contents(__DIR__.'/../../templates/service-templates-latest.json'), true, flags: JSON_THROW_ON_ERROR); + + expect(base64_decode($templates['seafile']['compose']))->toContain('SEADOC_SERVER_URL=${SERVICE_URL_SEADOC}'); +});