![](https://lemmy.world/pictrs/image/f9957653-c5f6-4b0f-8b76-9113a227152c.jpeg)
![](https://lemmy.world/pictrs/image/8286e071-7449-4413-a084-1eb5242e2cf4.png)
You can full well deploy docker stacks using ansible. This is what I used to do for rocket.chat: [1] [2] (ditched it for Matrix/element without Docker, but the concept stays valid)
I’m not to the point where the specifics of every system is in Ansible yet.
What I suggest is writing a playbook that list the roles attached to your servers, even if the roles actually do nothing:
# playbook.yml
- hosts: myhomeserver.example.org
roles:
- debian-base
- docker
- application-x
- service-y
- hosts: mydevserver.example.org
- debian-base
- application-z
# roles/application-x/tasks/main.yml
- name: setup application-x
debug:
msg: "TODO This will one day deploy application-x. For now the setup is entirely manual and documented in roles/application-x/README.md"
# roles/application-x/tasks/main.yml
- name: setup service-y
debug:
msg: "TODO This will one day deploy service-y. For now the setup is entirely manual and documented in roles/service-y/README.md"
#...
This is a good start for a config management/automated deployment system. At least you will have an inventory of hosts and what’s running on them. Work your way from there, over time progressively convert your manual install/configuration steps to automated procedures. There are a few steps that even I didn’t automate (like configuring LDAP authentication for Nextcloud), but they are documented in the relevant role README [3]
https://github.com/awesome-selfhosted/awesome-selfhosted#document-management---e-books