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..
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil.
-
No spam.
-
Posts are to be related to self-hosting.
-
Don't duplicate the full text of your blog or readme if you're providing a link.
-
Submission headline should match the article title.
-
No trolling.
-
Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.
-
AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
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.
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
Ansible to deploy services in docker compose stacks and backups with resticprofile.
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.
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.
Everything is in docker or a virtual machine that starts on boot. Docker containers are managed with Dockhand's web ui. Once a month I ssh and "sudo apt upgrade" but that's it.
I tried to use olivetin to avoid having to ssh but I ran into errors I haven't had time to investigate yet.
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.
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.
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)
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 |
14 acronyms in this thread; the most compressed thread commented on today has 8 acronyms.
[Thread #113 for this comm, first seen 26th Sep 2026, 12:40] [FAQ] [Full list] [Contact] [Source code]
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.
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!
SSH but i mostly do everything over dockhand which is a webuj for docker
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.
Usually I put handcuffs on her every night, to keep her off of me, and only feed her the highest grade sushi and meat. It keeps her hair shiny, keeps good health, and complaints down to a minimum. I make sure she gets adequate sleep on an expensive mattress while I sleep on a 2 inch futon on the floor.
Oh wait... wrong kind of server.
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.