A set of ansible scripts for setting up my home server.
These scripts set up the following services:
- ChatPad
- Jellyfin
- Just Bangs
- Kiwix
- Miniflux
- Navidrome
- Nextcloud
- OnlyOffice
- SearXNG
- With Just Auth for authentication
- TubeSync
- YouTranscript
- Transmission + OpenVPN
- Wallabag
- Dynamic DNS with Namecheap
- Clone the repository
git clone https://github.com/thavelick/home-server.git cd home-server
- Install Ansible
See the Ansible documentation
- Create an inventory file:
cat > hosts <<EOF [servers] my-server.dev.local [servers.vars] [email protected] dynamicdns_password=aaaaaaaa11111111aaaaaaaa11111111 navidrome_username=your_username navidrome_password=your_password nextcloud_admin_user=your-hidden-password local_network=192.168.1.0/16 marginalia_api_key=your_api_key miniflux_admin_password=good-password miniflux_db_user_password=such-a-great-password onlyoffice_jwt_secret=something-really-secret openvpn_provider=your-provider openvpn_config=uk_london openvpn_username=p83748378 openvpn_password=ptrlkn1nt parent_domain=dev.local wallabag_secret="my super secret secret" [email protected] wallabag_email_password=a-really-good-password wallabag_admin_user=wallabag wallabag_admin_password=an-even-better-password searxng_secret_key=another-secret-key searxng_just_auth_password="choose a password for searxng" searxng_just_auth_salt="just a random string" EOF
- Set up DNS At Name cheap
- Install Ansible Dependencies
ansible-galaxy install -r requirements.yml
- Run the playbook:
ansible-playbook -i hosts playbook.yml
- Copy/Upload zim files for kiwix to {{kiwix_site_root}}/data
- I thought about automating this, but many of these files are huge, making them easier to copy locally if you have them, and it's often difficult to determine which is the newest or best zim file in an automated fashion
- Visit all the sites!