Add: Optional DB SSH
This commit is contained in:
parent
56c1c4ac76
commit
4d53448465
@ -2,30 +2,50 @@ import { env } from '$lib/env';
|
|||||||
import postgres from 'postgres';
|
import postgres from 'postgres';
|
||||||
import ssh2 from 'ssh2';
|
import ssh2 from 'ssh2';
|
||||||
|
|
||||||
// @ts-ignore
|
/**
|
||||||
export const sql = postgres(
|
* @returns {postgres.Options<{}>}
|
||||||
{
|
*/
|
||||||
host: env.PG_HOST,
|
function getPostreConfig() {
|
||||||
port: parseInt(env.PG_PORT),
|
if (env.SSH_ENABLE == 'true') {
|
||||||
database: env.PG_DATABASE,
|
// with ssh
|
||||||
username: env.PG_USERNAME,
|
return {
|
||||||
password: env.PG_PASSWORD,
|
host: env.PG_HOST,
|
||||||
// @ts-ignore
|
port: parseInt(env.PG_PORT),
|
||||||
socket: ({ host: [host], port: [port] }) => new Promise((resolve, reject) => {
|
database: env.PG_DATABASE,
|
||||||
const ssh = new ssh2.Client();
|
username: env.PG_USERNAME,
|
||||||
ssh
|
password: env.PG_PASSWORD,
|
||||||
.on('error', reject)
|
// @ts-ignore
|
||||||
.on('ready', () =>
|
socket: ({ host: [host], port: [port] }) => new Promise((resolve, reject) => {
|
||||||
ssh.forwardOut('127.0.0.1', 12345, host, port,
|
const ssh = new ssh2.Client();
|
||||||
(err, socket) => err ? reject(err) : resolve(socket)
|
ssh
|
||||||
|
.on('error', reject)
|
||||||
|
.on('ready', () =>
|
||||||
|
ssh.forwardOut('127.0.0.1', 12345, host, port,
|
||||||
|
(err, socket) => err ? reject(err) : resolve(socket)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
.connect({
|
||||||
.connect({
|
host: env.SSH_HOST,
|
||||||
host: env.SSH_HOST,
|
port: parseInt(env.SSH_PORT),
|
||||||
port: parseInt(env.SSH_PORT),
|
username: env.SSH_USERNAME,
|
||||||
username: env.SSH_USERNAME,
|
password: env.SSH_PASSWORD
|
||||||
password: env.SSH_PASSWORD
|
})
|
||||||
})
|
})
|
||||||
})
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// no ssh
|
||||||
|
return {
|
||||||
|
host: env.PG_HOST,
|
||||||
|
port: parseInt(env.PG_PORT),
|
||||||
|
database: env.PG_DATABASE,
|
||||||
|
username: env.PG_USERNAME,
|
||||||
|
password: env.PG_PASSWORD,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const sql = postgres(
|
||||||
|
getPostreConfig()
|
||||||
);
|
);
|
||||||
|
|||||||
@ -5,6 +5,7 @@ export type Env = {
|
|||||||
PG_PORT: string,
|
PG_PORT: string,
|
||||||
PG_DATABASE: string,
|
PG_DATABASE: string,
|
||||||
|
|
||||||
|
SSH_ENABLE: string,
|
||||||
SSH_HOST: string,
|
SSH_HOST: string,
|
||||||
SSH_PORT: string,
|
SSH_PORT: string,
|
||||||
SSH_USERNAME: string,
|
SSH_USERNAME: string,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user