Hello there Lemmy users, I recently posted an announcement of my project on the selfhosted subreddit and I think it is a good idea to also post it here for the Lemmy users.
About this project
I always wanted to have an easy file system and terminal access to all of my servers, including containers and clusters that you normally can’t connect to with existing solutions out of the box. So over the last months I worked on my new project XPipe to fix that.
In short, it is a brand-new type of shell connection hub with an included remote file manager that works by only interacting with already installed command-line tools on local and remote shell connections. This approach makes it much more flexible as it doesn’t have to deal with file system APIs, protocols, or libraries at all, everything is delegated to your own CLI tools. This also allows you to open connections in your favorite terminal application through XPipe. So if you normally use CLI tools like ssh
, docker
, kubectl
, etc. to connect to your servers, you can just use XPipe on top of that without any setup required on your servers.
Here are some screenshots:
In the context of the selfhosted community, the application is technically not hosted as it is implemented as a desktop application to have access to your shells,command-line programs, and terminals, but you can use it to access all your self-hosted infrastructure. The application matches the spirit of selfhosted as you have full control over your data. Everything is stored on your system, it doesn’t need to connect to any online service and there are no accounts or anything like that. It is also designed to be cross-platform and should also run on every operating system.
So if this project sounds interesting to you, you can give it a try! There are more features to come in the near future. I also appreciate any kind of bug reports and feedback to guide me in the right development direction. There is also a Discord and a Slack workspace for any sort of talking, although there isn’t really a community yet. Any sort of issue reports are important as I only had the ability to test it in a few different server environments and your setups can differ wildly from mine.
Enjoy!
I think my environments might be a bit too large for the app to handle. I have ~90 docker containers running on one of my servers and it seems to be really struggling with it it. Generally I’ve been having some performance issues (clicking on anything has a 1-3 second delay) which appear to be amplified by the number of active containers and clients.
Memory usage increases to infinity, this is a snapshot after launching the program and having it open a shell.
https://i.imgur.com/L0y2JFN.png
It’s a really cool idea though and I like the UI and the ability to browse file systems via gui without having to map a network drive.
An update: I was able to reproduce the issue of growing memory usage when frequently adding connections like containers. As long as you don’t add more connections continuously in a session, the memory shouldn’t really grow that much. So a restart should improve the situation.
That is unfortunate to hear about these performance issues. Performance was not my main focus initially as optimizations are always supposed to come later on, but I guess that time is now. How many connections do you have added in total? I was not able to reproduce anything getting over 1GB of main memory with like 50 total connections. Also, does restarting fix some of that?
The best way of diagnosing that issue would be a heap dump of the application, but that requires some effort of getting it and also sharing it somehow, but we could do that if you want.
86 connections with 83 of those being active docker containers.
Edit: If you need anything for diagnostics I’ll happily provide it.
Restarting does help but sometimes I still get 3GB spikes, but it drops back down after a while instead of increasing.