Awesome Open Source
Awesome Open Source


  ╻ ╻┏━┓┏━┓╻ ╻
  ╹ ╹┗━┛╹┗╸┗┛ 

xsrv is a tool to install and manage self-hosted services/applications on your own server(s), from single-machine homeserver/lab setups to large scale infrastructures. It provides:

xsrv uses ansible, a configuration management system for reproducible and automated deployments/change management. You can use the provided command-tool to manage your setup, or include the roles in your own ansible playbooks.


  • common - base system setup and hardening
  • backup - incremental backup service
  • monitoring - monitoring, alerting and logging system
  • apache - web server and PHP interpreter
  • postgresql or mariadb database server
  • openldap - LDAP directory server
  • docker - Docker container platform
  • graylog - log management, capture and analysis platform
  • nextcloud - file hosting/sharing/synchronization/groupware/"private cloud" service
  • tt_rss - RSS feed reader
  • samba - cross-platform file and printer sharing service (SMB/CIFS)
  • shaarli - personal, minimalist, super-fast bookmarking service
  • gitea - lightweight self-hosted Git service/software forge
  • transmission - bittorrent peer-to-peer client web interface (seedbox) service
  • mumble - low-latency voice-over-IP (VoIP) server
  • rocketchat - realtime web chat/communication platform
  • jellyfin - media System that puts you in control of managing and streaming your media
  • homepage - simple homepage/dashboard for your services
  • gotty - access a server terminal as a web application

Quick start

Prepare the remote server, then, on the controller:

# install requirements (example for debian-based systems)
sudo apt update && sudo apt install git bash python3-venv python3-pip ssh pwgen
# clone the repository
git clone
# (optional) install the command line tool to your $PATH
sudo cp xsrv/xsrv /usr/local/bin/
# authorize your SSH key on the remote user account
ssh-copy-id [email protected]
# initialize the playbook, provide basic settings and roles to enable
xsrv init-playbook
# deploy your first server
xsrv deploy

# change the configuration, add hosts or roles...
xsrv edit-inventory
xsrv edit-playbook
xsrv edit-host
xsrv edit-vault

See the full usage documentation.


Source code



Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
web (1,032
monitoring (631
server (536
ansible (426
logging (401
self-hosted (221
backup (201
infrastructure (131
jinja (122
media (122
bittorrent (103
nextcloud (83
ldap (78
rocketchat (19