Hi, how do you run forgejo under a reverse proxy while using an ssh channel to pull/push commits?
From what I understand caddy is only able to proxy http traffic.
Submitted 2 months ago by witx@lemmy.sdf.org to selfhosted@lemmy.world
Hi, how do you run forgejo under a reverse proxy while using an ssh channel to pull/push commits?
From what I understand caddy is only able to proxy http traffic.
If both Caddy and Forgejo are running in Docker containers you could do SSH Container Passthrough.
Link is to Gitea docs but should work fine with Forgejo.
It works but I don’t think Forgejo plans to support it in the future. Projects started to diverge and the documentation regarding docker is somewhat in a deprecated state.
You don’t. That’s not what caddy is. Use a bastion for ssh.
Random search hit: goteleport.com/blog/ssh-bastion-host/
There seems to be mixed reactions to this suggestion. I don’t know enough to understand why.
I dont know about caddy but nginx proxy manager does this very well. Also, if running in docker, you can expose the port that runs ssh for forgejo und a different port than the host machine‘s (eg 2222). In that case you just put the remote in with the port and call it a day.
If you connect from outside your LAN, you would need to forward the ssh port to the server in your router settings. If you are inside the LAN, just use the ip address of the forgejo server.
I don’t think you can with caddy
Afaik you can reverse proxy the ssh connection. I’ve been connecting to my server using the domain and tld (asudox.dev)
Are you able to provide some details on how you are doing this? I don’t think you can do much with reverse proxies and SSH beyond routing all traffic on port 22 (or the configured SSH port) to whichever port SSH is listening on. In other words, the reverse proxy cannot route SSH traffic for the host on port 22 to the host, route SSH traffic for Forgejo on port 22 to Forgejo’s SSH process, and SFTP traffic on port 22 to the SFTP process - at least not via domain name like a HTTP/HTTPS reverse proxy would work.
Instead, this would need to be done via IP address where the host SSH process listens on 192.168.1.2, the Forgejo SSH process listens on 192.168.1.3, and the SFTP process listens on 192.168.4. Otherwise, each of those services would need to use different ports.
Upon more investigation, it seems more like caddy indeed can’t. The only reason it works is because I directly point the A record to the VPS’s IP.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters | More Letters |
---|---|
Git | Popular version control system, primarily for code |
HTTP | Hypertext Transfer Protocol, the Web |
IP | Internet Protocol |
nginx | Popular HTTP server |
[Thread #962 for this sub, first seen 10th Sep 2024, 12:25] [FAQ] [Full list] [Contact] [Source code]
robber@lemmy.ml 2 months ago
IIRC there is a plugin for Caddy that can do what you are looking for.
wireless_purposely832@lemmy.world 2 months ago
This would only work if there is no other traffic on the port being used (eg: port 22). If both the host SSH service and Forgejo SSH service expect traffic on port 22, then this would not work since server name indication (SNI) is not provided with SSH traffic and Caddy would not be able to identify the appropriate destination for multiple SSH services traffic.