RetroFed Forum
Your home away from modern life.
how do you manage your server?
Post Reply
AuthorMessage
illusionist lemmy.zip illusionist@lemmy.zip
Joined: 2025-06-30
Quote

I usually connect with my server via ssh in a terminal and run basic commands. What's a better, more efficient and modern way of doing that? Especially considering ai and documentation along the way?
I wonder if there's a better approach than "connect from remote and act local". Is there a method to "code local and push to remote"?

I use a fedora server with podman, caddyfile and vi.

108   Original
kossa feddit.org kossa@feddit.org
Joined: 2024-11-29
#2 · Quote Reply

Ansible is one way to "code local, push to remote(s)". Can define so-called playbooks, which is basically just a script, to do reoccuring tasks like e.g. updates.

24
9point6 lemmy.world 9point6@lemmy.world
Joined: 2023-06-12
#3 · Quote Reply

Depends what you're trying to do, really

If you're talking about going in and restarting containers and checking logs, there are tools like Portainer that give a nice UI you can quickly use from your phone

If you're talking about repetitive tasks, sometimes there's a tool to automate it already (e.g. updates via watchtower, unattended-upgrades), and if not, you can write a script and possibly run it via a cronjob if that makes sense

If you're talking about doing new stuff, you either stick with the SSH & shell commands, or you look into IaC tools like ansible as another reply mentioned. Another option is something like Nix where the setup is defined in config, so you make your changes there

3
ElectricVocalist jlai.lu Mubelotix@jlai.lu
Joined: 2023-07-02
#4 · (edited) Quote Reply

Ansible is one way to "code local, push to remote(s)". Can define so-called playbooks, which is basically just a script, to do reoccuring tasks like e.g. updates.

Ansible is great, I just wish it would automatically cleanup stuff on the server when I remove parts of the config. I know it's not the goal, but I dream about a tool that works this way. I get many leftover config over years

4
beliquititious lemmy.blahaj.zone beliquititious@lemmy.blahaj.zone
Joined: 2024-03-05
#5 · Quote Reply

There are probably multiple flashy clients and gui's for it, but if you're already used to the terminal, I'd recommend rsync. This might be the wrong syntax but something like rsync -av ~/local/project servername:/var/www/html/ would take your local files and update the web directory of your server with only the files that are more recent. Rsync will even read your ssh config file so if you're got an entry for your server you can just use the host name.

I ran a little blog for a while using a static site generator so I setup the git server on my web server and wrote a git hook where every time I pushed to the repo the server would pull it's cloned copy of the repo into the html directory. Took me a few hours to setup but it made updating the blog as simple as pushing to the repo.

2
Matt The Horwood lemmy.horwood.cloud mhzawadi@lemmy.horwood.cloud
Joined: 2023-07-27
#6 · Quote Reply

Ansible is great, I just wish it would automatically cleanup stuff on the server when I remove parts of the config. I know it's not the goal, but I dream about a tool that works this way. I get many leftover config over years

We fixed that with roles that manage both install and uninstall

3
GreenShimada lemmy.world GreenShimada@lemmy.world
Joined: 2024-12-22
#7 · Quote Reply

I wait for something to break. Then I yell "God fucking dammit, I don't have time for this right now!" and spend an hour triaging things before I just try docker down, pull, up and everything works.

90
ElectricVocalist jlai.lu Mubelotix@jlai.lu
Joined: 2023-07-02
#8 · (edited) Quote Reply

We fixed that with roles that manage both install and uninstall

That works but that's only useful if you have many machines. I have a single server so it's the same burden as doing it manually. If only the uninstall step could be completely automated by just reverting the install step

1
Matt The Horwood lemmy.horwood.cloud mhzawadi@lemmy.horwood.cloud
Joined: 2023-07-27
#9 · Quote Reply

That works but that's only useful if you have many machines. I have a single server so it's the same burden as doing it manually. If only the uninstall step could be completely automated by just reverting the install step

Not quite, if you write the role to manage the life cycle of a bit of software then uninstall is part of that life cycle.

But I do see that investment in time looks more then just do it by hand

3
soyslurper2 lemmy.dbzer0.com soyslurper2@lemmy.dbzer0.com
Joined: 2026-08-29
#10 · Quote Reply

"code local and push remote" is only more efficient if you have a faulty connection with ssh or want to use a GUI editor that doesn't support remote connections. What you're doing is good. You can scoure for more "modern" ways that might have more glimmer and sparkly lights, but it won't improve efficiency.

15
IsoKiero sopuli.xyz IsoKiero@sopuli.xyz
Joined: 2023-06-12
#11 · Quote Reply

Nothing wrong with good old ssh. My VMs are different enough that building and maintaining ansible playbooks or something similar would be a bigger task than actually doing it in the traditional way. Maybe I could benefit by building simple playbooks to populate user accounts, ssh keys, smtp relay settings and other common things, but I don't really set up new servers that often that it would justify spending time to set up tools for that.

6
Egonallanon feddit.uk Egonallanon@feddit.uk
Joined: 2025-06-27
#12 · Quote Reply

Ansible and terraform can bath do with you want though for a single server I'd consider them both to be a somewhat overkill. But then again homelabbing often is about overkill.

3
makeshift0546 lemmy.today makeshift0546@lemmy.today
Joined: 2026-05-11
#13 · (edited) Quote Reply

Hermes + maybe $5-10 worth of tokens if I need more compute than ollama can provide (on a busy month). Running everything in a nice podlet setup and have reduced maintenance down to trivial levels. Config gets occasionally shipped to GitHub

In theory I might lose the ui if it bricked itself but in reality that doesn’t happen.

-3
farcaller fstab.sh farcaller@fstab.sh
Joined: 2023-07-01
#14 · Quote Reply

nixos, mostly. It has a very steep learning curve but if it breaks I’m just "whatever, rollback now, fix properly later".

7
mio lemmy.mio19.uk mio@lemmy.mio19.uk
Joined: 2025-06-21
#15 · Quote Reply

I use ssh with tmux

17
HelloRoot lemy.lol HelloRoot@lemy.lol
Joined: 2025-02-15
#16 · (edited) Quote Reply

with dokplpy as a server docker managementweb gui.

for the code push workflow:

  • keep your normal git workflow, commit & push
  • set up a git hook in git & dokploy that rebuilds from source on every push
  • or do it on a schedule and build once a day or whatever

If you're project has an unusual way to build, you could also do a git action that pushes a docker image out somewhere, depending on yoyr git provider.

There are probably infinitely many ways to autodeploy something.

If you need a step bt step breakdown, I can give you a guide based on my personal website, but that might not apply to your project.

2
9tr6gyp3 lemmy.world 9tr6gyp3@lemmy.world
Joined: 2023-06-16
#17 · (edited) Quote Reply

I created git repos on my main workstation for each homelab server/service I maintain that keeps:

  • documentation
  • notes
  • lessons learned
  • scripts, configs
  • runbooks
  • backup details
  • security audit details
  • log items that need attention
  • infrastructure

I just point a local LLM (offline model that runs on my workststion) into those repos and ask it to perform certain things on those servers. It can do things like update packages, install packages, make config changes, set/check permissions, read logs (and fix errors in real time), and check the health of the overall system.

I have it run pre backups before making changes, then post backups once its done.

Once changes are in place and everything is running okay, I ask it to update documentation in the repo and tag the release.

I use opencode that connects to a llama.cpp service. opencode lets me gate the AI so that any elevated commands that it needs to run (e.g. sudo or ssh), I have to approve it. It cant just go around making changes without permission.

11
prenatal_confusion feddit.org prenatal_confusion@feddit.org
Joined: 2024-09-04
#18 · Quote Reply

Hermes + maybe $5-10 worth of tokens if I need more compute than ollama can provide (on a busy month). Running everything in a nice podlet setup and have reduced maintenance down to trivial levels. Config gets occasionally shipped to GitHub In theory I might lose the ui if it bricked itself but in reality that doesn’t happen.

I looked that up and am astonished that you let an agent range free on your server?!

4
makeshift0546 lemmy.today makeshift0546@lemmy.today
Joined: 2026-05-11
#19 · Quote Reply

I looked that up and am astonished that you let an agent range free on your server?!

I bet you I do less work and have a more efficient and locked down network, file permissions, fully rootless, updated on the hour, 100% in code, and observable setup than 98% of you just running sudo apt upgrade and praying. But yeah, my little agent working in an nemoclaw sandbox is going to go rogue and destroy my server somehow and I definitely believe the AI hype bros that are definitely “accidentally “ are hacking orgs and not going to end the human race🙄

Man, the ignorance and prejudice over how llm work is insane.

-7
sum_yung_gai programming.dev sum_yung_gai@programming.dev
Joined: 2025-06-20
#20 · Quote Reply

Ansible to deploy services in docker compose stacks and backups with resticprofile.

2
SavvyWolf pawb.social savvywolf@pawb.social
Joined: 2023-06-27
#21 · Quote Reply

I connect to my server using ssh and use tmux as a persistent session. Configuration wise, I use NixOS and edit the config files directly on the server via emacs.

1
SayCyberOnceMore feddit.uk Cyber@feddit.uk
Joined: 2023-06-17
#22 · Quote Reply

That works but that's only useful if you have many machines. I have a single server so it's the same burden as doing it manually. If only the uninstall step could be completely automated by just reverting the install step

To be fair to Ansible, that's probably a packaging issue.

If the 1st run of an application creates a bunch of files and folders, then the packager won't know about them and Ansible's just relying on that.

But yeah, for 1 machine I'd find Ansible overkill (not a problem per se), but really helps when you have 5 Rasperry Pi Zeros scattered around the house 😉

2
SayCyberOnceMore feddit.uk Cyber@feddit.uk
Joined: 2023-06-17
#23 · Quote Reply

I use ssh with tmux

This is the way

2
adr1an programming.dev anzo@programming.dev
Joined: 2023-06-22
#24 · Quote Reply

set the server as git remote and push there directly. set hooks to deploy. I do that for a static site. Is my little iac solution. Search for alternatives to "infrastructure as code". It can go from simple dockerfile to swarms or kubernetes..

3
vext01 feddit.uk vext01@feddit.uk
Joined: 2023-07-05
#25 · (edited) Quote Reply

I just use ssh and manually type commands. Keep doing it and you will get good and it will become second nature.

No need to burn tokens on basic tasks.

Master your tools. Learn awk, sed, just, etc.

Some shell customisation can help. For example I'm fond of zsh-auto-suggestions and skim. Makes me quicker.

49
Arda piefed.social Arda@piefed.social
Joined: 2026-09-10
#26 · Quote Reply

SSH but i mostly do everything over dockhand which is a webuj for docker

1
tiny_hedgehog piefed.social tiny_hedgehog@piefed.social
Joined: 2025-12-09
#27 · Quote Reply

Poorly.

68
dimjim sh.itjust.works dimjim@sh.itjust.works
Joined: 2023-10-15
#28 · Quote Reply

It depends on what I’m doing I suppose. I run my main VM on Proxmox, so I mainly use its web interface for any VM work. For all the containers within, I’ve been really loving Dockhand lately, it’s just as easy to use as Portainer, it even checks for updates for me AND gives me a link for the release notes so I can decide whether to upgrade or not.

Most other things like file transfers or editing my Caddyfile I do through SSH. Can’t beat simplicity sometimes!

1
jello programming.dev jello@programming.dev
Joined: 2025-12-08
#29 · Quote Reply

To manage containers I use Arcane, which I can access from anywhere. Let's me create, update, delete, basically anything Podman can do.

For other stuff I still just SSH. I have up set up that I can do it remotely (with an extra security step), but I don't need to do it very often.

Worth noting that some security stuff is automated, eg non-breaking updates on the OS and log monitoring.

1
Ioughttamow fedia.io Ioughttamow@fedia.io
Joined: 2024-08-14
#30 · (edited) Quote Reply

Poorly.

Hear hear

15
jwiggler lemmy.dbzer0.com jwiggler@lemmy.dbzer0.com
Joined: 2026-04-22
#31 · Quote Reply

I wait for something to break. Then I yell "God fucking dammit, I don't have time for this right now!" and spend an hour triaging things before I just try docker down, pull, up and everything works.

same. or i just df and see / 100%

21
rowinxavier lemmy.world rowinxavier@lemmy.world
Joined: 2023-07-09
#32 · Quote Reply

same. or i just df and see / 100%

Early on I wrote a script for my user account to run df and save the output to a file, then a second script to read that file and if the drive was full send me an email.

First, it failed because it couldn't send the email because the email service failed under full disk conditions.

Second, it failed because it couldn't write the file to disk because the disk was full.

Third, it failed because outbound SMTP was blocked by my ISP.

I learned a lot about how well you can fail if you really put your mind to it. Now I have Home Assistant grabbing the disk stats for my machines and flagging anything over 90%.

17
Decronym Bot Decronym@lemmy.decronym.xyz
Joined: 2026-01-05
#33 · (edited) Quote Reply

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
DNS Domain Name Service/System
Git Popular version control system, primarily for code
ISP Internet Service Provider
LVM (Linux) Logical Volume Manager for filesystem mapping
NAS Network-Attached Storage
NFS Network File System, a Unix-based file-sharing protocol known for performance and efficiency
Plex Brand of media server package
RAID Redundant Array of Independent Disks for mass storage
SFTP Secure File Transfer Protocol for encrypted file transfer, over SSH
SMTP Simple Mail Transfer Protocol
SSH Secure Shell for remote terminal access
VPS Virtual Private Server (opposed to shared hosting)
ZFS Solaris/Linux filesystem focusing on data integrity
k8s Kubernetes container management package

[Thread #113 for this comm, first seen 26th Sep 2026, 12:40]
[FAQ] [Full list] [Contact] [Source code]

1
Albbi piefed.ca albbi@piefed.ca
Joined: 2025-06-25
#34 · Quote Reply

I've been using a program someone on Lemmy has been writing: SSHPilot. It helps keep my server list organized and can easily ssh to the machines or open up a file browser for easy drag and drop of files if I have some quick files to move around. It copies ssh keys easily as well.

9
ѕєχυαℓ ρσℓутσρє lemmy.sdf.org SexualPolytope@lemmy.sdf.org
Joined: 2023-06-21
#35 · Quote Reply

I bet you I do less work and have a more efficient and locked down network, file permissions, fully rootless, updated on the hour, 100% in code, and observable setup than 98% of you just running sudo apt upgrade and praying. But yeah, my little agent working in an nemoclaw sandbox is going to go rogue and destroy my server somehow and I definitely believe the AI hype bros that are definitely “a...

It's not about "going rogue". It's about making mistakes. It's not a hypothetical. It has happened many times to people who were as confident as you seem to be with their setup. There's a proverb in my language that roughly translates to "some learn by looking at others, while some need to experience it by themselves". Maybe you're in the latter category.

3
fefe feddit.org fefe00325@feddit.org
Joined: 2024-07-16
#36 · Quote Reply

Ansible is great, I just wish it would automatically cleanup stuff on the server when I remove parts of the config. I know it's not the goal, but I dream about a tool that works this way. I get many leftover config over years

That sounds like NixOS to me.

11
dihutenosa piefed.social dihutenosa@piefed.social
Joined: 2025-06-04
#37 · Quote Reply

I write my NixOS configs in my PC, commit to the repo, then push it to the server. Then SSH in, and apply it. Or more likely, MOSH in.

15
non_burglar lemmy.world non_burglar@lemmy.world
Joined: 2023-06-16
#38 · Quote Reply

I deploy with ansible keys and install ssh with a keys-only config and only ansible access.

Then I run some standard installs and configs with ansible and all future updates to apt, apk and docker are done with one ansible playbook.

I don't include the ansible host itself in the automation, nor my workstation, just to prevent everything from being broken at once if something goes wrong.

2
Nomecks lemmy.ca Nomecks@lemmy.ca
Joined: 2023-12-27
#39 · Quote Reply

I use Gitlab for all configurations ans then I have a Gitlab runner in my K3S cluster so I can deploy locally for free

3
WolfLink sh.itjust.works WolfLink@sh.itjust.works
Joined: 2024-06-06
#40 · Quote Reply

It’s good to get comfortable in the command line, including over ssh.

Especially considering ai and documentation along the way?

If I am going to ask AI or Google about something, I just do that to help me find the answer and then apply the answer myself. That way I learn, and can double check the AI isn’t hallucinating, at least on in obvious ways.

As for documentation, I keep a notes folder with detailed notes on manual configuration I’ve done, how and why, and the things I’ve learned along the way. I’ve found it’s both useful to help remember the things I’ve learned, and it is useful to go back to refer to.

11
SpatchyIsOnline lemmy.world SpatchyIsOnline@lemmy.world
Joined: 2024-08-07
#41 · Quote Reply

Around 50-50 between SSH and Portainer (although I've been meaning to migrate from Portainer to Arcane so I can have my compose files in git)

1
makeshift0546 lemmy.today makeshift0546@lemmy.today
Joined: 2026-05-11
#42 · Quote Reply

It's not about "going rogue". It's about making mistakes. It's not a hypothetical. It has happened many times to people who were as confident as you seem to be with their setup. There's a proverb in my language that roughly translates to "some learn by looking at others, while some need to experience it by themselves". Maybe you're in the latter category.

Humans definitely don’t make mistakes. Especially not with their jank home servers. All of it done without shortcuts and auditable in code, with a standard process.

You’ve set some imaginary high bar that is rarely actually met outside of nerds shit talking on the internet and a small percentage of users.

1
antlion lemmy.dbzer0.com antlion@lemmy.dbzer0.com
Joined: 2023-08-16
#43 · Quote Reply

Proxmox web UI to manage my six containers. Sometimes I use sftp (ssh) to modify files in a desktop editor instead of nano over a web interface. Recently I broke things and had to go down to the basement with a keyboard and monitor to rollback my Omada container. I kinda want to make that part easier but it’s so infrequent it’s probably not worth it.

1
mesa piefed.social mesamunefire@piefed.social
Joined: 2024-12-27
#44 · Quote Reply

Poorly.

Hell yeah

8
mesa piefed.social mesamunefire@piefed.social
Joined: 2024-12-27
#45 · Quote Reply

A mix of prayer and bash scripts.

10
Willem kutsuya.dev Willem@kutsuya.dev
Joined: 2023-07-05
#46 · Quote Reply

I have a kubernetes cluster inside of Proxmox vm's, generally I write a deployment, commit it to a git repo and then use argocd to deploy it in the cluster.

This is not something I would advise to anyone but the clinically insane, but for me there is a certain zen in having everything in git like that. It's for me the only way I can manage the 60ish applications I run without it having a permanent spot in my brain.

3
Bakkoda lemmy.world Bakkoda@lemmy.world
Joined: 2024-02-28
#47 · Quote Reply

A mix of prayer and bash scripts.

Remove bash scripts and add poorly configured logging and that's me!

2
standarduser lemmy.dbzer0.com standarduser@lemmy.dbzer0.com
Joined: 2025-06-10
#48 · Quote Reply

I'll take the maverick and share my niche position. I did most if not all my proxmox setup and configuration via complete reliance on LLMs. Now, before anyone says "why would you do that", and I'll be straight up. I was high for all of it, and not a small blaze I'm talking regularly stoned for months. And I'll say it "got me by" for the frame work. It worked? Sorta. Music, Plex, immich, docker, arr stack, podman. Now, I can't say I fully understand it still and I've done a lot of changes since that point last year and I figured it out by asking the model to backtrack what we did and I wont lie it helped me better learn how to question the models for my job, and It did decent documnetation over my server. But again, I was literally high doing it

3
MuttMutt lemmy.world MuttMutt@lemmy.world
Joined: 2023-06-18
#49 · Quote Reply

Which one? Lol.

TrueNAS is mostly via the webgui but I use SSH when needed.

I have two Ubuntu 26.04LTS VM's running on TrueNAS. One is going to be my web host the other is for FrigateNVR and local AI processing. They are both managed via SSH. The web host has a FIDO2 ssh key for access, the other is a standard key and is not web accessible. Both can be accessed via remote desktop when at home.

Docker containers are managed via DockHand. I have about 50 containers running across the above hosts right now.

HomeAssistant is managed via the webgui and SSH when needed. It runs on its own hardware (Odroid N2+)

My traveling local host/ap/dhcp server is primarily managed over USB via SSH. Files are managed via SFTP.

1
something183786 lemmy.world something183786@lemmy.world
Joined: 2023-07-29
#50 · Quote Reply

I created git repos on my main workstation for each homelab server/service I maintain that keeps: documentation notes lessons learned scripts, configs runbooks backup details security audit details log items that need attention infrastructure I just point a local LLM (offline model that runs on my workststion) into those repos and ask it to perform certain things on those servers. It can do thi...

What models are you using? What hardware are you running them on? I’m curious if I can replicate your success

3
frongt lemmy.zip frongt@lemmy.zip
Joined: 2025-07-31
#51 · Quote Reply

Remove bash scripts and add poorly configured logging and that's me!

At least you have logging!

3
Post Reply Page 1 of 2   Goto page 1, 2 Last »
Back to top