Merge branch 'canary' into 139-multi-server-feature

This commit is contained in:
Mauricio Siu
2024-09-21 22:55:15 -06:00
8 changed files with 44 additions and 22 deletions

View File

@@ -29,7 +29,7 @@ We have tested on the following Linux Distros:
### Providers
- [Hostinger](https://www.hostinger.com/vps-hosting?ref=dokploy) Get 20% Discount using this referral link: [Referral Link](https://hostinger.com?REFERRALCODE=1SIUMAURICI97)
- [Hostinger](https://www.hostinger.com/vps-hosting?ref=dokploy) Get 20% Discount using this referral link: [Referral Link](https://www.hostinger.com/vps-hosting?REFERRALCODE=1SIUMAURICI97)
- [DigitalOcean](https://www.digitalocean.com/pricing/droplets#basic-droplets) Get 200$ credits for free with this referral link: [Referral Link](https://m.do.co/c/db24efd43f35)
- [Hetzner](https://www.hetzner.com/cloud/) Get 20€ credits for free with this referral link: [Referral Link](https://hetzner.cloud/?ref=vou4fhxJ1W2D)
- [Linode](https://www.linode.com/es/pricing/#compute-shared)

View File

@@ -81,7 +81,10 @@ export const ShowClusterSettings = ({ applicationId }: Props) => {
const onSubmit = async (data: AddCommand) => {
await mutateAsync({
applicationId,
registryId: data?.registryId === "none" ? null : data?.registryId,
registryId:
data?.registryId === "none" || !data?.registryId
? null
: data?.registryId,
replicas: data?.replicas,
})
.then(async () => {

View File

@@ -109,9 +109,9 @@ export const AddTemplate = ({ projectId }: Props) => {
<DialogContent className="max-h-screen overflow-y-auto sm:max-w-7xl p-0">
<div className="sticky top-0 z-10 flex flex-col gap-4 bg-background p-6 border-b">
<DialogHeader>
<DialogTitle>Create Template</DialogTitle>
<DialogTitle>Create from Template</DialogTitle>
<DialogDescription>
Deploy a open source template to your project
Create an open source application from a template
</DialogDescription>
</DialogHeader>
{isError && <AlertBlock type="error">{error?.message}</AlertBlock>}
@@ -274,7 +274,7 @@ export const AddTemplate = ({ projectId }: Props) => {
<AlertDialog>
<AlertDialogTrigger asChild>
<Button onSelect={(e) => e.preventDefault()}>
Deploy
Create
</Button>
</AlertDialogTrigger>
<AlertDialogContent>
@@ -283,8 +283,9 @@ export const AddTemplate = ({ projectId }: Props) => {
Are you absolutely sure?
</AlertDialogTitle>
<AlertDialogDescription>
This will deploy {template.name} template to
your project.
This will create an application from the{" "}
{template.name} template and add it to your
project.
</AlertDialogDescription>
<div>

View File

@@ -1,6 +1,6 @@
{
"name": "dokploy",
"version": "v0.8.1",
"version": "v0.8.3",
"private": true,
"license": "Apache-2.0",
"type": "module",

View File

@@ -25,7 +25,7 @@ export const domainRouter = createTRPCRouter({
.input(apiCreateDomain)
.mutation(async ({ input }) => {
try {
await createDomain(input);
return await createDomain(input);
} catch (error) {
throw new TRPCError({
code: "BAD_REQUEST",

View File

@@ -424,18 +424,28 @@ export const settingsRouter = createTRPCRouter({
return false;
}),
readStatsLogs: adminProcedure.input(apiReadStatsLogs).query(({ input }) => {
const rawConfig = readMonitoringConfig();
const parsedConfig = parseRawConfig(
rawConfig as string,
input.page,
input.sort,
input.search,
input.status,
);
readStatsLogs: adminProcedure
.meta({
openapi: {
path: "/read-stats-logs",
method: "POST",
override: true,
enabled: false,
},
})
.input(apiReadStatsLogs)
.query(({ input }) => {
const rawConfig = readMonitoringConfig();
const parsedConfig = parseRawConfig(
rawConfig as string,
input.page,
input.sort,
input.search,
input.status,
);
return parsedConfig;
}),
return parsedConfig;
}),
readStats: adminProcedure.query(() => {
const rawConfig = readMonitoringConfig();
const processedLogs = processLogs(rawConfig as string);

View File

@@ -11,7 +11,7 @@ import { findServerById } from "./server";
export type Domain = typeof domains.$inferSelect;
export const createDomain = async (input: typeof apiCreateDomain._type) => {
await db.transaction(async (tx) => {
const result = await db.transaction(async (tx) => {
const domain = await tx
.insert(domains)
.values({
@@ -23,7 +23,7 @@ export const createDomain = async (input: typeof apiCreateDomain._type) => {
if (!domain) {
throw new TRPCError({
code: "BAD_REQUEST",
message: "Error to create the domain",
message: "Error creating domain",
});
}
@@ -31,7 +31,11 @@ export const createDomain = async (input: typeof apiCreateDomain._type) => {
const application = await findApplicationById(domain.applicationId);
await manageDomain(application, domain);
}
return domain;
});
return result;
};
export const generateTraefikMeDomain = async (

View File

@@ -58,6 +58,10 @@ Compose Type: ${composeType} ✅`;
},
{
cwd: projectPath,
env: {
NODE_ENV: process.env.NODE_ENV,
PATH: process.env.PATH,
},
},
);