feat: turborepo monorepo scaffold and provisioning
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -149,6 +149,45 @@ export async function createApplication(opts: {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Coolify service for one app inside a Turborepo monorepo.
|
||||
* Build command uses `turbo run build --filter` to target just that app.
|
||||
*/
|
||||
export async function createMonorepoAppService(opts: {
|
||||
projectUuid: string;
|
||||
appName: string;
|
||||
gitRepo: string;
|
||||
gitBranch?: string;
|
||||
domain: string;
|
||||
serverUuid?: string;
|
||||
environmentName?: string;
|
||||
}): Promise<CoolifyApplication> {
|
||||
const {
|
||||
projectUuid, appName, gitRepo,
|
||||
gitBranch = 'main',
|
||||
domain,
|
||||
serverUuid = '0',
|
||||
environmentName = 'production',
|
||||
} = opts;
|
||||
|
||||
return coolifyFetch(`/applications`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({
|
||||
project_uuid: projectUuid,
|
||||
name: appName,
|
||||
git_repository: gitRepo,
|
||||
git_branch: gitBranch,
|
||||
server_uuid: serverUuid,
|
||||
environment_name: environmentName,
|
||||
build_pack: 'nixpacks',
|
||||
build_command: `pnpm install && turbo run build --filter=${appName}`,
|
||||
start_command: `turbo run start --filter=${appName}`,
|
||||
ports_exposes: '3000',
|
||||
fqdn: `https://${domain}`,
|
||||
}),
|
||||
});
|
||||
}
|
||||
|
||||
export async function deployApplication(uuid: string): Promise<{ deployment_uuid: string }> {
|
||||
return coolifyFetch(`/applications/${uuid}/deploy`, { method: 'POST' });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user