From 22ec0f8826736692b6233fd0126075ca8cad20cd Mon Sep 17 00:00:00 2001 From: TheH2SO4 <69685986+theh2so4@users.noreply.github.com> Date: Mon, 23 Oct 2023 11:30:01 +0200 Subject: [PATCH 01/11] [+] Template: Emby MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🆕 **New Template**: -> â„šī¸ **Emby**: A media server software that allows you to organize, stream, and access your multimedia content effortlessly, making it easy to enjoy your favorite movies, TV shows, music, and more. --- templates/compose/emby.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 templates/compose/emby.yaml diff --git a/templates/compose/emby.yaml b/templates/compose/emby.yaml new file mode 100644 index 000000000..2bb7b1538 --- /dev/null +++ b/templates/compose/emby.yaml @@ -0,0 +1,20 @@ +# documentation: https://emby.media/support/articles/Home.html +# slogan: A media server software that allows you to organize, stream, and access your multimedia content effortlessly, making it easy to enjoy your favorite movies, TV shows, music, and more. + +services: + emby: + image: lscr.io/linuxserver/emby:latest + environment: + - SERVICE_FQDN_EMBY + - PUID=1000 + - PGID=1000 + - TZ=Europe/Madrid + volumes: + - emby-config:/config + - emby-tvshows:/tvshows + - emby-movies:/movies + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8096"] + interval: 2s + timeout: 10s + retries: 15 From 5dd3952230c04a5137f25959a196d894e621e7ab Mon Sep 17 00:00:00 2001 From: TheH2SO4 <69685986+theh2so4@users.noreply.github.com> Date: Mon, 23 Oct 2023 12:41:48 +0200 Subject: [PATCH 02/11] [+] Template: EmbyStat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🆕 **New Template**: -> â„šī¸ **EmbyStat**: EmyStat is an open-source, self-hosted web analytics tool, designed to provide insight into website traffic and user behavior, of your local Emby deployement, all within your control. --- templates/compose/embystat.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 templates/compose/embystat.yaml diff --git a/templates/compose/embystat.yaml b/templates/compose/embystat.yaml new file mode 100644 index 000000000..ae0b20eea --- /dev/null +++ b/templates/compose/embystat.yaml @@ -0,0 +1,18 @@ +# documentation: https://github.com/mregni/EmbyStat/wiki/docker +# slogan: EmyStat is an open-source, self-hosted web analytics tool, designed to provide insight into website traffic and user behavior, of your local Emby deployement, all within your control. + +services: + embystat: + image: lscr.io/linuxserver/embystat:latest + environment: + - SERVICE_FQDN_EMBYSTAT + - PUID=1000 + - PGID=1000 + - TZ=Europe/Madrid + volumes: + - embystat-config:/config + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:6555"] + interval: 2s + timeout: 10s + retries: 15 From a6c35944485414463bb7ef744a0ed402111beb68 Mon Sep 17 00:00:00 2001 From: TheH2SO4 <69685986+theh2so4@users.noreply.github.com> Date: Mon, 23 Oct 2023 12:48:13 +0200 Subject: [PATCH 03/11] [+] Template: Grocy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🆕 **New Template**: -> â„šī¸ **Grocy**: Grocy is a self-hosted, web-based household management and grocery list application, designed to simplify your household chores and grocery shopping. --- templates/compose/grocy.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 templates/compose/grocy.yaml diff --git a/templates/compose/grocy.yaml b/templates/compose/grocy.yaml new file mode 100644 index 000000000..3c980efb1 --- /dev/null +++ b/templates/compose/grocy.yaml @@ -0,0 +1,18 @@ +# documentation: https://github.com/grocy/grocy +# slogan: Grocy is a self-hosted, web-based household management and grocery list application, designed to simplify your household chores and grocery shopping. + +services: + grocy: + image: lscr.io/linuxserver/grocy:latest + environment: + - SERVICE_FQDN_GROCY + - PUID=1000 + - PGID=1000 + - TZ=Europe/Madrid + volumes: + - grocy-config:/config + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:80"] + interval: 2s + timeout: 10s + retries: 15 From b5506f006bc56abd98965a0560f1c33a8fd2fda4 Mon Sep 17 00:00:00 2001 From: TheH2SO4 <69685986+theh2so4@users.noreply.github.com> Date: Mon, 23 Oct 2023 13:05:22 +0200 Subject: [PATCH 04/11] [+] Template: Dashboard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🆕 **New Template**: -> â„šī¸ **Dashboard**: A dashboard. Inspired by SUI, it offers simple customization through JSON-files and a handy search bar to help you browse the internet more efficiently. --- templates/compose/dashboard.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 templates/compose/dashboard.yaml diff --git a/templates/compose/dashboard.yaml b/templates/compose/dashboard.yaml new file mode 100644 index 000000000..eeca63a5b --- /dev/null +++ b/templates/compose/dashboard.yaml @@ -0,0 +1,15 @@ +# documentation: https://github.com/phntxx/dashboard/wiki/Installation#installation-using-docker +# slogan: A dashboard. Inspired by SUI, it offers simple customization through JSON-files and a handy search bar to help you browse the internet more efficiently. + +services: + dashboard: + image: phntxx/dashboard:latest + environment: + - SERVICE_FQDN_DASHBOARD + volumes: + - dashboard-data:/app/data + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080"] + interval: 2s + timeout: 10s + retries: 15 From b09a9f871ed151336451904a98851184d0a11a09 Mon Sep 17 00:00:00 2001 From: TheH2SO4 <69685986+theh2so4@users.noreply.github.com> Date: Mon, 23 Oct 2023 13:12:50 +0200 Subject: [PATCH 05/11] [+] Template: Fenrus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🆕 **New Template**: -> â„šī¸ **Fenrus**: A personal home page for quick access to all your personal apps/sites. --- templates/compose/fenrus.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 templates/compose/fenrus.yaml diff --git a/templates/compose/fenrus.yaml b/templates/compose/fenrus.yaml new file mode 100644 index 000000000..6e469b583 --- /dev/null +++ b/templates/compose/fenrus.yaml @@ -0,0 +1,16 @@ +# documentation: https://github.com/revenz/fenrus +# slogan: A personal home page for quick access to all your personal apps/sites. + +services: + fenrus: + image: revenz/fenrus:latest + environment: + - SERVICE_FQDN_FENRUS + - TZ=Europe/Madrid + volumes: + - fenrus-data:/app/data + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000"] + interval: 2s + timeout: 10s + retries: 15 From 6c5a1c317af8685e9a0d809d595d3ef89ab03159 Mon Sep 17 00:00:00 2001 From: TheH2SO4 <69685986+theh2so4@users.noreply.github.com> Date: Mon, 23 Oct 2023 13:14:43 +0200 Subject: [PATCH 06/11] [!] Mistake --- templates/compose/fenrus.yaml | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 templates/compose/fenrus.yaml diff --git a/templates/compose/fenrus.yaml b/templates/compose/fenrus.yaml deleted file mode 100644 index 6e469b583..000000000 --- a/templates/compose/fenrus.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# documentation: https://github.com/revenz/fenrus -# slogan: A personal home page for quick access to all your personal apps/sites. - -services: - fenrus: - image: revenz/fenrus:latest - environment: - - SERVICE_FQDN_FENRUS - - TZ=Europe/Madrid - volumes: - - fenrus-data:/app/data - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:3000"] - interval: 2s - timeout: 10s - retries: 15 From 50fc05ab5243766f6f03ea939dc9f80ebeab1656 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 25 Oct 2023 11:43:18 +0200 Subject: [PATCH 07/11] update init script --- app/Console/Commands/Init.php | 41 ++++++++++++++++++++++++++++------- config/sentry.php | 2 +- config/version.php | 2 +- versions.json | 2 +- 4 files changed, 36 insertions(+), 11 deletions(-) diff --git a/app/Console/Commands/Init.php b/app/Console/Commands/Init.php index 31d7639be..0efd9b025 100644 --- a/app/Console/Commands/Init.php +++ b/app/Console/Commands/Init.php @@ -7,6 +7,7 @@ use App\Models\Application; use App\Models\ApplicationDeploymentQueue; use App\Models\Service; use App\Models\StandaloneMongodb; +use App\Models\StandaloneMysql; use App\Models\StandalonePostgresql; use App\Models\StandaloneRedis; use Illuminate\Console\Command; @@ -22,10 +23,11 @@ class Init extends Command ray()->clearAll(); $this->cleanup_in_progress_application_deployments(); $this->cleanup_stucked_resources(); - $this->cleanup_ssh(); + // $this->cleanup_ssh(); } - private function cleanup_ssh() { + private function cleanup_ssh() + { try { $files = Storage::allFiles('ssh/keys'); foreach ($files as $file) { @@ -53,11 +55,12 @@ class Init extends Command echo "Error: {$e->getMessage()}\n"; } } - private function cleanup_stucked_resources() { + private function cleanup_stucked_resources() + { // Cleanup any resources that are not attached to any environment or destination or server try { $applications = Application::all(); - foreach($applications as $application) { + foreach ($applications as $application) { if (!$application->environment) { ray('Application without environment', $application->name); $application->delete(); @@ -68,7 +71,7 @@ class Init extends Command } } $postgresqls = StandalonePostgresql::all(); - foreach($postgresqls as $postgresql) { + foreach ($postgresqls as $postgresql) { if (!$postgresql->environment) { ray('Postgresql without environment', $postgresql->name); $postgresql->delete(); @@ -79,7 +82,7 @@ class Init extends Command } } $redis = StandaloneRedis::all(); - foreach($redis as $redis) { + foreach ($redis as $redis) { if (!$redis->environment) { ray('Redis without environment', $redis->name); $redis->delete(); @@ -90,7 +93,7 @@ class Init extends Command } } $mongodbs = StandaloneMongodb::all(); - foreach($mongodbs as $mongodb) { + foreach ($mongodbs as $mongodb) { if (!$mongodb->environment) { ray('Mongodb without environment', $mongodb->name); $mongodb->delete(); @@ -100,8 +103,30 @@ class Init extends Command $mongodb->delete(); } } + $mysqls = StandaloneMysql::all(); + foreach ($mysqls as $mysql) { + if (!$mysql->environment) { + ray('Mysql without environment', $mysql->name); + $mysql->delete(); + } + if (!$mysql->destination()) { + ray('Mysql without destination', $mysql->name); + $mysql->delete(); + } + } + $mariadbs = StandaloneMysql::all(); + foreach ($mariadbs as $mariadb) { + if (!$mariadb->environment) { + ray('Mariadb without environment', $mariadb->name); + $mariadb->delete(); + } + if (!$mariadb->destination()) { + ray('Mariadb without destination', $mariadb->name); + $mariadb->delete(); + } + } $services = Service::all(); - foreach($services as $service) { + foreach ($services as $service) { if (!$service->environment) { ray('Service without environment', $service->name); $service->delete(); diff --git a/config/sentry.php b/config/sentry.php index 16f184229..b4f412e41 100644 --- a/config/sentry.php +++ b/config/sentry.php @@ -7,7 +7,7 @@ return [ // The release version of your application // Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD')) - 'release' => '4.0.0-beta.102', + 'release' => '4.0.0-beta.103', // When left empty or `null` the Laravel environment will be used 'environment' => config('app.env'), diff --git a/config/version.php b/config/version.php index 004c77c3b..14a39b0fa 100644 --- a/config/version.php +++ b/config/version.php @@ -1,3 +1,3 @@ Date: Wed, 25 Oct 2023 11:50:22 +0200 Subject: [PATCH 08/11] fix: server settings guarded --- app/Models/ServerSetting.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/Models/ServerSetting.php b/app/Models/ServerSetting.php index 198600735..9235848ee 100644 --- a/app/Models/ServerSetting.php +++ b/app/Models/ServerSetting.php @@ -6,10 +6,7 @@ use Illuminate\Database\Eloquent\Model; class ServerSetting extends Model { - protected $fillable = [ - 'server_id', - 'is_usable', - ]; + protected $guarded = []; public function server() { From ead1edc2b98639b489c0eb79c8e7274273dbf870 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 25 Oct 2023 15:44:34 +0200 Subject: [PATCH 09/11] Services --- templates/compose/dashboard.yaml | 1 + templates/compose/emby.yaml | 1 + templates/compose/embystat.yaml | 1 + templates/compose/grocy.yaml | 1 + templates/compose/pairdrop.yaml | 2 +- templates/compose/snapdrop.yaml | 2 +- templates/compose/wordpress-with-mariadb.yaml | 2 +- templates/compose/wordpress-with-mysql.yaml | 2 +- .../compose/wordpress-without-database.yaml | 2 +- templates/service-templates.json | 57 +++++++++++++++++-- 10 files changed, 61 insertions(+), 10 deletions(-) diff --git a/templates/compose/dashboard.yaml b/templates/compose/dashboard.yaml index eeca63a5b..ea2ae3489 100644 --- a/templates/compose/dashboard.yaml +++ b/templates/compose/dashboard.yaml @@ -1,5 +1,6 @@ # documentation: https://github.com/phntxx/dashboard/wiki/Installation#installation-using-docker # slogan: A dashboard. Inspired by SUI, it offers simple customization through JSON-files and a handy search bar to help you browse the internet more efficiently. +# tags: dashboard, web, search, bookmarks services: dashboard: diff --git a/templates/compose/emby.yaml b/templates/compose/emby.yaml index 2bb7b1538..b5e35b4d7 100644 --- a/templates/compose/emby.yaml +++ b/templates/compose/emby.yaml @@ -1,5 +1,6 @@ # documentation: https://emby.media/support/articles/Home.html # slogan: A media server software that allows you to organize, stream, and access your multimedia content effortlessly, making it easy to enjoy your favorite movies, TV shows, music, and more. +# tags: media, server, movies, tv, music services: emby: diff --git a/templates/compose/embystat.yaml b/templates/compose/embystat.yaml index ae0b20eea..c7dac0029 100644 --- a/templates/compose/embystat.yaml +++ b/templates/compose/embystat.yaml @@ -1,5 +1,6 @@ # documentation: https://github.com/mregni/EmbyStat/wiki/docker # slogan: EmyStat is an open-source, self-hosted web analytics tool, designed to provide insight into website traffic and user behavior, of your local Emby deployement, all within your control. +# tags: media, server, movies, tv, music services: embystat: diff --git a/templates/compose/grocy.yaml b/templates/compose/grocy.yaml index 3c980efb1..46edd984e 100644 --- a/templates/compose/grocy.yaml +++ b/templates/compose/grocy.yaml @@ -1,5 +1,6 @@ # documentation: https://github.com/grocy/grocy # slogan: Grocy is a self-hosted, web-based household management and grocery list application, designed to simplify your household chores and grocery shopping. +# tags: groceries, household, management, grocery, shopping services: grocy: diff --git a/templates/compose/pairdrop.yaml b/templates/compose/pairdrop.yaml index 924dae0d8..57e32afc0 100644 --- a/templates/compose/pairdrop.yaml +++ b/templates/compose/pairdrop.yaml @@ -1,4 +1,4 @@ -# documentation: https://github.com/schlagmichdoch/PairDrop/blob/master/docs/faq.md +# documentation: https://github.com/schlagmichdoch/PairDrop # slogan: Pairdrop is a self-hosted file sharing and collaboration platform, offering secure file sharing and collaboration capabilities for efficient teamwork. # tags: file, sharing, collaboration, teamwork diff --git a/templates/compose/snapdrop.yaml b/templates/compose/snapdrop.yaml index 066fb2013..652eb1bbb 100644 --- a/templates/compose/snapdrop.yaml +++ b/templates/compose/snapdrop.yaml @@ -1,4 +1,4 @@ -# documentation: https://github.com/RobinLinus/snapdrop/blob/master/docs/faq.md +# documentation: https://github.com/RobinLinus/snapdrop # slogan: A self-hosted file-sharing service for secure and convenient file transfers, whether on a local network or the internet. # tags: file, sharing, transfer, local, network, internet diff --git a/templates/compose/wordpress-with-mariadb.yaml b/templates/compose/wordpress-with-mariadb.yaml index 4d59daf32..b0205f952 100644 --- a/templates/compose/wordpress-with-mariadb.yaml +++ b/templates/compose/wordpress-with-mariadb.yaml @@ -1,5 +1,5 @@ # documentation: https://wordpress.org/documentation/ -# slogan: "WordPress is open source software you can use to create a beautiful website, blog, or app." +# slogan: WordPress with MariaDB. Wordpress is open source software you can use to create a beautiful website, blog, or app. # tags: cms, blog, content, management, mariadb services: diff --git a/templates/compose/wordpress-with-mysql.yaml b/templates/compose/wordpress-with-mysql.yaml index c264ecbf3..a64952150 100644 --- a/templates/compose/wordpress-with-mysql.yaml +++ b/templates/compose/wordpress-with-mysql.yaml @@ -1,5 +1,5 @@ # documentation: https://wordpress.org/documentation/ -# slogan: "WordPress is open source software you can use to create a beautiful website, blog, or app." +# slogan: WordPress with MySQL. Wordpress is open source software you can use to create a beautiful website, blog, or app. # tags: cms, blog, content, management, mysql services: diff --git a/templates/compose/wordpress-without-database.yaml b/templates/compose/wordpress-without-database.yaml index ddcefe90d..0891e6c11 100644 --- a/templates/compose/wordpress-without-database.yaml +++ b/templates/compose/wordpress-without-database.yaml @@ -1,5 +1,5 @@ # documentation: https://wordpress.org/documentation/ -# slogan: "WordPress is open source software you can use to create a beautiful website, blog, or app." +# slogan: WordPress with external database. Wordpress is open source software you can use to create a beautiful website, blog, or app. # tags: cms, blog, content, management services: diff --git a/templates/service-templates.json b/templates/service-templates.json index 4c06f76c0..8fd76c18e 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -44,6 +44,17 @@ "collaboration" ] }, + "dashboard": { + "documentation": "https:\/\/github.com\/phntxx\/dashboard\/wiki\/Installation#installation-using-docker", + "slogan": "A dashboard. Inspired by SUI, it offers simple customization through JSON-files and a handy search bar to help you browse the internet more efficiently.", + "compose": "c2VydmljZXM6CiAgZGFzaGJvYXJkOgogICAgaW1hZ2U6ICdwaG50eHgvZGFzaGJvYXJkOmxhdGVzdCcKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9EQVNIQk9BUkQKICAgIHZvbHVtZXM6CiAgICAgIC0gJ2Rhc2hib2FyZC1kYXRhOi9hcHAvZGF0YScKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovL2xvY2FsaG9zdDo4MDgwJwogICAgICBpbnRlcnZhbDogMnMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDE1Cg==", + "tags": [ + "dashboard", + "web", + "search", + "bookmarks" + ] + }, "dokuwiki": { "documentation": "https:\/\/www.dokuwiki.org\/faq", "slogan": "A lightweight and easy-to-use wiki platform for creating and managing documentation and knowledge bases with simplicity and flexibility.", @@ -55,6 +66,30 @@ "base" ] }, + "emby": { + "documentation": "https:\/\/emby.media\/support\/articles\/Home.html", + "slogan": "A media server software that allows you to organize, stream, and access your multimedia content effortlessly, making it easy to enjoy your favorite movies, TV shows, music, and more.", + "compose": "c2VydmljZXM6CiAgZW1ieToKICAgIGltYWdlOiAnbHNjci5pby9saW51eHNlcnZlci9lbWJ5OmxhdGVzdCcKICAgIGVudmlyb25tZW50OgogICAgICAtIFNFUlZJQ0VfRlFETl9FTUJZCiAgICAgIC0gUFVJRD0xMDAwCiAgICAgIC0gUEdJRD0xMDAwCiAgICAgIC0gVFo9RXVyb3BlL01hZHJpZAogICAgdm9sdW1lczoKICAgICAgLSAnZW1ieS1jb25maWc6L2NvbmZpZycKICAgICAgLSAnZW1ieS10dnNob3dzOi90dnNob3dzJwogICAgICAtICdlbWJ5LW1vdmllczovbW92aWVzJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIGN1cmwKICAgICAgICAtICctZicKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjgwOTYnCiAgICAgIGludGVydmFsOiAycwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTUK", + "tags": [ + "media", + "server", + "movies", + "tv", + "music" + ] + }, + "embystat": { + "documentation": "https:\/\/github.com\/mregni\/EmbyStat\/wiki\/docker", + "slogan": "EmyStat is an open-source, self-hosted web analytics tool, designed to provide insight into website traffic and user behavior, of your local Emby deployement, all within your control.", + "compose": "c2VydmljZXM6CiAgZW1ieXN0YXQ6CiAgICBpbWFnZTogJ2xzY3IuaW8vbGludXhzZXJ2ZXIvZW1ieXN0YXQ6bGF0ZXN0JwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gU0VSVklDRV9GUUROX0VNQllTVEFUCiAgICAgIC0gUFVJRD0xMDAwCiAgICAgIC0gUEdJRD0xMDAwCiAgICAgIC0gVFo9RXVyb3BlL01hZHJpZAogICAgdm9sdW1lczoKICAgICAgLSAnZW1ieXN0YXQtY29uZmlnOi9jb25maWcnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly9sb2NhbGhvc3Q6NjU1NScKICAgICAgaW50ZXJ2YWw6IDJzCiAgICAgIHRpbWVvdXQ6IDEwcwogICAgICByZXRyaWVzOiAxNQo=", + "tags": [ + "media", + "server", + "movies", + "tv", + "music" + ] + }, "fider": { "documentation": "https:\/\/fider.io\/doc", "slogan": "Fider is an open-source feedback platform for collecting and managing user feedback, helping you prioritize improvements to your products and services.", @@ -76,6 +111,18 @@ "system" ] }, + "grocy": { + "documentation": "https:\/\/github.com\/grocy\/grocy", + "slogan": "Grocy is a self-hosted, web-based household management and grocery list application, designed to simplify your household chores and grocery shopping.", + "compose": "c2VydmljZXM6CiAgZ3JvY3k6CiAgICBpbWFnZTogJ2xzY3IuaW8vbGludXhzZXJ2ZXIvZ3JvY3k6bGF0ZXN0JwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gU0VSVklDRV9GUUROX0dST0NZCiAgICAgIC0gUFVJRD0xMDAwCiAgICAgIC0gUEdJRD0xMDAwCiAgICAgIC0gVFo9RXVyb3BlL01hZHJpZAogICAgdm9sdW1lczoKICAgICAgLSAnZ3JvY3ktY29uZmlnOi9jb25maWcnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAnCiAgICAgIGludGVydmFsOiAycwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTUK", + "tags": [ + "groceries", + "household", + "management", + "grocery", + "shopping" + ] + }, "heimdall": { "documentation": "https:\/\/github.com\/linuxserver\/Heimdall", "slogan": "Heimdall is a self-hosted dashboard for managing and organizing your server applications, providing a centralized and efficient interface.", @@ -139,7 +186,7 @@ ] }, "pairdrop": { - "documentation": "https:\/\/github.com\/schlagmichdoch\/PairDrop\/blob\/master\/docs\/faq.md", + "documentation": "https:\/\/github.com\/schlagmichdoch\/PairDrop", "slogan": "Pairdrop is a self-hosted file sharing and collaboration platform, offering secure file sharing and collaboration capabilities for efficient teamwork.", "compose": "c2VydmljZXM6CiAgcGFpcmRyb3A6CiAgICBpbWFnZTogJ2xzY3IuaW8vbGludXhzZXJ2ZXIvcGFpcmRyb3A6bGF0ZXN0JwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gU0VSVklDRV9GUUROX1BBSVJEUk9QCiAgICAgIC0gUFVJRD0xMDAwCiAgICAgIC0gUEdJRD0xMDAwCiAgICAgIC0gVFo9RXVyb3BlL01hZHJpZAogICAgICAtIERFQlVHX01PREU9ZmFsc2UKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSBjdXJsCiAgICAgICAgLSAnLWYnCiAgICAgICAgLSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJwogICAgICBpbnRlcnZhbDogMnMKICAgICAgdGltZW91dDogMTBzCiAgICAgIHJldHJpZXM6IDE1Cg==", "tags": [ @@ -150,7 +197,7 @@ ] }, "snapdrop": { - "documentation": "https:\/\/github.com\/RobinLinus\/snapdrop\/blob\/master\/docs\/faq.md", + "documentation": "https:\/\/github.com\/RobinLinus\/snapdrop", "slogan": "A self-hosted file-sharing service for secure and convenient file transfers, whether on a local network or the internet.", "compose": "c2VydmljZXM6CiAgc25hcGRyb3A6CiAgICBpbWFnZTogJ2xzY3IuaW8vbGludXhzZXJ2ZXIvc25hcGRyb3A6bGF0ZXN0JwogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gU0VSVklDRV9GUUROX1NOQVBEUk9QCiAgICAgIC0gUFVJRD0xMDAwCiAgICAgIC0gUEdJRD0xMDAwCiAgICAgIC0gVFo9RXVyb3BlL01hZHJpZAogICAgdm9sdW1lczoKICAgICAgLSAnc25hcGRyb3AtY29uZmlnOi9jb25maWcnCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1mJwogICAgICAgIC0gJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAnCiAgICAgIGludGVydmFsOiAycwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogMTUK", "tags": [ @@ -188,7 +235,7 @@ }, "wordpress-with-mariadb": { "documentation": "https:\/\/wordpress.org\/documentation\/", - "slogan": "\"WordPress is open source software you can use to create a beautiful website, blog, or app.\"", + "slogan": "WordPress with MariaDB. Wordpress is open source software you can use to create a beautiful website, blog, or app.", "compose": "c2VydmljZXM6CiAgd29yZHByZXNzOgogICAgaW1hZ2U6ICd3b3JkcHJlc3M6bGF0ZXN0JwogICAgdm9sdW1lczoKICAgICAgLSAnd29yZHByZXNzLWZpbGVzOi92YXIvd3d3L2h0bWwnCiAgICBlbnZpcm9ubWVudDoKICAgICAgU0VSVklDRV9GUUROOiBudWxsCiAgICAgIFdPUkRQUkVTU19EQl9IT1NUOiBtYXJpYWRiCiAgICAgIFdPUkRQUkVTU19EQl9VU0VSOiAkU0VSVklDRV9VU0VSX1dPUkRQUkVTUwogICAgICBXT1JEUFJFU1NfREJfUEFTU1dPUkQ6ICRTRVJWSUNFX1BBU1NXT1JEX1dPUkRQUkVTUwogICAgICBXT1JEUFJFU1NfREJfTkFNRTogd29yZHByZXNzCiAgICBkZXBlbmRzX29uOgogICAgICAtIG1hcmlhZGIKICBtYXJpYWRiOgogICAgaW1hZ2U6ICdtYXJpYWRiOjExJwogICAgdm9sdW1lczoKICAgICAgLSAnbWFyaWFkYi1kYXRhOi92YXIvbGliL215c3FsJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIE1ZU1FMX1JPT1RfUEFTU1dPUkQ6ICRTRVJWSUNFX1BBU1NXT1JEX1JPT1QKICAgICAgTVlTUUxfREFUQUJBU0U6IHdvcmRwcmVzcwogICAgICBNWVNRTF9VU0VSOiAkU0VSVklDRV9VU0VSX1dPUkRQUkVTUwogICAgICBNWVNRTF9QQVNTV09SRDogJFNFUlZJQ0VfUEFTU1dPUkRfV09SRFBSRVNTCg==", "tags": [ "cms", @@ -200,7 +247,7 @@ }, "wordpress-with-mysql": { "documentation": "https:\/\/wordpress.org\/documentation\/", - "slogan": "\"WordPress is open source software you can use to create a beautiful website, blog, or app.\"", + "slogan": "WordPress with MySQL. Wordpress is open source software you can use to create a beautiful website, blog, or app.", "compose": "c2VydmljZXM6CiAgd29yZHByZXNzOgogICAgaW1hZ2U6ICd3b3JkcHJlc3M6bGF0ZXN0JwogICAgdm9sdW1lczoKICAgICAgLSAnd29yZHByZXNzLWZpbGVzOi92YXIvd3d3L2h0bWwnCiAgICBlbnZpcm9ubWVudDoKICAgICAgU0VSVklDRV9GUUROOiBudWxsCiAgICAgIFdPUkRQUkVTU19EQl9IT1NUOiBteXNxbAogICAgICBXT1JEUFJFU1NfREJfVVNFUjogJFNFUlZJQ0VfVVNFUl9XT1JEUFJFU1MKICAgICAgV09SRFBSRVNTX0RCX1BBU1NXT1JEOiAkU0VSVklDRV9QQVNTV09SRF9XT1JEUFJFU1MKICAgICAgV09SRFBSRVNTX0RCX05BTUU6IHdvcmRwcmVzcwogICAgZGVwZW5kc19vbjoKICAgICAgLSBteXNxbAogIG15c3FsOgogICAgaW1hZ2U6ICdteXNxbDo1LjcnCiAgICB2b2x1bWVzOgogICAgICAtICdteXNxbC1kYXRhOi92YXIvbGliL215c3FsJwogICAgZW52aXJvbm1lbnQ6CiAgICAgIE1ZU1FMX1JPT1RfUEFTU1dPUkQ6ICRTRVJWSUNFX1BBU1NXT1JEX1JPT1QKICAgICAgTVlTUUxfREFUQUJBU0U6IHdvcmRwcmVzcwogICAgICBNWVNRTF9VU0VSOiAkU0VSVklDRV9VU0VSX1dPUkRQUkVTUwogICAgICBNWVNRTF9QQVNTV09SRDogJFNFUlZJQ0VfUEFTU1dPUkRfV09SRFBSRVNTCg==", "tags": [ "cms", @@ -212,7 +259,7 @@ }, "wordpress-without-database": { "documentation": "https:\/\/wordpress.org\/documentation\/", - "slogan": "\"WordPress is open source software you can use to create a beautiful website, blog, or app.\"", + "slogan": "WordPress with external database. Wordpress is open source software you can use to create a beautiful website, blog, or app.", "compose": "c2VydmljZXM6CiAgd29yZHByZXNzOgogICAgaW1hZ2U6ICd3b3JkcHJlc3M6bGF0ZXN0JwogICAgdm9sdW1lczoKICAgICAgLSAnd29yZHByZXNzLWZpbGVzOi92YXIvd3d3L2h0bWwnCiAgICBlbnZpcm9ubWVudDoKICAgICAgU0VSVklDRV9GUUROOiBudWxsCg==", "tags": [ "cms", From 6e98fd94039696e78ff8564b19fe59ffeecbe305 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 25 Oct 2023 20:13:45 +0200 Subject: [PATCH 10/11] grafana + openblocks --- .../compose/grafana-with-postgresql.yaml | 40 +++++++++++++++++++ templates/compose/grafana.yaml | 19 +++++++++ templates/compose/openblocks.yaml | 27 +++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 templates/compose/grafana-with-postgresql.yaml create mode 100644 templates/compose/grafana.yaml create mode 100644 templates/compose/openblocks.yaml diff --git a/templates/compose/grafana-with-postgresql.yaml b/templates/compose/grafana-with-postgresql.yaml new file mode 100644 index 000000000..78c44db32 --- /dev/null +++ b/templates/compose/grafana-with-postgresql.yaml @@ -0,0 +1,40 @@ +# documentation: https://grafana.com/docs/grafana/latest/installation/docker/ +# slogan: Grafana is the open source analytics & monitoring solution for every database. +# tags: grafana,analytics,monitoring,dashboard + +services: + grafana: + image: grafana/grafana-oss + environment: + - SERVICE_FQDN_GRAFANA + - GF_SERVER_ROOT_URL=${SERVICE_FQDN_GRAFANA} + - GF_SERVER_DOMAIN=${SERVICE_FQDN_GRAFANA} + - GF_SECURITY_ADMIN_PASSWORD=${SERVICE_PASSWORD_GRAFANA} + - GF_DATABASE_TYPE=postgres + - GF_DATABASE_HOST=postgresql + - GF_DATABASE_USER=$SERVICE_USER_POSTGRES + - GF_DATABASE_PASSWORD=$SERVICE_PASSWORD_POSTGRES + - GF_DATABASE_NAME=${POSTGRES_DB:-grafana} + volumes: + - grafana-data:/var/lib/grafana + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"] + interval: 5s + timeout: 5s + retries: 10 + depends_on: + - postgresql + postgresql: + image: postgres:15-alpine + volumes: + - postgresql-data:/var/lib/postgresql/data + environment: + - POSTGRES_USER=$SERVICE_USER_POSTGRES + - POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES + - POSTGRES_DB=${POSTGRES_DB:-grafana} + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + interval: 5s + timeout: 5s + retries: 10 + diff --git a/templates/compose/grafana.yaml b/templates/compose/grafana.yaml new file mode 100644 index 000000000..eb39909be --- /dev/null +++ b/templates/compose/grafana.yaml @@ -0,0 +1,19 @@ +# documentation: https://grafana.com/docs/grafana/latest/installation/docker/ +# slogan: Grafana is the open source analytics & monitoring solution for every database. +# tags: grafana,analytics,monitoring,dashboard + +services: + grafana: + image: grafana/grafana-oss + environment: + - SERVICE_FQDN_GRAFANA + - GF_SERVER_ROOT_URL=${SERVICE_FQDN_GRAFANA} + - GF_SERVER_DOMAIN=${SERVICE_FQDN_GRAFANA} + - GF_SECURITY_ADMIN_PASSWORD=${SERVICE_PASSWORD_GRAFANA} + volumes: + - grafana-data:/var/lib/grafana + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"] + interval: 5s + timeout: 5s + retries: 10 diff --git a/templates/compose/openblocks.yaml b/templates/compose/openblocks.yaml new file mode 100644 index 000000000..dda798628 --- /dev/null +++ b/templates/compose/openblocks.yaml @@ -0,0 +1,27 @@ +# documentation: https://docs.openblocks.dev/self-hosting +# slogan: OpenBlocks is a self-hosted, open-source, low-code platform for building internal tools. +# tags: openblocks,low,code,platform,open,source,low,code + +services: + openblocks: + image: openblocksdev/openblocks-ce + environment: + - SERVICE_FQDN_OPENBLOCKS + - REDIS_ENABLED=true + - MONGODB_ENABLED=true + - API_SERVICE_ENABLED=true + - NODE_SERVICE_ENABLED=true + - PUID=1000 + - PGID=1000 + - MONGODB_URI=mongodb://localhost:27017/openblocks?authSource=admin + - REDIS_URL=redis://localhost:6379 + - JS_EXECUTOR_URI=http://localhost:6060 + - ENABLE_USER_SIGN_UP=${ENABLE_USER_SIGN_UP:-true} + - ENCRYPTION_PASSWORD=$SERVICE_ + volumes: + - openblocks-data:/openblocks-stacks + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"] + interval: 5s + timeout: 5s + retries: 10 From 21795cf788341ee8e993ff12b5d852efbdaf7fcd Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 25 Oct 2023 20:19:38 +0200 Subject: [PATCH 11/11] fix: space in build args --- app/Jobs/ApplicationDeploymentJob.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Jobs/ApplicationDeploymentJob.php b/app/Jobs/ApplicationDeploymentJob.php index 3091bc339..8b590dd2b 100644 --- a/app/Jobs/ApplicationDeploymentJob.php +++ b/app/Jobs/ApplicationDeploymentJob.php @@ -885,14 +885,14 @@ COPY ./nginx.conf /etc/nginx/conf.d/default.conf"); private function generate_build_env_variables() { - $this->build_args = collect(["--build-arg SOURCE_COMMIT={$this->commit}"]); + $this->build_args = collect(["--build-arg SOURCE_COMMIT=\"{$this->commit}\""]); if ($this->pull_request_id === 0) { foreach ($this->application->build_environment_variables as $env) { - $this->build_args->push("--build-arg {$env->key}={$env->value}"); + $this->build_args->push("--build-arg {$env->key}=\"{$env->value}\""); } } else { foreach ($this->application->build_environment_variables_preview as $env) { - $this->build_args->push("--build-arg {$env->key}={$env->value}"); + $this->build_args->push("--build-arg {$env->key}=\"{$env->value}\""); } }