xsrv

  ╻ ╻┏━┓┏━┓╻ ╻
░░╺╋╸┗━┓┣┳┛┃┏┛
  ╹ ╹┗━┛╹┗╸┗┛ 

https://gitlab.com/nodiscc/xsrv/badges/master/pipeline.svg https://bestpractices.coreinfrastructure.org/projects/3647/badge https://img.shields.io/badge/latest%20release-1.3.1-blue https://img.shields.io/badge/docs-readthedocs-%232980B9

Install, manage and run self-hosted network services and applications on your own server(s) (sharing, communication, collaboration systems, file storage, multimedia, office/organization, development, automation, IT infrastructure and more).

xsrv provides:

  • roles to install/configure various network services, web applications, system and infrastructure management tools

  • a command-line tool for common operations, easy/fast deployment, configuration and maintenance

  • a template to get started with a single server in a few minutes

Roles

  • 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

  • proxmox - basic setup for Proxmox VE hypervisors

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 https://gitlab.com/nodiscc/xsrv
# (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 deploy@my.CHANGEME.org
# initialize the playbook, provide basic settings and roles to enable
xsrv init-playbook
# deploy your first server
xsrv deploy

https://asciinema.org/a/kGt6mVg3GxFlDPXwagiwg4Laq.svg

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

See the full usage documentation.

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

Screenshots

https://i.imgur.com/v9BQYpN.png https://i.imgur.com/PPVIb6V.png https://i.imgur.com/UoKs3x1.png

https://i.imgur.com/gsoh2Mj.png https://i.imgur.com/Rks90zV.png https://i.imgur.com/7nJ6cMN.png

https://i.imgur.com/lHgDbDC.png https://i.imgur.com/PRE7fvn.png https://i.imgur.com/WUdwbAX.png

https://i.imgur.com/OWOH8LI.png https://i.imgur.com/Fg8uRjL.png https://i.imgur.com/eGCL45L.jpg

Source code

License

Documentation