add ssh-tunnel service and functions

This commit is contained in:
Alexander Navarro 2026-01-29 12:26:43 -03:00
parent 6944ab1e25
commit b3df5795f2
4 changed files with 47 additions and 13 deletions

View file

@ -1,4 +1,3 @@
[Pod] [Pod]
PodName=databases PodName=databases
PublishPort=9090:3000
PublishPort=5432:5432 PublishPort=5432:5432

View file

@ -1,14 +1,11 @@
[Container] [Container]
Image=docker.io/dbgate/dbgate Image=docker.io/adminneoorg/adminneo
AutoUpdate=registry AutoUpdate=registry
Pod=dev-databases.pod Network=host
Environment=CONNECTIONS=POSTGRES Environment=NEO_THEME=default
Environment=LABEL_POSTGRES="Localhost Postgres" Environment=NEO_COLOR_VARIANT=green
Environment=ENGINE_POSTGRES=postgres@dbgate-plugin-postgres Environment=NEO_JSON_VALUES_DETECTION=true
Environment=SERVER_POSTGRES=localhost Environment=NEO_JSON_VALUES_AUTO_FORMAT=true
Environment=PORT_POSTGRES=5432 Environment=NEO_NAVIGATION_MODE=dual
Environment=USER_POSTGRES=postgres Environment=NEO_PREFER_SELECTION=true
Environment=PASSWORD_POSTGRES=1234 Environment=NEO_RELATION_LINKS=true
[Service]
ExecStartPost=/usr/bin/xdg-open http://localhost:9090

View file

@ -0,0 +1,28 @@
function ssh-tunnel
set -l label "Select SSH tunnel to activate:"
set -l tunnel (fd . ~/.ssh/tunnels.d/ | fzf -d / --with-nth=6 --accept-nth=6 --nth=6 --preview='bat {}' --input-label=foo --input-label-pos=bottom | cut -d "." -f 1)
if test -z $tunnel
return
end
envsource "$HOME/.ssh/tunnels.d/$tunnel.conf"
echo "Activating connection $tunnel..."
if not systemctl --user is-active "database-ssh-tunnel@$tunnel.service" -q
systemctl --user start "database-ssh-tunnel@$tunnel.service"
end
if test (string lower $DB_START_EXPLORER) = "true"
echo "Opening Databse in browser, password will be copied to the clipboard..."
if not systemctl --user is-active "dev-dbui.service" -q
systemctl --user start "dev-dbui.service"
end
wl-copy "$DB_PASSWORD"
xdg-open "http://localhost:8080?$DB_DRIVER=$TUNNEL_LOCAL_ADDRESS:$TUNNEL_LOCAL_PORT&username=$DB_USER&db=$DB_NAME&ns=public"
end
end

View file

@ -0,0 +1,10 @@
[Unit]
Description=SSH Persistent port forward for %i, makes available remote port locally
After=network-online.target
Wants=network-online.target
[Service]
EnvironmentFile=%h/.ssh/tunnels.d/%i.conf
ExecStart=/usr/bin/ssh -NT -o ExitOnForwardFailure=yes -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -L ${TUNNEL_LOCAL_ADDRESS}:${TUNNEL_LOCAL_PORT}:${TUNNEL_REMOTE_ADDRESS}:${TUNNEL_REMOTE_PORT} ${TUNNEL_SSH_HOST}
RestartSec=3
Restart=always