Hey everyone! I've got a compiled C++ executable that I need to set up on a Debian system. I can manage the Debian installation, but I'm looking for the best way to deploy this application while ensuring future updates are easy to handle. I've thought about creating a systemd service for the software and then just handing it over to the customer. For any future updates, I'd replace the old binary with a new zip file. However, I'm aware there are other methods like using .deb packages or even tools like Ansible. Just a heads-up, the customer's network is completely isolated, so I won't have access to the internet for things like docker pulls or private apt repositories. I'd love some tips, recommendations, or crucial details I should keep in mind. Thanks!
2 Answers
One option you might consider is creating a minimal .deb package for your application. This way, you can manage dependencies more effectively and the installation would be cleaner. Security updates and future versions can be deployed easily by just updating the .deb file, and since the network is isolated, you can distribute the package via USB or any local transfer method. Plus, using .deb packaging makes the transition smoother if they decide to scale in the future.
You might also think about using Ansible for deployment. Even though the network is offline, you can set up Ansible locally to automate the deployment of your executable and configuration files. Just ensure that you bundle all required files and dependencies beforehand. It can make future updates much simpler, even if you need to do it manually sometimes.
Ansible sounds great but is there a concern with maintaining the playbooks if the requirements change?

That's a solid idea! Also, don't forget to document the installation process for the customer. It’ll save them time and hassles later on.