This repository contains everything you need to start self-hosting a core set of privacy-preserving services that I have found helpful, all run via a common Docker Compose configuration using Let's Encrypt for SSL certificates.Requirements Git Docker Engine Docker Compose Ports 80/tcp, 443/tcp, 18080/tcp, and 18089/tcp exposed/forwarded to the host DNS entries for your top-level domain and each desired sub-domain Included Services Nextcloud A self-hosted server for hosting files, photos, backups, contacts, calendars, and much more Monero A self-sovereign, private-by-default, digital cash This service runs a pruned Monero node, allowing you to connect your own Monero wallet(s) directly to your own node Nitter A privacy-preserving Twitter front-end Teddit A privacy-preserving Reddit front-end Wallabag A privacy-preserving article reader in the vein of Pocket
NOTE: If you do not want to run one of the services above simply comment out or delete the relevant service section from docker-compose.yml.How does it work?
This repo relies on Docker Compose to configure and run all of the above services, leveraging nginx-proxy and docker-letsencrypt-nginx-proxy-companion to automatically expose each service, request and maintain Let's Encrypt certificates for SSL, and handle all proxying.Starting the Services
You will need to clone this repository to the host you want running these services first:git clone https://github.com/sethsimmons/self-hosted-services.git cd self-hosted-services
Once cloned, set the necessary passwords and desired sub-domains in the .env file (PLEASE DO NOT COPY THE FOLLOWING CONFIG, CHANGE THE PASSWORDS AND HOSTNAMES APPROPRIATELY IN YOUR LOCAL .env FILE):# Nextcloud Variables NEXTCLOUD_HOSTNAME=nextcloud.mydomain.com NEXTCLOUD_ADMIN_USER=admin NEXTCLOUD_ADMIN_PASSWORD=changeme POSTGRES_PASSWORD=changeme # Wallabag Variables WALLABAG_HOSTNAME=wallabag.mydomain.com WALLABA...