tambahan
This commit is contained in:
22
bin/g3n.ts
22
bin/g3n.ts
@@ -173,7 +173,27 @@ function handleCompose(name?: string): void {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
compose(name);
|
if (!args.env) {
|
||||||
|
console.error("❌ Compose env (staging/prod) is required");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.env !== "staging" && args.env !== "prod") {
|
||||||
|
console.error("❌ Compose env (staging/prod) is required");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!args.port) {
|
||||||
|
console.error("❌ Compose port is required");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(args.port.length !== 2) {
|
||||||
|
console.error("❌ Compose port must be 2 digits");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
compose(name, args.env, Number(args.port));
|
||||||
console.log(`✅ Compose file generated for ${name}`);
|
console.log(`✅ Compose file generated for ${name}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ networks:
|
|||||||
`
|
`
|
||||||
}
|
}
|
||||||
|
|
||||||
const generate = (name: string) => {
|
const generate = (name: string, env: "staging" | "prod", port: number) => {
|
||||||
return `
|
return `
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
@@ -86,7 +86,9 @@ echo "Generating directory..."
|
|||||||
mkdir -p data data/app data/postgres data/frpc data/ssh
|
mkdir -p data data/app data/postgres data/frpc data/ssh
|
||||||
|
|
||||||
echo "Generating authorized_keys..."
|
echo "Generating authorized_keys..."
|
||||||
touch data/ssh/authorized_keys
|
cat << EOF > data/ssh/authorized_keys
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDfXPd7ab21qdKtKKdv2bLxIa9hEqq2oLLj7c3i/rN2f bip@bips-Air
|
||||||
|
EOF
|
||||||
|
|
||||||
echo "Generating frpc.toml..."
|
echo "Generating frpc.toml..."
|
||||||
touch data/frpc/frpc.toml
|
touch data/frpc/frpc.toml
|
||||||
@@ -102,31 +104,31 @@ transport.tls.enable = true
|
|||||||
|
|
||||||
auth_token = ""
|
auth_token = ""
|
||||||
|
|
||||||
[ssh-cld-dkr-staging-${name}.wibudev.com]
|
[ssh-cld-dkr-${env}-${name}.wibudev.com]
|
||||||
type = tcp
|
type = tcp
|
||||||
local_ip = ${name}-dev
|
local_ip = ${name}-dev
|
||||||
local_port = 22
|
local_port = 22
|
||||||
remote_port = 5102
|
remote_port = 51${port}
|
||||||
|
|
||||||
[postgres-cld-dkr-staging-${name}.wibudev.com]
|
[postgres-cld-dkr-${env}-${name}.wibudev.com]
|
||||||
type = tcp
|
type = tcp
|
||||||
local_ip = ${name}-postgres
|
local_ip = ${name}-postgres
|
||||||
local_port = 5432
|
local_port = 5432
|
||||||
remote_port = 5202
|
remote_port = 52${port}
|
||||||
|
|
||||||
[cld-dkr-staging-${name}.wibudev.com]
|
[cld-dkr-${env}-${name}.wibudev.com]
|
||||||
type = http
|
type = http
|
||||||
local_ip = ${name}-prod
|
local_ip = ${name}-prod
|
||||||
local_port = 3000
|
local_port = 3000
|
||||||
custom_domains = "cld-dkr-staging-${name}.wibudev.com"
|
custom_domains = "cld-dkr-${env}-${name}.wibudev.com"
|
||||||
EOF
|
EOF
|
||||||
`
|
`
|
||||||
}
|
}
|
||||||
|
|
||||||
async function compose(name: string) {
|
async function compose(name: string, env: "staging" | "prod", port: number) {
|
||||||
const composeFile = text(name);
|
const composeFile = text(name);
|
||||||
await fs.writeFile(`./compose.yml`, composeFile);
|
await fs.writeFile(`./compose.yml`, composeFile);
|
||||||
Bun.spawnSync(["bash", "-c", generate(name)]);
|
Bun.spawnSync(["bash", "-c", generate(name, env, port)]);
|
||||||
console.log("✅ Compose file generated");
|
console.log("✅ Compose file generated");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user