fix: remove shared dir, deployment does not work
This commit is contained in:
		@@ -14,13 +14,12 @@
 | 
			
		||||
    "start": "NODE_ENV=production npx -y prisma migrate deploy && npx prisma generate && npx prisma db seed && node index.js"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "shared": "workspace:*",
 | 
			
		||||
    "@breejs/ts-worker": "2.0.0",
 | 
			
		||||
    "@fastify/autoload": "5.0.0",
 | 
			
		||||
    "@fastify/cookie": "7.0.0",
 | 
			
		||||
    "@fastify/autoload": "5.1.0",
 | 
			
		||||
    "@fastify/cookie": "7.1.0",
 | 
			
		||||
    "@fastify/cors": "8.0.0",
 | 
			
		||||
    "@fastify/env": "4.0.0",
 | 
			
		||||
    "@fastify/jwt": "6.2.0",
 | 
			
		||||
    "@fastify/jwt": "6.3.1",
 | 
			
		||||
    "@fastify/static": "6.4.0",
 | 
			
		||||
    "@iarna/toml": "2.2.5",
 | 
			
		||||
    "@prisma/client": "3.15.2",
 | 
			
		||||
@@ -33,8 +32,8 @@
 | 
			
		||||
    "dayjs": "1.11.3",
 | 
			
		||||
    "dockerode": "3.3.2",
 | 
			
		||||
    "dotenv-extended": "2.9.0",
 | 
			
		||||
    "fastify": "4.2.0",
 | 
			
		||||
    "fastify-plugin": "3.0.1",
 | 
			
		||||
    "fastify": "4.2.1",
 | 
			
		||||
    "fastify-plugin": "4.0.0",
 | 
			
		||||
    "generate-password": "1.7.0",
 | 
			
		||||
    "get-port": "6.1.2",
 | 
			
		||||
    "got": "12.1.0",
 | 
			
		||||
@@ -48,10 +47,10 @@
 | 
			
		||||
    "unique-names-generator": "4.7.1"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@types/node": "18.0.3",
 | 
			
		||||
    "@types/node": "18.0.4",
 | 
			
		||||
    "@types/node-os-utils": "1.3.0",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "5.30.5",
 | 
			
		||||
    "@typescript-eslint/parser": "5.30.5",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "5.30.6",
 | 
			
		||||
    "@typescript-eslint/parser": "5.30.6",
 | 
			
		||||
    "esbuild": "0.14.49",
 | 
			
		||||
    "eslint": "8.19.0",
 | 
			
		||||
    "eslint-config-prettier": "8.5.0",
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,6 @@ import cuid from 'cuid';
 | 
			
		||||
import { checkContainer, getEngine, removeContainer } from './docker';
 | 
			
		||||
import { day } from './dayjs';
 | 
			
		||||
import * as serviceFields from './serviceFields'
 | 
			
		||||
import axios from 'axios';
 | 
			
		||||
 | 
			
		||||
export const version = '3.1.3';
 | 
			
		||||
export const isDev = process.env.NODE_ENV === 'development';
 | 
			
		||||
@@ -70,7 +69,6 @@ export const include: any = {
 | 
			
		||||
	umami: true,
 | 
			
		||||
	hasura: true,
 | 
			
		||||
	fider: true,
 | 
			
		||||
	moodle: true
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const uniqueName = (): string => uniqueNamesGenerator(customConfig);
 | 
			
		||||
@@ -113,7 +111,168 @@ export const encrypt = (text: string) => {
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
import { supportedServiceTypesAndVersions } from 'shared';
 | 
			
		||||
 | 
			
		||||
export const supportedServiceTypesAndVersions = [
 | 
			
		||||
    {
 | 
			
		||||
        name: 'plausibleanalytics',
 | 
			
		||||
        fancyName: 'Plausible Analytics',
 | 
			
		||||
        baseImage: 'plausible/analytics',
 | 
			
		||||
        images: ['bitnami/postgresql:13.2.0', 'yandex/clickhouse-server:21.3.2.5'],
 | 
			
		||||
        versions: ['latest', 'stable'],
 | 
			
		||||
        recommendedVersion: 'stable',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 8000
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'nocodb',
 | 
			
		||||
        fancyName: 'NocoDB',
 | 
			
		||||
        baseImage: 'nocodb/nocodb',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 8080
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'minio',
 | 
			
		||||
        fancyName: 'MinIO',
 | 
			
		||||
        baseImage: 'minio/minio',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 9001
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'vscodeserver',
 | 
			
		||||
        fancyName: 'VSCode Server',
 | 
			
		||||
        baseImage: 'codercom/code-server',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 8080
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'wordpress',
 | 
			
		||||
        fancyName: 'Wordpress',
 | 
			
		||||
        baseImage: 'wordpress',
 | 
			
		||||
        images: ['bitnami/mysql:5.7'],
 | 
			
		||||
        versions: ['latest', 'php8.1', 'php8.0', 'php7.4', 'php7.3'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 80
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'vaultwarden',
 | 
			
		||||
        fancyName: 'Vaultwarden',
 | 
			
		||||
        baseImage: 'vaultwarden/server',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 80
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'languagetool',
 | 
			
		||||
        fancyName: 'LanguageTool',
 | 
			
		||||
        baseImage: 'silviof/docker-languagetool',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 8010
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'n8n',
 | 
			
		||||
        fancyName: 'n8n',
 | 
			
		||||
        baseImage: 'n8nio/n8n',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 5678
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'uptimekuma',
 | 
			
		||||
        fancyName: 'Uptime Kuma',
 | 
			
		||||
        baseImage: 'louislam/uptime-kuma',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 3001
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'ghost',
 | 
			
		||||
        fancyName: 'Ghost',
 | 
			
		||||
        baseImage: 'bitnami/ghost',
 | 
			
		||||
        images: ['bitnami/mariadb'],
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 2368
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'meilisearch',
 | 
			
		||||
        fancyName: 'Meilisearch',
 | 
			
		||||
        baseImage: 'getmeili/meilisearch',
 | 
			
		||||
        images: [],
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 7700
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'umami',
 | 
			
		||||
        fancyName: 'Umami',
 | 
			
		||||
        baseImage: 'ghcr.io/mikecao/umami',
 | 
			
		||||
        images: ['postgres:12-alpine'],
 | 
			
		||||
        versions: ['postgresql-latest'],
 | 
			
		||||
        recommendedVersion: 'postgresql-latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 3000
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'hasura',
 | 
			
		||||
        fancyName: 'Hasura',
 | 
			
		||||
        baseImage: 'hasura/graphql-engine',
 | 
			
		||||
        images: ['postgres:12-alpine'],
 | 
			
		||||
        versions: ['latest', 'v2.5.1'],
 | 
			
		||||
        recommendedVersion: 'v2.5.1',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 8080
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'fider',
 | 
			
		||||
        fancyName: 'Fider',
 | 
			
		||||
        baseImage: 'getfider/fider',
 | 
			
		||||
        images: ['postgres:12-alpine'],
 | 
			
		||||
        versions: ['stable'],
 | 
			
		||||
        recommendedVersion: 'stable',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 3000
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    // {
 | 
			
		||||
    //     name: 'moodle',
 | 
			
		||||
    //     fancyName: 'Moodle',
 | 
			
		||||
    //     baseImage: 'bitnami/moodle',
 | 
			
		||||
    //     images: [],
 | 
			
		||||
    //     versions: ['latest', 'v4.0.2'],
 | 
			
		||||
    //     recommendedVersion: 'latest',
 | 
			
		||||
    //     ports: {
 | 
			
		||||
    //         main: 8080
 | 
			
		||||
    //     }
 | 
			
		||||
    // }
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
export async function checkDoubleBranch(branch: string, projectId: number): Promise<boolean> {
 | 
			
		||||
	const applications = await prisma.application.findMany({ where: { branch, projectId } });
 | 
			
		||||
	return applications.length > 1;
 | 
			
		||||
 
 | 
			
		||||
@@ -25,17 +25,18 @@ export async function cleanupManually() {
 | 
			
		||||
}
 | 
			
		||||
export async function checkUpdate(request: FastifyRequest) {
 | 
			
		||||
	try {
 | 
			
		||||
		const isStaging = request.hostname === 'staging.coolify.io'
 | 
			
		||||
		const currentVersion = version;
 | 
			
		||||
		const { data: versions } = await axios.get(
 | 
			
		||||
			`https://get.coollabs.io/versions.json?appId=${process.env['COOLIFY_APP_ID']}&version=${currentVersion}`
 | 
			
		||||
		);
 | 
			
		||||
		const latestVersion =
 | 
			
		||||
			request.hostname === 'staging.coolify.io'
 | 
			
		||||
			isStaging
 | 
			
		||||
				? versions['coolify'].next.version
 | 
			
		||||
				: versions['coolify'].main.version;
 | 
			
		||||
		const isUpdateAvailable = compare(latestVersion, currentVersion);
 | 
			
		||||
		return {
 | 
			
		||||
			isUpdateAvailable: isUpdateAvailable === 1,
 | 
			
		||||
			isUpdateAvailable: isStaging ? true : isUpdateAvailable === 1,
 | 
			
		||||
			latestVersion
 | 
			
		||||
		};
 | 
			
		||||
	} catch ({ status, message }) {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,14 +2,13 @@ import type { FastifyReply, FastifyRequest } from 'fastify';
 | 
			
		||||
import fs from 'fs/promises';
 | 
			
		||||
import yaml from 'js-yaml';
 | 
			
		||||
import bcrypt from 'bcryptjs';
 | 
			
		||||
import { prisma, uniqueName, asyncExecShell, getServiceImage, getServiceImages, configureServiceType, getServiceFromDB, getContainerUsage, removeService, isDomainConfigured, saveUpdateableFields, fixType, decrypt, encrypt, getServiceMainPort, createDirectories, ComposeFile, makeLabelForServices, getFreePort, getDomain, errorHandler, generatePassword, isDev, stopTcpHttpProxy } from '../../../../lib/common';
 | 
			
		||||
import { prisma, uniqueName, asyncExecShell, getServiceImage, getServiceImages, configureServiceType, getServiceFromDB, getContainerUsage, removeService, isDomainConfigured, saveUpdateableFields, fixType, decrypt, encrypt, getServiceMainPort, createDirectories, ComposeFile, makeLabelForServices, getFreePort, getDomain, errorHandler, generatePassword, isDev, stopTcpHttpProxy, supportedServiceTypesAndVersions } from '../../../../lib/common';
 | 
			
		||||
import { day } from '../../../../lib/dayjs';
 | 
			
		||||
import { checkContainer, dockerInstance, getEngine, removeContainer } from '../../../../lib/docker';
 | 
			
		||||
import cuid from 'cuid';
 | 
			
		||||
 | 
			
		||||
import type { OnlyId } from '../../../../types';
 | 
			
		||||
import type { ActivateWordpressFtp, CheckService, DeleteServiceSecret, DeleteServiceStorage, GetServiceLogs, SaveService, SaveServiceDestination, SaveServiceSecret, SaveServiceSettings, SaveServiceStorage, SaveServiceType, SaveServiceVersion, ServiceStartStop, SetWordpressSettings } from './types';
 | 
			
		||||
import { supportedServiceTypesAndVersions } from 'shared';
 | 
			
		||||
 | 
			
		||||
// async function startServiceNew(request: FastifyRequest<OnlyId>) {
 | 
			
		||||
//     try {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
import { FastifyRequest } from "fastify";
 | 
			
		||||
import { supportedServiceTypesAndVersions } from "shared";
 | 
			
		||||
import { asyncExecShell, errorHandler, getDomain, isDev, listServicesWithIncludes, prisma } from "../../../lib/common";
 | 
			
		||||
import { asyncExecShell, errorHandler, getDomain, isDev, listServicesWithIncludes, prisma, supportedServiceTypesAndVersions } from "../../../lib/common";
 | 
			
		||||
import { getEngine } from "../../../lib/docker";
 | 
			
		||||
import { TraefikOtherConfiguration } from "./types";
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,160 +0,0 @@
 | 
			
		||||
export const supportedServiceTypesAndVersions = [
 | 
			
		||||
    {
 | 
			
		||||
        name: 'plausibleanalytics',
 | 
			
		||||
        fancyName: 'Plausible Analytics',
 | 
			
		||||
        baseImage: 'plausible/analytics',
 | 
			
		||||
        images: ['bitnami/postgresql:13.2.0', 'yandex/clickhouse-server:21.3.2.5'],
 | 
			
		||||
        versions: ['latest', 'stable'],
 | 
			
		||||
        recommendedVersion: 'stable',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 8000
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'nocodb',
 | 
			
		||||
        fancyName: 'NocoDB',
 | 
			
		||||
        baseImage: 'nocodb/nocodb',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 8080
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'minio',
 | 
			
		||||
        fancyName: 'MinIO',
 | 
			
		||||
        baseImage: 'minio/minio',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 9001
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'vscodeserver',
 | 
			
		||||
        fancyName: 'VSCode Server',
 | 
			
		||||
        baseImage: 'codercom/code-server',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 8080
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'wordpress',
 | 
			
		||||
        fancyName: 'Wordpress',
 | 
			
		||||
        baseImage: 'wordpress',
 | 
			
		||||
        images: ['bitnami/mysql:5.7'],
 | 
			
		||||
        versions: ['latest', 'php8.1', 'php8.0', 'php7.4', 'php7.3'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 80
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'vaultwarden',
 | 
			
		||||
        fancyName: 'Vaultwarden',
 | 
			
		||||
        baseImage: 'vaultwarden/server',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 80
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'languagetool',
 | 
			
		||||
        fancyName: 'LanguageTool',
 | 
			
		||||
        baseImage: 'silviof/docker-languagetool',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 8010
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'n8n',
 | 
			
		||||
        fancyName: 'n8n',
 | 
			
		||||
        baseImage: 'n8nio/n8n',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 5678
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'uptimekuma',
 | 
			
		||||
        fancyName: 'Uptime Kuma',
 | 
			
		||||
        baseImage: 'louislam/uptime-kuma',
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 3001
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'ghost',
 | 
			
		||||
        fancyName: 'Ghost',
 | 
			
		||||
        baseImage: 'bitnami/ghost',
 | 
			
		||||
        images: ['bitnami/mariadb'],
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 2368
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'meilisearch',
 | 
			
		||||
        fancyName: 'Meilisearch',
 | 
			
		||||
        baseImage: 'getmeili/meilisearch',
 | 
			
		||||
        images: [],
 | 
			
		||||
        versions: ['latest'],
 | 
			
		||||
        recommendedVersion: 'latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 7700
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'umami',
 | 
			
		||||
        fancyName: 'Umami',
 | 
			
		||||
        baseImage: 'ghcr.io/mikecao/umami',
 | 
			
		||||
        images: ['postgres:12-alpine'],
 | 
			
		||||
        versions: ['postgresql-latest'],
 | 
			
		||||
        recommendedVersion: 'postgresql-latest',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 3000
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'hasura',
 | 
			
		||||
        fancyName: 'Hasura',
 | 
			
		||||
        baseImage: 'hasura/graphql-engine',
 | 
			
		||||
        images: ['postgres:12-alpine'],
 | 
			
		||||
        versions: ['latest', 'v2.5.1'],
 | 
			
		||||
        recommendedVersion: 'v2.5.1',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 8080
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        name: 'fider',
 | 
			
		||||
        fancyName: 'Fider',
 | 
			
		||||
        baseImage: 'getfider/fider',
 | 
			
		||||
        images: ['postgres:12-alpine'],
 | 
			
		||||
        versions: ['stable'],
 | 
			
		||||
        recommendedVersion: 'stable',
 | 
			
		||||
        ports: {
 | 
			
		||||
            main: 3000
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    // {
 | 
			
		||||
    //     name: 'moodle',
 | 
			
		||||
    //     fancyName: 'Moodle',
 | 
			
		||||
    //     baseImage: 'bitnami/moodle',
 | 
			
		||||
    //     images: [],
 | 
			
		||||
    //     versions: ['latest', 'v4.0.2'],
 | 
			
		||||
    //     recommendedVersion: 'latest',
 | 
			
		||||
    //     ports: {
 | 
			
		||||
    //         main: 8080
 | 
			
		||||
    //     }
 | 
			
		||||
    // }
 | 
			
		||||
];
 | 
			
		||||
@@ -1,7 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
    "watch": ["src"],
 | 
			
		||||
    "ignore": ["src/**/*.test.ts"],
 | 
			
		||||
    "ext": "ts,mjs,json,graphql",
 | 
			
		||||
    "exec": "rimraf build && esbuild  index.ts --watch=true --minify=true --platform=node --outdir=build --format=cjs",
 | 
			
		||||
    "legacyWatch": true
 | 
			
		||||
  }
 | 
			
		||||
@@ -1,14 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "shared",
 | 
			
		||||
  "version": "1.0.0",
 | 
			
		||||
  "main": "build/index.js",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "dev": "nodemon",
 | 
			
		||||
    "build": "rimraf build && esbuild index.ts --minify=true --platform=node --outdir=build --format=cjs"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "esbuild": "0.14.49",
 | 
			
		||||
    "nodemon": "2.0.19",
 | 
			
		||||
    "rimraf": "3.0.2"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -15,12 +15,11 @@
 | 
			
		||||
		"format": "prettier --write --plugin-search-dir=. ."
 | 
			
		||||
	},
 | 
			
		||||
	"devDependencies": {
 | 
			
		||||
		"@playwright/test": "1.23.1",
 | 
			
		||||
		"@sveltejs/adapter-auto": "1.0.0-next.53",
 | 
			
		||||
		"@sveltejs/kit": "1.0.0-next.359",
 | 
			
		||||
		"@playwright/test": "1.23.3",
 | 
			
		||||
		"@sveltejs/kit": "1.0.0-next.375",
 | 
			
		||||
		"@types/js-cookie": "3.0.2",
 | 
			
		||||
		"@typescript-eslint/eslint-plugin": "5.30.5",
 | 
			
		||||
		"@typescript-eslint/parser": "5.30.5",
 | 
			
		||||
		"@typescript-eslint/eslint-plugin": "5.30.6",
 | 
			
		||||
		"@typescript-eslint/parser": "5.30.6",
 | 
			
		||||
		"autoprefixer": "10.4.7",
 | 
			
		||||
		"eslint": "8.19.0",
 | 
			
		||||
		"eslint-config-prettier": "8.5.0",
 | 
			
		||||
@@ -28,19 +27,18 @@
 | 
			
		||||
		"postcss": "8.4.14",
 | 
			
		||||
		"prettier": "2.7.1",
 | 
			
		||||
		"prettier-plugin-svelte": "2.7.0",
 | 
			
		||||
		"svelte": "3.48.0",
 | 
			
		||||
		"svelte": "3.49.0",
 | 
			
		||||
		"svelte-check": "2.8.0",
 | 
			
		||||
		"svelte-preprocess": "4.10.7",
 | 
			
		||||
		"tailwindcss": "3.1.4",
 | 
			
		||||
		"tailwindcss": "3.1.6",
 | 
			
		||||
		"tailwindcss-scrollbar": "0.1.0",
 | 
			
		||||
		"tslib": "2.4.0",
 | 
			
		||||
		"typescript": "4.7.4",
 | 
			
		||||
		"vite": "^2.9.13"
 | 
			
		||||
		"vite": "^3.0.0"
 | 
			
		||||
	},
 | 
			
		||||
	"type": "module",
 | 
			
		||||
	"dependencies": {
 | 
			
		||||
		"shared": "workspace:*",
 | 
			
		||||
		"@sveltejs/adapter-static": "1.0.0-next.34",
 | 
			
		||||
		"@sveltejs/adapter-static": "1.0.0-next.36",
 | 
			
		||||
		"@zerodevx/svelte-toast": "0.7.2",
 | 
			
		||||
		"cuid": "2.1.8",
 | 
			
		||||
		"js-cookie": "3.0.1",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,166 @@
 | 
			
		||||
import { toast } from '@zerodevx/svelte-toast';
 | 
			
		||||
import { supportedServiceTypesAndVersions } from 'shared/index';
 | 
			
		||||
 | 
			
		||||
export const supportedServiceTypesAndVersions = [
 | 
			
		||||
	{
 | 
			
		||||
		name: 'plausibleanalytics',
 | 
			
		||||
		fancyName: 'Plausible Analytics',
 | 
			
		||||
		baseImage: 'plausible/analytics',
 | 
			
		||||
		images: ['bitnami/postgresql:13.2.0', 'yandex/clickhouse-server:21.3.2.5'],
 | 
			
		||||
		versions: ['latest', 'stable'],
 | 
			
		||||
		recommendedVersion: 'stable',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8000
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'nocodb',
 | 
			
		||||
		fancyName: 'NocoDB',
 | 
			
		||||
		baseImage: 'nocodb/nocodb',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8080
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'minio',
 | 
			
		||||
		fancyName: 'MinIO',
 | 
			
		||||
		baseImage: 'minio/minio',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 9001
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'vscodeserver',
 | 
			
		||||
		fancyName: 'VSCode Server',
 | 
			
		||||
		baseImage: 'codercom/code-server',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8080
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'wordpress',
 | 
			
		||||
		fancyName: 'Wordpress',
 | 
			
		||||
		baseImage: 'wordpress',
 | 
			
		||||
		images: ['bitnami/mysql:5.7'],
 | 
			
		||||
		versions: ['latest', 'php8.1', 'php8.0', 'php7.4', 'php7.3'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 80
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'vaultwarden',
 | 
			
		||||
		fancyName: 'Vaultwarden',
 | 
			
		||||
		baseImage: 'vaultwarden/server',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 80
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'languagetool',
 | 
			
		||||
		fancyName: 'LanguageTool',
 | 
			
		||||
		baseImage: 'silviof/docker-languagetool',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8010
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'n8n',
 | 
			
		||||
		fancyName: 'n8n',
 | 
			
		||||
		baseImage: 'n8nio/n8n',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 5678
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'uptimekuma',
 | 
			
		||||
		fancyName: 'Uptime Kuma',
 | 
			
		||||
		baseImage: 'louislam/uptime-kuma',
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 3001
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'ghost',
 | 
			
		||||
		fancyName: 'Ghost',
 | 
			
		||||
		baseImage: 'bitnami/ghost',
 | 
			
		||||
		images: ['bitnami/mariadb'],
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 2368
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'meilisearch',
 | 
			
		||||
		fancyName: 'Meilisearch',
 | 
			
		||||
		baseImage: 'getmeili/meilisearch',
 | 
			
		||||
		images: [],
 | 
			
		||||
		versions: ['latest'],
 | 
			
		||||
		recommendedVersion: 'latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 7700
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'umami',
 | 
			
		||||
		fancyName: 'Umami',
 | 
			
		||||
		baseImage: 'ghcr.io/mikecao/umami',
 | 
			
		||||
		images: ['postgres:12-alpine'],
 | 
			
		||||
		versions: ['postgresql-latest'],
 | 
			
		||||
		recommendedVersion: 'postgresql-latest',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 3000
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'hasura',
 | 
			
		||||
		fancyName: 'Hasura',
 | 
			
		||||
		baseImage: 'hasura/graphql-engine',
 | 
			
		||||
		images: ['postgres:12-alpine'],
 | 
			
		||||
		versions: ['latest', 'v2.5.1'],
 | 
			
		||||
		recommendedVersion: 'v2.5.1',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 8080
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		name: 'fider',
 | 
			
		||||
		fancyName: 'Fider',
 | 
			
		||||
		baseImage: 'getfider/fider',
 | 
			
		||||
		images: ['postgres:12-alpine'],
 | 
			
		||||
		versions: ['stable'],
 | 
			
		||||
		recommendedVersion: 'stable',
 | 
			
		||||
		ports: {
 | 
			
		||||
			main: 3000
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	// {
 | 
			
		||||
	//     name: 'moodle',
 | 
			
		||||
	//     fancyName: 'Moodle',
 | 
			
		||||
	//     baseImage: 'bitnami/moodle',
 | 
			
		||||
	//     images: [],
 | 
			
		||||
	//     versions: ['latest', 'v4.0.2'],
 | 
			
		||||
	//     recommendedVersion: 'latest',
 | 
			
		||||
	//     ports: {
 | 
			
		||||
	//         main: 8080
 | 
			
		||||
	//     }
 | 
			
		||||
	// }
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
export const asyncSleep = (delay: number) =>
 | 
			
		||||
	new Promise((resolve) => setTimeout(resolve, delay));
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -31,8 +31,7 @@
 | 
			
		||||
	import { goto } from '$app/navigation';
 | 
			
		||||
	import { get, post } from '$lib/api';
 | 
			
		||||
	import { t } from '$lib/translations';
 | 
			
		||||
	import { errorNotification } from '$lib/common';
 | 
			
		||||
	import { supportedServiceTypesAndVersions } from 'shared/index';
 | 
			
		||||
	import { errorNotification, supportedServiceTypesAndVersions } from '$lib/common';
 | 
			
		||||
 | 
			
		||||
	const { id } = $page.params;
 | 
			
		||||
	const from = $page.url.searchParams.get('from');
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ export default {
 | 
			
		||||
        'GITPOD_WORKSPACE_URL': JSON.stringify(process.env.GITPOD_WORKSPACE_URL)
 | 
			
		||||
    },
 | 
			
		||||
    server: {
 | 
			
		||||
        port: 3000,
 | 
			
		||||
        hmr: process.env.GITPOD_WORKSPACE_URL
 | 
			
		||||
        ? {
 | 
			
		||||
            // Due to port fowarding, we have to replace
 | 
			
		||||
 
 | 
			
		||||
@@ -15,11 +15,9 @@
 | 
			
		||||
    "dev": "run-p -l -n dev:*",
 | 
			
		||||
    "dev:api": "NODE_ENV=development pnpm run --filter coolify-api dev",
 | 
			
		||||
    "dev:ui": "NODE_ENV=development pnpm run --filter coolify-ui dev",
 | 
			
		||||
    "dev:shared": "NODE_ENV=development pnpm run --filter shared dev",
 | 
			
		||||
    "build": "NODE_ENV=production pnpm build:shared && run-p -n build:api build:ui",
 | 
			
		||||
    "build": "NODE_ENV=production run-p -n build:*",
 | 
			
		||||
    "build:api": "NODE_ENV=production pnpm run --filter coolify-api build",
 | 
			
		||||
    "build:ui": "NODE_ENV=production pnpm run --filter coolify-ui build",
 | 
			
		||||
    "build:shared": "NODE_ENV=production pnpm run --filter shared build",
 | 
			
		||||
    "dockerlogin":"echo $DOCKER_PASS | docker login --username=$DOCKER_USER --password-stdin",
 | 
			
		||||
    "release:staging:amd": "cross-var docker buildx build --platform linux/amd64 -t coollabsio/coolify:$npm_package_version --push .",
 | 
			
		||||
    "release:local":"rm -fr ./local-serve && mkdir ./local-serve && pnpm build && cp -Rp apps/api/build/* ./local-serve && cp -Rp apps/ui/build/ ./local-serve/public && cp -Rp apps/api/prisma/ ./local-serve/prisma && cp -Rp apps/api/package.json ./local-serve && env | grep '^COOLIFY_' > ./local-serve/.env && cd ./local-serve && pnpm install . && pnpm start"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2198
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2198
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user