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 ssh2 from 'ssh2';
|
||||
|
||||
// @ts-ignore
|
||||
export const sql = postgres(
|
||||
{
|
||||
host: env.PG_HOST,
|
||||
port: parseInt(env.PG_PORT),
|
||||
database: env.PG_DATABASE,
|
||||
username: env.PG_USERNAME,
|
||||
password: env.PG_PASSWORD,
|
||||
// @ts-ignore
|
||||
socket: ({ host: [host], port: [port] }) => new Promise((resolve, reject) => {
|
||||
const ssh = new ssh2.Client();
|
||||
ssh
|
||||
.on('error', reject)
|
||||
.on('ready', () =>
|
||||
ssh.forwardOut('127.0.0.1', 12345, host, port,
|
||||
(err, socket) => err ? reject(err) : resolve(socket)
|
||||
/**
|
||||
* @returns {postgres.Options<{}>}
|
||||
*/
|
||||
function getPostreConfig() {
|
||||
if (env.SSH_ENABLE == 'true') {
|
||||
// with ssh
|
||||
return {
|
||||
host: env.PG_HOST,
|
||||
port: parseInt(env.PG_PORT),
|
||||
database: env.PG_DATABASE,
|
||||
username: env.PG_USERNAME,
|
||||
password: env.PG_PASSWORD,
|
||||
// @ts-ignore
|
||||
socket: ({ host: [host], port: [port] }) => new Promise((resolve, reject) => {
|
||||
const ssh = new ssh2.Client();
|
||||
ssh
|
||||
.on('error', reject)
|
||||
.on('ready', () =>
|
||||
ssh.forwardOut('127.0.0.1', 12345, host, port,
|
||||
(err, socket) => err ? reject(err) : resolve(socket)
|
||||
)
|
||||
)
|
||||
)
|
||||
.connect({
|
||||
host: env.SSH_HOST,
|
||||
port: parseInt(env.SSH_PORT),
|
||||
username: env.SSH_USERNAME,
|
||||
password: env.SSH_PASSWORD
|
||||
.connect({
|
||||
host: env.SSH_HOST,
|
||||
port: parseInt(env.SSH_PORT),
|
||||
username: env.SSH_USERNAME,
|
||||
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_DATABASE: string,
|
||||
|
||||
SSH_ENABLE: string,
|
||||
SSH_HOST: string,
|
||||
SSH_PORT: string,
|
||||
SSH_USERNAME: string,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user