My homeserver supports a huge and growing collection of your favorite open source services. In order to use it you have to be familiar with using the terminal. If you prefer a graphical user interface take a look at umbrel.
To setup your own homeserver you should have an own domain. You can get one for free at Freenom. To get automated certificates point the domain`s NS-records to a provider that supports the acme protocol and wildcard A records. I use Digitalocean it is free. You have to create an account and add your domain. Then go back to Freenom and change the nameservers of your domain to
1
2
3
ns1.digitalocean.com.
ns2.digitalocean.com.
ns3.digitalocean.com.
and add a new A-record with an asterix (*) as subdomain (wildcard) with the IP address of your server.
Further requirenments are to have docker and git installed.
1
2
3
4
5
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
dockerd-rootless-setuptool.sh install
sudo usermod -aG docker $USER
sudo apt install git
Now you can clone the homeserver repository and create a docker network
1
2
3
git clone https://github.com/SimonHaas/homeserver.git
cd homeserver
docker network create zone1
Copy and modify the main .env file. Set your timezone, domain and the services you want to have started. You can leave the default services until you have verified that everything is setup correctly and then add more.
1
2
cp .env.example .env
nano .env
Then go to traefik and edit the .env file there as well. Here you have to enter your email. If you use Digitalocean as your DNS provider you only have to add an auth-key. You can get one in the settings of digitalocean. If you use another provider take a look at available acme providers.
1
2
3
cd services/traefik
cp .env.example .env
nano .env
Now we are basically ready to go. But first let`s test if your DNS setup is correct. To get a test-certificate edit the docker-compose.yml file of traefik and remove the ‘#’ sign of the line which specifies the certificate resolver to use the letsencrypt staging servers. Start traefik with
1
docker compose up
After traefik has started you can visit traefik at https://traefik.
1
git reset --hard
Now go two levels up again and run the homeserver-script. Go to each service`s folder you have specified in the main .env file and modify the corresponding .env file accordingly.
1
2
cd ../..
./script.sh up -d
Now your specified services should be up and running.